:root{--space-950:#0b1739;--science-700:#1d4ed8;--science-600:#2563eb;--teal-600:#0b6f68;--teal-100:#ccfbf1;--canvas:#f4f7fb;--surface:#fff;--ink:#17213b;--muted:#5f6f86;--line:#dbe4f0;--danger:#b42318;--warning:#b54708;--success:#067647;--radius-card:18px;--shadow-card:0 16px 40px #0f172a14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{max-width:100%;min-height:100%;overflow-x:clip}body{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif}.site-filing-footer{color:var(--muted);text-align:center;overflow-wrap:anywhere;padding:1rem;font-size:.875rem;line-height:1.5}.site-filing-footer a{max-width:100%;min-height:44px;color:inherit;text-underline-offset:.2em;align-items:center;display:inline-flex}button{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex="-1"]:focus,[role=alert]:focus,[role=status]:focus{outline:3px solid var(--teal-600);outline-offset:3px}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:var(--surface);min-block-size:44px;color:var(--ink);cursor:pointer;border-radius:10px;padding:.65rem .9rem}button:disabled{cursor:not-allowed;color:#475569;opacity:1;background:#f8fafc}input,select,textarea{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);border-radius:10px;padding:.7rem}textarea{resize:vertical;min-height:88px}label{color:var(--space-950);gap:.4rem;font-weight:700;display:grid}.skip-link{z-index:30;background:var(--surface);color:var(--science-700);border-radius:8px;padding:.65rem .9rem;font-weight:700;position:fixed;top:.75rem;left:.75rem;transform:translateY(calc(-100% - 1rem))}.skip-link:focus{transform:translateY(0)}.launcher-shell{gap:2rem;width:min(100% - 2rem,960px);margin:0 auto;padding:clamp(2rem,8vw,6rem) 0 2rem;display:grid}.launcher-intro,.role-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card)}.launcher-intro{padding:clamp(1.5rem,5vw,3rem)}.stage-badge,.eyebrow,.demo-notice,.role-card-label,.role-card-action{display:block}.role-card-description{color:var(--muted);line-height:1.55}.login-portal .role-card{text-decoration:none}.login-shell{background:var(--canvas);place-items:center;min-height:100vh;padding:1.25rem;display:grid}.login-card{border:1px solid var(--line);border-radius:var(--radius-card);width:min(100%,30rem);box-shadow:var(--shadow-card);background:#fff;padding:clamp(1.5rem,5vw,2.5rem)}.login-card h1{margin-bottom:.5rem}.login-form{gap:1rem;margin-top:1.5rem;display:grid}.login-form label{gap:.45rem;font-weight:700;display:grid}.login-form input{border:1px solid var(--line);width:100%;min-height:2.75rem;color:var(--ink);font:inherit;background:#fff;border-radius:.65rem;padding:.65rem .75rem}.login-form input:focus{outline:3px solid color-mix(in srgb, var(--teal-600) 25%, transparent);border-color:var(--teal-600)}.login-form button{min-height:2.9rem}.form-error{color:#b42318;margin:0;font-weight:700}.back-link{color:var(--teal-600);margin-bottom:1rem;display:inline-block}.auth-status{place-items:center;min-height:100vh;display:grid}.stage-badge{background:var(--teal-100);width:fit-content;color:var(--teal-600);border-radius:999px;padding:.35rem .7rem;font-weight:700}.eyebrow{color:var(--science-700);margin:1.25rem 0 0;font-weight:700}h1{color:var(--space-950);margin:.5rem 0 0;font-size:clamp(2rem,7vw,3.5rem);line-height:1.15}.launcher-copy{max-width:38rem;color:var(--muted);margin:1rem 0 0;font-size:1.05rem;line-height:1.7}.demo-notice{color:var(--success);margin:1.25rem 0 0;font-weight:700}.role-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;display:grid}.role-card{cursor:pointer;text-align:left;min-height:88px;padding:1rem;transition:border-color .16s,transform .16s}.role-card:hover{border-color:var(--science-600);transform:translateY(-2px)}.role-card-label{color:var(--space-950);font-weight:700}.role-card-action{color:var(--science-700);margin-top:.5rem}.selection-status{width:min(100% - 2rem,960px);min-height:1.5rem;color:var(--teal-600);margin:0 auto 2rem;font-weight:700}.app-shell{min-height:100vh}.app-header{background:var(--space-950);color:#fff;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.5rem;display:flex}.app-header>div,.header-actions,.screen-actions,.modal-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.app-body{grid-template-columns:220px 1fr;min-height:calc(100vh - 74px);display:grid}.app-nav{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.app-nav button{text-align:left}.app-nav button[aria-current=page]{border-color:var(--science-600);color:var(--science-700);background:#eff6ff;font-weight:700}.app-main{width:min(100%,1100px);min-width:0;padding:clamp(1.25rem,4vw,2.5rem)}.screen-header{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;display:flex}.screen-header h1{font-size:clamp(1.8rem,4vw,2.5rem)}.screen-description{color:var(--muted);line-height:1.6}.card-grid,.ledger-list{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;display:grid}.content-card,.stat-card,.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:1.25rem}.content-card h2,.content-card h3{color:var(--space-950)}.form-card{gap:1rem;max-width:720px;display:grid}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.dashboard-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);align-content:start;gap:.75rem;padding:1rem;display:grid}.dashboard-panel h2,.dashboard-panel p,.dashboard-panel ul{margin:0}.dashboard-panel ul{gap:.55rem;padding-left:1.25rem;display:grid}.dashboard-panel li span{color:var(--muted);display:block}.notification-row{justify-content:space-between;align-items:center;gap:1rem;display:flex}.filter-bar,.attachment-list,.badge-row,.review-actions{flex-wrap:wrap;gap:.6rem;margin-bottom:1rem;display:flex}.filter-bar button[aria-pressed=true]{border-color:var(--science-600);color:var(--science-700);background:#eff6ff;font-weight:700}.attachment-chip{border:1px dashed var(--science-600);color:var(--science-700);background:#eff6ff;border-radius:999px;padding:.45rem .7rem;font-weight:700;display:inline-flex}.course-editor-form{margin-bottom:1rem}.course-summary-card,.course-detail-card{align-content:start;gap:.75rem;display:grid}.course-summary-card>h2,.course-summary-card>p,.course-detail-card>h2,.course-detail-card>p{margin:0}.course-detail-card>section{border-top:1px solid var(--line);padding-top:.75rem}.course-module-list{gap:1rem;display:grid}.course-module-row{border:1px solid var(--line);border-radius:12px;gap:.8rem;margin:0;padding:1rem;display:grid}.course-module-row legend{color:var(--science-700);padding:0 .4rem;font-weight:700}.review-metadata{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;display:grid}.review-metadata div{background:var(--canvas);border-radius:10px;padding:.75rem}.review-metadata dt{color:var(--muted);font-size:.875rem}.review-metadata dd{margin:.25rem 0 0;font-weight:700}.history-row{border-top:1px solid var(--line);padding:.75rem 0}.master-detail-layout{grid-template-columns:minmax(220px,.7fr) minmax(0,1.6fr);align-items:start;gap:1rem;display:grid}.master-list,.detail-panel,.learner-detail,.exception-list{gap:1rem;display:grid}.master-list>button{text-align:left;gap:.4rem;display:grid}.master-list>button .status-badge{width:fit-content}.master-list>button[aria-pressed=true],.learner-switcher button[aria-pressed=true]{border-color:var(--science-600);color:var(--science-700);background:#eff6ff}.detail-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-width:0;box-shadow:var(--shadow-card);padding:1.25rem}.learner-switcher{flex-wrap:wrap;gap:.6rem;display:flex}.learner-detail>section{border-top:1px solid var(--line);padding-top:.8rem}.entitlement-summary{background:var(--canvas);border-radius:10px;flex-wrap:wrap;gap:.55rem 1rem;padding:.75rem;display:flex}.entitlement-panel{gap:1rem;margin-top:1.5rem;display:grid}.ledger-table-wrap{max-width:100%}.ledger-table{table-layout:fixed;border-collapse:collapse;background:var(--surface);width:100%}.ledger-table th,.ledger-table td{border:1px solid var(--line);overflow-wrap:anywhere;text-align:left;vertical-align:top;padding:.7rem .45rem}.ledger-table td:last-child{gap:.5rem;display:grid}.conflict-panel{background:#fffaeb;border:1px solid #fedf89;border-radius:12px;margin:1rem 0;padding:1rem}.conflict-panel ul{gap:.6rem;padding-left:1.25rem;display:grid}.conflict-panel li span{display:block}.schedule-grid-wrap{overscroll-behavior-inline:contain;max-width:100%;margin-top:1.5rem;overflow-x:auto}.schedule-grid-wrap:focus-visible{outline:3px solid var(--teal-600);outline-offset:3px}.schedule-week{grid-template-columns:repeat(7,minmax(220px,1fr));gap:.75rem;min-width:1580px;padding-bottom:.5rem;display:grid}.schedule-day{border:1px solid var(--line);background:#eef3f9;border-radius:12px;min-width:0;padding:.85rem}.schedule-day h2{margin-top:0;font-size:1rem}.schedule-session{border:1px solid var(--line);background:var(--surface);border-radius:10px;margin-top:.75rem;padding:.8rem}.schedule-session h3,.schedule-session p{margin:0 0 .55rem}.cancellation-detail,.decision-history{background:var(--canvas);border-radius:10px;margin-top:.75rem;padding:.75rem}.cancellation-detail p,.decision-history p{margin:.35rem 0 0}.exception-card h2{margin-top:0}.status-badge{color:var(--muted);background:#eef2f7;border-radius:999px;padding:.3rem .65rem;font-size:.875rem;font-weight:700;display:inline-flex}.status-badge-success{color:var(--success);background:#dcfae6}.status-badge-warning{color:var(--warning);background:#fef0c7}.attendance-list{gap:.75rem;margin-bottom:1rem;display:grid}.mobile-demo-badge{background:var(--teal-100);width:fit-content;color:var(--teal-600);border-radius:999px;margin-bottom:.65rem;padding:.3rem .65rem;font-size:.85rem;font-weight:700;display:inline-flex}.teacher-today-list,.mobile-course-plan,.mobile-outcome-list{gap:.85rem;display:grid}.teacher-schedule-days{gap:1.2rem;display:grid}.teacher-schedule-day{border-top:1px solid var(--line);gap:.65rem;padding-top:.9rem;display:grid}.teacher-schedule-day h2{margin:0;font-size:1rem}.teacher-empty-day{background:var(--surface);color:var(--muted);border-radius:10px;margin:0;padding:.9rem}.teacher-calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;margin-top:1rem;display:grid}.teacher-calendar-grid button{text-align:left;white-space:normal;gap:.25rem;min-width:0;display:grid}.teacher-calendar-grid button[aria-pressed=true]{border-color:var(--science-600);color:var(--science-700);background:#eff6ff}.teacher-calendar-grid span{color:var(--muted);font-size:.875rem}.teacher-selected-day{margin-top:1.5rem}.teacher-session-card{min-width:0}.teacher-session-card p{color:var(--muted);margin:.35rem 0}.mobile-session-facts{gap:.65rem;margin:0 0 1rem;display:grid}.mobile-session-facts div{border-bottom:1px solid var(--line);grid-template-columns:minmax(4.5rem,auto) minmax(0,1fr);gap:.75rem;padding-bottom:.65rem;display:grid}.mobile-session-facts dt{color:var(--muted);font-weight:700}.mobile-session-facts dd{overflow-wrap:anywhere;min-width:0;margin:0}.mobile-roster{gap:.45rem;margin:1rem 0;padding-left:1.25rem;display:grid}.attendance-fieldset{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-width:0;margin:0;padding:1rem}.attendance-fieldset legend{float:left;white-space:normal;overflow-wrap:anywhere;width:100%;max-width:100%;margin:0 0 .75rem;padding:0;font-weight:700;line-height:1.5}.attendance-fieldset p{color:var(--muted);margin:.7rem 0 0}.attendance-options{clear:both;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;display:grid}.attendance-options button{white-space:normal;overflow-wrap:anywhere;min-width:0}.attendance-options button[aria-pressed=true]{border-color:var(--science-600);color:var(--science-700);background:#eff6ff;font-weight:700}.mobile-form-actions{flex-wrap:wrap;gap:.65rem;display:flex}.mobile-outcome-list{margin:1rem 0 0;padding:0;list-style:none}.mobile-outcome-list li{overflow-wrap:anywhere;gap:.4rem;min-width:0;display:grid}.modal-backdrop{z-index:20;background:#0b1739a6;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-card{border-radius:var(--radius-card);background:var(--surface);width:min(100%,520px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-card);padding:1.5rem;overflow-y:auto}.mobile-preview{background:var(--canvas);width:min(100%,390px);min-height:min(844px,100dvh);margin:0 auto;box-shadow:0 0 45px #0f172a2e}.mobile-preview .app-shell{flex-direction:column;min-height:min(844px,100dvh);display:flex}.mobile-preview .app-body{flex-direction:column-reverse;flex:1;justify-content:space-between;min-height:0;display:flex}.mobile-preview .app-nav{z-index:5;border-top:1px solid var(--line);background:var(--surface);border-right:0;flex-direction:row;position:sticky;bottom:0;overflow-x:auto}.mobile-preview .app-nav button{flex:none}.mobile-preview .app-main h1:focus{outline:3px solid var(--teal-600);outline-offset:3px}.mobile-preview .app-main{padding:1rem}.family-identity-card,.family-identity-card>*,.family-list,.family-list>*,.family-priority-grid,.family-priority-grid>*,.family-course-plan,.family-course-plan>*,.family-module-list,.family-module-list>*,.family-ledger-row,.family-ledger-row>*{overflow-wrap:anywhere;min-width:0}.family-course-plan .attachment-chip{white-space:normal;overflow-wrap:anywhere;min-width:0;max-width:100%}.family-identity-card .stage-badge{color:#0b6f68}.family-list .status-badge{color:#475569}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}@media (max-width:720px){.app-header,.screen-header{flex-direction:column;align-items:stretch}.app-body{flex-direction:column-reverse;justify-content:flex-end;display:flex}.app-nav{border-top:1px solid var(--line);border-right:0;flex-direction:row;overflow-x:auto}.dashboard-grid,.master-detail-layout{grid-template-columns:1fr}.teacher-calendar-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.server-sync-status{color:#173559;overflow-wrap:anywhere;background:#e9f5ff;padding:.5rem 1rem;font-size:.875rem}.server-sync-status p{margin:.25rem 0}.server-sync-status [role=alert]{color:#b42318}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
