:root{color:#24231f;font-synthesis:none;--yellow:#ffc725;--yellow-hover:#f5bd16;--yellow-soft:#fff3c4;--yellow-dark:#785900;--ink:#24231f;--muted:#68655d;--line:#d9d6cc;--line-strong:#c6c2b7;--canvas:#f5f4ef;--sidebar:#eeede7;--surface:#fffefa;--surface-subtle:#f0efe9;--success:#287456;--danger:#a33a2b;background:#f5f4ef;font-family:Avenir Next,Noto Sans SC,Noto Sans,sans-serif}*{box-sizing:border-box}html{background:var(--canvas);min-width:320px}body{min-width:320px;min-height:100vh;color:var(--ink);background:var(--canvas);margin:0}button,input,textarea,select,a{-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button,a,input,textarea,select{outline:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #ffc72580}::selection{color:#191812;background:var(--yellow)}.ui-icon{flex:none;display:block}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{grid-template-rows:62px minmax(0,1fr);min-height:100dvh;display:grid}.app-shell.has-preview-notice{grid-template-rows:62px auto minmax(0,1fr)}.topbar{z-index:20;background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:0 22px;display:flex}.preview-notice{z-index:19;color:#4c3a00;background:var(--yellow-soft);border-bottom:1px solid #e6d184;justify-content:center;align-items:center;gap:12px;min-height:38px;padding:7px 18px;font-size:12.5px;display:flex}.preview-notice button{color:#493600;background:0 0;border:0;border-bottom:1px solid;padding:3px 8px;font-weight:750}.brand{color:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:0;text-decoration:none;display:inline-flex}.brand-mark{background:0 0;flex:none;place-items:center;width:36px;height:36px;display:grid;overflow:hidden}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand strong,.brand small{line-height:1.05;display:block}.brand strong{letter-spacing:.01em;font-size:15px}.brand small{color:var(--muted);margin-top:4px;font-size:11px}.menu-button{background:0 0;border:0;border-radius:6px;width:40px;height:40px;margin-left:auto;padding:0;font-size:22px;display:none}.workspace{grid-template-columns:228px minmax(0,1fr);min-height:0;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--line);flex-direction:column;padding:18px 12px 15px;display:flex}.sidebar nav{gap:4px;display:grid}.sidebar nav button{color:#4d4a43;text-align:left;white-space:nowrap;background:0 0;border:0;border-radius:7px;grid-template-columns:27px minmax(0,1fr);align-items:center;width:100%;min-height:42px;padding:0 11px;font-size:13.5px;font-weight:650;display:grid}.sidebar nav button .ui-icon{color:#77736a}.sidebar nav button:hover{background:#ffffffad}.sidebar nav button.active{color:#1e1d19;background:var(--yellow)}.sidebar nav button.active .ui-icon{color:#1e1d19}.sidebar-note{color:#8a8a83;margin:auto 10px 0;font-size:12px}.sidebar-footer{border-top:1px solid var(--line);gap:2px;margin-top:auto;padding:12px 5px 0;display:grid}.sidebar-footer button{min-height:32px;color:var(--muted);text-align:left;background:0 0;border:0;border-radius:6px;padding:0 7px;font-size:12px}.sidebar-footer button:hover,.sidebar-footer button.active{color:var(--ink);background:#ffffffb3}.sidebar-footer p{color:#77736a;margin:10px 7px 1px;font-size:11.5px}.sidebar-footer small{color:#9a978f;margin:0 7px;font-size:10.5px}.main-content{min-width:0;padding:clamp(26px,3.2vw,40px);overflow-x:hidden}.page-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-bottom:20px;display:flex}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.025em;margin-bottom:6px;font-size:clamp(24px,2.4vw,29px);line-height:1.15}.page-heading p:last-child{max-width:70ch;color:var(--muted);margin-bottom:0;font-size:14px;line-height:1.4}button{cursor:pointer}.primary-button,.secondary-button{white-space:nowrap;border-radius:7px;justify-content:center;align-items:center;gap:8px;min-height:40px;font-weight:700;transition:background-color .14s,border-color .14s,transform .1s;display:inline-flex}.primary-button{color:#1d1d19;background:var(--yellow);border:1px solid #dea800;padding:0 17px}.primary-button:hover{background:var(--yellow-hover)}.primary-button:active{transform:translateY(1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.58}.secondary-button{color:#30302c;background:var(--surface);border:1px solid var(--line-strong);padding:0 15px}.secondary-button:hover{background:var(--surface-subtle);border-color:#aaa69a}.template-link{color:#5a4600;text-underline-offset:3px;align-self:center;font-size:13px;font-weight:700;text-decoration-thickness:1px}.week-section{padding-top:18px}.week-toolbar{grid-template-columns:auto minmax(170px,1fr) auto;align-items:center;gap:18px;margin-bottom:14px;display:grid}.week-range{text-align:center;gap:2px;display:grid}.week-range strong{font-size:14px}.week-range span{color:var(--muted);font-size:11px}.week-controls{gap:6px;display:flex}.week-controls button{min-width:35px;height:35px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;place-items:center;padding:0 10px;font-size:12px;display:grid}.week-controls button:hover{background:var(--surface-subtle)}.teacher-legend{color:var(--muted);flex-wrap:wrap;justify-content:flex-end;gap:8px 14px;font-size:12px;display:flex}.teacher-legend span{align-items:center;gap:6px;display:inline-flex}.teacher-legend i{border-radius:50%;width:8px;height:8px}.week-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.week-day{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;min-height:300px}.week-day>header{background:var(--surface-subtle);justify-content:space-between;align-items:center;gap:6px;min-height:40px;padding:7px 9px;font-size:11.5px;display:flex}.week-day>header span{min-width:20px;height:20px;color:var(--muted);background:#e2e2dc;border-radius:10px;place-items:center;font-size:11px;display:grid}.day-lessons{gap:7px;padding:7px;display:grid}.day-lessons>p{color:#89867d;text-align:center;margin:13px 2px;font-size:11px}.week-lesson{width:100%;color:inherit;text-align:left;cursor:pointer;background:#f8f7f2;border:0;gap:3px;padding:8px;font-size:11.5px;display:grid}.week-lesson:hover{background:var(--yellow-soft)}.week-lesson time{color:var(--yellow-dark);font-variant-numeric:tabular-nums;align-items:center;gap:5px;font-weight:800;display:inline-flex}.week-lesson time:before{content:"";background:var(--teacher-color,#d4a72c);border-radius:50%;flex:none;width:6px;height:6px}.week-lesson strong{text-overflow:ellipsis;overflow:hidden}.week-lesson small,.week-lesson span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.state-message{color:var(--ink);background:var(--yellow-soft);margin:14px 0 0;padding:10px 12px;font-size:13px}.state-message.is-error{color:var(--danger);background:#fff0ec}.overview{grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);gap:36px;padding-top:28px;display:grid}.schedule-panel{min-width:0}.tasks-panel{border-left:1px solid var(--line);min-width:0;padding-left:28px}.section-heading{align-items:center;gap:9px;margin-bottom:18px;display:flex}.section-heading h2{margin:0;font-size:18px}.count{color:#565650;background:#e7e7e2;border-radius:11px;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.empty-state{text-align:center;background:#ffffff8c;border:1px dashed #cecec6;border-radius:8px;align-content:center;place-items:center;min-height:300px;padding:40px;display:grid}.empty-icon{color:#28271f;background:#ffe79d;border-radius:50%;place-items:center;width:48px;height:48px;margin-bottom:16px;font-size:21px;display:grid}.empty-state h3{margin-bottom:8px;font-size:17px}.empty-state p{max-width:420px;color:var(--muted);margin-bottom:20px;font-size:14px;line-height:1.5}.task-row{border-bottom:1px solid var(--line);color:#4f4f49;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;font-size:14px;display:grid}.task-row strong{color:var(--ink)}.status-dot{background:var(--yellow);border-radius:50%;width:8px;height:8px}.scrim{display:none}.auth-page{background:#f2f2ef;place-items:center;min-height:100vh;padding:24px;display:grid}.auth-panel{background:var(--surface);border-radius:14px;width:min(100%,430px);padding:34px;box-shadow:0 18px 50px #302a1617}.auth-brand{align-items:center;gap:10px;margin-bottom:30px;display:flex}.auth-brand strong,.auth-brand small{display:block}.auth-brand small{color:var(--muted);margin-top:2px;font-size:11px}.auth-panel>p:not(.eyebrow){color:var(--muted);margin-bottom:26px;line-height:1.5}.auth-panel form{gap:16px;display:grid}.auth-divider{color:var(--muted);align-items:center;gap:12px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--line);flex:1;height:1px}.google-login-button{width:100%;min-width:0}.auth-panel label,.settings-form label{color:#484842;gap:7px;font-size:13px;font-weight:700;display:grid}.auth-panel input,.settings-form input,.settings-form textarea,.settings-form select{width:100%;min-height:42px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);font:inherit;border-radius:6px;padding:9px 11px}.settings-form textarea{resize:vertical;min-height:84px}.auth-panel input:focus,.settings-form input:focus,.settings-form textarea:focus,.settings-form select:focus{border-color:#b48400;outline:none;box-shadow:0 0 0 3px #ffc72552}.auth-panel .primary-button{width:100%;margin-top:4px}.auth-panel .code-input{letter-spacing:.28em;font-variant-numeric:tabular-nums;font-size:24px}.form-error{color:var(--danger);margin:-4px 0 0;font-size:13px}.text-button{color:#5c5c56;background:0 0;border:0;min-height:36px;font-weight:650}.loading-state{color:var(--muted);padding-top:28px}.settings-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px;max-width:900px;padding-top:22px;display:grid}.full-field{grid-column:1/-1}.form-actions{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:18px;padding-top:8px;display:flex}.form-actions span{color:var(--muted);margin-right:auto;font-size:13px}.data-page .page-heading{align-items:center}.work-section{border-bottom:1px solid var(--line);padding:18px 0 20px}.section-title{justify-content:space-between;align-items:end;gap:18px;margin-bottom:12px;display:flex}.section-title h2{letter-spacing:-.01em;margin:0;font-size:16px}.section-title p{color:var(--muted);margin:4px 0 0;font-size:12.5px}.inline-form{flex-wrap:wrap;align-items:end;gap:12px;padding:0;display:flex}.inline-form label{min-width:145px;color:var(--muted);flex:155px;gap:6px;font-size:12px;font-weight:700;display:grid}.inline-form input,.inline-form select{width:100%;min-height:40px;color:var(--ink);border:1px solid var(--line-strong);background:var(--surface);font:inherit;border-radius:6px;padding:8px 10px}.inline-form input:focus,.inline-form select:focus,.teacher-manager input:focus{border-color:#a77c00;box-shadow:0 0 0 3px #ffc72538}.compact-form label{flex:0 360px}.teacher-manager{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:24px;padding:18px 0 20px;display:flex}.teacher-manager h2{margin-bottom:5px;font-size:17px}.teacher-manager p{color:var(--muted);margin:0;font-size:13px}.teacher-manager form{align-items:end;gap:10px;display:flex}.teacher-manager label{color:var(--muted);gap:6px;font-size:12px;font-weight:700;display:grid}.teacher-manager input{min-height:40px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);font:inherit;border-radius:6px;padding:8px 10px}.lesson-form{flex-wrap:wrap}.lesson-form label{flex:150px;min-width:150px}.data-list{display:grid}.data-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(160px,1fr) minmax(160px,1fr) auto;align-items:center;gap:16px;min-height:54px;padding:0 8px;font-size:13.5px;display:grid}.data-row:hover{background:#ffffff7a}.data-row span{color:var(--muted)}.status-pill{background:#e8e7e0;border-radius:999px;justify-self:start;padding:4px 8px;font-size:11px;color:#4e4b43!important}.credit-balance{min-height:42px;color:var(--ink);font-variant-numeric:tabular-nums;background:#ecebe5;border-radius:7px;align-self:end;gap:2px;padding:7px 11px;font-size:13px;font-weight:800;display:inline-grid}.credit-balance small{color:var(--muted);font-size:10.5px;font-weight:650}.credit-balance.is-low{background:#ecebe5}.credit-balance.is-danger{color:var(--danger);background:#fff0ec}.credit-balance.is-danger small{color:var(--danger)}.empty-line{color:var(--muted);margin:0;padding:20px 8px;font-size:13px}.notice-line{background:var(--yellow-soft);gap:6px;padding:12px 8px;font-size:13px;display:grid}.notice-line code{overflow-wrap:anywhere;color:#62501b}.request-row{grid-template-columns:minmax(120px,1fr) minmax(190px,auto) auto;align-items:center}.request-row select{min-height:36px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;padding:6px 30px 6px 9px}.row-actions{flex-wrap:wrap;gap:6px;display:flex}.row-actions button{min-height:32px;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:5px;padding:0 10px;font-size:12px}.check-label{align-items:start;line-height:1.45;grid-template-columns:20px 1fr!important}.check-label input{width:18px;min-height:18px;margin:1px 0 0}.family-page{background:var(--canvas);min-height:100vh}.family-header{border-bottom:1px solid var(--line);background:#fff;align-items:center;gap:10px;height:64px;padding:0 24px;display:flex}.family-header small{color:var(--muted);display:block}.family-page>section{max-width:900px;margin:0 auto;padding:40px 24px}.family-header .push-button{margin-left:auto}.terms-panel{background:#fffdf4;border:1px solid #d9c46d;border-radius:14px;margin:24px 0;padding:24px}.terms-panel h2{margin-top:0}.terms-panel li{margin:8px 0;line-height:1.55}.family-notifications{margin:28px 0}.family-notifications .section-title{justify-content:space-between;align-items:start;display:flex}.notification-count{background:var(--accent);color:#322900;border-radius:999px;place-items:center;min-width:28px;height:28px;padding:0 8px;font-weight:750;display:grid}.notification-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer}.dialog-backdrop{z-index:30;background:#1e1e196b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.review-dialog{background:#fff;border-radius:18px;width:min(560px,100%);max-height:calc(100vh - 40px);padding:28px;overflow:auto;box-shadow:0 24px 70px #00000038}.review-dialog h2{margin-top:0}.review-dialog dl{gap:0;margin:20px 0;display:grid}.review-dialog dl div{border-bottom:1px solid var(--line);grid-template-columns:130px 1fr;gap:16px;padding:10px 0;display:grid}.review-dialog dt{color:var(--muted)}.review-dialog dd{margin:0;font-weight:650}.review-dialog textarea{width:100%}.family-credit-summary{border-block:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;margin:24px 0;padding:18px 0;display:flex}.family-credit-summary>div{flex-wrap:wrap;gap:10px;display:flex}.purchase-dialog{width:min(680px,100%)}.purchase-dialog>label{gap:7px;margin-top:14px;display:grid}.purchase-students{gap:12px;margin:20px 0;display:grid}.purchase-student{border:1px solid var(--line);background:var(--surface-subtle);border-radius:14px;padding:14px}.purchase-student>label:not(.check-label){gap:7px;margin-top:12px;display:grid}.lesson-count-picker{border:0;margin:12px 0 0;padding:0}.lesson-count-picker legend{color:var(--muted);margin-bottom:7px;font-size:.875rem}.lesson-count-picker div{grid-template-columns:repeat(3,minmax(54px,auto)) minmax(90px,1fr);gap:8px;display:grid}.lesson-count-picker button{border:1px solid var(--line);background:#fff;border-radius:10px;min-height:42px}.lesson-count-picker button.is-selected{border-color:var(--ink);background:var(--ink);color:#fff}.lesson-count-picker input{min-width:0}.purchase-total{border-top:1px solid var(--line);justify-content:space-between;margin:20px 0 0;padding-top:18px;font-size:1.05rem;display:flex}.quick-lesson-dialog>p{color:var(--muted)}.quick-lesson-form{grid-template-columns:1fr 1fr;gap:14px;margin-top:20px;display:grid}.quick-lesson-form>label{gap:7px;display:grid}.scope-picker{border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;grid-column:1/-1;gap:10px 20px;padding:14px;display:flex}.scope-picker legend{color:var(--muted);padding:0 6px}.scope-picker label{align-items:center;gap:7px;display:flex}.split-actions{grid-column:1/-1;justify-content:space-between}.danger-button{min-height:42px;color:var(--danger);background:#fff;border:1px solid #d6a59d;border-radius:9px;padding:0 15px}.danger-button:hover{background:#fff3f0}.attendance-actions{gap:10px;margin:22px 0;display:grid}.quick-dialog-close{margin:18px 0 0 auto;display:block}.information-sections{max-width:820px;margin-top:26px}.information-sections>section{border-bottom:1px solid var(--line);grid-template-columns:42px 1fr;gap:18px;padding:22px 0;display:grid}.information-sections>section>span{color:#9a7200;font-variant-numeric:tabular-nums;font-weight:800}.information-sections h2{margin-bottom:7px;font-size:18px}.information-sections p{color:var(--muted);margin:0;line-height:1.65}.operation-banner{border:1px solid var(--line);background:var(--surface);border-radius:14px;justify-content:space-between;align-items:center;gap:24px;margin-top:26px;padding:22px;display:flex}.operation-banner div{gap:4px;display:grid}.operation-banner span{color:var(--muted);font-size:12px}.operation-banner strong{font-size:20px}.operation-banner p{max-width:560px;color:var(--muted);margin:0;line-height:1.5}.operation-banner.is-test{border-left:5px solid var(--yellow)}.operation-banner.is-production{border-left:5px solid var(--success)}.admin-stats{grid-template-columns:repeat(2,minmax(0,180px));gap:12px;margin:18px 0;display:grid}.admin-stats div{border:1px solid var(--line);background:var(--surface);border-radius:12px;gap:4px;padding:18px;display:grid}.admin-stats strong{font-size:25px}.admin-stats span{color:var(--muted);font-size:12px}.production-activation{border-top:1px solid var(--line);max-width:680px;margin-top:30px;padding-top:24px}.production-activation p{color:var(--muted);line-height:1.55}.production-activation label{gap:7px;margin:18px 0 12px;display:grid}.dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}@media (width<=900px){.workspace{grid-template-columns:208px minmax(0,1fr)}.sidebar{padding-inline:10px}.sidebar nav button{padding-inline:9px;font-size:13px}.main-content{padding:26px}.overview{grid-template-columns:1fr;gap:28px}.tasks-panel{border-top:1px solid var(--line);border-left:0;padding:24px 0 0}.week-toolbar{grid-template-columns:auto 1fr}.teacher-legend{grid-column:1/-1;justify-content:flex-start}.week-grid{grid-template-columns:1fr}.week-day{grid-template-columns:110px minmax(0,1fr);min-height:68px;display:grid}.week-day>header{border-right:1px solid var(--line);align-items:start}.day-lessons{align-content:center;min-height:67px}.day-lessons>p{text-align:left;margin:0}.week-lesson{grid-template-columns:58px minmax(90px,1fr) minmax(80px,1fr);align-items:center;gap:8px}.week-lesson small{display:none}.teacher-manager{flex-direction:column;align-items:stretch}}@media (width<=640px){.app-shell{grid-template-rows:56px minmax(0,1fr)}.app-shell.has-preview-notice{grid-template-rows:56px auto minmax(0,1fr)}.preview-notice{justify-content:space-between;padding-inline:14px;font-size:11.5px}.preview-notice span{max-width:58vw}.topbar{gap:10px;padding:0 14px}.menu-button{flex:none;place-items:center;display:inline-grid}.brand{gap:8px}.brand-mark{border-radius:8px;width:32px;height:32px}.brand small{display:none}.workspace{display:block}.sidebar{z-index:30;width:min(282px,82vw);box-shadow:none;transition:transform .18s;position:fixed;inset:56px auto 0 0;transform:translate(-102%)}.has-preview-notice .sidebar{inset-block-start:94px}.sidebar.is-open{transform:translate(0);box-shadow:12px 0 32px #00000024}.sidebar nav button{font-size:14px}.scrim{z-index:25;background:#14141247;border:0;width:100%;display:block;position:fixed;inset:56px 0 0}.has-preview-notice .scrim{inset-block-start:94px}.main-content{padding:22px 18px 30px}.page-heading{align-items:start;gap:16px;padding-bottom:18px;display:grid}.page-heading .primary-button{width:100%}.overview{padding-top:22px}.empty-state{min-height:250px;padding:28px 20px}.auth-page{padding:14px}.auth-panel{padding:26px 22px}.settings-form{grid-template-columns:1fr;gap:18px}.full-field{grid-column:auto}.form-actions{padding:14px 18px max(14px, env(safe-area-inset-bottom));background:var(--canvas);margin-inline:-18px;position:sticky;bottom:0}.work-section{padding:16px 0 18px}.section-title{align-items:start}.inline-form{flex-direction:column;align-items:stretch}.inline-form label{flex:none;width:100%;min-width:0}.inline-form button{width:100%}.week-toolbar{grid-template-columns:1fr;gap:12px}.week-range{text-align:left;grid-row:1}.week-controls{grid-row:2}.teacher-legend{grid-column:auto}.week-grid{border-top:0;grid-template-columns:1fr}.week-day{grid-template-columns:1fr;min-height:0;display:grid}.week-day>header{border-right:0;min-height:38px}.day-lessons{min-height:48px;padding:6px 8px}.day-lessons>p{text-align:left;margin:auto 0}.week-lesson{grid-template-columns:54px minmax(90px,1fr)}.week-lesson span{grid-column:2}.teacher-manager form{flex-direction:column;align-items:stretch}.teacher-manager form label,.teacher-manager form button{width:100%}.data-row{grid-template-columns:1fr auto;gap:6px;padding:12px 0}.data-row span:nth-child(2){grid-column:1/-1}.request-row{grid-template-columns:1fr}.request-row select,.request-row button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
