:root{--bg:#f4f7fb;--surface:#fff;--text:#172033;--muted:#718096;--line:#e4e9f0;--primary:#f47b20;--primary-dark:#d95f08;--green:#18a957;--orange:#f59e0b;--red:#e74b4b;--shadow:0 10px 30px rgba(24,39,75,.08)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button{font:inherit;border:0;cursor:pointer}.app-shell{min-height:100vh;display:flex}.sidebar{width:245px;background:#0b1220;color:#dce6f4;display:flex;flex-direction:column;padding:22px 14px;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:8px 10px 28px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#ff9a3d,#e85d04);display:grid;place-items:center;color:#fff;font-size:22px}.brand strong{display:block;color:#fff;font-size:19px}.brand span{display:block;color:#8290a5;font-size:12px;margin-top:2px}.nav{display:grid;gap:6px}.nav-item{background:transparent;color:#94a2b8;text-align:left;border-radius:11px;padding:13px 14px;display:flex;align-items:center;gap:13px;font-size:14px;transition:.2s}.nav-item:hover{background:#141e31;color:#fff}.nav-item.active{background:#e96b13;color:#fff;box-shadow:0 8px 20px rgba(233,107,19,.22)}.sidebar-footer{margin-top:auto;color:#56657c;font-size:11px;padding:12px 14px}.main{margin-left:245px;min-height:100vh;flex:1}.topbar{height:82px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;gap:18px;position:sticky;top:0;z-index:10}.topbar h1{font-size:25px;margin:2px 0 0}.eyebrow{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.topbar-date{margin-left:auto;color:var(--muted);font-size:13px;font-weight:700}.menu-btn{display:none;background:transparent;font-size:23px;color:var(--text)}.content{padding:32px;max-width:1400px;margin:auto}.hero{background:linear-gradient(115deg,#0c1729,#173c70);border-radius:24px;color:#fff;padding:32px;min-height:210px;display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow);overflow:hidden}.hero h2{font-size:32px;margin:0 0 8px}.hero p{color:#f6d6bd;margin:0}.hero-badge{width:190px;height:150px;border-radius:30px;background:rgba(255,255,255,.08);display:grid;place-items:center;font-size:70px;transform:rotate(-8deg)}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:var(--shadow)}.action-card{min-height:145px;display:flex;flex-direction:column;justify-content:space-between}.action-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:23px;background:#fff1e6;color:var(--primary)}.action-card h3{margin:16px 0 0;font-size:17px}.action-card p{margin:5px 0 0;color:var(--muted);font-size:12px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:22px}.stat{display:flex;justify-content:space-between;align-items:center}.stat strong{font-size:28px}.stat span{font-size:12px;color:var(--muted)}.stat-icon{font-size:22px;color:var(--primary);background:#fff1e6;padding:13px;border-radius:13px}.page-card{margin-bottom:18px}.page-card h2{margin:0 0 6px}.page-card p{color:var(--muted);margin:0}.empty{padding:50px 20px;text-align:center;color:var(--muted)}.pill{display:inline-flex;padding:7px 11px;border-radius:20px;background:#fff1e6;color:var(--primary);font-size:12px;margin-top:18px}.overlay{display:none}
@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.open{transform:translateX(0)}.main{margin-left:0}.menu-btn{display:block}.topbar{padding:0 20px}.topbar-date{display:none}.content{padding:20px}.grid{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.overlay{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:15}.overlay.show{display:block}}
@media(max-width:560px){.grid{grid-template-columns:1fr}.hero{padding:25px}.hero h2{font-size:25px}.hero-badge{display:none}}


/* v0.2 — class management */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h2{margin:0 0 5px;font-size:28px}.page-head p{margin:0;color:var(--muted);max-width:720px}.primary-btn,.secondary-btn,.small-btn{border:0;border-radius:12px;padding:12px 17px;font-weight:800;cursor:pointer;font:inherit}.primary-btn{background:linear-gradient(135deg,#f97316,#ea580c);color:#fff;box-shadow:0 7px 18px rgba(234,88,12,.22)}.primary-btn:hover{filter:brightness(1.04)}.secondary-btn{background:#f4f4f5;color:#3f3f46}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px}.class-card{overflow:hidden;padding:0}.class-color{height:8px;background:linear-gradient(90deg,#fb923c,#ea580c)}.class-body{padding:20px}.class-top{display:flex;justify-content:space-between;gap:10px}.class-top h3{margin:0 0 6px;font-size:20px}.class-type{font-size:13px;color:var(--muted);background:#fff7ed;color:#c2410c;padding:5px 9px;border-radius:999px}.class-meta{display:flex;flex-wrap:wrap;gap:14px;margin:22px 0;color:#52525b;font-size:14px}.class-bottom{border-top:1px solid #eeeef0;padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:10px}.class-bottom strong{font-size:17px}.small-btn{background:#fff7ed;color:#c2410c;padding:8px 11px}.icon-btn{border:0;background:transparent;border-radius:10px;width:36px;height:36px;font-size:24px;cursor:pointer;color:#71717a}.icon-btn:hover{background:#f4f4f5}.icon-btn.danger:hover{background:#fff1f2;color:#e11d48}.empty-card{text-align:center;padding:55px 25px}.empty-icon{width:58px;height:58px;margin:0 auto 15px;border-radius:18px;display:grid;place-items:center;background:#fff7ed;color:#ea580c;font-size:27px}.empty-card h3{margin:0 0 7px}.empty-card p{color:var(--muted);margin:0 auto 20px}.modal-backdrop{position:fixed;inset:0;background:rgba(24,24,27,.52);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}.modal{width:min(620px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 30px 80px rgba(0,0,0,.28);padding:25px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:22px}.modal-head h2{margin:2px 0 0;font-size:25px}.modal label{display:block;font-weight:750;color:#3f3f46;margin:0 0 16px}.modal input,.modal select{width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;background:#fff;outline:none}.modal input:focus,.modal select:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.13)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid #eeeef0;padding-top:18px;margin-top:6px}
@media(max-width:700px){.page-head{align-items:stretch;flex-direction:column}.page-head .primary-btn{width:100%}.form-row{grid-template-columns:1fr}.modal{padding:20px}.class-grid{grid-template-columns:1fr}}
/* v0.3 — student management */
.student-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px}.student-toolbar label{display:block;font-weight:750;color:#3f3f46;min-width:280px}.student-toolbar select{display:block;margin-top:7px;width:100%;border:1px solid #d4d4d8;border-radius:11px;padding:11px 13px;font:inherit;background:#fff}.student-summary{display:flex;align-items:baseline;gap:7px;color:var(--muted)}.student-summary strong{font-size:28px;color:var(--text)}.student-list{padding:0;overflow:hidden}.student-row{display:flex;align-items:center;gap:14px;padding:16px 18px;border-bottom:1px solid var(--line)}.student-row:last-child{border-bottom:0}.student-avatar{width:45px;height:45px;flex:0 0 45px;border-radius:14px;background:#fff1e6;color:#ea580c;display:grid;place-items:center;font-weight:900;font-size:18px}.student-info{min-width:0;flex:1}.student-info strong{display:block;font-size:16px}.student-info span{display:block;color:var(--muted);font-size:13px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-actions{display:flex;align-items:center;gap:7px}.optional{font-weight:500;color:var(--muted);font-size:12px}.modal textarea{width:100%;min-height:90px;resize:vertical;box-sizing:border-box;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;outline:none}.modal textarea:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.13)}.primary-btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
@media(max-width:700px){.student-toolbar{align-items:stretch;flex-direction:column}.student-toolbar label{min-width:0}.student-actions .small-btn{padding:8px}.student-row{align-items:flex-start}.student-actions{margin-left:auto}}
@media(max-width:480px){.student-actions .small-btn{font-size:12px}.student-actions .icon-btn{width:30px;height:30px}.student-avatar{width:40px;height:40px;flex-basis:40px}}
/* v0.4 — attendance */
.attendance-toolbar{display:grid;grid-template-columns:1.7fr 1fr;gap:16px;margin-bottom:18px}.attendance-toolbar label{font-weight:750;color:#3f3f46}.attendance-toolbar select,.attendance-toolbar input{display:block;width:100%;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;background:#fff;outline:none}.attendance-toolbar select:focus,.attendance-toolbar input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.13)}.attendance-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:18px}.attendance-stat{display:flex;align-items:center;justify-content:space-between}.attendance-stat strong{font-size:30px}.attendance-stat span{font-size:13px;color:var(--muted)}.attendance-stat.present strong{color:#18a957}.attendance-stat.absent strong{color:#e74b4b}.attendance-stat.excused strong{color:#d97706}.attendance-list{padding:0;overflow:hidden}.attendance-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line)}.attendance-row:last-child{border-bottom:0}.attendance-actions{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.attendance-btn{border:1px solid #e4e4e7;background:#fafafa;color:#52525b;border-radius:10px;padding:9px 11px;font:inherit;font-weight:800;cursor:pointer;transition:.15s}.attendance-btn:hover{background:#f4f4f5}.attendance-btn.active.present{background:#dcfce7;color:#15803d;border-color:#86efac}.attendance-btn.active.absent{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}.attendance-btn.active.excused{background:#fef3c7;color:#a16207;border-color:#fcd34d}
@media(max-width:850px){.attendance-toolbar{grid-template-columns:1fr}.attendance-summary{grid-template-columns:1fr}.attendance-row{align-items:flex-start;flex-wrap:wrap}.attendance-actions{width:100%;margin-left:59px;justify-content:flex-start}}
@media(max-width:560px){.attendance-actions{margin-left:0}.attendance-btn{flex:1;min-width:95px}.attendance-row{padding:14px}.attendance-stat{padding:17px}}
/* v0.4.1 — calendar attendance */
.attendance-calendar-card{margin-bottom:18px;padding:20px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.calendar-head h3{margin:0;font-size:22px;text-align:center}.calendar-head p{margin:4px 0 0;color:var(--muted);font-size:13px;text-align:center}.calendar-nav{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:12px;font-size:30px;line-height:1;cursor:pointer;color:var(--text)}.calendar-nav:hover{background:#fff7ed;color:#ea580c;border-color:#fdba74}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.calendar-weekdays{margin-bottom:7px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.calendar-day{position:relative;min-height:72px;border:1px solid #eeeef0;background:#fff;border-radius:12px;padding:9px;text-align:left;font:inherit;cursor:pointer;color:var(--text);transition:.15s}.calendar-day:hover{border-color:#fb923c;background:#fffaf5}.calendar-day span{font-weight:850;font-size:15px}.calendar-day small{display:block;margin-top:8px;font-size:10px;font-weight:800;color:#ea580c}.calendar-day.class-day{background:#fff1e6;border:2px solid #fb923c;box-shadow:inset 0 0 0 1px rgba(249,115,22,.08)}.calendar-day.class-day:hover{background:#ffedd5}.calendar-day.today span{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#0c1729;color:#fff}.calendar-day.has-attendance i{position:absolute;right:8px;bottom:8px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:#16a34a;color:#fff;font-size:11px;font-style:normal}.calendar-day.empty-day{visibility:hidden;cursor:default}.calendar-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:15px;color:var(--muted);font-size:12px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.legend-dot.class{background:#fb923c}.legend-dot.attendance{background:#16a34a;border-radius:50%}.selected-date{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.selected-date strong{display:block;margin-top:3px;font-size:17px}.date-status{padding:7px 11px;border-radius:999px;background:#fff7ed;color:#c2410c;font-size:12px;font-weight:800}
@media(max-width:700px){.calendar-grid,.calendar-weekdays{gap:4px}.calendar-day{min-height:62px;padding:7px}.calendar-day small{font-size:9px;margin-top:5px}.calendar-day.has-attendance i{right:5px;bottom:5px}.selected-date{align-items:flex-start;flex-direction:column}.date-status{align-self:flex-start}}
@media(max-width:480px){.attendance-calendar-card{padding:12px}.calendar-head h3{font-size:18px}.calendar-head p{font-size:11px}.calendar-nav{width:36px;height:36px;font-size:25px}.calendar-weekdays span{font-size:9px}.calendar-day{min-height:54px;border-radius:9px}.calendar-day span{font-size:13px}.calendar-day small{display:none}.calendar-day.has-attendance i{width:17px;height:17px;font-size:9px}.calendar-legend{gap:10px;font-size:10px}}
.no-lesson{padding:26px;text-align:center;display:flex;flex-direction:column;gap:6px;color:#6b7280}.no-lesson strong{color:#374151;font-size:16px}.no-lesson span{font-size:13px}
.calendar-day.non-class-day{opacity:.45;cursor:default}.calendar-day:disabled{pointer-events:none}

/* v0.4.4 multi-day class schedule */
.day-checks{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.day-check{position:relative;cursor:pointer}
.day-check input{position:absolute;opacity:0;pointer-events:none}
.day-check span{display:inline-flex;align-items:center;justify-content:center;min-width:48px;padding:9px 10px;border:1px solid #ddd;border-radius:10px;background:#fff;font-weight:700;color:#666;transition:.15s}
.day-check input:checked+span{background:#f97316;color:#fff;border-color:#f97316;box-shadow:0 3px 10px rgba(249,115,22,.18)}
.field-group{width:100%}
.field-label{display:block;font-size:.85rem;font-weight:700;margin-bottom:5px}

/* v0.4.5 per-day class times */
.schedule-editor{margin:8px 0 4px}
.schedule-row{display:grid;grid-template-columns:1fr 140px 42px;gap:8px;align-items:center;margin:8px 0}
.schedule-row select,.schedule-row input{width:100%;box-sizing:border-box}
@media(max-width:600px){.schedule-row{grid-template-columns:1fr 115px 40px}}

/* v0.4.7 Greek AM/PM time field */
.greek-time-field{display:flex;flex-direction:column;gap:3px}
.greek-time-field input{width:100%;box-sizing:border-box}
.greek-time-field small{font-size:.72rem;color:#888}

/* v0.4.8: native dropdown for lesson time, every 30 minutes */
.schedule-time{width:100%;box-sizing:border-box}

/* v0.4.9 attendance completion status */


/* v0.4.9.4: green day only when all students have attendance */
.calendar-day.attendance-complete-day{
  border-color:#16a34a!important;
  background:#dcfce7!important;
}

/* v0.4.9.7 completed attendance message */
.selected-date{display:flex;align-items:center;justify-content:space-between;gap:16px}
.attendance-complete-message{
  margin-left:auto;
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#16a34a;
  font-weight:800;
  white-space:nowrap;
}
@media(max-width:600px){
  .selected-date{align-items:flex-start;flex-direction:column}
  .attendance-complete-message{margin-left:0}
}

/* v0.4.10 — tuition */
.tuition-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}
.tuition-toolbar label{font-weight:750;color:#3f3f46}
.tuition-toolbar input,.tuition-toolbar select{display:block;width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;background:#fff;outline:none}
.tuition-toolbar input:focus,.tuition-toolbar select:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.13)}
.tuition-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}
.tuition-stat{display:flex;align-items:center;justify-content:space-between}
.tuition-stat span{font-size:13px;color:var(--muted)}
.tuition-stat strong{font-size:25px}
.tuition-stat.collected strong{color:#18a957}
.tuition-stat.pending strong{color:#e74b4b}
.tuition-month-title{display:flex;align-items:baseline;justify-content:space-between;gap:15px;margin:0 0 12px}
.tuition-month-title h3{margin:0;font-size:20px}
.tuition-month-title span{font-size:13px;color:var(--muted)}
.tuition-list{padding:0;overflow:hidden}
.tuition-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line)}
.tuition-row:last-child{border-bottom:0}
.tuition-amount{min-width:110px}
.tuition-amount strong{display:block}
.tuition-amount span{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.tuition-status{min-width:135px;font-size:13px;font-weight:800}
.tuition-status.paid{color:#15803d}
.tuition-status.unpaid{color:#b91c1c}
.tuition-actions{display:flex;gap:7px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}
.tuition-pay-btn{background:#dcfce7;color:#15803d}
.payment-modal-month{background:#fff7ed;color:#9a3412;border-radius:12px;padding:11px 13px;margin-bottom:18px}
.danger-text{color:#b91c1c!important;background:#fee2e2!important}
.payment-history{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.history-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:14px 16px;border-bottom:1px solid var(--line)}
.history-row:last-child{border-bottom:0}
.history-row span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
@media(max-width:850px){.tuition-row{align-items:flex-start;flex-wrap:wrap}.tuition-status{min-width:0}.tuition-actions{width:100%;margin-left:59px;justify-content:flex-start}}
@media(max-width:700px){.tuition-toolbar{grid-template-columns:1fr}.tuition-summary{grid-template-columns:1fr}.tuition-actions{margin-left:0}.tuition-month-title{align-items:flex-start;flex-direction:column}}

.stats-toolbar{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:18px}.stats-toolbar label{font-weight:750}.stats-toolbar input,.stats-toolbar select{display:block;width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;background:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat-card span{display:block;color:var(--muted);font-size:13px}.stat-card strong{display:block;font-size:28px;margin:7px 0}.stat-card small{color:var(--muted)}.stats-two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.stats-panel{padding:20px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.panel-title h3{margin:0 0 3px;font-size:18px}.panel-title span{color:var(--muted);font-size:12px}.attendance-rate{color:#16a34a}.stats-bars>div{margin-bottom:14px}.stats-bars span{font-size:13px}.stats-bars strong{float:right}.bar{height:9px;background:#f1f5f9;border-radius:20px;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:#16a34a;border-radius:20px}.bar.absent i{background:#ef4444}.bar.excused i{background:#eab308}.class-stat-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}.class-stat-row:last-child{border-bottom:0}.class-stat-row span{display:block;font-size:12px;color:var(--muted);margin-top:3px}.revenue-chart{height:230px;display:flex;align-items:flex-end;gap:14px;padding:12px 4px 0}.chart-col{height:100%;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end}.chart-col>span{font-size:11px;color:var(--muted);margin-bottom:5px}.chart-track{height:175px;width:100%;max-width:55px;background:#fff7ed;border-radius:9px 9px 4px 4px;display:flex;align-items:flex-end;overflow:hidden}.chart-track i{display:block;width:100%;background:#f97316;border-radius:8px 8px 0 0}.chart-col small{margin-top:7px;color:var(--muted);font-size:11px}@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.stats-toolbar,.stats-two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.stats-grid{grid-template-columns:1fr}}

.costume-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.costume-stat{padding:18px}.costume-stat span{display:block;color:var(--muted);font-size:13px}.costume-stat strong{display:block;font-size:27px;margin-top:6px}.costume-stat.male strong{color:#2563eb}.costume-stat.female strong{color:#db2777}.costume-stat.pending strong{color:#f97316}.costume-toolbar{margin-bottom:18px;padding:16px}.costume-toolbar label{font-weight:750}.costume-toolbar select{display:block;width:100%;box-sizing:border-box;max-width:360px;margin-top:7px;border:1px solid #d4d4d8;border-radius:11px;padding:12px 13px;font:inherit;background:#fff}.costume-row{display:flex;align-items:center;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line)}.costume-row:last-child{border-bottom:0}.costume-row .student-info{flex:1;min-width:0}.costume-badge{min-width:145px;text-align:center;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:750;background:#f3f4f6;color:#6b7280}.costume-badge.male{background:#eff6ff;color:#2563eb}.costume-badge.female{background:#fdf2f8;color:#db2777}.costume-actions{display:flex;gap:7px;justify-content:flex-end}.costume-actions .danger-text{color:#dc2626}.costume-assign-btn{border-color:#f97316;color:#ea580c}@media(max-width:900px){.costume-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.costume-row{flex-wrap:wrap}.costume-row .student-info{min-width:calc(100% - 60px)}.costume-badge{min-width:0}.costume-actions{width:100%;justify-content:flex-start}}@media(max-width:480px){.costume-summary{grid-template-columns:1fr 1fr}}

.costume-modal{max-width:620px}.costume-pieces-wrap{margin-top:16px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fafafa}.costume-section-title{font-weight:800;font-size:14px;margin-bottom:12px}.costume-pieces-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.costume-piece-option{display:flex;align-items:center;gap:10px;padding:11px 12px;border:1px solid #e4e4e7;border-radius:10px;background:#fff;cursor:pointer}.costume-piece-option input{width:17px;height:17px;accent-color:#f97316}.costume-dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.costume-dates-grid input{width:100%;box-sizing:border-box;margin-top:7px;border:1px solid #d4d4d8;border-radius:10px;padding:11px 12px;font:inherit;background:#fff}@media(max-width:560px){.costume-pieces-grid,.costume-dates-grid{grid-template-columns:1fr}}

.costume-toolbar{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr);gap:18px}.costume-toolbar label{display:flex;flex-direction:column;gap:7px}.costume-toolbar select{width:100%;box-sizing:border-box}@media(max-width:620px){.costume-toolbar{grid-template-columns:1fr}}

.greek-date-picker{position:relative;width:100%}.greek-date-input-row{display:flex;width:100%}.greek-date-input{flex:1;min-width:0}.greek-date-button{width:46px;border:1px solid #d8dce5;border-left:0;border-radius:0 10px 10px 0;background:#fff;cursor:pointer;font-size:18px}.greek-date-input-row .greek-date-input{border-radius:10px 0 0 10px}.greek-date-calendar{position:fixed;top:calc(100% + 6px);left:0;width:300px;background:#fff;border:1px solid #d7dbe4;border-radius:12px;box-shadow:0 14px 35px rgba(0,0,0,.18);padding:10px;z-index:10050}.greek-date-calendar-head{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;text-align:center;margin-bottom:8px}.greek-date-nav{border:0;background:transparent;font-size:25px;cursor:pointer}.greek-date-weekdays,.greek-date-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.greek-date-weekdays span{font-size:12px;font-weight:700;padding:5px 0;color:#697386}.greek-date-day{border:0;background:transparent;border-radius:7px;padding:8px 0;cursor:pointer;font-size:13px}.greek-date-day:hover{background:#fff1e8}.greek-date-day.today{font-weight:800}.greek-date-day.selected{background:#ff7414;color:#fff;font-weight:800}.greek-date-empty{padding:8px 0}.greek-date-footer{display:flex;justify-content:space-between;margin-top:8px;border-top:1px solid #eee;padding-top:8px}.greek-date-footer button{border:0;background:transparent;color:#ff6b00;cursor:pointer;font-weight:600}

/* v0.5.20 — Tablet touch optimization */
@media (min-width:901px) and (max-width:1100px){
  .sidebar{width:220px;padding:20px 12px}
  .main{margin-left:220px}
  .topbar{padding:0 24px}
  .content{padding:24px}
  .hero{padding:28px}
  .nav-item{min-height:48px;padding:13px 14px;font-size:15px}
}
@media (min-width:561px) and (max-width:1100px){
  button,.nav-item,select,input{min-height:44px}
  .primary-btn,.small-btn,.ghost-btn,.danger-btn{min-height:46px;padding:11px 16px}
  .card{padding:20px}
  .grid{gap:16px}
  .stats{gap:16px}
  .costume-row{padding:17px 20px;gap:16px}
  .costume-piece-option{min-height:46px;padding:12px 14px}
  .costume-piece-option input{width:20px;height:20px}
  .greek-date-calendar{width:320px;padding:13px}
  .greek-date-day{padding:10px 0;font-size:14px;min-height:42px}
  .greek-date-weekdays span{padding:7px 0}
}
@media (max-width:900px){
  .topbar{height:74px}
  .topbar h1{font-size:23px}
  .content{padding:22px}
  .modal-backdrop{padding:14px}
  .modal{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:24px;border-radius:20px}
  .modal-head h2{font-size:26px}
  .modal label{margin-bottom:18px}
  .modal input,.modal select{min-height:48px;padding:12px 14px;font-size:16px}
  .modal-actions{gap:12px}
  .modal-actions button{min-height:48px;padding:12px 18px}
}
@media (max-width:700px){
  .content{padding:16px}
  .modal-backdrop{padding:8px}
  .modal{width:calc(100vw - 16px);max-height:calc(100vh - 16px);padding:20px}
}
@media (orientation:landscape) and (max-height:700px) and (max-width:1100px){
  .modal{max-height:calc(100vh - 20px)}
  .modal-backdrop{padding:10px}
}

/* v0.6.1 — Fix costume piece checkbox alignment on mobile/tablet */
.modal .costume-piece-option,
.costume-pieces-wrap .costume-piece-option{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:12px !important;
  text-align:left !important;
  margin:0 !important;
  min-height:56px;
  box-sizing:border-box;
}
.modal .costume-piece-option input[type="checkbox"],
.costume-pieces-wrap .costume-piece-option input[type="checkbox"]{
  display:block;
  flex:0 0 22px;
  width:22px !important;
  height:22px !important;
  min-height:22px !important;
  margin:0 !important;
  padding:0 !important;
}
.costume-piece-option span{
  display:block;
  flex:1 1 auto;
  min-width:0;
  margin:0 !important;
  line-height:1.35;
  font-size:16px;
}
@media(max-width:560px){
  .costume-pieces-grid{grid-template-columns:1fr;gap:10px}
  .modal .costume-piece-option,.costume-pieces-wrap .costume-piece-option{padding:14px 16px;min-height:62px}
  .costume-piece-option span{font-size:17px}
}


/* v0.6.2 — Mobile tuition cards and payment modal layout */
.tuition-row{min-width:0;}
.tuition-row .student-avatar{flex:0 0 44px;}
.tuition-row .student-info{flex:1 1 150px;min-width:0;overflow-wrap:anywhere;}
.tuition-row .student-info strong{white-space:normal;overflow-wrap:anywhere;line-height:1.3;}
.tuition-row .student-info span{white-space:normal;overflow-wrap:anywhere;line-height:1.35;}
.tuition-row .tuition-amount{flex:0 1 120px;min-width:90px;overflow-wrap:anywhere;}
.tuition-row .tuition-amount strong{white-space:normal;line-height:1.3;}
.tuition-row .tuition-status{flex:0 1 145px;min-width:0;white-space:normal;line-height:1.35;overflow-wrap:anywhere;}
.tuition-row .tuition-actions{flex:1 0 100%;min-width:0;margin-left:58px;justify-content:flex-start;}
.tuition-row .tuition-actions button{white-space:normal;max-width:100%;}
@media(max-width:700px){
 .tuition-row{display:grid;grid-template-columns:44px minmax(0,1fr);gap:10px 12px;padding:16px 14px;align-items:start;}
 .tuition-row .student-avatar{grid-column:1;grid-row:1 / span 2;}
 .tuition-row .student-info{grid-column:2;grid-row:1;min-width:0;}
 .tuition-row .tuition-amount{grid-column:2;grid-row:2;min-width:0;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
 .tuition-row .tuition-amount strong{font-size:17px;}
 .tuition-row .tuition-amount span{font-size:12px;margin-top:0;}
 .tuition-row .tuition-status{grid-column:2;grid-row:3;min-width:0;}
 .tuition-row .tuition-actions{grid-column:1 / -1;grid-row:4;margin-left:0;width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;}
 .tuition-row .tuition-actions button{width:100%;min-width:0;padding:10px 8px;font-size:14px;}
 .modal-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}
 .modal-actions button{min-width:0;width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.25;padding:12px 8px;}
 .modal-actions #deletePayment{grid-column:1 / -1;grid-row:1;}
 .modal-actions #cancelModal{grid-column:1;grid-row:2;}
 .modal-actions button[type="submit"]{grid-column:2;grid-row:2;}
}
@media(max-width:380px){
 .tuition-row .tuition-actions{grid-template-columns:1fr;}
 .modal{padding:16px!important;}
 .modal-actions{grid-template-columns:1fr;}
 .modal-actions #deletePayment,.modal-actions #cancelModal,.modal-actions button[type="submit"]{grid-column:1;grid-row:auto;}
}


/* v0.6.3 — Require authentication before revealing any app content */
[hidden]{display:none!important}
.login-gate{position:fixed;inset:0;z-index:100000;display:flex;align-items:center;justify-content:center;padding:22px;background:linear-gradient(135deg,#0b1220,#173c70);min-height:100vh;min-height:100dvh}
.login-card{width:min(430px,100%);background:#fff;border:1px solid rgba(255,255,255,.35);border-radius:24px;padding:30px;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.login-brand-mark{width:54px;height:54px;border-radius:16px;background:linear-gradient(135deg,#ff9a3d,#e85d04);display:grid;place-items:center;color:#fff;font-size:27px;margin-bottom:18px}
.login-eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;color:#c2410c;margin:0 0 8px}
.login-card h1{font-size:26px;line-height:1.2;margin:0 0 10px;color:#111827}
.login-description{color:#6b7280;line-height:1.5;margin:0 0 24px}
.login-card label{display:block;font-weight:750;margin:0 0 8px;color:#374151}
.login-card input{display:block;width:100%;min-height:52px;border:1px solid #d1d5db;border-radius:12px;padding:13px 14px;font:inherit;font-size:16px;outline:none}
.login-card input:focus{border-color:#f97316;box-shadow:0 0 0 3px rgba(249,115,22,.15)}
.login-submit{width:100%;min-height:52px;margin-top:18px}
.login-submit:disabled{opacity:.6;cursor:wait}
.login-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;margin:12px 0 0;font-size:14px}
@media(max-width:480px){.login-card{padding:24px;border-radius:20px}.login-card h1{font-size:24px}}
