:root{color-scheme:light;--ink:#172026;--muted:#5e6a70;--line:#d9e0e3;--bg:#f5f7f7;--panel:#ffffff;--accent:#126b5d;--accent-strong:#0b5148;--warning:#9a5b00;--danger:#a83f3f;--blue:#235c9f;--shadow:0 14px 38px rgba(34,48,56,0.09)}html{scroll-behavior:smooth}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;font-family:Inter,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}a{color:var(--accent)}.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.sidebar{background:#102026;color:white;padding:24px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:56px;height:56px;border-radius:12px;object-fit:cover;background:#102026;border:1px solid rgba(255,255,255,.16)}.brand h1,.brand p{margin:0}.brand h1{font-size:19px}.brand p{color:#b6c4c8;font-size:13px}.nav{display:grid;grid-gap:8px;gap:8px}.nav-item{border:0;border-radius:8px;background:transparent;color:#d8e2e5;padding:12px 14px;text-align:left}.nav-item.active,.nav-item:hover{background:rgba(255,255,255,.1);color:white}.sidebar-panel{margin-top:auto;border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:14px;display:grid;grid-gap:8px;gap:8px}.sidebar-panel a{color:#9fd8cb;word-break:break-word}.eyebrow,.label{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:0;margin:0 0 5px}.sidebar .label{color:#b6c4c8}.main{padding:28px;max-width:1180px;width:100%}.view{display:none}.view.active{display:grid;grid-gap:20px;gap:20px}.section-head,.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.section-head h3,.topbar h2{margin:0}.topbar h2{font-size:30px}.admin-actions{display:flex;align-items:flex-end;gap:10px}.login-panel{display:grid;grid-gap:16px;gap:16px;max-width:420px}.login-form{display:grid;grid-gap:12px;gap:12px;padding:16px;border:1px solid var(--line);border-radius:8px;background:white}.language-field{min-width:140px}.field,.student-identity,.student-switcher{display:grid;grid-gap:7px;gap:7px;font-size:14px;color:var(--muted)}.student-identity{justify-items:end}.student-identity strong{color:var(--ink);font-size:18px}input,select{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:white;color:var(--ink)}.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:14px;gap:14px}.monitor-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.student-tabs{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;gap:8px;overflow-x:auto;padding:8px 0;background:var(--bg)}.student-tabs a{flex:0 0 auto;min-height:40px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:8px;padding:0 16px;background:white;color:var(--ink);text-decoration:none;font-size:14px}.student-tabs a:hover{border-color:var(--accent);color:var(--accent-strong)}#adminAvailabilitySection,#adminLedgerSection,#adminScheduleSection,#adminStudentsSection,#studentBooking,#studentInfo,#studentPurchase,#studentSchedule{scroll-margin-top:72px}.metric,.panel,.rules-grid article,.section-band{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.metric{padding:18px;display:grid;grid-gap:8px;gap:8px}.metric-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.metric span{color:var(--muted);font-size:14px}.metric strong{font-size:28px;min-width:0;overflow-wrap:anywhere}.metric-row .secondary-btn{flex:0 0 auto}.timezone-editor{border-top:1px solid var(--line);margin-top:6px;padding-top:12px;display:grid;grid-gap:10px;gap:10px}.section-band{padding:20px;display:grid;grid-gap:18px;gap:18px}.two-column{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr)}.panel{padding:18px;box-shadow:none;display:grid;align-content:start;grid-gap:14px;gap:14px}.compact{align-items:start}.helper{margin:0;color:var(--muted);line-height:1.6}.booking-options{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}.check-field{min-height:42px;display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:white;color:var(--ink)}.check-field input{min-height:auto}.compact-field{min-width:130px}.segmented{display:inline-grid;grid-template-columns:repeat(2,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden}.segment{border:0;background:white;color:var(--muted);padding:10px 16px}.segment.active{background:var(--accent);color:white}.availability-list,.lesson-list,.package-list,.rules-grid,.slot-list,.table-like{display:grid;grid-gap:10px;gap:10px}.admin-form{display:grid;grid-template-columns:minmax(160px,1.2fr) minmax(160px,1.2fr) minmax(130px,.8fr) minmax(130px,.8fr) auto;grid-gap:10px;gap:10px;align-items:flex-end;padding:14px;border:1px solid var(--line);border-radius:8px;background:#f8fbfb}.slot-list{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.calendar-shell{display:grid;grid-gap:10px;gap:10px}.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto;grid-gap:12px;gap:12px;align-items:center}.calendar-toolbar>div{text-align:center}.calendar-toolbar strong{font-size:18px}.calendar-grid,.calendar-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:6px;gap:6px}.calendar-weekdays span{color:var(--muted);font-size:12px;text-align:center}.calendar-day,.calendar-empty{min-height:54px;border-radius:8px}.calendar-day{border:1px solid var(--line);background:white;color:var(--ink);display:grid;place-items:center;grid-gap:2px;gap:2px;padding:6px 4px}.calendar-count,.calendar-day small{min-width:20px;min-height:20px;display:inline-grid;place-items:center;border-radius:999px;background:#eef5f3;color:var(--accent-strong);font-size:11px}.calendar-status-counts{display:inline-flex;gap:4px;align-items:center}.calendar-count.scheduled{background:#e7f6f2;color:var(--accent-strong)}.calendar-count.completed{background:#e9f1ff;color:#1e4e8c}.calendar-count.cancelled{background:#fdeeee;color:#a83f3f}.calendar-day.today{border-color:var(--blue)}.calendar-day.has-items{font-weight:700}.calendar-day.selected{background:var(--accent);border-color:var(--accent);color:white}.calendar-day.selected .calendar-count,.calendar-day.selected small{background:rgba(255,255,255,.22);color:white}.lesson-card,.package-card,.slot-card,.table-row{border:1px solid var(--line);background:white;border-radius:8px;padding:14px}.slot-card{display:grid;grid-gap:10px;gap:10px}.lesson-card strong,.slot-card strong{font-size:16px}.lesson-card small,.slot-card small,.table-row small{color:var(--muted);line-height:1.5}.danger-btn,.primary-btn,.secondary-btn,.text-btn{border-radius:8px;min-height:38px;padding:0 13px}.primary-btn{border:1px solid var(--accent);background:var(--accent);color:white}.primary-btn:hover{background:var(--accent-strong)}.secondary-btn{border:1px solid var(--line);background:white;color:var(--ink)}.danger-btn{border:1px solid #f0caca;background:#fff5f5;color:var(--danger)}.text-btn{border:0;background:transparent;color:var(--blue);padding:0 8px}.lesson-card{display:grid;grid-gap:10px;gap:10px}.lesson-actions{display:flex;flex-wrap:wrap;gap:8px}.badge{display:inline-flex;align-items:center;min-height:24px;border-radius:999px;padding:0 9px;width:-moz-fit-content;width:fit-content;font-size:12px;background:#eef5f3;color:var(--accent-strong)}.badge.warning{color:var(--warning);background:#fff6df}.badge.neutral{color:var(--muted);background:#f1f3f4}.package-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.package-card{display:grid;grid-gap:9px;gap:9px}.package-card strong{font-size:22px}.table-row{display:grid;grid-template-columns:1fr auto;grid-gap:12px;gap:12px;align-items:center}.table-row,.table-row>div{min-width:0}.student-admin-panel{display:grid;grid-gap:10px;gap:10px;justify-items:end}.balance-adjuster{display:grid;grid-template-columns:minmax(110px,auto) minmax(120px,auto) 76px auto auto;grid-gap:8px;gap:8px;align-items:flex-end}.balance-adjuster .label{align-self:center;margin:0;text-transform:none}.balance-adjuster input,.balance-adjuster select{min-height:38px}.lesson-card a,.table-row a{overflow-wrap:anywhere}.availability-row{border:1px solid var(--line);border-radius:8px;background:white;padding:14px;display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.7fr) minmax(120px,.7fr) minmax(92px,auto) auto;grid-gap:12px;gap:12px;align-items:flex-end}.blackout-row{border-color:#efd6bf;background:#fffaf5}.row-note{color:var(--muted);line-height:38px}.rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rules-list{display:grid;grid-gap:10px;gap:10px}.rules-grid article{padding:20px}.rules-list article{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:18px}.rules-grid h3,.rules-grid p,.rules-list h3,.rules-list p{margin:0}.rules-grid p,.rules-list p{color:var(--muted);line-height:1.7;margin-top:10px}.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:#102026;color:white;border-radius:8px;padding:12px 16px;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:var(--shadow);max-width:min(520px,calc(100vw - 32px))}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.modal-backdrop{position:fixed;inset:0;z-index:20;padding:24px;display:grid;place-items:center;background:rgba(16,32,38,.42)}.modal-backdrop[hidden]{display:none}.modal{width:min(920px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 70px rgba(16,32,38,.24);padding:20px;display:grid;grid-gap:16px;gap:16px}@media (max-width:860px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;padding:16px;gap:16px}.nav{grid-template-columns:repeat(3,1fr)}.nav-item{padding:10px 8px;text-align:center}.main{padding:14px}.section-head,.topbar{align-items:stretch;flex-direction:column}.admin-actions{display:grid}.admin-actions,.rules-grid,.summary-grid,.two-column{grid-template-columns:1fr}.metric-row{align-items:stretch}.metric-row .secondary-btn{min-width:76px}.table-row{grid-template-columns:1fr;gap:10px}.student-admin-panel{justify-items:stretch}.admin-form,.availability-row,.balance-adjuster{grid-template-columns:1fr}.section-band{padding:16px}.student-tabs{margin-inline:-14px;padding:8px 14px}#adminAvailabilitySection,#adminLedgerSection,#adminScheduleSection,#adminStudentsSection,#studentBooking,#studentInfo,#studentPurchase,#studentSchedule{scroll-margin-top:86px}.package-list,.slot-list{grid-template-columns:1fr}.calendar-toolbar{grid-template-columns:1fr 1fr}.calendar-toolbar>div{grid-column:1/-1;grid-row:1}.calendar-toolbar button{grid-row:2}.calendar-grid,.calendar-weekdays{gap:4px}.calendar-day,.calendar-empty{min-height:46px}.booking-options,.lesson-actions{display:grid;grid-template-columns:1fr}.availability-row button,.booking-options .check-field,.booking-options select,.lesson-actions button,.section-head button,.topbar button{width:100%}.brand{align-items:start}.brand h1{font-size:16px}.sidebar-panel{margin-top:0}.modal-backdrop{padding:14px;place-items:flex-end stretch}.modal{max-height:calc(100vh - 28px)}}