.launch-story-overlay{z-index:calc(var(--z-overlay) + 5);background:var(--color-overlay-scrim);place-items:center;display:grid;position:fixed;inset:0}.launch-story{--story-foreground:var(--color-text-primary);width:min(100%,580px);height:100dvh;padding-bottom:env(safe-area-inset-bottom);color:var(--story-foreground);background:var(--color-surface);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.launch-story.story-background-lavender{background:var(--color-brand-soft)}.launch-story.story-background-mint{background:var(--color-success-soft)}.launch-story.story-background-warm{background:var(--color-warning-soft)}.launch-story.story-background-dark,.launch-story.launch-story--poster{--story-foreground:var(--color-on-inverse);background:var(--color-surface-inverse)}.launch-story-header{padding:max(var(--space-3), env(safe-area-inset-top)) var(--space-4) 0;justify-items:end;display:grid}.launch-story-progress{gap:var(--space-1);width:100%;display:flex}.launch-story-segment{border-radius:var(--radius-round);background:color-mix(in srgb, var(--story-foreground) 25%, transparent);flex:1;height:3px;overflow:hidden}.launch-story-segment>span{background:var(--story-foreground);transform-origin:0;width:100%;height:100%;display:block}.launch-story .launch-story-close{width:44px;height:44px;min-height:44px;color:inherit;box-shadow:none;background:0 0;border:0}.launch-story .launch-story-close:hover{color:inherit;background:color-mix(in srgb, var(--story-foreground) 10%, transparent)}.launch-story .launch-story-close:focus-visible{outline:2px solid var(--story-foreground);outline-offset:-4px}.launch-story-content{overscroll-behavior:contain;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;flex-direction:column;justify-content:flex-start;display:flex;overflow-y:auto}.launch-story-content:not(.has-media) .launch-story-copy{margin-block:auto}.launch-story-content.has-media{justify-content:flex-start}.launch-story-image{flex:1 0 200px;place-items:center;min-height:200px;display:grid;position:relative}.launch-story-image img{object-fit:contain;width:100%;height:100%;max-height:55dvh;display:block}.launch-story--poster .launch-story-image{flex:1;min-height:0}.launch-story--poster .launch-story-image img{max-height:none}.launch-story-media-status{padding:var(--space-5);background:var(--color-surface);color:var(--color-text-primary);align-content:center;display:grid;position:absolute;inset:0}.launch-story-copy{padding:var(--space-6);overflow-wrap:anywhere}.launch-story-copy h2{margin:0 0 var(--space-4);letter-spacing:-.025em;font-size:clamp(1.5rem,6vw,2.5rem);line-height:1.2}.launch-story-copy p{white-space:pre-wrap;margin:0;font-size:1.05rem;line-height:1.65}.launch-checking{background:var(--color-background);color:var(--color-text-secondary);z-index:var(--z-overlay);place-items:center;display:grid;position:fixed;inset:0}.launch-admin{max-width:1000px;margin-inline:auto}.launch-admin-actions{gap:var(--space-3);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.launch-admin-list{gap:0;padding:0;list-style:none;display:grid}.launch-admin-list>li{border-bottom:1px solid var(--color-border-subtle);padding-block:var(--space-5)}.launch-admin-row{justify-content:space-between;gap:var(--space-4);align-items:start;display:flex}.launch-admin-row h2{margin:0 0 var(--space-2);overflow-wrap:anywhere;font-size:1.125rem}.launch-admin-row p{color:var(--color-text-secondary);margin:0}.launch-admin-form{gap:var(--space-6);display:grid}.launch-admin-form fieldset{border:0;border-top:1px solid var(--color-border-subtle);min-width:0;padding:var(--space-5) 0 0;margin:0}.launch-admin-form legend{padding-inline:0 var(--space-3);font-size:1.125rem;font-weight:750}.launch-admin-form label:not(.launch-choice){gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.launch-admin-form input:not([type=checkbox]),.launch-admin-form select{width:100%;min-height:44px;font:inherit;padding:var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);color:var(--color-text-primary);background:var(--color-surface)}.launch-admin-form input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-brand-primary);flex-shrink:0}.launch-choice{gap:var(--space-3);min-height:44px;padding-block:var(--space-2);cursor:pointer;align-items:center;display:flex}.launch-choice small{color:var(--color-text-secondary);display:block}.launch-choice-group{gap:var(--space-2) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.launch-recipient-list{border-block:1px solid var(--color-border-subtle);max-height:330px;overflow-y:auto}.launch-slide-tabs{gap:var(--space-2);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.launch-slide-tabs button[aria-pressed=true]{background:var(--color-brand-primary);color:var(--color-on-brand)}.launch-slide-tabs button[aria-pressed=true]:hover:not(:disabled){background:var(--color-brand-hover);color:var(--color-on-brand)}.launch-field-pair{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.launch-admin-form .content-image-field{margin-block:var(--space-4)}.launch-admin-form .content-image-preview img{max-height:300px}.launch-poster-preview{object-fit:contain;max-width:100%;max-height:300px;margin-block:var(--space-4);display:block}.launch-extra-settings{border-block:1px solid var(--color-border-subtle);margin-top:var(--space-5);padding-block:var(--space-3)}.launch-extra-settings summary{padding-block:var(--space-3);cursor:pointer;font-weight:600}.launch-extra-settings[open] summary{margin-bottom:var(--space-4)}.launch-audience-count{font-weight:700}@media (width>=700px){.launch-story{height:min(850px, calc(100dvh - var(--space-8)));border-radius:var(--radius-dialog)}}@media (width<=480px){.launch-field-pair{grid-template-columns:1fr;gap:0}.launch-admin-row{flex-direction:column}.launch-story-copy{padding:var(--space-5)}}.page-refresh-anchor{display:contents}.page-refresh-indicator{z-index:60;top:calc(env(safe-area-inset-top,0px) + 88px);align-items:center;gap:var(--space-2);max-width:calc(100vw - 32px);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-secondary);pointer-events:none;visibility:hidden;font-weight:700;display:flex;position:fixed;left:50%;transform:translate(-50%)}.page-refresh-indicator.is-visible{visibility:visible}.page-refresh-indicator svg{color:var(--color-brand-primary);flex:none}.page-refresh-indicator.is-refreshing svg,.page-refresh-button[aria-busy=true] svg{animation:.8s linear infinite page-refresh-spin}@keyframes page-refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.page-refresh-indicator.is-refreshing svg,.page-refresh-button[aria-busy=true] svg{animation:none}}.admin-workspace{gap:24px;display:grid}.admin-workspace .page-heading,.admin-workspace .ui-page-header{margin-bottom:0}.admin-workspace-section{min-width:0}.admin-workspace-section>h2{margin:0 0 12px;font-size:1.125rem}.admin-quick-actions{flex-wrap:wrap;gap:12px;display:flex}.admin-quick-actions>*{text-align:center;flex:150px}.admin-destinations{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:16px;display:grid;overflow:hidden}.admin-destinations>a{min-height:72px;color:var(--color-text-primary);align-items:center;gap:14px;padding:18px 16px;text-decoration:none;display:flex}.admin-destinations>a+a{border-top:1px solid var(--color-border-subtle)}.admin-destinations>a:hover{background:var(--color-brand-soft)}.admin-destinations>a>svg{color:var(--color-brand-primary);flex-shrink:0}.admin-destinations>a>span{overflow-wrap:anywhere;flex:1;gap:4px;min-width:0;display:grid}.admin-destinations small,.admin-person-row small,.admin-recent-actions small{color:var(--color-text-secondary);font-size:.875rem;font-weight:400}.admin-empty-note{background:var(--color-surface);border-radius:12px;align-items:center;gap:10px;padding:16px;display:flex}.admin-recent-actions{margin:0;padding:0;list-style:none}.admin-recent-actions li{border-bottom:1px solid var(--color-border-subtle);gap:4px;padding:12px 0;display:grid}.admin-area-nav{gap:4px;margin-bottom:16px;padding-block:4px 12px;display:flex;overflow-x:auto}.admin-area-nav a{min-height:44px;color:var(--color-text-secondary);border-radius:10px;flex-shrink:0;align-items:center;padding:10px 12px;font-size:.875rem;text-decoration:none;display:flex}.admin-area-nav a[aria-current=page]{color:var(--color-brand-primary);background:var(--color-surface);font-weight:700}.admin-person-list{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;margin-block:16px;display:grid;overflow:hidden}.admin-person-row{color:var(--color-text-primary);align-items:center;gap:12px;min-width:0;padding:16px;text-decoration:none;display:flex}.admin-person-row+.admin-person-row{border-top:1px solid var(--color-border-subtle)}.admin-person-row>span{overflow-wrap:anywhere;flex:1;gap:5px;min-width:0;display:grid}.admin-person-row:hover{background:var(--color-brand-soft)}.admin-list-summary{justify-content:space-between;align-items:center;gap:12px;margin-block:12px;display:flex}.admin-field-grid{gap:16px;margin-block:16px;display:grid}.admin-field-grid label,.admin-workspace-form label{gap:6px;min-width:0;display:grid}.admin-field-grid input,.admin-field-grid select,.admin-workspace-form input,.admin-workspace-form select,.admin-workspace-form textarea{width:100%;min-width:0;font-size:1rem}.admin-workspace-form{gap:16px;display:grid}.admin-form-section{border-bottom:1px solid var(--color-border-subtle);padding-block:20px}.admin-form-section h2{margin-top:0;font-size:1.125rem}.admin-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-block:16px;display:flex}.admin-person-state{flex-wrap:wrap;gap:8px 16px;margin-block:12px;display:flex}.admin-select-list{border:0;gap:4px;max-height:300px;padding:0;display:grid;overflow-y:auto}.admin-select-list label{align-items:center;gap:12px;min-height:48px;padding:8px;display:flex}.admin-select-list input{width:20px;min-height:20px}.admin-result{background:var(--color-surface);border-radius:12px;padding:16px}.admin-history{margin:0;padding:0;list-style:none}.admin-history li{border-bottom:1px solid var(--color-border-subtle);gap:4px;padding-block:12px;display:grid}.admin-history span{color:var(--color-text-secondary);font-size:.875rem}.admin-workspace .homework-body{white-space:pre-wrap;overflow-wrap:anywhere}.admin-field-grid .checkbox-line{align-items:center;gap:10px;display:flex}.admin-field-grid .checkbox-line input{width:20px;min-height:20px}@media (width>=700px){.admin-field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=430px){.role-admin .bottom-nav a{min-height:58px;font-size:.75rem}.admin-quick-actions>*{flex-basis:130px}}.onboarding-page{min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:var(--color-background);place-items:center;display:grid}.onboarding-page.in-shell{background:0 0;min-height:auto;padding:8px 0 28px}.onboarding-panel{background:var(--color-surface);border-radius:16px;width:min(100%,520px);padding:clamp(22px,6vw,36px);box-shadow:0 14px 34px #1c25361f}.onboarding-logo{object-fit:contain;width:92px;height:auto;margin:-8px auto 18px;display:block}.onboarding-panel h1{letter-spacing:-.025em;text-wrap:balance;margin:0 0 10px;font-size:clamp(1.65rem,7vw,2.25rem);line-height:1.08}.onboarding-panel>p{max-width:44ch;color:var(--color-text-secondary);margin:0 0 24px}.onboarding-form{gap:18px;display:grid}.onboarding-form>label,.onboarding-choice-list legend{font-weight:700}.onboarding-form input,.onboarding-form select{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text-primary);font:inherit;border-radius:12px;margin-top:7px;padding:10px 12px;display:block}.onboarding-choice-list{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.onboarding-choice-list label{background:var(--color-surface-secondary);border-radius:12px;align-items:center;gap:11px;min-height:46px;padding:8px 11px;display:flex}.onboarding-choice-list input{width:22px;min-height:22px;margin:0}.onboarding-form button,.onboarding-panel>button{width:100%;min-height:48px}.onboarding-back{color:var(--color-brand-primary);text-align:left;background:0 0;border:0;margin:-8px 0 16px;padding:4px 0;width:auto!important;min-height:44px!important}.onboarding-error,.onboarding-rejected{background:var(--color-danger-soft);color:var(--color-danger-strong);border-radius:12px;margin:0;padding:12px 14px}.onboarding-rejected{gap:4px;margin-bottom:18px;display:grid}.onboarding-status{align-items:center;gap:9px;min-height:44px;margin-bottom:20px;font-weight:700;display:inline-flex}.onboarding-status span{background:var(--color-reward);border-radius:50%;width:10px;height:10px}.onboarding-summary{grid-template-columns:max-content 1fr;gap:8px 14px;margin:0 0 24px;display:grid}.onboarding-summary dt{color:var(--color-text-secondary)}.onboarding-summary dd{overflow-wrap:anywhere;margin:0;font-weight:700}@media (width<=360px),(resolution>=2x) and (width<=480px){.onboarding-panel{padding:22px 18px}}@media (prefers-reduced-motion:no-preference){.onboarding-panel{animation:.36s cubic-bezier(.16,1,.3,1) onboarding-arrive}@keyframes onboarding-arrive{0%{opacity:.01;filter:blur(3px);transform:translateY(8px)}}}@font-face{font-family:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/pwa-assets/golos-text-cyrillic-wght-normal-mKek_fSS.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Golos Text Variable;font-style:normal;font-display:swap;font-weight:400 900;src:url(/pwa-assets/golos-text-latin-wght-normal-BS5oQT7X.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-background:#e7f4fb;--color-surface:#fff;--color-surface-secondary:#f6fafb;--color-surface-muted:#dcecf4;--color-border-subtle:#dcdcd2;--color-border-strong:#b9c8cf;--color-text-primary:#111110;--color-text-secondary:#4a4a42;--color-text-muted:#6c6c62;--color-access-card-paper:#fff;--color-access-card-ink:#172b3a;--color-access-card-border:#57616b;--color-student-qr-paper:#fff;--color-student-qr-ink:#111;--color-student-qr-text:#222;--color-student-qr-muted:#444;--color-student-qr-border:#d6d6d6;--color-surface-inverse:#102a3a;--color-overlay-scrim:#07131a;--color-on-inverse:#fff;--color-print-text:#000;--color-print-muted:#444;--color-print-border:#999;--color-brand-field:#008bd2;--color-brand-primary:#006fa8;--color-brand-hover:#005a88;--color-brand-soft:#e7f4fb;--color-brand-tint:#cceafa;--color-brand-strong:#073a59;--color-brand-link:#006fa8;--color-launch-field-start:#fafdff;--color-launch-field-middle:#eef9ff;--color-launch-field-end:#e2f3fc;--color-launch-ink:#08144d;--color-launch-copy:#075f9b;--color-launch-geometry:#0092ea;--color-launch-halo:#fffffff5;--color-launch-clear:#fff0;--color-launch-corner-start:#276fec08;--color-launch-corner-end:#59a1ff24;--color-launch-dot:#167ef16b;--color-launch-ring:#247ff224;--color-launch-particle-glow:#1091f085;--color-launch-wave-back-start:#dcebff;--color-launch-wave-back-end:#a9cbff;--color-launch-wave-front-start:#91bbff;--color-launch-wave-front-middle:#5d9bfa;--color-launch-wave-front-end:#2e72ed;--color-on-brand:#fff;--color-on-brand-field:#fff;--color-on-semantic:#fff;--color-on-attention:#fff;--color-theme-preview-light:#fff;--color-theme-preview-light-surface:#e7f4fb;--color-theme-preview-dark:#0d1b24;--color-theme-preview-dark-surface:#203b48;--color-theme-preview-accent-light:#008bd2;--color-theme-preview-accent-dark:#54bee9;--color-brand-lemon:#f8eb57;--color-brand-lemon-soft:#fff9c9;--color-brand-lime:#afca09;--color-brand-lime-soft:#f0f7ca;--color-brand-raspberry:#d30240;--color-brand-raspberry-soft:#ffe3ec;--color-brand-coral:#e94e0e;--color-brand-sky:#77c8f0;--color-route-current:var(--color-brand-lemon);--color-on-route-current:#111110;--color-on-route-calm:#111110;--color-route-complete:var(--color-brand-lime);--color-route-complete-ink:#234800;--color-route-attention:var(--color-brand-raspberry);--color-route-future:var(--color-brand-sky);--color-route-muted:#a9bdc8;--color-route-line:#b8def1;--color-student-background:var(--color-background);--color-student-surface-secondary:var(--color-surface-secondary);--color-student-surface-muted:var(--color-surface-muted);--color-student-border-subtle:var(--color-border-subtle);--color-student-border-strong:var(--color-border-strong);--color-student-text-primary:var(--color-text-primary);--color-student-text-secondary:var(--color-text-secondary);--color-student-text-muted:var(--color-text-muted);--color-student-brand-primary:var(--color-brand-primary);--color-student-brand-hover:var(--color-brand-hover);--color-student-brand-soft:var(--color-brand-soft);--color-student-brand-tint:var(--color-brand-tint);--color-student-brand-strong:var(--color-brand-strong);--color-student-ink:var(--color-brand-primary);--color-student-ink-soft:var(--color-brand-soft);--color-student-next-action:var(--color-brand-lemon);--color-student-next-action-hover:var(--color-brand-strong);--color-student-reward-border:#d8b600;--color-student-progress-border:var(--color-border-strong);--color-student-progress-surface:var(--color-brand-soft);--color-student-progress-track:var(--color-border-subtle);--color-level-start:#46b8e9;--color-level-bronze:#ae6d43;--color-level-bronze-highlight:#b87345;--color-level-gold:#c69205;--color-level-legend:#5a45bd;--color-success:#147a53;--color-success-strong:#175d39;--color-success-soft:#e7f7f0;--color-warning:#9a5700;--color-warning-strong:#7a4b00;--color-warning-soft:#fff4dd;--color-danger:#b93648;--color-danger-strong:#7d1f1a;--color-danger-soft:#fdecef;--color-info:#2567c6;--color-info-soft:#eaf2ff;--color-reward:#946000;--color-reward-soft:#fff6d8;--color-focus-ring:#f4b942;--font-family-sans:"Golos Text Variable", "Golos Text", ui-sans-serif, system-ui, sans-serif;--font-size-display:clamp(1.75rem, 5vw, 2rem);--font-size-page-title:clamp(1.375rem, 4vw, 1.5rem);--font-size-section-title:1.125rem;--font-size-card-title:1rem;--font-size-body:.9375rem;--font-size-secondary:.875rem;--font-size-caption:.75rem;--line-height-tight:1.2;--line-height-body:1.55;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:1.75rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--radius-sm:.625rem;--radius-md:.75rem;--radius-lg:1rem;--radius-card:1.125rem;--radius-dialog:1.375rem;--radius-round:999px;--shadow-card:0 1px 2px #18203308;--shadow-elevated:0 16px 44px #18203324;--shadow-navigation:0 -8px 24px #1820330f;--motion-fast:.12s;--motion-base:.18s;--motion-slow:.22s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--z-header:20;--z-navigation:30;--z-overlay:50;--z-toast:60;--content-standard:760px;--content-wide:1120px;--page-padding:max(1rem, env(safe-area-inset-left));--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px)}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-background:#0d1b24;--color-surface:#142731;--color-surface-secondary:#19313d;--color-surface-muted:#203b48;--color-border-subtle:#31505e;--color-border-strong:#58727d;--color-text-primary:#f5f8f9;--color-text-secondary:#c2d0d6;--color-text-muted:#9fb3bc;--color-surface-inverse:#f5f8f9;--color-overlay-scrim:#03090d;--color-on-inverse:#10212a;--color-brand-primary:#54bee9;--color-brand-hover:#7bcdf0;--color-brand-soft:#173d50;--color-brand-tint:#20546a;--color-brand-strong:#b7e5f8;--color-brand-link:#78cff2;--color-on-brand:#082430;--color-on-brand-field:#fff;--color-on-semantic:#111110;--color-on-route-calm:#f5f8f9;--color-brand-lemon-soft:#49451c;--color-brand-lime-soft:#334217;--color-brand-raspberry-soft:#4c1c2b;--color-route-complete-ink:#172500;--color-route-muted:#66818d;--color-route-line:#315a6d;--color-success:#66d0a2;--color-success-strong:#8ce1b8;--color-success-soft:#183c31;--color-warning:#f1bd67;--color-warning-strong:#ffd28b;--color-warning-soft:#47351a;--color-danger:#ff7790;--color-danger-strong:#ff9bac;--color-danger-soft:#4b232c;--color-info:#77b7ff;--color-info-soft:#1c3653;--color-reward:#f7cf62;--color-reward-soft:#43391c;--color-focus-ring:#f8eb57;--shadow-card:0 1px 2px #0000002e;--shadow-elevated:0 18px 48px #00000061;--shadow-navigation:0 -8px 24px #0000003d}@media (width>=700px){:root{--page-padding:1.25rem}}@media (prefers-reduced-motion:reduce){:root{--motion-fast:1ms;--motion-base:1ms;--motion-slow:1ms}}:root{font-family:var(--font-family-sans);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{background:var(--color-background);scroll-behavior:smooth;overscroll-behavior-y:none}body{background:var(--color-background);min-width:0;min-height:100vh;color:var(--color-text-primary);font-size:var(--font-size-body);line-height:var(--line-height-body);margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}.app-shell :where(a[href^=\/app],button){-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}.app-shell a[href^=\/app],.app-shell a[href^=\/app] :where(img,svg){-webkit-user-drag:none}button,input,select,.card-link,.menu-card,.bottom-nav a{min-height:44px}a{color:var(--color-brand-link);text-underline-offset:3px}button{border-radius:var(--radius-md);background:var(--color-brand-primary);color:var(--color-on-brand);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard);border:0;padding:.6875rem 1rem;font-weight:650}button:hover:not(:disabled){background:var(--color-brand-hover)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:default}:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:var(--font-size-page-title);line-height:var(--line-height-tight);letter-spacing:-.025em}h2{font-size:var(--font-size-section-title);line-height:1.3}h3{font-size:var(--font-size-card-title);line-height:1.35}p{line-height:var(--line-height-body)}.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{min-height:100dvh;padding-bottom:calc(76px + var(--safe-bottom))}.app-header{z-index:var(--z-header);padding:calc(.5rem + var(--safe-top)) max(1rem, var(--safe-right)) .5rem max(1rem, var(--safe-left));border-bottom:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 94%, transparent);color:var(--color-text-primary);display:block;position:sticky;top:0;box-shadow:0 1px #18203305}.app-header-inner{width:min(100%, var(--content-wide));align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;margin:0 auto;display:grid}.app-brand{align-items:center;gap:var(--space-3);min-width:0;min-height:44px;color:inherit;text-decoration:none;display:flex}.brand-mark{border:1px solid color-mix(in srgb, var(--color-brand-primary) 18%, var(--color-border-subtle));border-radius:var(--radius-md);background:var(--color-brand-soft);width:40px;height:40px;color:var(--color-brand-strong);flex:0 0 40px;place-items:center;display:grid}.app-brand-copy{min-width:0}.app-brand-copy strong{font-size:.9375rem;line-height:1.2;display:block}.app-brand-copy span{color:var(--color-text-secondary);font-size:var(--font-size-caption);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;line-height:1.25;display:block;overflow:hidden}.app-header h1,.school-badge{overflow-wrap:anywhere;min-width:0}.eyebrow{margin-bottom:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-caption);letter-spacing:.045em;text-transform:uppercase;font-weight:650}.text-button{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-secondary);place-items:center;display:grid}.text-button:hover:not(:disabled){background:var(--color-surface-secondary);color:var(--color-text-primary)}.header-actions{align-items:center;gap:var(--space-2);display:flex}.notification-bell{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-secondary);flex:0 0 44px;place-items:center;text-decoration:none;display:grid;position:relative}.notification-bell:hover{background:var(--color-surface-secondary);color:var(--color-text-primary)}.notification-badge{border:2px solid var(--color-surface);background:var(--color-danger);min-width:22px;height:22px;color:var(--color-on-semantic);border-radius:999px;place-items:center;padding:0 4px;font-size:.68rem;font-weight:900;line-height:1;display:grid;position:absolute;top:-5px;right:-5px}.role-badge,.badge{align-items:center;gap:var(--space-1);border-radius:var(--radius-round);min-height:26px;padding:3px 9px;font-size:.78rem;font-weight:700;display:inline-flex}.role-badge{background:var(--color-brand-soft);color:var(--color-brand-strong)}.context-badges{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.school-badge{color:var(--color-text-secondary);font-size:.78rem}.badge{background:var(--color-brand-soft);color:var(--color-brand-strong)}.school-switcher{gap:var(--space-1);margin:var(--space-2) auto 0;width:min(100%, var(--content-wide));color:var(--color-text-secondary);font-size:.75rem;display:grid}.school-switcher select{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text-primary);padding:.5rem .75rem}.school-switcher option{color:var(--color-text-primary);background:var(--color-surface)}.switcher-error{color:var(--color-danger);font-weight:650}.page-content{width:min(100%, var(--content-standard));padding:var(--space-6) 1rem var(--space-10);margin:0 auto}.role-admin .page-content,.role-teacher .page-content{width:min(100%, var(--content-wide))}.page-heading{margin-bottom:var(--space-6)}.page-heading h1{margin-bottom:var(--space-2)}.page-heading p,.card p,.muted{color:var(--color-text-secondary)}.card,.state-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);box-shadow:var(--shadow-card)}.card p:last-child,.state-card p:last-child{margin-bottom:0}.item-list,.dashboard-grid{gap:var(--space-4);display:grid}.metric-grid{grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:18px;display:grid}.metric-grid .card{text-align:center;gap:2px;padding:13px 10px;display:grid}.metric{font-size:1.35rem;font-weight:900}.metric-grid span:last-child{color:var(--color-text-secondary);font-size:.72rem}.role-teacher .metric-grid,.role-admin .metric-grid{grid-template-columns:1fr}.foundation-grid .card{min-height:138px}.row-between{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-link{align-items:center;margin-top:5px;font-weight:800;text-decoration:none;display:inline-flex}.menu-card{justify-content:space-between;align-items:center;gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4) var(--space-5);background:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);font-weight:650;text-decoration:none;display:flex}.menu-card:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary);transform:translateY(-1px)}.achievement-icon{margin-bottom:8px;font-size:2rem}.details{grid-template-columns:minmax(90px,.7fr) 1.3fr;gap:12px;margin:0;display:grid}.details dt{color:var(--color-text-secondary)}.details dd{margin:0;font-weight:700}.push-settings{gap:16px;display:grid}.push-settings h3{margin:0;font-size:1rem}.push-guidance,.push-opt-in,.push-current-device,.push-device-list{gap:12px;display:grid}.push-guidance ol{margin:0;padding-inline-start:1.4rem}.push-guidance li+li{margin-top:6px}.push-actions{flex-wrap:wrap;gap:10px;display:flex}.push-device-list{border-top:1px solid var(--color-border-subtle);padding-top:16px}.push-device{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-secondary);gap:12px;padding:14px;display:grid}.push-device .row-between{align-items:flex-start;gap:12px}.push-device .row-between span{color:var(--color-text-secondary);text-align:end;font-size:.875rem}.push-category-groups{gap:16px;min-width:0;display:grid}.push-device fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.push-device legend{margin-bottom:8px;font-weight:750}.push-category{overflow-wrap:anywhere;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;min-height:44px;display:grid}.push-category input{width:20px;height:20px;accent-color:var(--color-brand-primary);margin:0}.push-state-note{border-radius:var(--radius-sm);background:var(--color-info-soft);margin:0;padding:10px 12px}@media (width<=360px){.push-actions,.push-actions button,.push-opt-in button,.push-device>button{width:100%}.push-device .row-between{display:grid}.push-device .row-between span{text-align:start}}.pagination{justify-content:space-between;align-items:center;gap:10px;margin-top:18px;font-size:.8rem;display:flex}.pagination button{padding:8px 12px}.bottom-nav{z-index:var(--z-navigation);padding:6px max(8px, var(--safe-right)) calc(6px + var(--safe-bottom)) max(8px, var(--safe-left));border-top:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 96%, transparent);box-shadow:var(--shadow-navigation);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);justify-content:center;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{border-radius:var(--radius-sm);min-width:0;max-width:120px;min-height:54px;color:var(--color-text-muted);overflow-wrap:anywhere;text-align:center;transition:color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard);flex:1;align-content:center;place-items:center;gap:2px;font-size:.7rem;text-decoration:none;display:grid}.bottom-nav a svg{width:21px;height:21px}.bottom-nav a.active{color:var(--color-brand-primary);background:0 0;font-weight:700}.bottom-nav a.active:before{border-radius:var(--radius-round);background:var(--color-brand-primary);content:"";width:26px;height:2px;position:absolute;top:0}.bottom-nav a{position:relative}.role-student{--color-background:var(--color-student-background);--color-surface-secondary:var(--color-student-surface-secondary);--color-border-subtle:var(--color-student-border-subtle);--color-border-strong:var(--color-student-border-strong);--color-brand-primary:var(--color-student-brand-primary);--color-brand-hover:var(--color-student-brand-hover);--color-brand-soft:var(--color-student-brand-soft);--color-brand-tint:var(--color-student-brand-tint);--color-brand-strong:var(--color-student-brand-strong);min-height:100dvh;padding-bottom:calc(82px + var(--safe-bottom));background:var(--color-background)}.role-student .app-header{padding-block:calc(.65rem + var(--safe-top)) .65rem;background:color-mix(in srgb, var(--color-surface) 98%, transparent);box-shadow:none}.role-student .brand-mark{background:var(--color-brand-primary);width:46px;height:46px;color:var(--color-on-brand);border:0;border-radius:14px;flex-basis:46px}.role-student .brand-mark svg{stroke-width:2px;width:25px;height:25px}.role-student .app-brand-copy strong{letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.role-student .header-actions{gap:var(--space-2)}.role-student .notification-bell,.role-student .text-button{background:var(--color-brand-soft);color:var(--color-text-primary);border:0;border-radius:14px}.role-student .bottom-nav a{gap:3px;min-height:62px;font-size:12px;font-weight:600}.role-student .bottom-nav a svg{stroke-width:1.9px;width:24px;height:24px}.role-student .bottom-nav a.active{font-weight:750}.role-student .bottom-nav a.active:before{display:none}.centered-page{min-height:100dvh;padding:calc(24px + env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));place-items:center;gap:18px;display:grid}.centered-page .state-card{text-align:center;width:min(100%,430px)}.primary-link{background:var(--color-brand-primary);min-height:44px;color:var(--color-on-brand);border-radius:14px;justify-content:center;align-items:center;padding:11px 16px;font-weight:800;text-decoration:none;display:inline-flex}.brand-logo{background:var(--color-surface);border-radius:18px;width:min(100%,330px);height:auto;margin:0 auto 18px;display:block}.button-stack{gap:10px;margin-top:18px;display:grid}.telegram-login-help{border-top:1px solid var(--color-border-subtle);text-align:start;margin-top:18px}.telegram-login-help summary{min-height:44px;color:var(--color-brand-primary);cursor:pointer;padding-block:12px}.telegram-login-help .button-stack{margin-top:0}.telegram-login-help p{font-size:.875rem}.telegram-login-help label{gap:8px;display:grid}.telegram-login-help textarea{overflow-wrap:anywhere}.challenge-card-list,.challenge-question-list,.challenge-editor{gap:14px;display:grid}.challenge-editor{max-width:760px}.challenge-ai-generator{border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-brand-primary) 5%, var(--color-surface));border-radius:20px;gap:12px;min-width:0;padding:16px;display:grid}.challenge-ai-generator h2,.challenge-ai-generator h3{margin:0 0 6px}.challenge-ai-generator p{overflow-wrap:anywhere}.challenge-ai-panel,.challenge-ai-preview{gap:14px;min-width:0;display:grid}.challenge-ai-confirm{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.challenge-ai-confirm p{flex-basis:100%;margin-bottom:0}.challenge-ai-generator .button.secondary,.challenge-ai-generator .button.ghost{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary)}.challenge-ai-generator .button.danger{background:var(--color-danger);color:var(--color-on-semantic)}.challenge-question-editor{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:20px;min-width:0;margin:0;padding:16px}.challenge-question-editor legend{padding:0 6px;font-weight:850}.challenge-option-grid{gap:10px;margin:12px 0;display:grid}.challenge-option-editor{grid-template-columns:44px minmax(0,1fr);align-items:center;gap:8px;display:grid}.challenge-option-editor input[type=radio]{width:22px;height:22px;margin:11px}.challenge-option-editor input[type=text],.challenge-option-editor input:not([type]){min-width:0}@media (width<=430px){.challenge-question-editor{padding:12px}}.student-challenge-home{gap:10px;display:grid}.student-challenge-questions{gap:16px;display:grid}.student-challenge-questions fieldset{border:1px solid var(--color-border-subtle);border-radius:20px;min-width:0;margin:0;padding:14px}.student-challenge-questions legend{max-width:100%;padding:0 4px;font-weight:850;line-height:1.4}.student-challenge-option{border:1px solid var(--color-border-subtle);background:var(--color-surface);cursor:pointer;border-radius:14px;grid-template-columns:44px minmax(0,1fr);align-items:center;min-height:52px;margin-top:8px;display:grid}.student-challenge-option:focus-within{outline:3px solid var(--color-focus-ring);outline-offset:2px}.student-challenge-option input{width:22px;height:22px;margin:11px}.student-challenge-option span{overflow-wrap:anywhere;min-width:0;padding:12px 12px 12px 0}.challenge-progress{background:var(--color-border-subtle);border-radius:999px;width:100%;height:10px;overflow:hidden}.challenge-progress span{border-radius:inherit;background:var(--color-brand-primary);height:100%;transition:width .18s;display:block}.challenge-feedback{min-height:1.5em;color:var(--color-success);font-weight:750}.challenge-result{gap:14px;display:grid}@media (prefers-reduced-motion:reduce){.challenge-progress span{transition:none}}.secondary-button{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary)}.text-action{color:var(--color-brand-primary);background:0 0}.success-state{border-color:color-mix(in srgb, var(--color-success) 45%, var(--color-border-subtle))}.standalone-login{align-content:center}.school-login{text-align:left;margin-top:1.5rem}.school-login summary{cursor:pointer;padding:.75rem 0}.school-login form{margin-top:1rem}.school-login input{width:100%;min-height:44px}.install-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:min(100%,430px);color:var(--color-text-primary);box-shadow:var(--shadow-card);border-radius:20px;padding:17px}.install-card img{background:var(--color-surface);border-radius:10px;width:132px;height:auto;margin:0 auto 8px;display:block}.install-card h2{text-align:center}.install-card ol{margin:0;padding-left:1.35rem}.install-card li+li{margin-top:6px}.error-state{border-color:color-mix(in srgb, var(--color-danger) 35%, var(--color-border-subtle))}.skeleton-stack{gap:11px;display:grid}.skeleton{background:linear-gradient(90deg, var(--color-border-subtle), color-mix(in srgb, var(--color-border-subtle) 45%, var(--color-surface)), var(--color-border-subtle));background-size:220% 100%;border-radius:16px;height:66px;animation:1.3s linear infinite shimmer;display:block}.skeleton.short{width:72%}@media (width>=620px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}.app-header{padding-left:max(24px,50vw - 380px);padding-right:max(24px,50vw - 380px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes shimmer{to{background-position:-220% 0}}.schedule-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.today-button{margin:-8px 0 10px}.week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-bottom:16px;display:grid}.week-strip button{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;color:var(--color-text-primary);gap:2px;padding:7px 2px;font-size:.7rem;display:grid}.week-strip button strong{font-size:1rem}.week-strip button.active{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-on-brand)}.schedule-filters{gap:10px;margin-bottom:16px;display:grid}.schedule-filters label{min-width:0;color:var(--color-text-secondary);gap:5px;font-size:.78rem;font-weight:800;display:grid}.schedule-filters select{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-width:0;color:var(--color-text-primary);border-radius:14px;padding:10px 12px}.schedule-list,.schedule-form{gap:12px;min-width:0;display:grid}.schedule-card{overflow-wrap:anywhere;grid-template-columns:auto minmax(0,1fr);gap:10px 14px;display:grid}.schedule-card.is-cancelled{opacity:.72}.schedule-card.is-routine{border-color:color-mix(in srgb, var(--color-brand-primary) 18%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-brand-soft) 45%, var(--color-surface))}.schedule-card-time{align-items:baseline;gap:4px;font-weight:900;display:flex}.schedule-card-main{min-width:0}.schedule-card-main h2{margin-bottom:5px}.schedule-card-main p{margin-bottom:4px}.schedule-card .card-link{grid-column:1/-1}.schedule-status{background:color-mix(in srgb, var(--color-brand-primary) 10%, var(--color-surface));border-radius:999px;align-items:center;min-height:28px;padding:4px 9px;font-size:.75rem;font-weight:800;display:inline-flex}.schedule-time-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.schedule-form-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.schedule-action-choice{border-bottom:1px solid var(--color-border-subtle);gap:8px;margin:18px 0 14px;padding-bottom:16px;display:grid}.schedule-action-choice h2,.schedule-action-choice p{margin:0}.schedule-action-choice h2{font-size:1.08rem}.schedule-action-choice p{max-width:70ch;color:var(--color-text-secondary)}.schedule-action-choice .secondary-link{justify-self:start;margin-top:3px}.schedule-action-panel{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:18px;margin:14px 0;padding:0 16px 16px}.schedule-action-panel>summary{cursor:pointer;align-items:center;min-height:54px;font-weight:850;display:flex}.schedule-action-panel textarea{resize:vertical;border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:88px;color:var(--color-text-primary);border-radius:14px;padding:11px 12px}.schedule-exception-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.schedule-exception-list li{border-bottom:1px solid var(--color-border-subtle);flex-wrap:wrap;justify-content:space-between;gap:7px;padding-bottom:8px;display:flex}@media (width>=620px){.schedule-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-card{grid-template-columns:120px minmax(0,1fr) auto;align-items:center}.schedule-card .card-link{grid-column:auto}}@media (width<=370px){.schedule-time-grid,.schedule-form-actions{grid-template-columns:1fr}.week-strip{gap:3px}.week-strip button{padding-left:0;padding-right:0}}.back-link{align-items:center;min-height:44px;margin-bottom:8px;font-weight:800;text-decoration:none;display:inline-flex}.homework-heading{margin-bottom:14px}.homework-heading .eyebrow{color:var(--color-text-secondary)}.homework-condition{margin-bottom:14px}.assignment-text,.answer-text,.assignment-preview{overflow-wrap:anywhere;white-space:pre-wrap}.homework-dates,.version-dates{grid-template-columns:minmax(110px,.7fr) 1.3fr;gap:8px 12px;margin:16px 0 0;display:grid}.homework-dates dt,.version-dates dt{color:var(--color-text-secondary)}.homework-dates dd,.version-dates dd{margin:0;font-weight:700}.submission-layout{gap:14px;display:grid}.submission-heading{align-items:flex-start}.submission-heading h2{margin-bottom:0}.submission-status,.version-status{border:1px solid var(--color-border-subtle);border-radius:999px;align-items:center;gap:7px;min-height:32px;padding:5px 10px;font-size:.78rem;font-weight:850;display:inline-flex}.submission-status-icon{width:21px;height:21px;color:var(--color-surface);background:currentColor;border-radius:50%;place-items:center;font-size:.72rem;display:grid}.status-draft{border-color:color-mix(in srgb, var(--color-warning) 42%, var(--color-border-subtle))}.status-submitted{border-color:color-mix(in srgb, var(--color-brand-primary) 45%, var(--color-border-subtle))}.status-returned{border-color:color-mix(in srgb, var(--color-danger) 50%, var(--color-border-subtle))}.status-accepted{border-color:color-mix(in srgb, var(--color-success) 55%, var(--color-border-subtle))}.submission-card{gap:15px;display:grid}.submission-card h3{margin:0;font-size:.95rem}.draft-editor{gap:8px;display:grid}.draft-editor label{font-weight:800}.draft-editor textarea{resize:vertical;border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;max-width:100%;min-height:148px;color:var(--color-text-primary);font:inherit;border-radius:15px;padding:13px;line-height:1.45;display:block}.draft-editor-footer{flex-wrap:wrap}.draft-editor-footer .muted{font-size:.78rem}.attachment-picker{gap:7px;display:grid}.file-picker-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.file-picker-input{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.file-picker-button{border:1px dashed color-mix(in srgb, var(--color-brand-primary) 55%, var(--color-border-subtle));min-height:44px;color:var(--color-brand-primary);cursor:pointer;border-radius:14px;justify-content:center;align-items:center;gap:7px;padding:10px 14px;font-weight:800;display:inline-flex}.file-picker-input:focus-visible+.file-picker-button,.file-picker-button:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:3px}.file-picker-button.disabled{opacity:.45;cursor:default}.attachment-help{color:var(--color-text-secondary);margin:0;font-size:.76rem;line-height:1.4}.attachment-list{gap:9px;margin:0;padding:0;list-style:none;display:grid}.attachment-row{border:1px solid var(--color-border-subtle);border-radius:15px;gap:10px;min-width:0;padding:11px;display:grid}.attachment-main{grid-template-columns:2.75rem minmax(0,1fr);align-items:center;gap:10px;min-width:0;display:grid}.attachment-copy{gap:3px;min-width:0;display:grid}.attachment-thumbnail,.attachment-file-icon{border-radius:10px;width:2.75rem;height:2.75rem}.attachment-thumbnail{background:var(--color-surface-secondary);object-fit:cover;display:block}.attachment-file-icon{color:var(--color-brand-primary);background:var(--color-brand-soft);place-items:center;display:grid}.attachment-name{text-overflow:ellipsis;white-space:nowrap;font-weight:800;display:block;overflow:hidden}.attachment-meta{color:var(--color-text-secondary);font-size:.76rem}.attachment-actions{flex-wrap:wrap;gap:7px;display:flex}.attachment-actions>*{flex:1}.attachment-link{border:1px solid var(--color-border-subtle);border-radius:12px;justify-content:center;align-items:center;min-height:44px;padding:8px 11px;font-weight:800;text-decoration:none;display:inline-flex}.danger-button{background:var(--color-danger);color:var(--color-on-brand)}.attachment-error{color:var(--color-danger);font-size:.78rem;font-weight:700}.upload-spinner{border:2px solid var(--color-border-subtle);border-top-color:var(--color-brand-primary);vertical-align:-2px;border-radius:50%;width:12px;height:12px;margin-left:6px;animation:.8s linear infinite upload-spin;display:inline-block}.submission-actions{gap:7px;display:grid}.submission-actions .muted{font-size:.78rem}.readonly-explanation,.submission-date{color:var(--color-text-secondary);margin:0}.revision-callout,.review-block{border:1px solid color-mix(in srgb, var(--color-danger) 45%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-danger) 7%, var(--color-surface));border-radius:15px;padding:13px}.revision-callout h3{margin-bottom:7px}.revision-callout p:last-child,.review-block p:last-child{margin-bottom:0}.review-accepted{border-color:color-mix(in srgb, var(--color-success) 45%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-success) 7%, var(--color-surface))}.submission-feedback:empty{display:none}.inline-error{background:color-mix(in srgb, var(--color-danger) 9%, var(--color-surface));color:var(--color-danger);border-radius:13px;gap:9px;padding:11px;font-weight:700;display:grid}.inline-success{color:var(--color-success);margin:0;font-weight:800}.version-history>h2{margin:7px 0 11px}.version-list{gap:10px;display:grid}.version-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);box-shadow:var(--shadow-card);border-radius:17px;padding:0 14px}.version-card summary{cursor:pointer;justify-content:space-between;align-items:center;gap:9px;min-height:54px;padding:8px 0;font-weight:850;display:flex}.version-card>:not(summary):last-child{margin-bottom:14px}.version-card h3{margin:15px 0 7px;font-size:.9rem}.modal-backdrop{z-index:100;padding:calc(18px + env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));background:#070e209e;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.submit-dialog{width:min(100%,440px);max-height:calc(100dvh - 36px - env(safe-area-inset-top) - env(safe-area-inset-bottom));background:var(--color-surface);color:var(--color-text-primary);border-radius:20px;padding:19px;overflow-y:auto;box-shadow:0 18px 60px #00000040}.submit-dialog p{color:var(--color-text-secondary);line-height:1.5}.dialog-actions{grid-template-columns:1fr 1fr;gap:9px;display:grid}@media (width>=520px){.attachment-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.attachment-actions>*{flex:initial}.submission-actions{grid-template-columns:max-content 1fr;align-items:center}}@media (width<=370px){.page-content{padding-left:12px;padding-right:12px}.card,.state-card{padding:14px}.submission-heading{justify-items:start;display:grid}.dialog-actions{grid-template-columns:1fr}}@keyframes upload-spin{to{transform:rotate(360deg)}}.segmented-control{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px;display:grid}.segmented-control button{min-width:0;padding:9px 10px;font-size:.78rem}.segmented-control button.active{background:var(--color-brand-primary);color:var(--color-on-brand)}.card-title-row{align-items:flex-start}.card-title-row h2{margin-bottom:0}.clamp-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.review-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:14px 0;display:grid}.review-counts div{background:color-mix(in srgb, var(--color-brand-primary) 7%, var(--color-surface));border-radius:13px;min-width:0;padding:9px}.review-counts dt{color:var(--color-text-secondary);font-size:.7rem}.review-counts dd{margin:2px 0 0;font-size:1.1rem;font-weight:900}.card-primary-action{width:100%}.card-secondary-action{border:1px solid var(--color-border-subtle);width:100%;min-height:44px;color:var(--color-text-primary);border-radius:14px;justify-content:center;align-items:center;margin-top:8px;padding:10px 14px;font-weight:800;text-decoration:none;display:inline-flex}.create-homework-link{width:100%;margin-bottom:16px}.homework-due-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.homework-due-row p{margin-bottom:0}.due-status{background:color-mix(in srgb, var(--color-success) 13%, var(--color-surface));min-height:28px;color:color-mix(in srgb, var(--color-success) 80%, var(--color-text-primary));border-radius:999px;align-items:center;padding:4px 9px;font-size:.74rem;font-weight:850;display:inline-flex}.due-status-today{background:color-mix(in srgb, var(--color-warning) 16%, var(--color-surface));color:color-mix(in srgb, var(--color-warning) 85%, var(--color-text-primary))}.due-status-overdue{background:color-mix(in srgb, var(--color-danger) 13%, var(--color-surface));color:var(--color-danger)}.edit-disabled-reason{color:var(--color-text-secondary);margin:10px 0 0;font-size:.82rem;line-height:1.4}.success-banner{border:1px solid color-mix(in srgb, var(--color-success) 42%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));color:var(--color-text-primary);border-radius:14px;padding:12px 14px}.schedule-heading-actions{flex-wrap:wrap;gap:8px;display:flex}.secondary-link{border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:44px;color:var(--color-brand-strong);border-radius:14px;justify-content:center;align-items:center;padding:10px 15px;font-weight:800;text-decoration:none;display:inline-flex}.warning-banner{border:1px solid color-mix(in srgb, var(--color-warning) 42%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface));color:var(--color-text-primary);border-radius:14px;padding:12px 14px}.homework-template-notice,.homework-archive-tools{gap:var(--space-3);margin-block:var(--space-4);border:1px solid color-mix(in srgb, var(--color-brand-primary) 36%, var(--color-border-subtle));border-radius:var(--radius-card);padding:var(--space-4);background:linear-gradient(145deg, var(--color-brand-soft), var(--color-surface));box-shadow:var(--shadow-card);display:grid}.homework-template-notice :is(h2,p),.homework-archive-tools :is(h2,p){margin:0}.homework-template-notice h2,.homework-archive-tools h2{font-size:var(--font-size-section-title)}.homework-archive-tools-copy{gap:var(--space-2);display:grid}.homework-archive-year{gap:var(--space-2);font-weight:750;display:grid}.homework-archive-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.homework-archive-actions button{min-width:0}.homework-archive-note{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.authoring-form{min-width:0}.authoring-card{gap:18px;min-width:0;display:grid}.form-field{gap:7px;min-width:0;display:grid}.form-field>label{font-weight:850}.form-field select,.form-field input,.form-field textarea{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-width:0;color:var(--color-text-primary);border-radius:14px;padding:11px 12px}.form-field textarea{resize:vertical;overflow-wrap:anywhere;min-height:180px;max-height:48dvh;line-height:1.5}.form-field [aria-invalid=true]{border-color:var(--color-danger)}.field-description,.timezone-note{color:var(--color-text-secondary);margin:0;font-size:.8rem;line-height:1.4}.field-meta{color:var(--color-text-secondary);flex-wrap:wrap;justify-content:space-between;gap:6px 12px;font-size:.78rem;display:flex}.field-error{color:var(--color-danger);font-size:.8rem;font-weight:750}.authoring-actions{z-index:9;bottom:calc(72px + env(safe-area-inset-bottom));border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:9px;margin-top:16px;padding:10px;display:grid;position:sticky;box-shadow:0 -8px 28px #22315f1f}.authoring-actions button{min-width:0}.form-feedback{min-height:24px;color:var(--color-danger);margin-top:8px;font-weight:750}.authoring-scope{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:0;display:grid}.authoring-scope div{background:color-mix(in srgb, var(--color-brand-primary) 7%, var(--color-surface));border-radius:13px;min-width:0;padding:10px}.authoring-scope dt{color:var(--color-text-secondary);font-size:.74rem}.authoring-scope dd{overflow-wrap:anywhere;margin:3px 0 0;font-weight:850}.readonly-notice{border-left:4px solid var(--color-danger);padding-left:12px;font-weight:750;line-height:1.45}.material-section,.material-picker{gap:12px;min-width:0;margin-bottom:14px;display:grid}.material-picker{border-top:1px solid var(--color-border-subtle);padding-top:16px}.material-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.material-heading h2,.material-heading p{margin:0}.material-heading p{color:var(--color-text-secondary);margin-top:4px;font-size:.8rem;line-height:1.45}.material-heading>span{background:color-mix(in srgb, var(--color-surface) 88%, var(--color-background));border-radius:999px;flex:none;padding:3px 8px;font-weight:800}.visually-hidden-file{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-picker-button{border:1px solid var(--color-brand-primary);min-height:44px;color:var(--color-brand-primary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-weight:800;display:inline-flex}.file-picker-button.is-disabled{cursor:not-allowed;opacity:.55}.visually-hidden-file:focus-visible+.file-picker-button,.file-picker-button:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:3px}.material-list,.material-local-list{gap:10px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.material-item,.material-local-item{border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 88%, var(--color-background));border-radius:12px;gap:10px;min-width:0;padding:10px;display:grid}.material-preview-link{width:100%;min-width:0;display:block}.material-preview{object-fit:contain;background:var(--color-surface);border-radius:9px;width:100%;max-width:100%;max-height:280px;display:block}.material-info{gap:3px;min-width:0;display:grid}.material-name{overflow-wrap:anywhere;word-break:break-word;font-weight:800}.material-meta,.material-total{color:var(--color-text-secondary);font-size:.78rem}.material-total{margin:0}.material-actions{flex-wrap:wrap;gap:8px;display:flex}.material-actions>*{flex:120px;min-height:44px}.material-local-item progress{width:100%;min-height:8px}@media (width>=640px){.material-item{grid-template-columns:minmax(0,120px) minmax(0,1fr) auto;align-items:center}.material-item:not(:has(.material-preview-link)){grid-template-columns:minmax(0,1fr) auto}.material-actions>*{flex:none}}@media (width<=430px){.material-section,.material-picker{max-width:100%}.material-actions{grid-template-columns:1fr;display:grid}.authoring-actions{padding-bottom:max(12px, env(safe-area-inset-bottom))}}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.compact-details{grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:7px 10px;margin:12px 0;font-size:.82rem;display:grid}.compact-details dt{color:var(--color-text-secondary)}.compact-details dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:750}.section-title{margin:20px 0 11px}.teacher-review-panel{z-index:10;bottom:calc(72px + env(safe-area-inset-bottom));border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:18px;gap:10px;margin-top:16px;padding:14px;display:grid;position:sticky;box-shadow:0 -8px 28px #22315f1f}.teacher-review-panel h2{margin:0}.review-action-buttons{gap:8px;display:grid}.review-result:empty,.review-feedback:empty,.attachment-error:empty{display:none}.review-feedback{margin:0 0 12px}.dialog-field{gap:7px;margin:14px 0;font-weight:800;display:grid}.dialog-field textarea{resize:vertical;border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:132px;max-height:38dvh;color:var(--color-text-primary);font:inherit;border-radius:14px;padding:12px;line-height:1.45}.grade-picker{border:0;margin:0;padding:0}.grade-picker legend{margin-bottom:8px;font-weight:700}.grade-picker-options{grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px;display:grid}.grade-picker-options label{min-width:0;position:relative}.grade-picker-options .grade-picker-ungraded{grid-column:1/-1}@media (width<=360px){.grade-picker-options{gap:4px}}.grade-picker-options input{z-index:1;opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.grade-picker-options span{border:1px solid var(--color-border-subtle);background:var(--color-surface);cursor:pointer;border-radius:10px;place-items:center;min-height:44px;font-weight:800;display:grid}.grade-picker-options input:focus-visible+span{outline:3px solid var(--color-brand-primary);outline-offset:2px}.grade-picker-options input:checked+span{border-color:var(--color-brand-primary);background:var(--color-background)}.reward-preview{border:1px solid var(--color-border-subtle);background:var(--color-background);border-radius:12px;padding:12px}.reward-preview p{margin:6px 0}.review-dialog{overscroll-behavior:contain;scroll-padding-bottom:18px}@media (width>=520px){.segmented-control{grid-template-columns:repeat(4,minmax(0,1fr))}.review-action-buttons{grid-template-columns:1fr 1fr}.teacher-review-panel,.authoring-actions{position:static}}@media (width<=370px){.compact-details{grid-template-columns:1fr;gap:3px}.compact-details dd+dt{margin-top:6px}.teacher-review-panel{margin-left:-2px;margin-right:-2px}.authoring-actions,.authoring-scope{grid-template-columns:1fr}}.level-tier-start{--level-accent:var(--color-level-start);--level-accent-soft:color-mix(in srgb, var(--color-route-future) 18%, var(--color-surface))}.level-tier-bronze{--level-accent:var(--color-level-bronze);--level-accent-soft:color-mix(in srgb, var(--color-level-bronze-highlight) 15%, var(--color-surface))}.level-tier-pro{--level-accent:var(--color-brand-primary);--level-accent-soft:var(--color-brand-soft)}.level-tier-gold{--level-accent:var(--color-level-gold);--level-accent-soft:var(--color-reward-soft)}.level-tier-legend{--level-accent:var(--color-level-legend);--level-accent-soft:color-mix(in srgb, var(--color-level-legend) 12%, var(--color-surface))}.progress-page-heading h1:focus{outline:none}.student-home-flow{gap:18px;display:grid}.progress-section{margin-top:24px}.progress-section>h2{margin-bottom:12px}.attention-card,.level-progress-card,.parent-learning-summary,.parent-child-summary-card{overflow-wrap:anywhere;border-radius:22px;padding:19px}.attention-card{border:1px solid color-mix(in srgb, var(--color-brand-primary) 28%, var(--color-border-subtle));background:var(--color-surface);box-shadow:var(--shadow-card)}.attention-card h2{margin-bottom:7px;font-size:clamp(1.15rem,5vw,1.45rem)}.attention-subject{color:var(--color-text-primary);margin-bottom:8px;font-weight:800}.attention-returned,.attention-overdue{border-left:5px solid var(--color-warning)}.progress-primary{width:100%;margin-top:14px}.level-progress-card{border:1px solid color-mix(in srgb, var(--level-accent) 34%, var(--color-border-subtle));background:var(--level-accent-soft);box-shadow:var(--shadow-card)}.level-heading{grid-template-columns:auto minmax(0,1fr);justify-content:start;align-items:center;gap:14px;display:grid}.level-emblem{flex:none;width:72px;height:72px}.level-pin-artwork{filter:drop-shadow(0 5px 6px #073a592e);display:block;position:relative;overflow:visible}.level-pin-artwork img{object-fit:contain;width:100%;height:100%;display:block}.level-heading-copy{min-width:0}.level-heading-copy p{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:3px 0 0}.level-heading-copy h2{overflow-wrap:anywhere;margin:0}.level-visual-reward{border-top:1px solid color-mix(in srgb, var(--level-accent) 28%, var(--color-border-subtle));grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px;margin-top:16px;padding-top:14px;display:grid}.level-visual-reward>svg{color:var(--level-accent);margin-top:1px}.level-visual-reward>span{color:var(--color-text-secondary);font-size:var(--font-size-secondary);gap:2px;display:grid}.level-visual-reward strong{color:var(--color-text-primary)}.section-heading-row,.result-heading{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.level-heading h2{margin-bottom:0;font-size:clamp(1.35rem,6vw,1.75rem)}.level-progress-track{background:color-mix(in srgb, var(--color-text-secondary) 18%, var(--color-surface));border-radius:999px;height:12px;margin:18px 0 9px;overflow:hidden}.level-progress-fill{border-radius:inherit;background:var(--level-accent);width:100%;height:100%;transform:scaleX(var(--progress-value));transform-origin:0;transition:transform .45s ease-out;display:block}.level-remaining{color:var(--color-text-secondary);margin-bottom:4px}.level-next-reward{color:var(--color-text-primary);font-size:var(--font-size-secondary);margin-bottom:13px;font-weight:750}.progress-metrics{flex-wrap:wrap;gap:8px 16px;display:flex}.progress-metric{min-width:0;color:var(--color-text-secondary);align-items:center;gap:7px;display:inline-flex}.progress-metric>span:first-child{background:color-mix(in srgb, var(--level-accent) 12%, var(--color-surface));width:25px;height:25px;color:var(--level-accent);border-radius:8px;flex:none;place-items:center;display:grid}.progress-metric strong{color:var(--color-text-primary)}.ranking-summary{margin-bottom:var(--space-5);border-block:1px solid var(--color-border-strong);background:color-mix(in srgb, var(--color-brand-soft) 72%, transparent);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ranking-summary>div{min-width:0;padding:var(--space-4);gap:3px;display:grid}.ranking-summary>div+div{border-left:1px solid var(--color-border-strong)}.ranking-summary span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.ranking-summary strong{font-variant-numeric:tabular-nums;font-size:clamp(1.15rem,5vw,1.45rem)}.ranking-tabs{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ranking-tabs button{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;color:var(--color-text-secondary)}.ranking-tabs button[aria-selected=true]{border-color:color-mix(in srgb, var(--color-brand-primary) 42%, var(--color-border-subtle));background:var(--color-brand-soft);color:var(--color-brand-strong)}.ranking-section{margin-top:var(--space-5)}.ranking-heading{justify-content:space-between;align-items:end;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.ranking-heading h2,.ranking-heading p{margin:0}.ranking-heading p{color:var(--color-text-secondary);font-size:var(--font-size-secondary);margin-top:3px}.ranking-heading>span{color:var(--color-text-secondary);font-size:var(--font-size-caption);flex:none;font-weight:750}.ranking-list{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;margin:0;padding:0;list-style:none;overflow:hidden}.ranking-list>li+li{border-top:1px solid var(--color-border-subtle)}.ranking-row{align-items:center;gap:var(--space-3);min-height:72px;padding:var(--space-3) var(--space-4);grid-template-columns:38px 48px minmax(0,1fr) auto;display:grid}.ranking-row.is-current,.ranking-class-row.is-current{background:var(--color-brand-soft)}.ranking-position{background:var(--color-surface-secondary);width:32px;height:32px;color:var(--color-text-primary);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;font-weight:850;display:grid}.ranking-level-pin{width:46px;height:46px}.ranking-copy,.ranking-score,.ranking-class-copy,.ranking-class-average{gap:2px;min-width:0;display:grid}.ranking-copy small,.ranking-score small,.ranking-class-copy small,.ranking-class-average small{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.ranking-copy strong,.ranking-class-copy strong{overflow-wrap:anywhere}.ranking-score,.ranking-class-average{font-variant-numeric:tabular-nums;justify-items:end}.ranking-class-row{align-items:center;gap:var(--space-3);padding:var(--space-4);grid-template-columns:38px minmax(0,1fr) auto;display:grid}.ranking-class-row .ui-progress{width:100%;margin-top:var(--space-1);grid-column:2/-1}.ranking-privacy-note{margin:var(--space-4) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-caption)}@media (width<=380px){.ranking-row{gap:var(--space-2);padding-inline:var(--space-3);grid-template-columns:32px 42px minmax(0,1fr)}.ranking-level-pin{width:40px;height:40px}.ranking-score{grid-column:3;grid-auto-flow:column;justify-content:start;justify-items:start;gap:4px}.ranking-class-row{padding-inline:var(--space-3);grid-template-columns:32px minmax(0,1fr)}.ranking-class-average{grid-column:2;grid-auto-flow:column;justify-content:start;justify-items:start;gap:4px}.ranking-class-row .ui-progress{grid-column:2}}.result-list{gap:11px;display:grid}.result-summary-card,.history-item{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:17px;min-width:0;padding:15px}.result-heading>div{min-width:0}.result-heading h3,.history-item h3,.achievement-summary h3{overflow-wrap:anywhere;margin:0 0 4px;font-size:1rem}.result-heading p,.result-date,.history-item p,.achievement-summary p{color:var(--color-text-secondary);margin-bottom:6px}.grade-label{background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface));white-space:nowrap;border-radius:10px;flex:none;padding:7px 9px;font-size:.82rem}.reward-delta{margin:9px 0 5px;font-weight:800}.reward-positive{color:var(--color-success)}.reward-negative{color:var(--color-warning)}.reward-zero{color:var(--color-text-secondary)}.teacher-comment{border-left:3px solid var(--color-border-subtle);overflow-wrap:anywhere;padding-left:10px}.section-heading-row{align-items:baseline;margin-bottom:12px}.section-heading-row h2{margin-bottom:0}.section-heading-row a{flex:none;font-size:.86rem;font-weight:800}.achievement-strip{gap:9px;display:grid}.achievement-summary{border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-reward) 7%, var(--color-surface));border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;padding:13px 14px;display:grid}.achievement-summary>span{font-size:1.45rem}.secondary-progress-link{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-height:52px;color:var(--color-text-primary);border-radius:17px;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding:12px 15px;font-weight:800;text-decoration:none;display:flex}.progress-filters{flex-wrap:wrap;gap:7px;margin:0 -2px 18px;padding:2px;display:flex}.filter-chip{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);white-space:nowrap;border-radius:999px;flex:none;padding:8px 13px}.filter-chip.active{border-color:var(--color-brand-primary);background:color-mix(in srgb, var(--color-brand-primary) 12%, var(--color-surface));color:var(--color-brand-primary)}.history-groups,.history-list{gap:12px;display:grid}.history-group>h2{color:var(--color-text-secondary);margin:20px 0 10px;font-size:.9rem}.history-item{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;display:grid}.history-copy{min-width:0}.history-item time{color:var(--color-text-secondary);font-size:.78rem}.history-item .card-link{grid-column:1/-1}.history-subject{overflow-wrap:anywhere;font-weight:800}.load-more-button{width:100%;margin-top:18px}.inline-error{color:var(--color-danger);margin-top:15px}.progress-empty{box-shadow:none}.notification-center{min-width:0}.notification-heading-row{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;margin-bottom:4px;display:flex}.notification-heading-row .page-heading{min-width:0;margin-bottom:10px}.notification-heading-row .page-heading p{overflow-wrap:anywhere}.mark-all-button{white-space:nowrap;flex:none;min-width:44px;padding:9px 10px}.notification-filters{scrollbar-width:none;gap:8px;margin-bottom:18px;display:flex;overflow-x:auto}.notification-filters::-webkit-scrollbar{display:none}.notification-group{margin-top:22px}.notification-group>h2{color:var(--color-text-secondary);margin-bottom:9px;font-size:.9rem}.notification-list{gap:9px;display:grid}.notification-item{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;min-height:68px;color:var(--color-text-primary);overflow-wrap:anywhere;border-radius:18px;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:14px;text-decoration:none;display:grid}.notification-item.unread{border-left:5px solid var(--color-brand-primary);background:color-mix(in srgb, var(--color-brand-primary) 7%, var(--color-surface))}.notification-item:focus-visible{outline-offset:2px}.notification-icon{background:color-mix(in srgb, var(--color-brand-primary) 10%, var(--color-surface));border-radius:13px;place-items:center;width:42px;height:42px;font-size:1.1rem;display:grid}.notification-copy{gap:4px;min-width:0;display:grid}.notification-title{font-weight:900;line-height:1.25}.notification-body{color:var(--color-text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.notification-copy time{color:var(--color-text-secondary);font-size:.78rem}.notification-cta{width:fit-content;color:var(--color-brand-primary);font-size:var(--font-size-secondary);font-weight:750}.unread-text{background:color-mix(in srgb, var(--color-brand-primary) 13%, var(--color-surface));color:var(--color-brand-primary);border-radius:999px;justify-self:start;padding:2px 7px;font-size:.72rem;font-weight:800}.notification-unavailable{border-style:dashed}.notification-empty{box-shadow:none}@media (width<=390px){.notification-heading-row{display:grid}.mark-all-button{justify-self:start}.header-actions{gap:5px}.text-button{padding-left:12px;padding-right:12px}}.parent-children-grid{gap:15px;display:grid}.parent-child-summary-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);box-shadow:var(--shadow-card);gap:11px;display:grid}.parent-child-summary-card h2{margin-bottom:0;font-size:1.2rem}.parent-child-summary-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.parent-child-summary-heading p{color:var(--color-text-secondary);margin:3px 0 0}.parent-child-level{border-radius:var(--radius-round);background:var(--color-brand-soft);color:var(--color-brand-strong);font-size:var(--font-size-caption);flex:none;padding:5px 9px;font-weight:800}.parent-child-rank{font-size:1rem}.parent-child-motivation-metrics{border-block:1px solid var(--color-border-subtle);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.parent-child-motivation-metrics>div{min-width:0;padding:var(--space-3) var(--space-2)}.parent-child-motivation-metrics>div+div{border-left:1px solid var(--color-border-subtle)}.parent-child-motivation-metrics dt{color:var(--color-text-secondary);font-size:.68rem}.parent-child-motivation-metrics dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-weight:850}.parent-attention-line{margin:0;font-weight:800}.parent-summary-metrics,.parent-learning-summary dl{gap:9px;margin:0;display:grid}.parent-summary-metrics>div,.parent-learning-summary dl>div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:9px;display:grid}.parent-summary-metrics dt,.parent-learning-summary dt{color:var(--color-text-secondary)}.parent-summary-metrics dd,.parent-learning-summary dd{text-align:right;margin:0;font-weight:800}.parent-learning-summary{border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-brand-primary) 5%, var(--color-surface));margin:18px 0}.parent-learning-summary h2{margin-bottom:14px}@media (width>=640px){.parent-children-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.level-progress-compact .progress-primary{width:auto}}@media (width<=360px){.attention-card,.level-progress-card,.parent-learning-summary,.parent-child-summary-card{padding:15px}.level-heading,.result-heading{align-items:flex-start}.grade-label{white-space:normal;text-align:right}}@media (prefers-reduced-motion:reduce){.level-progress-fill{transition:none}}.journal-option-list,.journal-entry-list{gap:12px;display:grid}.journal-mobile-list{gap:10px;margin:16px 0;display:grid}.journal-assessment-card{border:1px solid var(--color-border-subtle);color:inherit;border-radius:12px;gap:4px;padding:14px;text-decoration:none;display:grid}.journal-assessment-card span{color:var(--color-text-secondary);font-size:.9rem}.journal-matrix-wrap{max-width:100%;margin-top:16px;overflow:auto}.journal-matrix{border-collapse:separate;border-spacing:0;width:100%;min-width:700px}.journal-matrix th,.journal-matrix td{border-bottom:1px solid var(--color-border-subtle);text-align:left;padding:10px}.journal-matrix thead th{background:var(--color-surface);z-index:1;position:sticky;top:0}.journal-matrix tbody th{background:var(--color-surface);z-index:1;position:sticky;left:0}.journal-matrix small{color:var(--color-text-secondary);font-weight:400;display:block}.journal-form{gap:14px;max-width:540px;display:grid}.journal-form label{gap:6px;font-weight:600;display:grid}.journal-form input,.journal-form select,.journal-entry select{border:1px solid var(--color-border-subtle);min-height:44px;font:inherit;border-radius:8px;padding:8px}.journal-entry{border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) minmax(150px,220px);align-items:center;gap:12px;padding:12px;display:grid}.journal-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}@media (width<=600px){.journal-matrix-wrap{display:none}.journal-entry{grid-template-columns:1fr}.journal-mobile-list{margin-top:18px}}@media (width>=601px){.journal-mobile-list{display:none}}.subject-list,.subject-results{gap:12px;display:grid}.subject-card{border:1px solid var(--color-border-subtle);color:inherit;border-radius:12px;padding:15px;text-decoration:none;display:block}.subject-card h2{margin:0 0 8px}.subject-card p{margin:4px 0}.subject-card small{color:var(--color-text-secondary);margin-top:6px;display:block}.attention-copy{color:var(--color-warning)!important}.subject-distribution{border:1px solid var(--color-border-subtle);border-radius:12px;margin:18px 0;padding:16px}.subject-distribution p{margin:8px 0}.teacher-schedule-list,.attendance-roster{gap:12px;min-width:0;display:grid}.teacher-lesson-card{grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;min-width:0;display:grid}.teacher-lesson-card .card-link{white-space:nowrap;align-self:center}.teacher-lesson-card.is-joint{background:var(--color-info-soft)}.teacher-joint-label{border-radius:var(--radius-round);background:var(--color-surface);width:fit-content;min-height:28px;color:var(--color-info);align-items:center;padding-inline:9px;font-size:.74rem;font-weight:850;display:inline-flex}.teacher-joint-actions{gap:6px;min-width:150px;display:grid}.teacher-joint-actions a{background:var(--color-surface);min-height:44px;color:var(--color-text-primary);border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.teacher-joint-actions a:hover{color:var(--color-info)}.teacher-joint-actions small{color:var(--color-text-secondary);font-weight:750}.teacher-joint-switcher{border-radius:var(--radius-card);background:var(--color-info-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-block:12px 18px;padding:12px;display:flex}.teacher-joint-switcher>strong{font-size:.84rem}.teacher-joint-switcher>div{flex-wrap:wrap;gap:6px;display:flex}.teacher-joint-switcher a{border-radius:var(--radius-round);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);align-content:center;padding-inline:12px;font-size:.8rem;font-weight:800;text-decoration:none}.teacher-joint-switcher a[aria-current=page]{background:var(--color-info);color:var(--color-on-brand)}.teacher-school-events{gap:10px;margin:18px 0;display:grid}.teacher-school-events>h2{margin-bottom:2px}.teacher-school-event{border-color:color-mix(in srgb, var(--color-brand-primary) 24%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-brand-primary) 4%, var(--color-surface));gap:8px;display:grid}.teacher-school-event h3,.teacher-school-event p{margin:0}.teacher-school-event.is-cancelled{opacity:.72}.teacher-event-time{color:var(--color-text-secondary);font-weight:750}.attendance-state{background:color-mix(in srgb, var(--color-text-secondary) 10%, var(--color-surface));width:fit-content;color:var(--color-text-secondary);border-radius:999px;padding:5px 9px;font-size:.82rem;font-weight:800;display:inline-flex}.attendance-state.is-draft{background:color-mix(in srgb, var(--color-warning) 12%, var(--color-surface));color:var(--color-warning-strong)}.attendance-state.is-published{background:color-mix(in srgb, var(--color-success) 12%, var(--color-surface));color:var(--color-success-strong)}.upcoming-lesson{gap:5px;margin:18px 0;display:grid}.lesson-summary-card{margin-bottom:18px}.attendance-heading{justify-content:space-between;align-items:flex-start;gap:14px;min-width:0;display:flex}.attendance-heading>div{min-width:0}.attendance-heading h1,.attendance-heading p,.attendance-student-name{overflow-wrap:anywhere}.attendance-progress{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:14px;display:flex}.attendance-progress time{color:var(--color-text-secondary);font-size:.84rem}.attendance-toolbar{gap:12px;margin-bottom:16px;display:grid}.attendance-filters{scrollbar-width:none;gap:8px;max-width:100%;display:flex;overflow-x:auto}.attendance-filters::-webkit-scrollbar{display:none}.attendance-student{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;grid-template-columns:minmax(160px,1fr) minmax(180px,.8fr);align-items:center;gap:12px 18px;min-width:0;padding:14px;display:grid}.attendance-student-name{gap:4px;min-width:0;display:grid}.attendance-student-name span,.attendance-student-name small{color:var(--color-text-secondary)}.attendance-picker select,.attendance-note input,.correction-dialog textarea{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:44px;color:var(--color-text-primary);font:inherit;border-radius:10px;padding:9px 11px}.attendance-note{color:var(--color-text-secondary);grid-column:1/-1;gap:5px;font-size:.84rem;display:grid}.attendance-actions{z-index:4;bottom:calc(72px + env(safe-area-inset-bottom));border:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 94%, transparent);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;padding:12px;display:grid;position:sticky}.unsaved-indicator{color:var(--color-warning-strong);grid-column:1/-1;margin:0;font-weight:700}.publish-validation{color:var(--color-danger);grid-column:1/-1;justify-content:space-between;align-items:center;gap:8px;display:flex}.attendance-summary{gap:8px;display:grid}.attendance-summary div{grid-template-columns:minmax(0,1fr) auto;gap:12px;display:grid}.attendance-summary dd{margin:0;font-weight:800}.correction-dialog form{gap:14px;display:grid}.correction-dialog textarea{resize:vertical;min-height:100px}@media (width<=600px){.teacher-lesson-card,.attendance-student{grid-template-columns:1fr}.teacher-lesson-card .card-link{text-align:center;justify-self:stretch}.attendance-heading,.attendance-progress{display:grid}.attendance-actions{grid-template-columns:1fr}.publish-validation{grid-column:1;display:grid}}@media (width<=360px){.attendance-student,.teacher-lesson-card{padding:12px}.attendance-filters{margin-right:-4px}}@media (prefers-reduced-motion:reduce){.attendance-actions{-webkit-backdrop-filter:none;backdrop-filter:none}}.calendar-heading h1,.agenda-copy,.agenda-copy h4,.attendance-history-item{overflow-wrap:anywhere;min-width:0}.calendar-toolbar,.week-controls{align-items:center;gap:10px;display:flex}.calendar-toolbar{justify-content:space-between;margin-bottom:12px}.calendar-toolbar button,.week-controls button{min-width:44px;min-height:44px}.calendar-day{margin-top:20px}.calendar-change-summary{border:1px solid color-mix(in srgb, var(--color-warning) 28%, var(--color-border-subtle));border-radius:var(--radius-lg);background:var(--color-warning-soft);color:var(--color-text-primary);gap:3px;margin-top:14px;padding:12px 14px;display:grid}.calendar-change-summary span{color:color-mix(in srgb, var(--color-warning) 62%, var(--color-text-primary));font-size:var(--font-size-secondary)}.parent-week-summary{gap:var(--space-3);margin-top:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.parent-week-summary h2{margin:0;font-size:1rem}.parent-week-summary dl{border-radius:var(--radius-md);background:var(--color-border-subtle);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.parent-week-summary dl div{background:var(--color-surface-secondary);min-width:0;padding:10px}.parent-week-summary dt{color:var(--color-text-secondary);font-size:.75rem}.parent-week-summary dd{margin:3px 0 0;font-size:1.15rem;font-weight:900}.calendar-agenda,.agenda-group,.agenda-list,.attendance-history-groups,.attendance-history-groups ul{gap:12px;display:grid}.agenda-list,.attendance-history-groups ul,.today-compact ul{margin:0;padding:0;list-style:none}.agenda-group h3{color:var(--color-text-secondary);letter-spacing:.03em;text-transform:uppercase;margin:4px 0 0;font-size:.86rem}.agenda-item{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;grid-template-columns:76px minmax(0,1fr) auto;align-items:start;gap:14px;min-width:0;padding:14px;display:grid}.agenda-routine_block{background:color-mix(in srgb, var(--color-brand-soft) 45%, var(--color-surface))}.agenda-item.has-change{border-color:color-mix(in srgb, var(--color-warning) 34%, var(--color-border-subtle));background:var(--color-warning-soft)}.agenda-item.is-cancelled{border-color:color-mix(in srgb, var(--color-danger) 32%, var(--color-border-subtle));background:var(--color-danger-soft)}.is-school-event-query-target{outline:3px solid color-mix(in srgb, var(--color-brand-primary) 72%, transparent);outline-offset:3px;animation:1.8s ease-out both school-event-query-highlight}@keyframes school-event-query-highlight{0%{box-shadow:0 0 0 7px color-mix(in srgb, var(--color-brand-primary) 22%, transparent)}to{box-shadow:0 0 #0000}}.agenda-time{color:var(--color-text-secondary);font-weight:800}.agenda-copy{gap:4px;display:grid}.agenda-copy h4,.agenda-copy p{margin:0}.agenda-type{color:var(--color-text-secondary);font-size:.78rem;font-weight:800}.agenda-status{font-weight:800;margin-top:4px!important}.agenda-actions{flex-direction:column;align-items:stretch;gap:4px;min-width:116px;display:flex}.agenda-action{align-content:center;min-height:44px;padding:0 6px;font-weight:800}.attendance-history-filters{scrollbar-width:none;gap:8px;max-width:100%;margin-bottom:16px;display:flex;overflow-x:auto}.attendance-history-filters::-webkit-scrollbar{display:none}.attendance-history-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 22px;display:grid}.attendance-history-summary>div{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:14px;gap:5px;padding:12px;display:grid}.attendance-history-summary dt{color:var(--color-text-secondary);font-size:.82rem}.attendance-history-summary dd{margin:0;font-size:1.3rem;font-weight:900}.attendance-history-groups>section{gap:9px;display:grid}.attendance-history-item{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:15px;grid-template-columns:minmax(0,1fr) auto;gap:7px 14px;padding:14px;display:grid}.attendance-history-item h3,.attendance-history-item p{margin:0}.attendance-history-item time{color:var(--color-text-secondary)}.attendance-history-status{text-align:right;font-weight:900}.attendance-history-item>p:not(.attendance-history-status),.attendance-history-item>a{grid-column:1/-1}.today-compact{border-top:1px solid var(--color-border-subtle);gap:10px;padding-top:18px;display:grid}.today-compact ul{gap:8px;display:grid}.today-compact li{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.today-compact li>div{gap:2px;min-width:0;display:grid}.today-compact li strong{overflow-wrap:anywhere}.today-compact li span{color:var(--color-text-secondary);font-size:.84rem}.today-compact li a{align-content:center;min-height:44px}@media (width<=600px){.agenda-item{grid-template-columns:64px minmax(0,1fr)}.agenda-actions{flex-flow:wrap;grid-column:2;justify-self:stretch;min-width:0}.agenda-actions>*{flex:132px}.attendance-history-summary,.parent-week-summary dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=340px){.agenda-item{grid-template-columns:1fr;padding:12px}.agenda-actions{grid-column:1}.attendance-history-summary,.attendance-history-item{grid-template-columns:1fr}.attendance-history-status{text-align:left}}@media (prefers-reduced-motion:reduce){.agenda-item,.today-compact{scroll-behavior:auto}.is-school-event-query-target{box-shadow:0 0 0 3px color-mix(in srgb, var(--color-brand-primary) 18%, transparent);animation:none}}.event-list{gap:12px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.event-card{overflow-wrap:anywhere;gap:10px;min-width:0;display:grid}.event-card.status-cancelled{opacity:.78}.event-card-heading{justify-content:space-between;align-items:flex-start;gap:10px;min-width:0;display:flex}.event-card-heading>div{min-width:0}.event-card-heading h2{margin-bottom:0}.event-card time{color:var(--color-text-secondary);font-weight:750}.event-form textarea,.submit-dialog textarea{resize:vertical;border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:100px;color:var(--color-text-primary);border-radius:14px;padding:11px 12px}.event-fieldset{border:1px solid var(--color-border-subtle);border-radius:16px;gap:10px;min-width:0;padding:13px;display:grid}.event-fieldset legend{padding:0 5px;font-weight:850}.choice-row{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.choice-row input{flex:none;width:20px;height:20px}.event-choice-grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:4px 12px;display:grid}.event-lifecycle-actions{padding-bottom:env(safe-area-inset-bottom);flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.event-lifecycle-actions button{min-height:44px}.event-secondary-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.event-secondary-actions button{min-height:44px}.event-revision-history{border-top:1px solid var(--color-border-subtle);margin-top:24px;padding-top:18px}.event-revision-history ol{gap:12px;margin:12px 0 0;padding:0;list-style:none;display:grid}.event-revision-history li{border-bottom:1px solid var(--color-border-subtle);padding-bottom:12px}.event-revision-history li:last-child{border-bottom:0;padding-bottom:0}.event-revision-history time,.event-revision-history small{color:var(--color-text-secondary)}.event-revision-history p{margin:4px 0;font-weight:750}.event-details dd{overflow-wrap:anywhere}.field-hint{color:var(--color-text-secondary);margin-top:-7px;font-size:.82rem}.journal-comment-editor,.journal-comment-field,.journal-comment-text{grid-column:1/-1;min-width:0}.journal-comment-editor{justify-items:start;gap:8px;display:grid}.journal-comment-toggle{min-height:44px}.journal-comment-field{gap:6px;width:100%;font-weight:600;display:grid}.journal-comment-field textarea{resize:vertical;border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:92px;color:inherit;font:inherit;border-radius:8px;padding:10px}.journal-comment-field small{color:var(--color-text-secondary);justify-self:end;font-weight:400}.journal-comment-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.journal-actions .unsaved-indicator{flex-basis:100%}.pvp-list,.pvp-actions{gap:12px;min-width:0;display:grid}.pvp-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.pvp-option{overflow-wrap:anywhere;text-align:left;width:100%;min-height:44px;margin-block:8px;display:block}.pvp-list .card,.student-arena-home{overflow-wrap:anywhere}.student-arena-home .button{min-height:44px}@media (width<=340px){.pvp-actions{grid-template-columns:1fr}}@media (width<=370px){.event-card-heading{display:grid}.event-choice-grid{grid-template-columns:1fr}}.student-ai-entry,.ai-quota-card{gap:.8rem;display:grid}.student-ai-entry h2,.student-ai-entry p,.ai-quota-card span{margin:0}.ai-quota-card a,.student-ai-entry>a{justify-self:start}.ai-conversation-section,.ai-privacy-note,.ai-context-picker,.ai-composer,.ai-conversation-controls{margin-top:1rem}.ai-conversation-list,.ai-message-list{gap:.75rem;padding:0;list-style:none;display:grid}.ai-conversation-list a{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:inherit;border-radius:16px;gap:.25rem;padding:1rem;text-decoration:none;display:grid}.ai-conversation-list span,.ai-privacy-note{color:var(--color-text-secondary)}.ai-context-picker{border:0;gap:.75rem;min-width:0;padding:0;display:grid}.ai-context-picker label{border:1px solid var(--color-border-subtle);border-radius:16px;align-items:flex-start;gap:.75rem;padding:1rem;display:flex}.ai-context-picker label span{gap:.3rem;display:grid}.ai-homework-picker{margin-block:1rem}.ai-message{overflow-wrap:anywhere;white-space:pre-wrap;border-radius:1rem;max-width:min(88%,42rem);padding:.85rem 1rem}.ai-message p{margin:.35rem 0 0}.ai-message-user{background:color-mix(in srgb, var(--color-brand-primary) 14%, var(--color-surface));justify-self:end}.ai-message-assistant{background:var(--color-surface);border:1px solid var(--color-border-subtle);justify-self:start}.ai-message-blocked{border-color:var(--color-warning)}.ai-composer{bottom:calc(4.5rem + env(safe-area-inset-bottom));z-index:2;border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:18px;gap:.5rem;padding:1rem;display:grid;position:sticky}.ai-composer textarea{resize:vertical;width:100%;min-width:0}.ai-composer-actions,.ai-conversation-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.homework-ai-hint{margin-top:1rem;display:inline-flex}@media (width<=360px){.ai-message{max-width:96%}.ai-composer-actions>*{width:100%}}@media (prefers-reduced-motion:reduce){.ai-message,.ai-composer{scroll-behavior:auto;transition:none}}.control-grid,.control-list,.control-form,.control-filters,.control-actions,.control-inline-form{gap:12px;min-width:0;display:grid}.control-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr));margin-bottom:16px}.control-card,.control-person{color:inherit;overflow-wrap:anywhere;text-decoration:none}.control-card strong{font-size:1.5rem}.control-card span,.control-person span,.control-person small{margin-top:6px;display:block}.control-form label,.control-filters label,.control-inline-form label{gap:6px;min-width:0;font-weight:800;display:grid}.control-form input,.control-form select,.control-filters input,.control-filters select,.control-inline-form input{box-sizing:border-box;width:100%;min-width:0}.control-check{grid-template-columns:auto 1fr;align-items:center;min-height:44px}.control-check input{width:24px;height:24px}.control-feedback{background:var(--color-surface);border-radius:12px;padding:12px}.control-dialog-backdrop{z-index:110;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.control-dialog{width:min(100%,480px);max-height:calc(100dvh - 32px);overflow-y:auto}.control-secret{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all}.onboarding-page{place-items:center;min-height:100dvh;display:grid}@media (width>=620px){.control-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.control-inline-form{grid-template-columns:1fr auto;align-items:end}.control-actions{grid-auto-flow:column;justify-content:start}}@media (width<=340px){.control-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.control-dialog-backdrop,.control-card,.control-person{transition:none}}.chat-header-link{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:44px;min-height:44px;color:var(--color-text-primary);border-radius:14px;justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative}.chat-unread-badge{background:var(--color-danger);min-width:22px;min-height:22px;color:var(--color-on-brand);border-radius:999px;justify-content:center;align-items:center;padding:2px 6px;font-size:.75rem;font-weight:900;display:inline-flex}.chat-header-link .chat-unread-badge{position:absolute;top:-6px;right:-6px}.chat-heading,.chat-conversation-heading{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;min-width:0;display:flex}.chat-capability-note{background:color-mix(in srgb, var(--color-brand-primary) 8%, var(--color-surface));border-radius:12px;padding:10px 12px}.chat-conversation-list,.chat-contact-list{gap:10px;min-width:0;display:grid}.chat-conversation-card,.chat-contact-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;min-height:64px;color:var(--color-text-primary);overflow-wrap:anywhere;text-align:left;border-radius:18px;gap:5px;padding:14px;text-decoration:none;display:grid;position:relative}.chat-contact-card{cursor:pointer;width:100%}.chat-conversation-card time,.chat-context,.chat-preview,.chat-contact-card span{color:var(--color-text-secondary);font-size:.88rem}.chat-conversation-title{padding-right:36px;font-weight:900}.chat-conversation-card>.chat-unread-badge{position:absolute;top:12px;right:12px}.chat-status{background:var(--color-border-subtle);border-radius:999px;justify-self:start;padding:3px 8px;font-size:.78rem;font-weight:800}.chat-page{gap:14px;min-width:0;display:grid}.chat-message-list{flex-direction:column;gap:10px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.chat-message{border:1px solid var(--color-border-subtle);background:var(--color-surface);overflow-wrap:anywhere;border-radius:18px 18px 18px 6px;align-self:flex-start;gap:6px;width:min(88%,42rem);min-width:0;padding:12px 14px;display:grid}.chat-message.is-self{background:color-mix(in srgb, var(--color-brand-primary) 10%, var(--color-surface));border-radius:18px 18px 6px;align-self:flex-end}.chat-message p{white-space:pre-wrap;margin:0}.chat-sender{font-weight:900}.chat-message time{color:var(--color-text-secondary);font-size:.75rem}.chat-attachment-card{border:1px solid var(--color-border-subtle);background:var(--color-background);width:100%;max-width:100%;color:var(--color-text-primary);cursor:pointer;overflow-wrap:anywhere;text-align:left;border-radius:12px;padding:10px}.chat-file-picker{gap:6px;min-width:0;display:grid}.chat-file-picker input{max-width:100%;min-height:44px}.chat-selected-file{max-width:100%;color:var(--color-text-secondary);overflow-wrap:anywhere}.chat-composer{z-index:3;bottom:calc(4.75rem + env(safe-area-inset-bottom));border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:18px;gap:8px;min-width:0;padding:12px;display:grid;position:sticky}.chat-composer textarea{resize:vertical;width:100%;min-width:0}.chat-composer .button{justify-self:end}@media (width<=340px){.app-header{grid-template-columns:minmax(0,1fr)}.header-actions{flex-wrap:wrap;min-width:0}.school-switcher{grid-column:1}.chat-heading .button,.chat-composer .button{width:100%}.chat-message{width:96%}}@media (prefers-reduced-motion:reduce){.chat-page *,.chat-message-list{scroll-behavior:auto;transition:none}}.button{border-radius:14px;justify-content:center;align-items:center;min-height:44px;padding:11px 16px;font-weight:800;text-decoration:none;display:inline-flex}.button.primary{background:var(--color-brand-primary);color:var(--color-on-brand)}.button.secondary{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary)}.broadcast-heading,.broadcast-actions,.broadcast-list,.broadcast-compose,.broadcast-options{gap:12px;min-width:0;display:grid}.broadcast-heading .button{justify-self:start}.broadcast-history-card,.announcement-list-item{min-width:0;color:inherit;overflow-wrap:anywhere;gap:8px;text-decoration:none;display:grid}.broadcast-history-card p,.broadcast-history-card time,.announcement-list-item p,.announcement-list-item small{color:var(--color-text-secondary);margin:0}.broadcast-fieldset{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:20px;gap:14px;min-width:0;margin:0;padding:17px;display:grid}.broadcast-fieldset legend{padding-inline:6px;font-weight:900}.broadcast-fieldset small{color:var(--color-text-secondary);justify-self:end}.broadcast-counts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}.broadcast-counts div{background:color-mix(in srgb, var(--color-brand-primary) 7%, var(--color-surface));border-radius:14px;min-width:0;padding:12px}.broadcast-counts dt{color:var(--color-text-secondary);font-size:.78rem}.broadcast-counts dd{margin:4px 0 0;font-size:1.25rem;font-weight:900}.announcement-important{border-left:6px solid var(--color-warning)}.announcement-important:before{content:"Важное";background:var(--color-warning);color:var(--color-on-brand);letter-spacing:.04em;text-transform:uppercase;border-radius:999px;justify-self:start;padding:3px 9px;font-size:.72rem;font-weight:900}.announcement-body{overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.65;color:var(--color-text-primary)!important}.announcement-body a{color:var(--color-brand-strong);text-underline-offset:3px;font-weight:700;text-decoration:underline;text-decoration-thickness:1px}.announcement-detail{min-width:0}@media (width>=620px){.broadcast-heading{grid-template-columns:1fr auto;align-items:end}.broadcast-heading .button{justify-self:end}.broadcast-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.broadcast-counts{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=340px){.broadcast-actions,.broadcast-counts{grid-template-columns:1fr}.row-between{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){.broadcast-compose *,.announcement-list-item{scroll-behavior:auto;transition:none}}.shop-heading,.shop-actions,.shop-list,.shop-form,.shop-detail{gap:12px;min-width:0;display:grid}.shop-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:14px;display:grid}.shop-item-card,.shop-order-card{min-width:0;color:inherit;overflow-wrap:anywhere;gap:8px;text-decoration:none;display:grid}.shop-item-card img,.shop-detail img{object-fit:cover;border-radius:14px;width:100%;max-height:320px}.shop-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 16px;display:grid}.shop-summary div{background:var(--color-surface);border-radius:14px;padding:12px}.shop-summary dd{margin:4px 0 0;font-size:1.3rem;font-weight:900}.shop-form label,.shop-dialog label{gap:6px;font-weight:800;display:grid}.shop-form input,.shop-form textarea,.shop-dialog textarea{box-sizing:border-box;width:100%;min-width:0}.shop-dialog-backdrop{z-index:100;background:#0000008c;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.shop-dialog{width:min(100%,480px);max-height:calc(100dvh - 32px);overflow-y:auto}@media (width>=620px){.shop-heading{grid-template-columns:1fr auto;align-items:end}.shop-actions{grid-auto-flow:column;justify-content:start}.shop-summary{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=340px){.shop-actions,.shop-summary{grid-template-columns:1fr;grid-auto-flow:row}}@media (prefers-reduced-motion:reduce){.shop-dialog-backdrop,.shop-item-card,.shop-order-card{transition:none}}.ui-page-header,.ui-section-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.ui-page-header>div,.ui-section-header>div{min-width:0}.ui-page-header p,.ui-section-header p{color:var(--color-text-secondary);margin-bottom:0}.ui-page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-section-header{margin:var(--space-8) 0 var(--space-4)}.ui-section-header h2{margin-bottom:var(--space-1)}.ui-card-elevated{box-shadow:var(--shadow-elevated);border-color:#0000}.ui-interactive-card,.ui-action-tile,.ui-product-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary);transition:border-color var(--motion-fast) var(--ease-standard), background-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);text-decoration:none}.ui-interactive-card:hover,.ui-action-tile:hover,.ui-product-card:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary);transform:translateY(-1px)}.ui-interactive-card{align-items:center;gap:var(--space-3);border-radius:var(--radius-card);min-height:68px;padding:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ui-interactive-copy{gap:2px;min-width:0;display:grid}.ui-interactive-copy>span,.ui-interactive-copy small{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.ui-card-icon,.ui-action-icon,.ui-state-icon{background:var(--color-brand-soft);color:var(--color-brand-strong);place-items:center;display:grid}.ui-card-icon{border-radius:var(--radius-md);width:40px;height:40px}.ui-metric-card{align-items:center;gap:1px var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);min-width:0;padding:var(--space-4);background:var(--color-surface);grid-template-columns:auto 1fr;display:grid}.ui-metric-card svg{color:var(--tone-color,var(--color-brand-primary));grid-row:1/3}.ui-metric-card strong{font-size:1.25rem;line-height:1.2}.ui-metric-card span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.tone-neutral{--tone-color:var(--color-text-secondary);--tone-soft:var(--color-surface-secondary)}.tone-brand{--tone-color:var(--color-brand-strong);--tone-soft:var(--color-brand-soft)}.tone-success{--tone-color:var(--color-success);--tone-soft:var(--color-success-soft)}.tone-warning{--tone-color:var(--color-warning);--tone-soft:var(--color-warning-soft)}.tone-danger{--tone-color:var(--color-danger);--tone-soft:var(--color-danger-soft)}.tone-info{--tone-color:var(--color-info);--tone-soft:var(--color-info-soft)}.tone-reward{--tone-color:var(--color-reward);--tone-soft:var(--color-reward-soft)}.ui-action-tile{align-content:space-between;gap:var(--space-2);border-radius:var(--radius-lg);min-height:118px;padding:var(--space-4);display:grid}.ui-action-tile.is-primary{border-color:color-mix(in srgb, var(--color-brand-primary) 24%, var(--color-border-subtle));background:var(--color-brand-soft)}.ui-action-icon{border-radius:var(--radius-md);width:38px;height:38px}.ui-action-tile small{color:var(--color-text-secondary)}.ui-badge{align-items:center;gap:var(--space-1);border:1px solid color-mix(in srgb, var(--tone-color) 18%, transparent);border-radius:var(--radius-round);background:var(--tone-soft);width:fit-content;min-height:28px;color:var(--tone-color);font-size:var(--font-size-caption);padding:3px 9px;font-weight:700;line-height:1.2;display:inline-flex}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;display:inline-flex}.ui-button.is-secondary,.secondary-button,.button.secondary{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-primary)}.ui-button.is-secondary:hover:not(:disabled),.secondary-button:hover:not(:disabled),.button.secondary:hover:not(:disabled){background:var(--color-surface-secondary)}.ui-button.is-ghost{color:var(--color-brand-primary);background:0 0}.ui-button.is-danger,.danger-button{background:var(--color-danger);color:var(--color-on-brand)}.ui-icon-button{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:44px;height:44px;color:var(--color-text-secondary);place-items:center;display:grid}.ui-field{gap:var(--space-2);min-width:0;color:var(--color-text-primary);font-size:var(--font-size-secondary);font-weight:650;display:grid}.ui-field small{color:var(--color-text-secondary);font-weight:450}.ui-control,input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);font:inherit;padding:.625rem .75rem}textarea{resize:vertical;min-height:104px}@media (width<=767px){input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea{font-size:1rem}}.ui-control:hover:not(:disabled),input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:color-mix(in srgb, var(--color-brand-primary) 35%, var(--color-border-strong))}.ui-control:disabled,input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-muted);color:var(--color-text-muted);opacity:1}.ui-field-error{align-items:center;gap:var(--space-1);display:flex;color:var(--color-danger)!important}.has-error .ui-control{border-color:var(--color-danger);background:var(--color-danger-soft)}.ui-search{position:relative}.ui-search>svg{z-index:1;color:var(--color-text-muted);position:absolute;top:35px;left:12px}.ui-search input{padding-left:2.5rem}.ui-choice{align-items:center;gap:var(--space-3);min-height:44px;display:flex}.ui-choice input{width:20px;height:20px;accent-color:var(--color-brand-primary)}.ui-tabs{gap:var(--space-1);border-radius:var(--radius-md);background:var(--color-surface-secondary);scrollbar-width:none;padding:3px;display:flex;overflow-x:auto}.ui-tabs button{border-radius:var(--radius-sm);min-height:40px;color:var(--color-text-secondary);white-space:nowrap;background:0 0;flex:none;padding:.5rem .75rem}.ui-tabs button.active{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:0 1px 3px #18203314}.ui-filter-chip{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);background:var(--color-surface);min-height:38px;color:var(--color-text-secondary);font-size:var(--font-size-secondary);white-space:nowrap;padding:.4rem .75rem}.ui-filter-chip.active{border-color:color-mix(in srgb, var(--color-brand-primary) 30%, var(--color-border-subtle));background:var(--color-brand-soft);color:var(--color-brand-strong)}.ui-list-item{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ui-list-item>div{min-width:0;display:grid}.ui-list-item span{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.ui-avatar{background:var(--color-brand-soft);color:var(--color-brand-strong);object-fit:cover;border-radius:50%;flex:none;place-items:center;font-weight:750;display:grid}.ui-inline-alert{gap:var(--space-3);border:1px solid color-mix(in srgb, var(--tone-color) 22%, var(--color-border-subtle));border-radius:var(--radius-lg);padding:var(--space-4);background:var(--tone-soft);color:var(--tone-color);grid-template-columns:auto minmax(0,1fr);display:grid}.ui-inline-alert p{margin:var(--space-1) 0 0;color:var(--color-text-secondary)}.ui-state{justify-items:start;gap:var(--space-2);align-content:center;min-height:160px;display:grid}.ui-state-icon{border-radius:var(--radius-md);width:42px;height:42px}.error-state .ui-state-icon{background:var(--color-danger-soft);color:var(--color-danger)}.state-card h1,.state-card h2{margin-bottom:0}.state-card h1{font-size:var(--font-size-section-title)}.ui-progress-track{border-radius:var(--radius-round);background:var(--color-surface-muted);height:8px;overflow:hidden}.ui-progress-track>span{border-radius:inherit;background:var(--color-brand-primary);height:100%;transition:width var(--motion-slow) var(--ease-standard);display:block}.ui-progress-ring{--progress:0deg;background:conic-gradient(var(--color-brand-primary) var(--progress), var(--color-surface-muted) 0);border-radius:50%;place-items:center;width:72px;height:72px;display:grid}.ui-progress-ring:before{background:var(--color-surface);content:"";border-radius:50%;grid-area:1/1;width:58px;height:58px}.ui-progress-ring>span{z-index:1;font-size:var(--font-size-caption);grid-area:1/1;font-weight:750}.ui-stat{gap:2px;display:grid}.ui-stat strong{font-size:1.35rem}.ui-stat span{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.ui-data-row{gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(90px,.8fr) minmax(0,1.2fr);display:grid}.ui-data-row dt{color:var(--color-text-secondary)}.ui-data-row dd{margin:0;font-weight:650}.ui-timeline-item{gap:var(--space-3);padding-bottom:var(--space-5);grid-template-columns:14px minmax(0,1fr);display:grid;position:relative}.ui-timeline-item:before{background:var(--color-border-subtle);content:"";width:1px;position:absolute;top:14px;bottom:0;left:6px}.ui-timeline-dot{z-index:1;border:3px solid var(--color-surface);background:var(--tone-color);width:13px;height:13px;box-shadow:0 0 0 1px var(--color-border-strong);border-radius:50%;margin-top:5px}.ui-timeline-item time{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-caption);display:block}.ui-attachment-card{align-items:center;gap:var(--space-3);border:1px solid var(--color-border-subtle);background:var(--color-surface-secondary);width:100%;color:var(--color-text-primary);text-align:left;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.ui-attachment-card span{min-width:0;display:grid}.ui-attachment-card small{color:var(--color-text-secondary);overflow-wrap:anywhere}.ui-message-bubble{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--space-1);width:fit-content;max-width:min(82%,620px);padding:var(--space-3) var(--space-4);background:var(--color-surface-secondary)}.ui-message-bubble.is-own{border-radius:var(--radius-lg) var(--radius-lg) var(--space-1) var(--radius-lg);background:var(--color-brand-soft);margin-left:auto}.ui-message-bubble time{margin-top:var(--space-1);color:var(--color-text-muted);font-size:var(--font-size-caption);text-align:right;display:block}.ui-product-card{gap:var(--space-3);border-radius:var(--radius-card);padding:var(--space-3);display:grid;overflow:hidden}.ui-product-card img{aspect-ratio:4/3;border-radius:var(--radius-md);object-fit:cover;width:100%}.ui-product-card p{color:var(--color-text-secondary)}.ui-product-card span{color:var(--color-text-secondary);font-size:var(--font-size-caption);display:block}.ui-admin-list{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:0 var(--space-4);background:var(--color-surface);display:grid}.ui-dialog-backdrop{z-index:var(--z-overlay);padding:var(--space-3);padding-bottom:max(var(--space-3), var(--safe-bottom));animation:ui-fade-in var(--motion-base) var(--ease-standard);background:#1820336b;place-items:end center;display:grid;position:fixed;inset:0;overflow-y:auto}.ui-dialog{width:min(100%,520px);max-height:calc(100dvh - var(--space-6));border:1px solid var(--color-border-subtle);border-radius:var(--radius-dialog);background:var(--color-surface);box-shadow:var(--shadow-elevated);animation:ui-sheet-in var(--motion-base) var(--ease-standard);overflow-y:auto}.ui-dialog>header{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);display:flex;position:sticky;top:0}.ui-dialog h2{margin:0}.ui-dialog-body{padding:var(--space-5)}.non-instructional-day-content{gap:var(--space-4);overflow-wrap:anywhere;font-size:1rem;display:grid}.non-instructional-day-content p{margin:0}.non-instructional-day-content h3{margin:var(--space-3) 0 var(--space-2)}.non-instructional-day-content textarea{width:100%;min-height:6rem;font:inherit}.non-instructional-lesson-list{margin:var(--space-3) 0 0;padding:0;list-style:none}.non-instructional-lesson-list>li{gap:var(--space-3);padding-block:var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:grid}.non-instructional-lesson-list>li:last-child{border-bottom:0}.non-instructional-confirmation{align-items:flex-start;gap:var(--space-3);cursor:pointer;min-height:44px;display:flex}.non-instructional-confirmation input{flex:0 0 22px;width:22px;height:22px;margin-top:3px}.ui-dialog>footer{gap:var(--space-2);padding:0 var(--space-5) var(--space-5);flex-direction:column-reverse;display:flex}.ui-toast{z-index:var(--z-toast);right:max(var(--space-4), var(--safe-right));bottom:calc(84px + var(--safe-bottom));left:max(var(--space-4), var(--safe-left));border:1px solid color-mix(in srgb, var(--tone-color) 18%, var(--color-border-subtle));border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-elevated);pointer-events:none;position:fixed}.ui-surface{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface)}@keyframes ui-fade-in{0%{opacity:0}}@keyframes ui-sheet-in{0%{opacity:0;transform:translateY(12px)}}@media (width>=620px){.ui-dialog-backdrop{padding:var(--space-6);place-items:center}.ui-dialog>footer{flex-direction:row;justify-content:flex-end}}@media (width>=980px){.app-shell{padding-bottom:0;padding-left:220px}.role-student{padding-bottom:0}.bottom-nav{justify-content:flex-start;gap:var(--space-2);width:220px;padding:108px var(--space-4) var(--space-6);border-top:0;border-right:1px solid var(--color-border-subtle);background:var(--color-surface);box-shadow:none;flex-direction:column;top:0;right:auto}.bottom-nav a{align-content:center;place-items:center start;gap:var(--space-3);width:100%;max-width:none;min-height:48px;padding:0 var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-secondary);text-align:left;flex:none;grid-template-columns:24px minmax(0,1fr)}.bottom-nav a.active{background:var(--color-brand-soft)}.bottom-nav a.active:before{width:3px;height:24px;top:50%;left:-4px;transform:translateY(-50%)}.page-content{padding-top:var(--space-8)}.profile-header-link{display:grid}}@media (width<=619px){.ui-page-header{display:grid}.ui-page-actions{width:100%}.ui-page-actions>*{flex:1}.profile-header-link,.role-student .header-actions>.text-button{display:none}}@media (width<=350px){.app-header{padding-right:max(.5rem, var(--safe-right));padding-left:max(.5rem, var(--safe-left))}.app-header-inner,.app-brand{gap:var(--space-2)}.app-brand-copy{display:none}.brand-mark{flex-basis:36px;width:36px;height:36px}.header-actions{gap:var(--space-1)}.notification-bell,.text-button{flex-basis:44px;width:44px;height:44px}.page-content{padding-left:.875rem;padding-right:.875rem}.role-student .app-brand-copy{display:block}.role-student .app-brand-copy strong{font-size:.9rem}}@media (width<=240px){.app-header-inner{grid-template-columns:minmax(0,1fr)}.app-brand-copy{display:none}.header-actions{justify-content:space-between;width:100%}.bottom-nav a>span{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.student-home-loading{gap:var(--space-4);display:grid}.student-home-loading .skeleton{width:100%}.student-loading-heading{height:58px;width:min(72%,320px)!important}.student-loading-now{border-radius:var(--radius-card);height:230px}.student-loading-dashboard{gap:var(--space-3);grid-template-rows:repeat(2,76px);grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);display:grid}.student-loading-dashboard .skeleton:first-child{grid-row:1/3;height:100%}.student-loading-dashboard .skeleton:not(:first-child){height:76px}.student-loading-actions{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.student-loading-actions .skeleton{height:84px}.role-student .page-content{padding:20px clamp(16px, 4.5vw, 24px) var(--space-10)}.student-dashboard-greeting .ui-page-header{margin-bottom:18px}.student-dashboard-greeting .ui-page-header h1{letter-spacing:-.03em;margin-bottom:5px;font-size:clamp(1.45rem,6vw,1.7rem);font-weight:800}.student-dashboard-greeting .ui-page-header>div>p:last-child{color:var(--color-text-secondary);margin-bottom:0;font-size:.91rem}.student-home-flow{gap:22px;min-width:0;display:grid}.student-home-flow>*{min-width:0}.student-home-flow .ui-interactive-copy>strong{overflow-wrap:anywhere;min-width:0}.student-vacation-notice{align-items:center;gap:var(--space-3);border:1px solid color-mix(in srgb, var(--color-warning) 34%, var(--color-border-subtle));border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:var(--color-warning-soft);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.student-vacation-notice p{color:var(--color-text-secondary);font-size:var(--font-size-secondary);margin:2px 0 0}.student-vacation-notice a{align-items:center;min-height:44px;display:inline-flex}.student-now-card{gap:var(--space-3);border:1px solid color-mix(in srgb, var(--color-brand-primary) 18%, var(--color-border-subtle));background:var(--color-surface);border-radius:18px;min-height:210px;padding:22px 20px 20px 84px;display:grid;position:relative;overflow:hidden}.student-now-rail{background:var(--color-brand-primary);width:64px;color:var(--color-on-brand);place-items:center;display:grid;position:absolute;inset:0 auto 0 0}.student-now-rail svg{stroke-width:2px;width:27px;height:27px}.student-now-chevron{color:var(--color-text-muted);display:grid;position:absolute;top:22px;right:18px}.student-now-copy{align-content:start;gap:5px;padding-right:26px;display:grid}.student-now-copy h2{letter-spacing:-.025em;margin:0;font-size:clamp(1.3rem,5.6vw,1.65rem);font-weight:800}.student-now-copy p{color:var(--color-text-secondary);margin:0}.student-now-copy>strong{font-size:1.02rem;font-weight:750}.student-now-due{padding-top:var(--space-2);font-weight:700}.student-now-progress{gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:700;display:grid}.student-now-progress-track{border-radius:var(--radius-round);background:var(--color-surface-muted);height:6px;overflow:hidden}.student-now-progress-track>span{border-radius:inherit;background:var(--color-brand-primary);height:100%;display:block}.student-now-action{width:100%;min-height:48px;margin:var(--space-1) 0 0;border-radius:12px;font-size:1rem;font-weight:750}.student-dashboard-cluster{gap:var(--space-4);grid-template-columns:minmax(0,1fr);min-width:0;display:grid;container-type:inline-size}.student-dashboard-summary{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;min-width:0;display:grid}.student-today-summary,.student-success-stack>a{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary);border-radius:16px;text-decoration:none}.student-today-summary{gap:12px;min-width:0;min-height:176px;padding:14px;display:grid}.student-summary-heading{align-items:center;gap:8px var(--space-2);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title arrow""icon icon";display:grid}.student-summary-heading .student-summary-icon{grid-area:icon}.student-summary-heading>svg{grid-area:arrow}.student-summary-heading h2{overflow-wrap:anywhere;grid-area:title;min-width:0;margin:0;font-size:1.18rem;font-weight:800}.student-summary-icon{background:var(--color-brand-soft);width:40px;height:40px;color:var(--color-brand-strong);border-radius:13px;place-items:center;display:grid}.student-summary-icon svg{stroke-width:1.9px;width:22px;height:22px}.student-summary-icon.tone-reward{background:var(--color-reward-soft);color:var(--color-reward)}.student-today-metrics{gap:var(--space-2);display:grid}.student-today-metrics>span{align-items:baseline;gap:var(--space-2);min-width:0;color:var(--color-text-secondary);display:flex}.student-today-metrics strong{color:var(--color-text-primary);font-size:1.52rem;font-weight:800;line-height:1}.student-today-summary>small{color:var(--color-danger);font-weight:700}.student-success-stack{gap:12px;display:grid}.student-success-stack>a{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-width:0;min-height:82px;padding:12px;display:grid}.student-success-stack>a>span:nth-child(2){min-width:0;display:grid}.student-success-stack strong{font-size:1.34rem;font-weight:800;line-height:1.1}.student-success-stack small{color:var(--color-text-secondary);font-size:.76rem}.student-quick-actions{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 8px;display:grid}.student-quick-actions a{min-width:0;min-height:92px;color:var(--color-text-primary);text-align:center;border-radius:14px;align-content:center;justify-items:center;gap:9px;padding:6px 3px;font-size:12px;line-height:1.18;text-decoration:none;display:grid}.student-quick-actions a>span{background:var(--color-brand-soft);width:50px;height:50px;color:var(--color-brand-strong);border-radius:15px;place-items:center;display:grid}.student-quick-actions a svg{stroke-width:1.9px;width:27px;height:27px}.student-quick-actions a:hover{background:var(--color-surface-secondary)}.student-quick-actions strong{overflow-wrap:anywhere;max-width:100%;font-weight:700}.student-learning-grid{gap:var(--space-6);grid-template-columns:minmax(0,1fr);min-width:0;display:grid;container-type:inline-size}.student-learning-grid>*{min-width:0}.student-home-section{padding-top:var(--space-2);gap:12px;display:grid}.student-home-section>.ui-section-header{margin:0}.student-home-section>.ui-section-header h2{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:1.2rem;font-weight:800}.student-home-section>.ui-section-header a,.student-more-link{text-align:right;align-items:center;min-height:44px;display:inline-flex}.student-schedule-preview ol{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.student-schedule-preview li{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);grid-template-columns:64px minmax(0,1fr) auto;min-height:58px;padding:10px 14px;display:grid}.student-schedule-preview time{font-variant-numeric:tabular-nums;font-weight:800}.student-positive-empty{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-success-soft);color:var(--color-text-secondary);margin:0}.student-goal-list,.student-update-list{gap:var(--space-2);display:grid}.student-assignment-list{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;display:grid;overflow:hidden}.student-assignment-row{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px 14px;display:grid}.student-assignment-row:last-child{border-bottom:0}.student-assignment-icon{background:var(--color-brand-soft);width:44px;height:44px;color:var(--color-brand-primary);border-radius:50%;place-items:center;display:grid}.student-assignment-icon svg{stroke-width:1.9px;width:24px;height:24px}.student-assignment-row h3{margin:0;font-size:.94rem;font-weight:750}.student-assignment-row p{color:var(--color-text-secondary);font-size:var(--font-size-secondary);margin:2px 0 0}.student-assignment-row>a{background:var(--color-brand-soft);border-radius:12px;align-items:center;min-height:38px;padding:7px 10px;font-size:.78rem;font-weight:750;text-decoration:none;display:inline-flex}.student-assignment-indicators{min-height:1em;color:var(--color-text-muted);font-size:var(--font-size-caption);display:block}.student-goal-row{align-items:center;gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);min-height:64px;padding:var(--space-3);color:inherit;grid-template-columns:minmax(0,1fr) auto;text-decoration:none;display:grid}.student-goal-row>div{gap:2px;display:grid}.student-goal-row span,.student-goal-row small{color:var(--color-text-secondary)}.student-goal-row>span{font-weight:800}.student-success-summary{align-items:center;gap:var(--space-3);border-radius:var(--radius-lg);min-height:56px;padding:var(--space-3);background:var(--color-brand-soft);color:inherit;grid-template-columns:auto minmax(0,1fr) auto;text-decoration:none;display:grid}.student-success-summary>span{font-weight:800}.student-success-summary>small{color:var(--color-text-secondary)}.student-update-list a{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-surface);align-items:center;display:flex}.student-extra-section{margin-top:var(--space-2)}.student-extra-grid{gap:var(--space-3);display:grid}@media (width>=620px){.student-extra-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=360px){.student-now-card{padding-left:calc(var(--space-4) + 44px)}.student-now-rail{width:44px}.student-dashboard-summary{gap:var(--space-2)}.student-today-summary{padding:var(--space-3)}.student-summary-icon{width:34px;height:34px}.student-success-stack>a{padding:var(--space-2)}.student-quick-actions{gap:var(--space-1);padding-inline:var(--space-2)}}@container (width<=310px){.student-dashboard-summary{grid-template-columns:minmax(0,1fr)}.student-success-stack,.student-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.student-learning-grid .ui-section-header{justify-items:start;display:grid}.student-learning-grid .ui-section-header a{text-align:left}.student-learning-grid .student-schedule-preview li,.student-learning-grid .student-assignment-row{grid-template-columns:minmax(0,1fr);align-items:start}.student-learning-grid .student-schedule-preview small{grid-column:1}}@media (width>=980px){.role-student .page-content{width:min(100%, var(--content-wide))}.student-dashboard-cluster{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);align-items:stretch}.student-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.student-learning-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}.student-assignment-tabs{gap:var(--space-2);margin-bottom:var(--space-5);border-radius:var(--radius-lg);padding:var(--space-1);background:var(--color-surface-secondary);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.student-assignment-tabs button{border-radius:var(--radius-md);min-width:0;padding:var(--space-2);color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:0;font-weight:750}.student-assignment-tabs button.active{background:var(--color-surface);color:var(--color-brand-primary);box-shadow:var(--shadow-card)}.student-assignment-panel{min-height:180px}.student-assignment-card-list{gap:var(--space-3);display:grid}.student-assignment-card{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.student-assignment-card-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.student-assignment-card-heading h2{font-size:var(--font-size-card-title);margin:0}.student-assignment-description{color:var(--color-text-secondary);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.student-assignment-date{margin:0;font-weight:800}.student-assignment-meta{gap:var(--space-2) var(--space-5);padding-left:var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-secondary);flex-wrap:wrap;margin:0;display:flex}.student-assignment-action{border:1px solid var(--color-brand-primary);border-radius:var(--radius-md);min-height:44px;padding:var(--space-2) var(--space-4);color:var(--color-brand-primary);justify-self:start;align-items:center;font-weight:800;text-decoration:none;display:inline-flex}.student-assignment-pagination{justify-content:center;align-items:center;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.student-assignment-pagination button{padding:var(--space-2) var(--space-4)}.homework-list-card{gap:var(--space-3);display:grid}.homework-list-card .row-between{align-items:flex-start}.homework-list-card h2{font-size:var(--font-size-card-title);margin:0}.homework-list-card .assignment-preview{color:var(--color-text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.homework-list-deadline{color:var(--color-text-secondary);font-size:var(--font-size-secondary);margin:0}.homework-list-action{width:100%;margin:0}.back-link{align-items:center;gap:var(--space-2);min-height:44px;margin-bottom:var(--space-4);font-weight:650;text-decoration:none;display:inline-flex}.homework-condition{gap:var(--space-3);display:grid}.homework-condition .assignment-text{color:var(--color-text-primary);font-size:1rem}.student-homework-summary{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:var(--color-surface-secondary);flex-wrap:wrap;display:flex}.student-homework-summary>div{gap:2px;display:grid}.student-homework-summary span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.submission-status{border-radius:var(--radius-round);background:var(--color-surface-secondary)}.status-draft{background:var(--color-surface-secondary);color:var(--color-text-secondary)}.status-submitted{background:var(--color-info-soft);color:var(--color-info)}.status-returned{background:var(--color-warning-soft);color:var(--color-warning)}.status-accepted{background:var(--color-success-soft);color:var(--color-success)}.chat-header-link{border-color:var(--color-border-subtle);border-radius:var(--radius-md);color:var(--color-text-secondary)}.chat-conversation-card{align-items:start;gap:var(--space-2) var(--space-3);border-color:var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"avatar copy time""avatar copy badge"}.chat-conversation-card>.ui-avatar{grid-area:avatar}.chat-conversation-copy{grid-area:copy;gap:2px;min-width:0;display:grid}.chat-conversation-card>time{color:var(--color-text-muted);font-size:var(--font-size-caption);grid-area:time}.chat-conversation-card>.chat-unread-badge,.chat-conversation-card>.ui-badge{grid-area:badge;justify-self:end}.chat-conversation-title{font-weight:700}.chat-context{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.chat-preview{color:var(--color-text-secondary);font-size:var(--font-size-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-message-list{padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface)}.chat-message{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-lg) var(--space-1);background:var(--color-surface-secondary);max-width:min(84%,620px);box-shadow:none;border:0}.chat-message.is-self{border-radius:var(--radius-lg) var(--radius-lg) var(--space-1) var(--radius-lg);background:var(--color-brand-soft)}.chat-composer{z-index:2;bottom:calc(70px + var(--safe-bottom));border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-3);background:var(--color-surface);position:sticky;box-shadow:0 -8px 24px #18203312}.shop-balance-card{align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);border:1px solid color-mix(in srgb, var(--color-reward) 22%, var(--color-border-subtle));border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-reward-soft);color:var(--color-reward);display:flex}.shop-balance-card>span{border-radius:var(--radius-md);background:var(--color-surface);place-items:center;width:42px;height:42px;display:grid}.shop-balance-card>div{display:grid}.shop-balance-card small{color:var(--color-text-secondary)}.shop-balance-card strong{font-size:1.125rem}.shop-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.shop-image-placeholder{aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--color-surface-secondary);width:100%;color:var(--color-text-secondary);place-items:center;display:grid}.shop-order-card{gap:var(--space-2)}.shop-order-card time{color:var(--color-text-muted);font-size:var(--font-size-caption)}@media (width<=350px){.student-vacation-notice{grid-template-columns:auto minmax(0,1fr)}.student-vacation-notice a{grid-column:2}.student-schedule-preview li{grid-template-columns:58px minmax(0,1fr)}.student-schedule-preview small{grid-column:2}.student-assignment-row{grid-template-columns:1fr}.student-assignment-row>a{justify-self:start}.student-success-summary{grid-template-columns:1fr;gap:2px}.ui-action-tile{min-height:108px;padding:var(--space-3)}.shop-grid{grid-template-columns:1fr}.chat-conversation-card{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"avatar copy""avatar time""avatar badge"}.chat-conversation-card>time,.chat-conversation-card>.chat-unread-badge,.chat-conversation-card>.ui-badge{justify-self:start}}@media (width>=980px){.chat-composer{bottom:var(--space-4)}.student-extra-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.parent-dashboard-actions,.teacher-work-list{gap:var(--space-3);display:grid}.parent-children-grid{gap:var(--space-4)}.parent-child-summary-card{border-color:var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.parent-summary-metrics>div,.parent-learning-summary dl>div{border-color:var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-secondary)}.parent-attention-line{color:var(--color-warning)}.teacher-summary-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.teacher-action-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.teacher-work-list{margin-bottom:var(--space-8)}.teacher-lesson-card,.teacher-submission-card,.teacher-homework-card{border-color:var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.authoring-form,.challenge-editor,.broadcast-compose,.journal-form,.schedule-form,.attendance-form,.control-form,.shop-form{gap:var(--space-5);width:min(100%,760px);display:grid}.authoring-section,.challenge-editor>fieldset,.broadcast-section,.journal-form,.schedule-form>fieldset,.control-form,.shop-form{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-5);background:var(--color-surface)}.authoring-form label,.challenge-editor label,.broadcast-compose label,.journal-form label,.schedule-form label,.attendance-form label,.control-form label,.shop-form label{gap:var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-secondary);font-weight:650}.field-error,.inline-error{gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-danger-soft);color:var(--color-danger);font-weight:650;display:flex}.inline-success{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-success-soft);color:var(--color-success)}.submit-dialog,dialog[open]{border:1px solid var(--color-border-subtle);border-radius:var(--radius-dialog);max-width:min(520px,100vw - 2rem);padding:var(--space-5);background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-elevated)}dialog::backdrop{background:#1820336b}.dialog-actions{gap:var(--space-2);flex-direction:column-reverse;display:flex}@media (width>=700px){.parent-dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dialog-actions{flex-direction:row;justify-content:flex-end}}.admin-summary-grid{gap:var(--space-3);grid-template-columns:1fr;display:grid}.admin-action-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-management-grid{gap:var(--space-3);margin-bottom:var(--space-8);display:grid}.control-grid{gap:var(--space-3);grid-template-columns:1fr}.control-card{min-height:76px}.control-card .ui-card-icon,.control-card .ui-interactive-copy{margin-top:0;display:grid}.control-card .ui-interactive-copy{gap:var(--space-1)}.control-card .ui-interactive-copy strong{font-size:var(--font-size-card-title)}.control-card .ui-interactive-copy small{color:var(--color-text-primary);font-size:1.25rem;font-weight:750}.control-card.access-request-entry .ui-interactive-copy small{border-radius:var(--radius-round);background:var(--color-warning-soft);width:fit-content;min-width:28px;min-height:28px;color:var(--color-warning-strong);font-size:var(--font-size-caption);text-align:center;align-content:center;padding-inline:8px}.control-list{gap:var(--space-3)}.workload-editor{gap:var(--space-4);width:min(100%,920px);margin-bottom:var(--space-8);display:grid}.workload-legacy{width:min(100%,920px);margin-bottom:var(--space-6);border:1px solid color-mix(in srgb, var(--color-warning) 45%, var(--color-border-subtle));border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-warning-soft)}.workload-legacy ul{gap:var(--space-2);margin:var(--space-3) 0 0;padding:0;list-style:none;display:grid}.workload-legacy li{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid color-mix(in srgb, var(--color-warning) 35%, var(--color-border-subtle));min-width:0;padding-top:var(--space-3);display:flex}.workload-legacy li>span{gap:2px;min-width:0;display:grid}.workload-legacy li small{color:var(--color-text-secondary);overflow-wrap:anywhere}.workload-leadership{gap:var(--space-4);width:min(100%,920px);margin-bottom:var(--space-8);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);display:grid}.workload-leadership .control-form{margin:0}.workload-leadership-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.workload-leadership-list li{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);min-width:0;padding-top:var(--space-3);flex-wrap:wrap;display:flex}.workload-leadership-list li>span{gap:2px;min-width:0;display:grid}.workload-leadership-list small{color:var(--color-text-secondary);overflow-wrap:anywhere}.workload-context{align-items:end;gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-4);background:var(--color-surface);grid-template-columns:repeat(2,minmax(0,1fr)) minmax(150px,auto);display:grid}.workload-context label{gap:var(--space-2);min-width:0;color:var(--color-text-primary);font-size:var(--font-size-secondary);font-weight:700;display:grid}.workload-context select{width:100%;min-width:0}.workload-selection-count{border-radius:var(--radius-md);min-height:44px;padding:6px var(--space-3);background:var(--color-brand-soft);color:var(--color-brand-strong);align-content:center;gap:1px;margin:0;display:grid}.workload-selection-count strong{font-size:1.15rem;line-height:1}.workload-selection-count span{font-size:var(--font-size-caption);font-weight:650}.workload-subjects{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-4);background:var(--color-surface);margin:0}.workload-subjects legend{padding-inline:var(--space-2);color:var(--color-text-primary);font-size:var(--font-size-card-title);font-weight:800}.workload-subject-tools{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-secondary);display:flex}.workload-subject-tools>div{gap:var(--space-2);flex:none;display:flex}.workload-subject-grid{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.workload-subject{align-items:center;gap:0 var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-width:0;min-height:58px;padding:var(--space-2) var(--space-3);background:var(--color-surface);cursor:pointer;grid-template-columns:24px minmax(0,1fr);display:grid}.workload-subject:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.workload-subject.is-selected{border-color:color-mix(in srgb, var(--color-brand-primary) 38%, var(--color-border-subtle));background:var(--color-brand-soft)}.workload-subject input{width:22px;height:22px;accent-color:var(--color-brand-primary);grid-row:1/3}.workload-subject span{min-width:0;color:var(--color-text-primary);overflow-wrap:anywhere;font-weight:750}.workload-subject small{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.workload-subject.is-selected small{color:var(--color-brand-strong)}.workload-save-bar{justify-content:space-between;align-items:center;gap:var(--space-4);border-radius:var(--radius-card);padding:var(--space-3) var(--space-4);background:var(--color-surface-inverse);color:var(--color-on-inverse);display:flex}.workload-save-bar p{color:inherit;font-size:var(--font-size-secondary);margin:0}.workload-save-bar button{flex:none}.workload-overview{width:min(100%,920px)}.workload-teacher-list{gap:var(--space-3);display:grid}.workload-teacher{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);overflow:hidden}.workload-teacher.is-current{border-color:color-mix(in srgb, var(--color-brand-primary) 38%, var(--color-border-subtle))}.workload-teacher>button{justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:58px;padding:var(--space-3) var(--space-4);color:var(--color-text-primary);text-align:left;background:0 0;border:0;border-radius:0;display:flex}.workload-teacher>button:hover{background:var(--color-surface-secondary)}.workload-teacher>button>span:first-child{gap:2px;min-width:0;display:grid}.workload-teacher>button strong{font-size:var(--font-size-card-title)}.workload-teacher>button small{color:var(--color-text-secondary)}.workload-teacher>button>span:last-child{color:var(--color-brand-primary);font-size:1.25rem}.workload-teacher ul{border-top:1px solid var(--color-border-subtle);gap:0;margin:0;padding:0;list-style:none;display:grid}.workload-teacher li{gap:var(--space-3);padding:var(--space-2) var(--space-4);color:var(--color-text-secondary);font-size:var(--font-size-secondary);grid-template-columns:minmax(70px,.3fr) minmax(0,1fr);display:grid}.workload-teacher li+li{border-top:1px solid var(--color-border-subtle)}.workload-teacher li span{color:var(--color-text-primary);font-weight:750}.schedule-assignment-dialog{gap:var(--space-4);display:grid}.schedule-assignment-dialog>p{color:var(--color-text-secondary);margin:0}.schedule-assignment-dialog>p strong{color:var(--color-text-primary)}.schedule-assignment-dialog>a{align-content:center;width:fit-content;min-height:44px;font-weight:750}.control-person{gap:var(--space-1);border-color:var(--color-border-subtle);border-radius:var(--radius-card);box-shadow:none;display:grid}.control-person:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.control-filters{gap:var(--space-3);margin-bottom:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);grid-template-columns:1fr;display:grid}.control-timeline{display:grid}.control-timeline p,.control-timeline small{margin:var(--space-1) 0 0;color:var(--color-text-secondary)}.audit-export-button{min-width:180px}.audit-filters{margin-bottom:var(--space-4)}.audit-filter-footer{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);min-width:0;padding-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-secondary);grid-column:1/-1;display:flex}.audit-filter-footer .text-action{flex:none;min-height:44px}.audit-filter-error{grid-column:1/-1;margin:0}.audit-ledger{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;overflow:hidden}.audit-ledger>header{justify-content:space-between;align-items:end;gap:var(--space-4);border-bottom:1px solid var(--color-border-subtle);min-width:0;padding:var(--space-4);display:flex}.audit-ledger>header h2{margin:0;font-size:1.18rem}.audit-ledger>header p{color:var(--color-text-secondary);font-size:var(--font-size-secondary);text-align:right;margin:0}.audit-ledger>ol{margin:0;padding:0;list-style:none;display:grid}.audit-entry{gap:var(--space-3);min-width:0;padding:0 var(--space-4);grid-template-columns:18px minmax(0,1fr);display:grid;position:relative}.audit-entry:before{background:var(--color-border-subtle);content:"";width:1px;position:absolute;top:29px;bottom:-1px;left:22px}.audit-entry:last-child:before{display:none}.audit-entry-marker{z-index:1;border:3px solid var(--color-surface);background:var(--color-text-muted);width:14px;height:14px;box-shadow:0 0 0 1px var(--color-border-strong);border-radius:50%;margin-top:25px}.audit-entry-marker.is-success{background:var(--color-success)}.audit-entry>article{border-bottom:1px solid var(--color-border-subtle);min-width:0;padding:var(--space-4) 0}.audit-entry:last-child>article{border-bottom:0}.audit-entry-heading{justify-content:space-between;align-items:start;gap:var(--space-3);min-width:0;display:flex}.audit-entry-heading>div{gap:3px;min-width:0;display:grid}.audit-entry-heading h2{overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.35}.audit-entry-heading code,.audit-target code{color:var(--color-text-muted);font-size:var(--font-size-caption);overflow-wrap:anywhere}.audit-result{border-radius:var(--radius-round);background:var(--color-surface-muted);color:var(--color-text-secondary);font-size:var(--font-size-caption);flex:none;padding:4px 8px;font-weight:750}.audit-result.is-success{background:var(--color-success-soft);color:var(--color-success)}.audit-entry-meta{align-items:center;gap:var(--space-1);margin:var(--space-2) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-secondary);flex-wrap:wrap;display:flex}.audit-entry-meta strong{color:var(--color-text-primary)}.audit-entry-details{margin-top:var(--space-2)}.audit-entry-details>summary{width:fit-content;min-height:44px;color:var(--color-brand-primary);cursor:pointer;padding:11px 0;font-weight:750}.audit-entry-details>summary::marker{color:var(--color-brand-primary)}.audit-entry-details[open]>summary{margin-bottom:var(--space-2)}.audit-target{min-width:0;padding:var(--space-3);background:var(--color-surface-secondary);border-radius:12px;gap:2px;display:grid}.audit-target span{font-weight:750}.audit-change-list{margin:var(--space-3) 0 0;border-top:1px solid var(--color-border-subtle);gap:0;display:grid}.audit-change-list>div{gap:var(--space-3);border-bottom:1px solid var(--color-border-subtle);min-width:0;padding:var(--space-3) 0;grid-template-columns:minmax(120px,.45fr) minmax(0,1fr);display:grid}.audit-change-list dt{color:var(--color-text-secondary);font-size:var(--font-size-secondary);font-weight:700}.audit-change-list dd{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);min-width:0;margin:0;display:grid}.audit-change-list dd>span:not(.audit-change-arrow){gap:2px;min-width:0;display:grid}.audit-change-list small{color:var(--color-text-muted);font-size:var(--font-size-caption)}.audit-change-list strong{font-size:var(--font-size-secondary);overflow-wrap:anywhere;font-weight:750}.audit-change-arrow{color:var(--color-brand-primary);font-weight:800}.audit-no-diff{margin:var(--space-3) 0 0;color:var(--color-text-secondary)}.audit-pagination{align-items:center;gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:minmax(96px,1fr) auto minmax(96px,1fr);display:grid}.audit-pagination button:first-child{justify-self:start}.audit-pagination button:last-child{justify-self:end}.audit-pagination span{color:var(--color-text-secondary);font-size:var(--font-size-secondary);text-align:center}@media (width<=520px){.workload-context{grid-template-columns:1fr}.workload-subject-tools{display:grid}.workload-subject-tools>div{overflow-x:auto}.workload-subject-grid{grid-template-columns:1fr}.workload-save-bar{display:grid}.workload-save-bar button{width:100%}.audit-export-button{width:100%;min-width:0}.audit-filter-footer{align-items:start}.audit-ledger>header{align-items:start;display:grid}.audit-ledger>header p{text-align:left}.audit-entry{gap:var(--space-2);padding-inline:var(--space-3)}.audit-entry:before{left:18px}.audit-entry-heading{display:grid}.audit-result{grid-row:1;width:fit-content}.audit-change-list>div{gap:var(--space-2);grid-template-columns:1fr}.audit-change-list dd{gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}.schedule-builder{gap:18px;min-width:0;display:grid}.schedule-builder>.back-link{justify-self:start;margin-bottom:-10px}.schedule-builder-heading{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.schedule-builder-heading h1{margin-bottom:6px}.schedule-builder-heading p{max-width:64ch;color:var(--color-text-secondary);margin-bottom:0}.schedule-builder-count{text-align:end;gap:1px;min-width:128px;display:grid}.schedule-builder-count strong{color:var(--color-brand-primary);font-size:1.65rem;line-height:1}.schedule-builder-count span{color:var(--color-text-secondary);font-size:.75rem}.schedule-builder-period{border-bottom:1px solid var(--color-border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:18px;display:grid}.schedule-builder-period .readonly-notice{grid-column:1/-1;margin:0}.schedule-builder-period-overview{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px 18px;padding:16px 18px;display:grid}.schedule-builder-period-overview>div:first-child{gap:5px;display:grid}.schedule-builder-period-overview p{color:var(--color-text-secondary);margin:0;font-size:.82rem}.schedule-builder-period-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.schedule-builder-period-title strong{font-size:1rem}.schedule-builder-period-title span{border-radius:var(--radius-round);background:var(--color-surface-secondary);color:var(--color-text-secondary);padding:5px 9px;font-size:.7rem;font-weight:850}.schedule-builder-period-title span[data-status=planned]{background:var(--color-info-soft);color:var(--color-info)}.schedule-builder-period-title span[data-status=active]{background:var(--color-success-soft);color:var(--color-success)}.schedule-builder-period-actions{align-self:start;gap:6px;min-width:0;display:grid}.schedule-builder-view-switch{border:1px solid var(--color-border-subtle);background:var(--color-surface-secondary);border-radius:12px;grid-template-columns:repeat(2,minmax(110px,1fr));gap:4px;padding:3px;display:grid}.schedule-builder-view-switch button{min-height:40px;color:var(--color-text-secondary);box-shadow:none;background:0 0;border:0;border-radius:9px;padding:7px 12px}.schedule-builder-view-switch button[aria-pressed=true]{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:var(--shadow-card)}.schedule-builder-delete-period{min-height:40px;color:var(--color-danger);justify-self:end;padding:6px 10px}.schedule-builder-period-select{color:var(--color-text-secondary);grid-column:1;gap:4px;font-size:.72rem;font-weight:750;display:grid}.schedule-builder-period-select select{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);border-radius:12px;padding:8px 10px}.schedule-builder-new-period{grid-area:2/2;justify-self:end}.schedule-builder-period-loading{color:var(--color-text-secondary);margin:-8px 0 0;font-size:.78rem}.schedule-builder-delete-copy{gap:12px;display:grid}.schedule-builder-delete-copy p{color:var(--color-text-secondary);margin:0;line-height:1.55}.schedule-builder-delete-copy .inline-error{color:var(--color-danger)}.schedule-builder-bells{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.schedule-builder-bells>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:54px;padding:0 18px;font-weight:850;display:flex}.schedule-builder-bells>summary span{color:var(--color-text-secondary);font-size:.75rem;font-weight:650}.schedule-builder-bells>form{gap:14px;padding:0 18px 18px;display:grid}.bell-slot-editor{gap:8px;display:grid}.bell-slot-row{grid-template-columns:30px minmax(130px,1fr) 110px 110px auto;align-items:center;gap:8px;display:grid}.bell-slot-row>strong{text-align:center}.bell-slot-row input{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);border-radius:12px;padding:9px 10px}.schedule-builder-inline-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.schedule-builder-days{grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;display:grid}.schedule-builder-days button{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;color:var(--color-text-primary);gap:1px;display:grid}.schedule-builder-days button span{display:none}.schedule-builder-days button.is-active{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-on-brand)}.schedule-builder-tools{justify-content:space-between;align-items:center;gap:12px;display:flex}.schedule-builder-tools p{margin:0;font-size:1.05rem;font-weight:850}.schedule-builder-mobile-class,.schedule-builder-mobile-list{display:none}.schedule-builder-table-wrap{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);min-width:0;box-shadow:var(--shadow-card);overflow-x:auto}.schedule-builder-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:680px}.schedule-builder-table th,.schedule-builder-table td{border-bottom:1px solid var(--color-border-subtle);border-inline-end:1px solid var(--color-border-subtle)}.schedule-builder-table tr:last-child th,.schedule-builder-table tr:last-child td{border-bottom:0}.schedule-builder-table th:last-child,.schedule-builder-table td:last-child{border-inline-end:0}.schedule-builder-table thead th{background:var(--color-surface-secondary);text-align:start;padding:11px 8px;font-size:.78rem}.schedule-builder-table thead th:first-child{width:100px}.schedule-builder-table tbody th{text-align:start;padding:10px}.schedule-builder-table tbody th strong,.schedule-builder-table tbody th span{display:block}.schedule-builder-table tbody th span{color:var(--color-text-secondary);margin-top:2px;font-size:.7rem;font-weight:650}.schedule-builder-table td{height:78px;vertical-align:stretch;padding:5px}.schedule-builder-cell{border:1px dashed var(--color-border-strong);width:100%;height:100%;min-height:66px;color:var(--color-text-secondary);text-align:start;background:0 0;border-radius:10px;align-content:center;gap:3px;padding:7px;display:grid}.schedule-builder-cell:hover:not(:disabled){background:var(--color-brand-soft);color:var(--color-brand-strong)}.schedule-builder-cell:disabled{cursor:default;opacity:1}.schedule-builder-cell.is-filled{border-style:solid;border-color:color-mix(in srgb, var(--color-brand-primary) 38%, var(--color-border-subtle));background:var(--color-brand-soft);color:var(--color-text-primary)}.schedule-builder-cell.is-routine{border-color:color-mix(in srgb, var(--color-brand-primary) 18%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-brand-soft) 45%, var(--color-surface))}.schedule-builder-cell.is-joint{border-color:color-mix(in srgb, var(--color-info) 46%, var(--color-border-subtle));background:var(--color-info-soft)}.schedule-builder-cell.is-selected{outline:3px solid color-mix(in srgb, var(--color-brand-primary) 30%, transparent);border-color:var(--color-brand-primary)}.schedule-builder-cell.has-conflict{border-color:var(--color-danger);background:var(--color-danger-soft);color:var(--color-danger-strong)}.schedule-builder-cell strong,.schedule-builder-cell span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.schedule-builder-cell strong{font-size:.76rem}.schedule-builder-cell span{color:inherit;font-size:.66rem;font-weight:650}.schedule-builder-editor{z-index:2;bottom:calc(78px + var(--safe-bottom));border:1px solid var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:minmax(160px,.8fr) repeat(3,minmax(150px,1fr));align-items:end;gap:12px;padding:16px;display:grid;position:sticky;box-shadow:0 14px 34px #17496829}.schedule-builder-editor h2{margin-bottom:2px;font-size:1rem}.schedule-builder-editor p{color:var(--color-text-secondary);margin:0;font-size:.78rem}.schedule-builder-entry-type{border:1px solid var(--color-border-subtle);background:var(--color-surface-secondary);border-radius:14px;grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:4px;display:grid}.schedule-builder-entry-type button{min-height:44px;color:var(--color-text-secondary);box-shadow:none;background:0 0;border:0;border-radius:10px}.schedule-builder-entry-type button[aria-pressed=true]{background:var(--color-surface);color:var(--color-brand-strong);box-shadow:var(--shadow-card)}.schedule-builder-editor .schedule-builder-routine-note,.schedule-builder-editor .schedule-builder-joint-note{border-top:1px solid var(--color-border-subtle);grid-column:1/-1;padding-top:10px;line-height:1.45}.schedule-builder-joint-classes{border:1px solid var(--color-border-subtle);background:var(--color-info-soft);border-radius:14px;grid-column:1/-1;gap:8px;min-width:0;padding:12px;display:grid}.schedule-builder-joint-classes legend{color:var(--color-text-primary);padding-inline:4px;font-size:.82rem;font-weight:850}.schedule-builder-joint-classes>p{color:var(--color-text-secondary);line-height:1.45}.schedule-builder-joint-classes>div{flex-wrap:wrap;gap:7px;display:flex}.schedule-builder-joint-classes label{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);align-items:center;gap:7px;padding:7px 11px;font-size:.8rem;font-weight:800;display:inline-flex}.agenda-message-action{min-height:44px;color:var(--color-brand-primary);background:0 0;padding:0 6px;font-weight:800}.agenda-message-action:hover:not(:disabled){background:var(--color-brand-soft)}.schedule-builder-joint-classes label:has(input:checked){border-color:var(--color-info);background:color-mix(in srgb, var(--color-info-soft) 76%, var(--color-surface));color:var(--color-info)}.schedule-builder-joint-classes label:has(input:disabled:not(:checked)){opacity:.56}.schedule-builder-joint-classes input{width:18px;height:18px;accent-color:var(--color-info)}.schedule-builder-joint-classes>.schedule-builder-joint-replace-note{color:var(--color-info);font-size:.76rem;font-weight:750}.schedule-builder-joint-unavailable{color:var(--color-text-secondary);gap:4px;margin:0;padding:0;font-size:.74rem;line-height:1.4;list-style:none;display:grid}.schedule-builder-joint-unavailable strong{color:var(--color-text-primary)}.schedule-builder-editor .schedule-builder-inline-actions{grid-column:1/-1}.schedule-builder-editor>.inline-error{grid-column:1/-1;margin:0}.schedule-builder-conflicts{border:1px solid color-mix(in srgb, var(--color-danger) 38%, var(--color-border-subtle));border-radius:var(--radius-card);background:var(--color-danger-soft);gap:12px;padding:16px;display:grid}.schedule-builder-conflicts>h2{margin:0;font-size:1rem}.schedule-builder-conflicts>p{color:var(--color-danger-strong);margin:0;font-size:.82rem}.schedule-builder-conflicts>div{gap:8px;display:grid}.schedule-builder-conflicts article{border:1px solid color-mix(in srgb, var(--color-danger) 22%, var(--color-border-subtle));background:var(--color-surface);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;display:grid}.schedule-builder-conflicts article>div{gap:3px;min-width:0;display:grid}.schedule-builder-conflicts article strong{font-size:.83rem}.schedule-builder-conflicts article span{color:var(--color-text-secondary);font-size:.75rem;font-weight:750}.schedule-builder-conflicts article p{color:var(--color-danger-strong);margin:3px 0 0;font-size:.8rem;line-height:1.45}.schedule-builder-conflicts article small{color:var(--color-text-secondary);font-size:.7rem}.schedule-builder-publish{z-index:3;bottom:calc(72px + var(--safe-bottom));border:1px solid var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;display:grid;position:sticky;box-shadow:0 12px 30px #1749682e}.schedule-builder-publish div{min-width:0;display:grid}.schedule-builder-publish span{color:var(--color-text-secondary);font-size:.72rem}@media (width<=760px){.schedule-builder{gap:14px}.schedule-builder-heading{display:grid}.schedule-builder-count{text-align:start;grid-template-columns:auto 1fr;align-items:baseline;gap:7px;min-width:0}.schedule-builder-count strong{font-size:1.35rem}.schedule-builder-period{grid-template-columns:1fr}.schedule-builder-period-overview{grid-template-columns:1fr;padding:14px}.schedule-builder-period-actions,.schedule-builder-view-switch{width:100%}.schedule-builder-delete-period{justify-self:start;min-height:44px}.schedule-builder-period-select,.schedule-builder-new-period{grid-area:auto}.schedule-builder-new-period{justify-self:start}.schedule-builder-days{gap:5px}.schedule-builder-days button{padding-inline:4px}.schedule-builder-days button strong{display:none}.schedule-builder-days button span{display:block}.schedule-builder-tools{align-items:flex-start}.schedule-builder-tools .text-action{text-align:end;min-height:36px;padding:4px}.schedule-builder-mobile-class{color:var(--color-text-secondary);gap:5px;font-size:.78rem;font-weight:800;display:grid}.schedule-builder-mobile-class select{border:1px solid var(--color-border-subtle);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text-primary);border-radius:14px;padding:10px 12px}.schedule-builder-table-wrap{display:none}.schedule-builder-mobile-list{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid;overflow:hidden}.schedule-builder-mobile-row{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);min-height:68px;color:var(--color-text-primary);text-align:start;border-radius:0;grid-template-columns:90px minmax(0,1fr);gap:12px;padding:10px 14px;display:grid}.schedule-builder-mobile-row:last-child{border-bottom:0}.schedule-builder-mobile-row:hover:not(:disabled){background:var(--color-surface-secondary)}.schedule-builder-mobile-row:disabled{cursor:default;opacity:1}.schedule-builder-mobile-row.is-filled{background:var(--color-brand-soft)}.schedule-builder-mobile-row.is-routine{background:color-mix(in srgb, var(--color-brand-soft) 45%, var(--color-surface))}.schedule-builder-mobile-row.is-joint{background:var(--color-info-soft)}.schedule-builder-mobile-row.has-conflict{box-shadow:inset 0 0 0 2px var(--color-danger);background:var(--color-danger-soft)}.schedule-builder-mobile-row>span{min-width:0;color:var(--color-text-secondary);align-content:center;gap:2px;font-size:.72rem;display:grid}.schedule-builder-mobile-row>span strong{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.schedule-builder-editor{grid-template-columns:1fr;position:static}.schedule-builder-editor .schedule-builder-inline-actions,.schedule-builder-editor>.inline-error,.schedule-builder-editor .schedule-builder-entry-type,.schedule-builder-editor .schedule-builder-routine-note,.schedule-builder-editor .schedule-builder-joint-note,.schedule-builder-joint-classes{grid-column:auto}.schedule-builder-entry-type,.schedule-builder-conflicts article{grid-template-columns:1fr}.schedule-builder-conflicts article>button{width:100%}.schedule-builder-bells>summary{flex-direction:column;justify-content:center;align-items:flex-start;padding-block:10px}.bell-slot-row{grid-template-columns:28px minmax(92px,1fr) minmax(92px,1fr)}.bell-slot-row input:first-of-type{grid-column:2/-1}.bell-slot-row input:nth-of-type(2){grid-column:2}.bell-slot-row input:nth-of-type(3){grid-column:3}.bell-slot-row .text-action{grid-column:2/-1;justify-self:end;min-height:34px;padding-block:4px}.schedule-builder-publish{bottom:calc(72px + var(--safe-bottom));grid-template-columns:1fr}.schedule-builder-publish div{grid-column:1/-1}}@media (width<=380px){.schedule-builder-publish{grid-template-columns:1fr}.schedule-builder-publish div{grid-column:auto}.schedule-heading-actions,.schedule-heading-actions>a{width:100%}}@media (width<=350px){.audit-filter-footer{display:grid}.audit-change-list dd{grid-template-columns:1fr}.audit-change-arrow{transform:rotate(90deg)}.audit-pagination{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-pagination span{grid-area:1/1/auto/-1}}.control-secret{overflow-wrap:anywhere;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface-secondary);color:var(--color-text-primary);-webkit-user-select:all;user-select:all;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875rem;line-height:1.55}.control-actions{align-items:center;gap:var(--space-2)}.control-actions .danger-button{margin-left:0}.danger-zone{border-color:color-mix(in srgb, var(--color-danger) 30%, var(--color-border-subtle));background:var(--color-danger-soft)}.academic-period-create{margin-block:var(--space-5) var(--space-7);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface)}.academic-period-create form,.academic-period-list,.academic-period-row,.academic-period-fields{gap:var(--space-4);min-width:0;display:grid}.academic-period-list{margin-bottom:var(--space-8)}.academic-period-row{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface)}.academic-period-row.is-editing{border-color:var(--color-border-strong)}.academic-period-summary{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.academic-period-summary h3{margin:0 0 var(--space-1);font-size:var(--font-size-card-title)}.academic-period-summary p{margin:0 0 var(--space-1);color:var(--color-text-primary)}.academic-period-summary small{color:var(--color-text-secondary)}.academic-period-use-note{color:var(--color-success);margin:0;font-weight:650}.academic-period-actions{gap:var(--space-2);flex-direction:column;display:flex}.academic-period-create .ui-button,.academic-period-row>.ui-button{width:100%}.rollover-setup,.rollover-preview,.rollover-complete{gap:var(--space-4);min-width:0;margin-bottom:var(--space-6);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);display:grid}.rollover-form,.rollover-class-list,.rollover-confirmation{gap:var(--space-4);min-width:0;display:grid}.rollover-form .ui-button{align-self:end;width:100%}.rollover-class-row{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border-subtle);min-width:0;padding-block:var(--space-3);grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);display:grid}.rollover-class-row:first-child{padding-top:0}.rollover-class-row:last-child{border-bottom:0;padding-bottom:0}.rollover-class-row>div{gap:var(--space-1);min-width:0;display:grid}.rollover-class-row strong,.rollover-class-row small{overflow-wrap:anywhere}.rollover-class-row small{color:var(--color-text-secondary)}.rollover-class-row .inline-error{grid-column:1/-1;margin:0}.rollover-transition{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:700}.rollover-confirmation{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4)}.rollover-confirmation label{align-items:start;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);line-height:1.5;display:grid}.rollover-confirmation input{width:24px;height:24px;margin:0}.rollover-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.rollover-complete h2,.rollover-complete p{margin:0}.rollover-error{margin-bottom:var(--space-6)}@media (width>=700px){.admin-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-management-grid,.control-grid,.control-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-period-create{padding:var(--space-5)}.academic-period-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.academic-period-fields .ui-field:last-child{grid-column:1/-1}.academic-period-actions{flex-direction:row}.academic-period-create .ui-button,.academic-period-row>.ui-button{width:fit-content}.rollover-setup,.rollover-preview,.rollover-complete{padding:var(--space-5)}.rollover-form{grid-template-columns:repeat(2,minmax(0,1fr))}.rollover-form .ui-field:nth-child(3){grid-column:1/-1}.rollover-form .ui-button{width:fit-content}.rollover-confirmation{grid-template-columns:minmax(0,1fr) auto;align-items:center}}@media (width>=1100px){.control-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.control-filters{grid-template-columns:repeat(4,minmax(0,1fr))}}.preview-mode-banner{z-index:60;align-items:start;gap:var(--space-2);border-bottom:1px solid color-mix(in srgb, var(--color-warning) 42%, var(--color-border-subtle));min-height:56px;padding:var(--space-1) max(var(--space-4), env(safe-area-inset-right)) var(--space-1) max(var(--space-4), env(safe-area-inset-left));background:var(--color-warning-soft);color:var(--color-text-primary);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto;display:grid;position:sticky;top:0}.preview-mode-summary{align-items:center;gap:var(--space-3);min-height:48px;display:flex}.preview-details-toggle{min-width:44px;min-height:48px}.preview-mode-details{padding:0 0 var(--space-2);grid-column:1/-1}.preview-mode-details p{margin:0 0 var(--space-2)}.preview-mode-details>span{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.preview-mode-banner a,.preview-mode-banner button{padding:var(--space-2);color:var(--color-text-primary);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;font-weight:750;text-decoration:underline}.preview-mode-banner button:disabled{cursor:wait;opacity:.6}.preview-role-grid{gap:var(--space-3);margin:var(--space-5) 0;display:grid}.preview-role-card{align-content:center;gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);width:100%;min-height:104px;padding:var(--space-5);background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;display:grid}.preview-role-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.preview-role-card:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.preview-role-card[aria-current=page]{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.preview-role-card>span{font-size:var(--font-size-card-title);font-weight:780}.preview-role-card>small{color:var(--color-text-secondary)}.preview-page-actions{gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.preview-action-message{margin:var(--space-4) 0;color:var(--color-text-secondary)}.preview-child-context{color:var(--color-text-secondary);margin:0}@media (width>=600px){.preview-role-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.class-goal-sections,.class-goal-section{gap:var(--space-4);display:grid}.class-goal-section>h2{margin:0}.class-goal-list{gap:var(--space-4);display:grid}.class-goal-card,.class-goal-home-card,.class-goal-detail-card,.class-goal-balance-card,.class-goal-admin-section,.class-goal-form{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-5);background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-card);overflow-wrap:anywhere}.class-goal-card{gap:var(--space-4);display:grid}.class-goal-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.class-goal-card-link{color:inherit;text-decoration:none}.class-goal-card-link:focus-visible,.class-goal-card-image-link:focus-visible{border-radius:var(--radius-sm);outline:3px solid var(--color-brand-primary);outline-offset:2px}.class-goal-card-image-link{margin:calc(-1 * var(--space-5)) calc(-1 * var(--space-5)) 0;display:block}.class-goal-card-image{object-fit:cover;width:100%;height:168px;display:block}.class-goal-card-description{-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.class-goal-card-actions{margin-top:auto;display:flex}.class-goal-card-actions .button{width:100%}.class-goal-card-heading,.class-goal-progress-heading,.class-goal-progress-meta,.class-goal-balance-card,.class-goal-admin-contributions article,.class-goal-history article,.class-goal-history a{justify-content:space-between;align-items:flex-start;gap:var(--space-4);min-width:0;display:flex}.class-goal-card-heading h1,.class-goal-card-heading h2{margin:0}.class-goal-card-heading .ui-badge{flex:none}.class-goal-progress{gap:var(--space-2);display:grid}.class-goal-progress-heading span,.class-goal-progress-meta,.class-goal-deadline,.class-goal-admin-contributions span,.class-goal-admin-contributions time,.class-goal-history time,.class-goal-history span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.class-goal-progress-meta{flex-wrap:wrap}.class-goal-own{margin:0}.class-goal-image{border-radius:var(--radius-lg);object-fit:cover;width:100%;max-height:320px;display:block}.class-goal-detail-card{gap:var(--space-5);display:grid}.class-goal-outcome,.class-goal-refund,.class-goal-read-only-note{border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface-muted)}.class-goal-outcome p{margin:var(--space-2) 0 0}.class-goal-refund{border-left:4px solid var(--color-warning)}.class-goal-balance-card{margin-top:var(--space-4);align-items:center}.class-goal-balance-card>div{gap:var(--space-1);display:grid}.class-goal-balance-card>div strong{font-size:var(--font-size-card-title)}.class-goal-balance-card p{flex-basis:100%;margin:0}.class-goal-history{gap:var(--space-3);margin-top:var(--space-5);display:grid}.class-goal-history article,.class-goal-history a{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface);color:inherit;text-decoration:none}.class-goal-history article>*,.class-goal-history a>*{gap:var(--space-1);display:grid}.class-goal-contribution-dialog{gap:var(--space-5);display:grid}.class-goal-contribution-dialog dl,.class-goal-balance-preview{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.class-goal-contribution-dialog dl div{gap:var(--space-1);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-muted);display:grid}.class-goal-contribution-dialog dd{margin:0;font-weight:750}.class-goal-quick-amounts,.class-goal-actions,.class-goal-filters{gap:var(--space-3);flex-wrap:wrap;display:flex}.class-goal-view-tabs{gap:var(--space-2);margin-bottom:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.class-goal-view-tabs button{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-secondary)}.class-goal-view-tabs button[aria-selected=true]{border-color:color-mix(in srgb, var(--color-brand-primary) 40%, var(--color-border-subtle));background:var(--color-brand-soft);color:var(--color-brand-strong)}.class-goal-race-card-list{gap:var(--space-4);display:grid}.class-goal-race-card{gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-5);background:var(--color-surface);display:grid}.class-goal-race-card>div:first-child{gap:3px;display:grid}.class-goal-race-card>div:first-child>span{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:750}.class-goal-race-card :is(h2,p){margin:0}.class-goal-race{gap:var(--space-3);margin-top:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);display:grid}.class-goal-race.is-compact{background:0 0;border:0;border-radius:0;margin-top:0;padding:0}.class-goal-race-heading{justify-content:space-between;align-items:end;gap:var(--space-3);display:flex}.class-goal-race-heading :is(h2,p){margin:0}.class-goal-race-heading p,.class-goal-race-heading>span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.class-goal-race-list{margin:0;padding:0;list-style:none}.class-goal-race-list li{align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);min-height:60px;padding-block:var(--space-2);grid-template-columns:32px minmax(0,1fr) auto;display:grid}.class-goal-race-list li.is-current{background:var(--color-brand-soft)}.class-goal-race-list li>span:nth-child(2){gap:1px;display:grid}.class-goal-race-list small{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.class-goal-race-list .ui-progress{width:100%;margin-bottom:var(--space-2);grid-column:2/-1}.class-goal-race-position{background:var(--color-surface-secondary);font-variant-numeric:tabular-nums;border-radius:50%;place-items:center;width:30px;height:30px;font-weight:850;display:grid}.class-goal-race-picker{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.class-goal-race-picker legend{margin-bottom:var(--space-2);font-weight:800}.class-goal-race-picker label{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:24px minmax(0,1fr);min-height:44px;display:grid}.class-goal-race-picker input{width:20px;height:20px;accent-color:var(--color-brand-primary);margin:0}.class-goal-race-copy-links{gap:var(--space-2);display:grid}.class-goal-race-copy-links a{border-bottom:1px solid var(--color-border-subtle);min-height:44px;padding-block:var(--space-2);font-weight:750}.class-goal-quick-amounts button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);min-width:56px;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:inherit;font:inherit}.class-goal-quick-amounts button:disabled{opacity:.45}.class-goal-filters{margin-bottom:var(--space-5);padding-bottom:var(--space-1);overflow-x:auto}.class-goal-form{gap:var(--space-4);display:grid}.class-goal-admin-section{gap:var(--space-4);margin-top:var(--space-5);display:grid}.class-goal-admin-section>h2{margin:0}.class-goal-image-form{gap:var(--space-4);display:grid}.class-goal-admin-contributions{gap:var(--space-2);display:grid}.class-goal-admin-contributions article{border-bottom:1px solid var(--color-border-subtle);padding:var(--space-3) 0;align-items:center}.class-goal-admin-contributions article>div{gap:var(--space-1);min-width:0;display:grid}.preview-domain-card{gap:var(--space-3);min-width:0;margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);display:grid}.preview-domain-card :is(h2,p){margin:0}.preview-domain-card .button{justify-self:start}.preview-domain-card small{color:var(--color-text-secondary)}@media (width<=520px){.class-goal-card,.class-goal-home-card,.class-goal-detail-card,.class-goal-admin-section,.class-goal-form{padding:var(--space-4)}.class-goal-card-image-link{margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) 0}.class-goal-card-image{height:144px}.class-goal-card-heading,.class-goal-balance-card,.class-goal-admin-contributions article,.class-goal-history article,.class-goal-history a{flex-direction:column;align-items:stretch}.class-goal-contribution-dialog dl,.class-goal-balance-preview{grid-template-columns:1fr}.class-goal-actions>*{width:100%}.class-goal-race-card,.class-goal-race{padding:var(--space-4)}.class-goal-race.is-compact{padding:0}}@media (width>=800px){.class-goal-list{grid-template-columns:repeat(2,minmax(0,1fr))}}.vacation-banner{background:linear-gradient(135deg, var(--color-brand-soft), var(--color-info-soft));color:var(--color-text-primary);border:1px solid #6d5bd047;border-radius:1rem;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;margin:0 0 1rem;padding:.9rem 1rem;display:grid;box-shadow:0 8px 24px #493b8014}.vacation-banner strong{margin-right:.5rem;display:inline-block}.vacation-banner p{overflow-wrap:anywhere;margin:.2rem 0}.vacation-banner small{display:block}.vacation-preview-label{background:var(--color-surface);border-radius:999px;padding:.12rem .45rem;font-size:.78em;display:inline-block}.vacation-status-card{border-inline-start:4px solid var(--color-border-strong)}.vacation-status-card.is-active{border-inline-start-color:var(--color-brand-primary);background:linear-gradient(145deg, var(--color-surface), var(--color-brand-soft))}.vacation-status-heading{align-items:center;gap:.65rem;font-size:1.15rem;display:flex}.vacation-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.vacation-facts div{min-width:0}.vacation-facts dt{color:var(--color-text-muted);font-size:.84rem}.vacation-facts dd{overflow-wrap:anywhere;margin:.15rem 0 0}.vacation-form{gap:1rem;display:grid}.vacation-form label,.vacation-disable-panel label{gap:.4rem;display:grid}.vacation-form input,.vacation-form textarea,.vacation-disable-panel textarea{width:100%;min-width:0}.vacation-notification-preview{background:var(--color-surface-secondary)}.vacation-recipient-count{margin:0}.vacation-actions{flex-wrap:wrap;gap:.75rem;display:flex}.vacation-disable-panel{border-top:1px solid #94a3b859;gap:.75rem;margin-top:1.25rem;padding-top:1rem;display:grid}.vacation-history{gap:.85rem;display:grid}@media (width<=420px){.vacation-banner{grid-template-columns:auto minmax(0,1fr);align-items:start}.vacation-banner>.button{text-align:center;grid-column:1/-1;width:100%}.vacation-facts{grid-template-columns:1fr}}@supports (padding:max(0px)){.vacation-banner{padding-inline:max(1rem, env(safe-area-inset-left)) max(1rem, env(safe-area-inset-right))}}.teacher-today-list,.teacher-attention-list,.teacher-context-list,.teacher-lesson-metrics,.lesson-panel,.quick-grade-list,.lesson-attendance-list,.journal-quick-students{gap:var(--space-3);display:grid}.teacher-today-card{gap:var(--space-4);border-inline-start:4px solid var(--color-border-subtle);display:grid}.teacher-attention-card{align-items:center;gap:var(--space-4);border-inline-start:4px solid var(--color-brand-primary);grid-template-columns:minmax(0,1fr) auto;display:grid}.teacher-attention-card.priority-1{border-inline-start-color:var(--color-danger)}.teacher-attention-card :is(h2,p){margin-block:0 var(--space-2)}.teacher-attention-card time{color:var(--color-text-secondary);font-size:.86rem}.attention-show-all{justify-self:start;min-height:44px}.teacher-context-list{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr))}.teacher-context-card{align-content:center;gap:var(--space-2);min-height:88px;color:inherit;text-decoration:none;display:grid}.teacher-context-card span{color:var(--color-text-secondary)}.teacher-today-card[aria-current=true]{border-inline-start-color:var(--color-brand-primary);box-shadow:var(--shadow-elevated)}.teacher-today-card-heading,.lesson-workspace-heading,.lesson-panel-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.sticky-teacher-context{z-index:10;margin-inline:calc(-1 * var(--space-3));border-bottom:1px solid var(--color-border-subtle);padding:var(--space-3);background:color-mix(in srgb, var(--color-surface) 96%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0}.grade-recovery-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.date-confirmation{min-height:44px;margin-top:var(--space-2);grid-template-columns:auto 1fr;align-items:center;display:grid!important}.date-confirmation input{width:24px;height:24px}.period-result-selectors{gap:var(--space-3);margin-block:var(--space-4);display:grid}.period-result-selectors label,.period-result-panel>label{gap:var(--space-2);font-weight:750;display:grid}.period-result-selectors select,.period-result-panel :is(select,textarea){border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:inherit;font:inherit}.period-result-panel textarea{resize:vertical;min-height:100px}.period-context-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.period-context-header span{color:var(--color-text-secondary)}.period-results-table-wrap{max-width:100%;margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);overflow:auto}.period-results-table{border-collapse:collapse;width:100%;min-width:900px}.period-results-table th,.period-results-table td{padding:var(--space-3);border-bottom:1px solid var(--color-border-subtle);text-align:start;vertical-align:top}.period-results-table thead th{z-index:2;background:var(--color-surface);position:sticky;top:0}.period-results-table input{width:24px;height:24px}.period-results-table small{max-width:220px;margin-top:var(--space-1);color:var(--color-text-secondary);display:block}.period-status{border-radius:var(--radius-round);min-height:30px;padding-inline:var(--space-3);background:var(--color-surface-muted);align-items:center;font-weight:800;display:inline-flex}.period-status.is-confirmed{background:var(--color-success-soft);color:var(--color-success)}.period-status.is-requires_attention:before{content:"!";margin-right:var(--space-1)}.teacher-today-card :is(h2,p),.lesson-panel-heading :is(h2,p){margin:0}.lesson-status{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);min-height:30px;padding:var(--space-1) var(--space-3);background:var(--color-surface-muted);white-space:nowrap;align-items:center;font-size:.84rem;font-weight:800;display:inline-flex}.lesson-status.status-in_progress,.lesson-status.status-in-progress{border-color:var(--color-brand-primary)}.lesson-status.status-unfinished{border-style:dashed}.teacher-lesson-metrics{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.teacher-lesson-metrics div{border-radius:var(--radius-md);min-width:0;padding:var(--space-3);background:var(--color-surface-muted)}.teacher-lesson-metrics dt{color:var(--color-text-secondary);font-size:.78rem}.teacher-lesson-metrics dd{margin:var(--space-1) 0 0;overflow-wrap:anywhere;font-weight:800}.teacher-lesson-open{text-align:center;justify-self:stretch;min-height:48px}.lesson-workspace-tabs,.journal-view-switch,.journal-period,.teacher-homework-section-links{gap:var(--space-2);margin-block:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.lesson-workspace-tabs button,.journal-view-switch button,.journal-period button,.teacher-homework-section-links a{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-width:0;min-height:44px;padding:var(--space-2);background:var(--color-surface);color:inherit;font:inherit;text-align:center;overflow-wrap:anywhere;justify-content:center;align-items:center;font-weight:750;text-decoration:none;display:inline-flex}.lesson-workspace-tabs button.active,.journal-view-switch button.active,.journal-period button.active,.teacher-homework-section-links a.active{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.journal-view-switch{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-homework-section-links{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-homework-class-filter{margin-block:var(--space-4)}.teacher-homework-class-filter label{gap:var(--space-2);width:min(100%,24rem);font-weight:750;display:grid}.teacher-homework-class-filter select{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:inherit}.lesson-panel{min-width:0;margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr)}.grade-toolbar{justify-content:space-between;align-items:end;gap:var(--space-3);flex-wrap:wrap;display:flex}.grade-toolbar>label,.journal-selectors>label,.journal-quick-view>label,.lesson-homework-form>label{gap:var(--space-2);min-width:0;font-weight:750;display:grid}.grade-toolbar select,.journal-selectors select,.journal-quick-view select,.lesson-homework-form :is(textarea,input),.quick-grade-comment input,.full-grade-select select,.lesson-attendance-row select,.bulk-grade-bar select{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);max-width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--color-surface);color:inherit;font:inherit}.filter-chips{gap:var(--space-2);max-width:100%;padding-block:var(--space-1);scrollbar-width:none;display:flex;overflow-x:auto}.filter-chips button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);min-height:44px;padding-inline:var(--space-3);background:var(--color-surface);color:inherit;flex:none}.filter-chips button.active{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.quick-grade-row,.journal-quick-row,.lesson-attendance-row{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-width:0;padding:var(--space-3);background:var(--color-surface);align-items:center;display:grid}.quick-grade-row:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.quick-grade-list{grid-template-columns:minmax(0,1fr);min-width:0}.quick-grade-row{grid-template-columns:44px minmax(0,1fr);align-items:start}.quick-grade-row>:is(.grade-shortcuts,.quick-grade-comment,.grade-save-state){grid-column:1/-1;min-width:0}.quick-grade-row .bulk-select{cursor:pointer;place-items:center;width:44px;min-height:44px;display:grid}.quick-grade-row .bulk-select input{min-height:24px;accent-color:var(--color-brand-primary);margin:0}.quick-grade-row .grade-shortcuts{align-items:center}.quick-grade-row .grade-shortcuts button{padding-inline:var(--space-2)}.quick-grade-row .grade-save-state{flex-wrap:wrap}.lesson-workspace-heading.sticky-teacher-context{background:var(--color-surface);margin-inline:0;position:static}.lesson-workspace-heading>div,.lesson-panel-heading>div{overflow-wrap:anywhere;min-width:0}.grade-toolbar>label{max-width:100%}.bulk-select{align-self:start}.bulk-select input{width:24px;height:24px}.quick-grade-student{gap:var(--space-1);min-width:0;display:grid}.quick-grade-student span{color:var(--color-text-secondary);font-size:.82rem}.lesson-preparation-action{border:1px solid var(--color-danger);border-radius:var(--radius-md);min-height:44px;padding:var(--space-1) var(--space-2);background:var(--color-surface);color:var(--color-danger);font:inherit;justify-self:start;font-size:.82rem;font-weight:750}.lesson-preparation-mark{gap:var(--space-1);border-left:3px solid var(--color-danger);padding-left:var(--space-2);display:grid}.lesson-preparation-mark strong{color:var(--color-danger);font-size:.82rem}.lesson-preparation-mark .text-action{justify-self:start;min-height:32px;padding:0;font-size:.78rem}.student-name-button{min-width:0;min-height:44px;color:inherit;font:inherit;text-align:start;overflow-wrap:anywhere;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:850;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;display:inline}.student-name-button:hover,.student-name-button:focus-visible{text-decoration-color:currentColor}.grade-shortcuts{gap:var(--space-2);flex-wrap:wrap;display:flex}.grade-primary-values{gap:var(--space-1);flex-wrap:wrap;flex-basis:100%;min-width:0;display:flex}.grade-primary-values button{padding-inline:var(--space-2)}.grade-shortcuts .full-grade-select{min-width:0}.quick-grade-row.is-published>.quick-grade-student,.grade-published-summary,.grade-correction-content{grid-column:1/-1;min-width:0}.grade-published-summary{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.grade-published-summary>p{flex-basis:100%;margin:0}.grade-correction-content:empty{display:none}.journal-correction-form{min-width:0}.journal-correction-form :is(h2,p){overflow-wrap:anywhere;margin:0}.journal-correction-form h2{scroll-margin-top:10rem;font-size:1rem}.journal-correction-form :is(textarea,label){min-width:0;max-width:100%}.journal-correction-actions button{overflow-wrap:anywhere;min-width:0;max-width:100%}.journal-correction-history{overflow-wrap:anywhere;min-width:0}.grade-field-label{font-weight:750}.grade-shortcuts button,.grade-shortcuts select{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);min-width:44px;min-height:44px;color:inherit;font:inherit;font-weight:850}.grade-shortcuts button[aria-pressed=true]{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-on-brand)}.grade-shortcuts .clear-grade{min-width:86px;font-size:.82rem}.quick-grade-comment input{width:100%;min-width:0}.grade-save-state{align-items:center;gap:var(--space-2);min-height:24px;color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.82rem;display:flex}.grade-save-state.is-saved:before{content:"✓";font-weight:900}.grade-save-state.is-saving:before{content:"…";font-weight:900}.grade-save-state.is-error,.grade-save-state.is-offline{color:var(--color-danger)}.bulk-grade-bar{bottom:calc(76px + env(safe-area-inset-bottom,0px));z-index:8;align-items:center;gap:var(--space-3);border:1px solid var(--color-brand-primary);border-radius:var(--radius-card);padding:var(--space-3);background:var(--color-surface);box-shadow:var(--shadow-elevated);flex-wrap:wrap;display:flex;position:sticky}.lesson-attendance-row{grid-template-columns:minmax(0,1fr) minmax(145px,.7fr)}.lesson-homework-form{gap:var(--space-4);display:grid}.lesson-homework-form textarea{resize:vertical;min-height:150px}.lesson-homework-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.lesson-complete-bar{bottom:calc(64px + env(safe-area-inset-bottom,0px));z-index:7;justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-3);background:color-mix(in srgb, var(--color-surface) 96%, transparent);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;position:sticky}.lesson-complete-bar>div{gap:var(--space-1);min-width:0;display:grid}.lesson-complete-bar span{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.82rem}.lesson-complete-bar button{flex:none}.journal-selectors{gap:var(--space-3);margin-block:var(--space-4);display:grid}.journal-period{margin:0}.add-column-link{margin-block:var(--space-3)}.journal-page-heading{justify-content:space-between;align-items:end;gap:var(--space-4);display:flex}.journal-page-heading>div{min-width:0}.journal-heading-actions{justify-content:end;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.journal-heading-actions>*{min-height:44px}.journal-export-panel{gap:var(--space-4);min-width:0;margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.journal-export-panel>header{justify-content:space-between;align-items:start;gap:var(--space-3);min-width:0;display:flex}.journal-export-panel>header>div{min-width:0}.journal-export-panel :is(h2,p){margin:0}.journal-export-panel>header p{margin-top:var(--space-1);color:var(--color-text-secondary);overflow-wrap:anywhere}.journal-export-panel fieldset{gap:var(--space-3);border:0;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;margin:0;padding:0;display:grid}.journal-export-panel legend{margin-bottom:var(--space-2);grid-column:1/-1;padding:0;font-weight:800}.journal-export-panel fieldset label{align-items:start;gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-width:0;min-height:88px;padding:var(--space-3);background:var(--color-surface);cursor:pointer;grid-template-columns:22px minmax(0,1fr);display:grid}.journal-export-panel fieldset label.is-selected{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.journal-export-panel input[type=radio]{width:20px;height:20px;accent-color:var(--color-brand-primary);margin:2px 0 0}.journal-export-panel fieldset span{gap:var(--space-1);min-width:0;display:grid}.journal-export-panel fieldset strong,.journal-export-panel fieldset small{overflow-wrap:anywhere}.journal-export-panel fieldset small,.journal-export-note{color:var(--color-text-secondary)}.journal-export-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.journal-export-success{color:var(--color-success);font-weight:750}.journal-primary-action{width:100%;margin-block:var(--space-3)}.journal-create-panel{gap:var(--space-4);margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.journal-create-heading{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.journal-create-heading :is(h2,p){margin:0}.journal-create-actions,.journal-correction-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.journal-form textarea,.journal-correction-form textarea{resize:vertical;width:100%;min-height:96px}.journal-details-toggle{justify-self:start}.journal-overview{margin-top:var(--space-4)}.journal-assessment-card{background:var(--color-surface);box-shadow:var(--shadow-card)}.journal-assessment-card:hover,.journal-assessment-card:focus-visible{border-color:var(--color-brand-primary)}.journal-matrix th a{gap:var(--space-1);min-width:110px;color:inherit;text-decoration:none;display:grid}.journal-experience{min-width:0}.journal-quick-view{gap:var(--space-4);display:grid}.journal-quick-row{grid-template-columns:minmax(0,1fr)}.journal-matrix-wrap{overscroll-behavior:contain;border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);max-height:min(70vh,780px);position:relative;overflow:auto}.journal-matrix thead th{z-index:3;top:0}.journal-matrix tbody th{z-index:2;min-width:190px;left:0}.journal-matrix thead th:first-child{z-index:4;left:0}.journal-matrix td{text-align:center;min-width:82px;position:relative}.journal-cell-button{border-radius:var(--radius-md);min-width:44px;min-height:44px;color:inherit;font:inherit;background:0 0;border:1px solid #0000;font-weight:850}.journal-cell-button:not(:disabled):hover,.journal-cell-button:not(:disabled):focus-visible{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.journal-cell-popover{z-index:12;gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);width:190px;padding:var(--space-3);background:var(--color-surface);box-shadow:var(--shadow-elevated);grid-template-columns:repeat(2,minmax(44px,1fr));display:grid;position:absolute;top:calc(100% - 4px);left:50%;transform:translate(-50%)}.journal-cell-popover button{min-height:44px}.journal-assessment-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.journal-assessment-toolbar p{margin:0;font-weight:800}.journal-student-list{gap:var(--space-3);margin-block:var(--space-4);display:grid}.journal-student-row{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-width:0;padding:var(--space-3);background:var(--color-surface);grid-template-columns:minmax(0,1fr);scroll-margin-block:110px;display:grid}.journal-student-summary{align-items:center;gap:var(--space-3);grid-template-columns:minmax(0,1fr) 52px minmax(100px,auto) auto;display:grid}.journal-grade-trigger{border:1px solid var(--color-brand-primary);border-radius:var(--radius-md);background:var(--color-brand-soft);min-width:48px;min-height:48px;color:inherit;font:inherit;font-size:1.1rem;font-weight:900}.journal-grade-trigger:disabled{opacity:1}.journal-grade-picker{gap:var(--space-2);grid-template-columns:repeat(5,minmax(44px,1fr));display:grid}.journal-grade-picker button{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);min-width:44px;min-height:44px;color:inherit;font:inherit;font-weight:850}.journal-grade-picker button[aria-pressed=true]{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-on-brand)}.journal-grade-picker .clear-grade{grid-column:1/-1}.journal-entry-editor,.journal-correction-form{gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);display:grid}.journal-entry-editor summary,.journal-correction-history summary{cursor:pointer;min-height:44px;font-weight:750}.journal-comment-editor,.journal-correction-form label{gap:var(--space-2);font-weight:750;display:grid}.journal-comment-editor textarea{resize:vertical;width:100%;min-height:92px}.journal-correction-history ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.journal-correction-history li{gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--color-surface-muted);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.journal-correction-history time{color:var(--color-text-secondary);font-size:.82rem}.journal-publish-bar{bottom:calc(68px + env(safe-area-inset-bottom,0px));z-index:8;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4);border:1px solid var(--color-brand-primary);border-radius:var(--radius-card);padding:var(--space-3);background:color-mix(in srgb, var(--color-surface) 96%, transparent);box-shadow:var(--shadow-elevated);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;position:sticky}.journal-publish-bar span{color:var(--color-text-secondary);font-size:.86rem}.student-panel-backdrop{z-index:50;background:#0f172a52;justify-content:flex-end;align-items:flex-end;display:flex;position:fixed;inset:0}.student-quick-panel{gap:var(--space-4);border-radius:var(--radius-card) var(--radius-card) 0 0;width:min(100%,440px);max-height:90vh;padding:var(--space-6) max(var(--space-5), env(safe-area-inset-right)) max(var(--space-6), env(safe-area-inset-bottom)) max(var(--space-5), env(safe-area-inset-left));background:var(--color-surface);box-shadow:var(--shadow-elevated);display:grid;position:relative;overflow:auto}.student-quick-panel dl{gap:var(--space-3);margin:0;display:grid}.student-quick-panel dl div{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-muted)}.student-quick-panel dd{margin:var(--space-1) 0 0;font-weight:800}.parent-composer-backdrop{z-index:90}.parent-message-composer{gap:var(--space-3)}.parent-recipient-list{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.parent-recipient-list label,.context-card-toggle{align-items:center;gap:var(--space-3);min-height:44px;display:flex}.context-card-toggle{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-muted)}.context-card-toggle span{gap:var(--space-1);display:grid}.period-parent-message-trigger{right:max(var(--space-5), env(safe-area-inset-right));bottom:max(var(--space-5), env(safe-area-inset-bottom));z-index:85;position:fixed}.parent-child-context{z-index:20;justify-content:space-between;align-items:center;gap:var(--space-3);min-width:0;margin:0 0 var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:color-mix(in srgb, var(--color-surface) 94%, transparent);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;position:sticky;top:0}.parent-child-context>div{gap:2px;min-width:0;display:grid}.parent-child-context>div span,.parent-child-context label>span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-child-context strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.parent-child-context label{gap:2px;min-width:min(48%,240px);display:grid}.parent-child-context select{max-width:100%;min-height:44px}.parent-absence-card{gap:var(--space-3);margin-bottom:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.parent-absence-heading{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.parent-absence-heading h2,.parent-absence-card p{margin:0}.parent-absence-heading button{white-space:normal;width:auto;max-width:100%}.parent-absence-success{border-radius:var(--radius-md);padding:var(--space-3);background:color-mix(in srgb, var(--color-success) 10%, var(--color-surface));color:var(--color-success);font-weight:800}.parent-absence-form{gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);display:grid}.parent-absence-form label{gap:var(--space-2);min-width:0;font-weight:800;display:grid}.parent-absence-form fieldset{border:0;min-width:0;margin:0;padding:0}.parent-absence-form legend{margin-bottom:var(--space-2);font-weight:800}.parent-absence-form input,.parent-absence-form select,.parent-absence-form textarea{box-sizing:border-box;width:100%;min-width:0}.parent-absence-form textarea{resize:vertical;min-height:88px}.parent-absence-child{justify-content:space-between;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);flex-wrap:wrap;display:flex}.parent-absence-child span{color:var(--color-text-secondary)}.parent-absence-options{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.parent-absence-date-options{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-absence-options label{align-items:center;gap:var(--space-2);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);min-height:48px;padding:var(--space-2) var(--space-3);cursor:pointer;font-weight:700;display:flex}.parent-absence-options label:has(input:checked){border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong)}.parent-absence-options input{width:20px;min-width:20px;height:20px;margin:0}.parent-absence-dates{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.parent-absence-summary{gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);overflow-wrap:anywhere;display:grid}.parent-absence-summary h3{margin:0;font-size:1rem}.parent-absence-history{gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);display:grid}.parent-absence-history h3{margin:0;font-size:1rem}.parent-absence-history ol{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.parent-absence-history>ol>li{align-items:center;gap:var(--space-2) var(--space-3);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);grid-template-columns:minmax(0,1fr) auto;display:grid}.parent-absence-history>ol>li>div{overflow-wrap:anywhere;gap:2px;min-width:0;display:grid}.parent-absence-history>ol>li>span{color:var(--color-success);font-weight:800}.parent-absence-history>ol>li>span.is-cancelled{color:var(--color-text-muted)}.parent-absence-history .text-button{grid-column:1/-1;justify-self:start;width:auto;min-height:44px}.parent-absence-acknowledgements{gap:var(--space-2);border-top:1px solid var(--color-border-subtle);min-width:0;padding-top:var(--space-2);grid-column:1/-1;display:grid}.parent-absence-acknowledgements ul{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.parent-absence-acknowledgements li{gap:var(--space-2);overflow-wrap:anywhere;background:0 0;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;min-width:0;padding:0;display:grid}.parent-absence-acknowledgements li>span:first-child{color:var(--color-success);font-size:1.1rem}.parent-absence-acknowledgements small{color:var(--color-text-muted)}details.parent-absence-history,details.parent-absence-acknowledgements{display:block}.parent-absence-history>summary,.parent-absence-acknowledgements>summary{min-height:44px;padding-block:var(--space-2);color:var(--color-brand-primary);cursor:pointer;overflow-wrap:anywhere;font-weight:750}.parent-absence-history>summary:hover,.parent-absence-acknowledgements>summary:hover{color:var(--color-brand-hover)}.parent-absence-history>summary:focus-visible,.parent-absence-acknowledgements>summary:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.parent-absence-history[open]>ol,.parent-absence-acknowledgements[open]>ul{margin-top:var(--space-2)}.parent-absence-detail-page{gap:var(--space-4);display:grid}.parent-absence-note,.muted-copy{color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.optional-label{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:500}.parent-home-foundation{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:linear-gradient(145deg, var(--color-surface), var(--color-surface-secondary));box-shadow:var(--shadow-card);display:grid}.parent-home-foundation h2,.parent-home-foundation p{margin:0}.parent-home-foundation .primary-link{justify-self:start}.parent-communication-links{margin-top:var(--space-5)}.parent-empty-actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-4);flex-wrap:wrap;display:flex}@media (width<=420px){.parent-child-context{padding:var(--space-3);align-items:stretch}.parent-child-context label{min-width:44%}.parent-child-context strong{white-space:normal}.parent-home-foundation{padding:var(--space-4)}.parent-absence-heading{align-items:flex-start}.parent-absence-heading button{width:100%}.parent-absence-options,.parent-absence-dates,.parent-absence-history>ol>li{grid-template-columns:1fr}.parent-absence-acknowledgements li{grid-template-columns:auto minmax(0,1fr)}.parent-absence-acknowledgements small{grid-column:2}}@media (prefers-reduced-motion:reduce){.parent-child-context{scroll-behavior:auto}}.parent-home-flow{gap:var(--space-5);display:grid}.parent-vacation-notice{align-items:center;gap:var(--space-3);border:1px solid color-mix(in srgb, var(--color-warning) 40%, var(--color-border-subtle));border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);background:color-mix(in srgb, var(--color-warning) 8%, var(--color-surface));grid-template-columns:auto minmax(0,1fr) auto;display:grid}.parent-vacation-notice p{margin:2px 0 0}.parent-day-summary{gap:var(--space-3);border-radius:var(--radius-card);padding:var(--space-5);color:var(--color-text-primary);background:linear-gradient(135deg, var(--color-brand-soft), var(--color-brand-tint));box-shadow:var(--shadow-card);display:grid}.parent-day-summary h2,.parent-day-summary p{margin:0}.parent-day-summary ul{gap:var(--space-2);margin:0;padding-left:1.25rem;display:grid}.parent-day-summary .eyebrow{color:var(--color-brand-strong)}.parent-day-summary .primary-link{color:var(--color-on-brand);background:var(--color-brand-strong);justify-self:start}.parent-attention-more{align-content:center;justify-self:start;min-height:44px;font-weight:800}.parent-home-section{gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-5);display:grid}.parent-home-section>h2,.parent-section-heading h2{margin:0}.parent-section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.parent-attention-list{gap:var(--space-3);display:grid}.parent-attention-card{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);display:flex}.parent-attention-card>div{gap:3px;min-width:0;display:grid}.parent-attention-card span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-attention-card h3,.parent-attention-card p{overflow-wrap:anywhere;min-width:0;margin:0}.parent-attention-card a{white-space:nowrap;align-content:center;min-height:44px}.parent-today-preview ol{gap:0;margin:0;padding:0;list-style:none;display:grid}.parent-today-preview li{gap:var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:64px minmax(0,1fr) auto;align-items:center;min-height:44px;display:grid}.parent-today-preview time{font-variant-numeric:tabular-nums;font-weight:800}.parent-today-preview small{color:var(--color-text-secondary)}.parent-compact-list{border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);gap:0;display:grid;overflow:hidden}.parent-compact-list a{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);display:flex}.parent-compact-list a:last-child{border-bottom:0}.parent-goal-preview{grid-template-columns:minmax(0,1fr) auto;align-items:end}.parent-goal-preview h2,.parent-goal-preview p{margin:0}@media (width>=760px){.parent-attention-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=420px){.parent-vacation-notice{grid-template-columns:auto minmax(0,1fr)}.parent-vacation-notice>a{grid-column:2;align-content:center;min-height:44px}.parent-day-summary{padding:var(--space-4)}.parent-attention-card{flex-direction:column;align-items:stretch}.parent-attention-card a{text-align:center;align-self:stretch;width:100%}.parent-today-preview li{grid-template-columns:56px minmax(0,1fr)}.parent-today-preview small{padding-bottom:var(--space-2);grid-column:2}.parent-goal-preview{grid-template-columns:1fr}}.parent-study-tabs{gap:var(--space-2);margin:0 calc(var(--space-4) * -1) var(--space-4);padding:0 var(--space-4) var(--space-2);overscroll-behavior-inline:contain;scroll-padding-inline:var(--space-4);scrollbar-width:thin;scroll-snap-type:x proximity;display:flex;overflow-x:auto}.parent-study-tabs button,.parent-assignment-tabs button{border:1px solid var(--color-border-subtle);min-height:44px;padding:0 var(--space-4);color:var(--color-text-secondary);background:var(--color-surface);scroll-snap-align:start;border-radius:999px;flex:none}.parent-study-tabs button[aria-selected=true],.parent-assignment-tabs button[aria-selected=true]{border-color:var(--color-brand-primary);color:var(--color-brand-primary);background:color-mix(in srgb, var(--color-brand-primary) 8%, var(--color-surface));font-weight:800}.parent-study-panel{gap:var(--space-4);min-width:0;display:grid}.parent-study-list{gap:var(--space-3);min-width:0;display:grid}.parent-study-status{color:var(--color-text-secondary)}.parent-study-card{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card);min-width:0;max-width:100%;display:grid;overflow:hidden}.parent-study-card>div{gap:3px;min-width:0;display:grid}.parent-study-card span,.parent-study-card small{color:var(--color-text-secondary)}.parent-study-card h3,.parent-study-card h4,.parent-study-card p{overflow-wrap:anywhere;word-break:normal;min-width:0;margin:0}.parent-assignment-title{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.assignment-expand-control{border:1px solid var(--color-border-subtle);width:100%;min-height:44px;color:var(--color-brand-strong);background:var(--color-surface-secondary);text-align:left}.assignment-expand-control:hover:not(:disabled){color:var(--color-brand-strong);background:var(--color-surface-muted)}.parent-assignment-expanded{border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);overflow-wrap:anywhere}.parent-assignment-expanded h4{font-size:var(--font-size-card-title)}.parent-teacher-action{border:1px solid var(--color-border-strong);width:fit-content;min-width:0;max-width:100%;min-height:44px;padding-inline:var(--space-4);background:var(--color-surface);color:var(--color-brand-strong);white-space:nowrap;justify-content:center;justify-self:start;align-items:center;font-weight:800;line-height:1.2;display:inline-flex}.parent-teacher-action:hover:not(:disabled){border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong)}.parent-load-more{white-space:normal;width:100%;min-width:0;min-height:44px}.parent-assignment-tabs{gap:var(--space-2);overscroll-behavior-inline:contain;scroll-padding-inline:var(--space-2);padding-bottom:var(--space-2);display:flex;overflow-x:auto}.parent-study-filters{justify-content:space-between;align-items:end;gap:var(--space-4);display:flex}.parent-study-filters label,.parent-attendance-filter,.parent-period-filter{gap:var(--space-1);min-width:min(100%,240px);display:grid}.parent-study-filters select,.parent-attendance-filter select,.parent-period-filter select{min-height:44px}.parent-study-filters p{text-align:right;gap:2px;margin:0;display:grid}.parent-study-filters p span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-grade-value{min-width:44px;min-height:44px;color:var(--color-on-brand);background:var(--color-brand-primary);border-radius:50%;place-items:center;font-size:1.15rem;font-weight:900;display:inline-grid}.parent-grades-skeleton{gap:var(--space-5);display:grid}.parent-grades-skeleton-periods{gap:var(--space-2);display:flex;overflow:hidden}.parent-grades-skeleton-periods .skeleton{border-radius:999px;flex:none;width:104px;height:44px}.parent-grades-skeleton-grid{gap:var(--space-3);display:grid}.parent-grades-skeleton-grid .skeleton{height:220px}.parent-grades-periods{gap:var(--space-2);min-width:0;margin-inline:calc(var(--space-4) * -1);padding:0 var(--space-4) var(--space-2);overscroll-behavior-inline:contain;scroll-padding-inline:var(--space-4);scrollbar-width:thin;display:flex;overflow-x:auto}.parent-grades-periods button{border:1px solid var(--color-border-subtle);min-height:44px;padding-inline:var(--space-4);color:var(--color-text-secondary);background:var(--color-surface);border-radius:999px;flex:none;font-weight:700}.parent-grades-periods button[aria-selected=true]{border-color:var(--color-brand-primary);color:var(--color-brand-strong);background:var(--color-brand-soft);font-weight:850}.parent-grades-grid{gap:var(--space-4);min-width:0;display:grid}.parent-subject-grades{align-content:start;gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-5);background:var(--color-surface);display:grid}.parent-subject-grades h2{overflow-wrap:anywhere;min-width:0;font-size:var(--font-size-card-title);margin:0}.parent-grade-chips{gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.parent-grade-chip{border:1px solid color-mix(in srgb, var(--color-brand-primary) 28%, var(--color-border-subtle));border-radius:var(--radius-md);min-width:44px;min-height:44px;padding-inline:var(--space-3);color:var(--color-brand-strong);background:var(--color-brand-soft);font-variant-numeric:tabular-nums;place-items:center;font-size:1rem;font-weight:900;display:inline-grid}.parent-grade-chip:hover:not(:disabled){border-color:var(--color-brand-primary);color:var(--color-brand-strong);background:var(--color-brand-tint)}.parent-grade-chip.is-absence{border-color:var(--color-border-strong);color:var(--color-text-primary);background:var(--color-surface-muted)}.parent-grade-chip.is-debt_zero{border-color:color-mix(in srgb, var(--color-warning) 35%, var(--color-border-subtle));color:var(--color-warning);background:var(--color-warning-soft)}.parent-subject-grades-empty{color:var(--color-text-secondary);margin:0}.parent-grade-summary{border-top:1px solid var(--color-border-subtle);gap:0;margin:0;display:grid}.parent-grade-summary>div{align-items:baseline;gap:var(--space-3);padding-block:var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;display:grid}.parent-grade-summary>div:last-child{border-bottom:0;padding-bottom:0}.parent-grade-summary dt{color:var(--color-text-secondary)}.parent-grade-summary dd{min-width:0;color:var(--color-text-primary);font-variant-numeric:tabular-nums;text-align:right;margin:0;font-weight:850}.parent-grade-summary dd>span{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:650}.parent-grade-detail{gap:var(--space-3);display:grid}.parent-grade-detail>*{margin:0}.parent-grade-detail-value{width:fit-content;color:var(--color-brand-strong);font-size:1.75rem;line-height:1.15}.parent-grade-detail-value.is-absence{color:var(--color-text-primary)}.parent-grade-detail-value.is-debt_zero{color:var(--color-warning)}.parent-grade-detail time,.parent-grade-detail>p{color:var(--color-text-secondary)}.parent-grade-detail h3{overflow-wrap:anywhere;font-size:var(--font-size-card-title)}.parent-grade-detail section{gap:var(--space-2);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4);display:grid}.parent-grade-detail section h3,.parent-grade-detail section p{overflow-wrap:anywhere;margin:0}.parent-attendance-summary{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.parent-attendance-summary>div{gap:var(--space-1);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);display:grid}.parent-attendance-summary dt{color:var(--color-text-secondary)}.parent-attendance-summary dd{margin:0;font-size:1.2rem;font-weight:900}.parent-study-chat-link{width:100%;min-width:0;min-height:44px;margin-top:var(--space-5);color:var(--color-brand-strong);white-space:normal;justify-content:center;align-items:center;font-weight:800;display:flex}.parent-study-chat-link:hover:not(:disabled){color:var(--color-brand-strong);background:var(--color-surface-muted)}.parent-error-back{width:100%;margin-top:var(--space-3)}.parent-route-error{align-content:center;min-height:100dvh}.parent-route-error-actions{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.parent-route-error-actions button{min-width:0;min-height:44px}@media (forced-colors:active){.parent-day-summary{color:canvastext;background:canvas;border:2px solid canvastext}.parent-day-summary .primary-link{color:linktext;background:canvas;border:2px solid linktext}}@media (width<=680px){.parent-attendance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-study-filters{flex-direction:column;align-items:stretch}.parent-study-filters p{text-align:left}}@media (width>=760px){.parent-grades-skeleton-grid,.parent-grades-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.parent-grades-periods{margin-inline:0;padding-inline:0}}@media (width<=380px){.parent-subject-grades{padding:var(--space-4)}.parent-grade-summary>div{gap:var(--space-1);grid-template-columns:1fr}.parent-grade-summary dd{text-align:left}}@media (width>=900px){.parent-study-tabs{margin-inline:0;padding-inline:0}}.parent-composer-backdrop{background:#10182861;justify-content:flex-end;display:flex;position:fixed;inset:0}.parent-message-composer{width:min(100%,520px);height:100%;padding:max(var(--space-5), env(safe-area-inset-top)) max(var(--space-5), env(safe-area-inset-right)) max(var(--space-5), env(safe-area-inset-bottom)) var(--space-5);color:var(--color-text-primary);background:var(--color-surface);align-content:start;display:grid;overflow-y:auto;box-shadow:-18px 0 50px #1018282e}.parent-message-composer>header{justify-content:space-between;align-items:start;gap:var(--space-3);display:flex}.parent-message-composer>header span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-message-composer h2{margin:2px 0 0}.parent-composer-close{min-height:44px;padding-inline:var(--space-3);color:var(--color-brand-strong);white-space:nowrap;background:0 0;border:0;font-weight:800}.parent-composer-close:hover:not(:disabled){background:var(--color-surface-secondary)}.parent-message-composer form{gap:var(--space-4);display:grid}.parent-composer-child{gap:var(--space-2);grid-template-columns:1fr 1fr;margin:0;display:grid}.parent-composer-child>div{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary)}.parent-composer-child dt{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-composer-child dd{margin:2px 0 0;font-weight:800}.parent-recipient-list legend{margin-bottom:var(--space-2);font-weight:800}.parent-recipient-list label{border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3)}.parent-recipient-list label:has(input:checked){border-color:var(--color-brand-primary);background:color-mix(in srgb, var(--color-brand-primary) 7%, var(--color-surface))}.parent-recipient-list label span{gap:2px;display:grid}.parent-recipient-list small{color:var(--color-text-secondary)}.parent-safe-context-card{border-left:4px solid var(--color-brand-primary);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);gap:2px;display:grid}.parent-safe-context-card span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-message-field{gap:var(--space-2);font-weight:800;display:grid}.parent-message-field textarea{resize:vertical;width:100%;min-height:150px}.parent-composer-actions{justify-content:flex-end;gap:var(--space-3);display:flex}.form-success{color:var(--color-success);font-weight:800}@media (width<=600px){.parent-message-composer{width:100%;padding-inline:var(--space-4);box-shadow:none}}.period-result-panel>a[href^="/app/chat?student="]{display:none}.teacher-notification-preferences,.teacher-notification-preferences section,.parent-notification-preferences,.parent-notification-preferences section{gap:var(--space-3);display:grid}.teacher-category-list,.parent-category-list{gap:var(--space-2);display:grid}.teacher-category-list>label,.parent-category-list>label{align-items:center;gap:var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) minmax(180px,.7fr);min-height:52px;display:grid}.teacher-category-list small,.parent-category-list small{color:var(--color-text-muted);display:block}@media (width<=520px){.teacher-category-list>label,.parent-category-list>label{padding-block:var(--space-2);grid-template-columns:1fr}}.panel-close{top:var(--space-3);right:var(--space-3);min-width:44px;min-height:44px;color:inherit;background:0 0;border:0;font-size:1.6rem;position:absolute}.save-feedback{color:var(--color-success);font-weight:750}.homeroom-page{gap:var(--space-4);display:grid}.homeroom-page .page-heading{justify-content:space-between;align-items:start;gap:var(--space-4);display:flex}.homeroom-page .page-heading :is(h1,p){margin-block:0 var(--space-2)}.homeroom-header-actions,.homeroom-date-toolbar{align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.homeroom-date-card,.homeroom-workspace-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);box-shadow:var(--shadow-card)}.homeroom-date-card{gap:var(--space-3);display:grid}.homeroom-date-toolbar label{gap:var(--space-1);min-width:150px;font-weight:750;display:grid}.homeroom-date-navigation{align-items:end;gap:var(--space-2);grid-template-columns:44px minmax(150px,1fr) 44px;display:grid}.homeroom-date-toolbar :is(select,input){border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-height:44px;padding:var(--space-2);background:var(--color-surface);color:inherit;font:inherit}.homeroom-date-arrow{min-width:44px;padding-inline:var(--space-3)}.homeroom-date-strip{gap:var(--space-2);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.homeroom-date-strip button{border-radius:var(--radius-md);min-width:0;min-height:54px;padding:var(--space-2);background:var(--color-surface-secondary);color:var(--color-text-secondary);border:1px solid #0000;place-items:center;gap:2px;display:grid}.homeroom-date-strip button.active{border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-text-primary)}.homeroom-date-strip small{font-size:.68rem}.homeroom-workspace-card{gap:var(--space-4);padding:0;display:grid;overflow:hidden}.homeroom-workspace-heading{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) 0;display:flex}.homeroom-workspace-heading :is(h2,p){margin:0}.homeroom-tabs{border-bottom:1px solid var(--color-border-subtle);padding-inline:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.homeroom-tabs button{min-height:48px;padding:var(--space-2);color:var(--color-text-secondary);background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0}.homeroom-tabs button.active{border-bottom-color:var(--color-brand-primary);color:var(--color-text-primary)}.homeroom-tab-panel{gap:var(--space-4);padding:0 var(--space-4) var(--space-4);display:grid}.homeroom-tab-panel>h3{margin:0}.homeroom-summary{gap:var(--space-3);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.homeroom-summary article{gap:var(--space-1);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary);display:grid}.homeroom-summary strong{font-size:1.7rem}.homeroom-summary span{color:var(--color-text-secondary)}.homeroom-student-table-wrap{overflow-x:auto}.homeroom-student-table{border-collapse:collapse;width:100%}.homeroom-student-table :is(th,td){border-bottom:1px solid var(--color-border-subtle);padding:var(--space-3);text-align:left;vertical-align:top}.homeroom-student-table thead th{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.homeroom-cell-items{gap:var(--space-1);display:grid}.homeroom-cell-items span{font-size:var(--font-size-caption)}.homeroom-cell-items .is-absent,.homeroom-cell-items .is-late{color:var(--color-danger);font-weight:750}.homeroom-empty-cell{color:var(--color-text-muted)}.homeroom-mark-dots{gap:var(--space-1);flex-wrap:wrap;display:flex}.homeroom-mark-dots span{border-radius:var(--radius-round);place-items:center;width:28px;height:28px;display:grid}.homeroom-mark-dots .is-green{background:var(--color-success-soft);color:var(--color-success)}.homeroom-mark-dots .is-red{background:var(--color-danger-soft);color:var(--color-danger)}.homeroom-homework-list{gap:var(--space-2);display:grid}.homeroom-homework-list article{justify-content:space-between;align-items:center;gap:var(--space-4);border-top:1px solid var(--color-border-subtle);padding-block:var(--space-3);display:flex}.homeroom-homework-list article div{min-width:0}.homeroom-homework-list :is(p,span){margin:var(--space-1) 0 0;color:var(--color-text-secondary);overflow-wrap:anywhere}.homeroom-expected{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-warning-soft);display:flex}.homeroom-expected div{gap:var(--space-1);display:grid}.homeroom-expected ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.homeroom-expected li{flex-wrap:wrap;gap:4px 10px;display:flex}.homeroom-expected small{color:var(--color-text-muted)}.homeroom-activity-list{gap:var(--space-2);display:grid}.homeroom-activity-list article{justify-content:space-between;align-items:center;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-block:var(--space-3);display:flex}.homeroom-activity-list article>div{gap:var(--space-1);min-width:0;display:grid}.homeroom-activity-list :is(span,small){color:var(--color-text-secondary);overflow-wrap:anywhere}.homeroom-grade{border-radius:var(--radius-round);background:var(--color-brand-soft);place-items:center;width:44px;height:44px;display:grid}.homeroom-attendance{text-align:end;font-size:.82rem}.homeroom-attendance.is-absent,.homeroom-attendance.is-late{color:var(--color-danger)}.homework-roster-page{gap:var(--space-4);display:grid}.homework-roster-heading{gap:var(--space-1);display:grid}.homework-roster-heading :is(h1,p){margin:0}.homework-roster-heading p{color:var(--color-text-secondary)}.homework-roster-list{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);margin:0;padding:0;list-style:none;overflow:hidden}.homework-roster-list li{gap:4px var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"student actions""grade grade";align-items:center;min-width:0;padding:10px 14px;display:grid}.homework-roster-list li:last-child{border-bottom:0}.homework-roster-list li.is-accepted{background:color-mix(in srgb, var(--color-success-soft) 48%, var(--color-surface))}.homework-roster-student{grid-area:student;gap:3px;min-width:0;display:grid}.homework-roster-student strong{overflow-wrap:anywhere}.homework-roster-meta{align-items:center;gap:2px var(--space-2);min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-caption);flex-wrap:wrap;display:flex}.homework-roster-meta small{color:inherit}.homework-roster-meta .homework-evidence-link{min-height:24px;font-size:inherit;margin:0;padding:0}.homework-roster-actions{grid-area:actions;align-items:center;gap:6px;display:flex}.homework-roster-check{border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;border-radius:10px;flex:0 0 44px;place-items:center;width:44px;height:44px;display:grid}.homework-roster-check:has(input:disabled){cursor:default}.homework-roster-check input{width:22px;height:22px;accent-color:var(--color-success);margin:0}.homework-roster-check input:disabled{opacity:1}.homework-grade-trigger{border:1px solid var(--color-border-strong);background:var(--color-surface);min-width:88px;min-height:44px;color:var(--color-text-primary);font:inherit;box-shadow:none;border-radius:10px;padding:8px 10px;font-weight:750}.homework-grade-trigger:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.homework-roster-check:has(input:focus-visible){outline:3px solid var(--color-brand-primary);outline-offset:2px}.homework-grade-popover{gap:var(--space-3);min-width:0;margin-top:var(--space-2);border:1px solid var(--color-border-subtle);padding:var(--space-3);background:var(--color-surface-secondary);border-radius:12px;grid-area:grade;display:grid}.homework-grade-popover>strong{font-size:var(--font-size-secondary)}.homework-grade-options{gap:var(--space-2);grid-template-columns:repeat(5,minmax(44px,1fr));display:grid}.homework-grade-options label{cursor:pointer;min-width:0;display:grid;position:relative}.homework-grade-options input{opacity:0;width:1px;height:1px;position:absolute}.homework-grade-options span{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:10px;place-items:center;min-width:44px;min-height:44px;font-weight:850;display:grid}.homework-grade-options input:checked+span{border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong)}.homework-grade-options input:focus-visible+span{outline:3px solid var(--color-brand-primary);outline-offset:2px}.homework-grade-actions{gap:var(--space-2);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.homework-grade-actions button{min-height:44px}.homework-evidence-link{align-items:center;gap:var(--space-1);min-height:44px;padding-inline:var(--space-2);margin-right:10px;font-weight:700;display:inline-flex}.submission-optional-note{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-brand-soft);color:var(--color-text-secondary)}.chat-receipt-list{gap:var(--space-2);max-height:50vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.chat-receipt-list li{justify-content:space-between;gap:var(--space-3);border-top:1px solid var(--color-border-subtle);padding-block:var(--space-2);display:flex}@media (width>=700px){.period-result-selectors,.teacher-today-list{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-lesson-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.journal-selectors{grid-template-columns:repeat(2,minmax(220px,1fr));align-items:end}.journal-primary-action{width:auto;min-width:220px}.student-panel-backdrop{align-items:stretch}.student-quick-panel{border-radius:var(--radius-card) 0 0 var(--radius-card)}}@media (width>=920px){.quick-grade-row{grid-template-columns:44px minmax(0,1fr) minmax(0,2fr)}.quick-grade-row .quick-grade-student{grid-area:1/2/4}.quick-grade-row>:is(.grade-shortcuts,.quick-grade-comment,.grade-save-state){grid-column:3}.journal-quick-row{grid-template-columns:minmax(190px,1fr) minmax(300px,1.5fr) minmax(130px,.7fr)}}@media (width<=600px){.homework-roster-list li{padding:11px 12px}.homework-roster-actions{gap:5px}.homework-grade-popover{margin-inline:-2px}.homeroom-page .page-heading{flex-direction:column;align-items:stretch}.homeroom-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.homeroom-header-actions>*{flex:130px;justify-content:center}.homeroom-date-toolbar,.homeroom-date-navigation,.homeroom-date-toolbar>label{width:100%}.homeroom-date-navigation{grid-template-columns:44px minmax(0,1fr) 44px}.homeroom-date-navigation label{min-width:0}.homeroom-date-strip{gap:4px}.homeroom-date-strip button{min-height:50px;padding:4px 2px;font-size:.72rem}.homeroom-tabs{padding-inline:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr))}.homeroom-workspace-heading,.homeroom-tab-panel{padding-inline:var(--space-3)}.homeroom-homework-list article,.homeroom-expected{flex-direction:column;align-items:start}.homeroom-student-table-wrap{overflow:visible}.homeroom-student-table thead{display:none}.homeroom-student-table :is(tbody,tr,th,td){width:100%;display:block}.homeroom-student-table tr{gap:var(--space-2);border-bottom:1px solid var(--color-border-subtle);padding-block:var(--space-3);display:grid}.homeroom-student-table :is(th,td){gap:var(--space-2);border:0;grid-template-columns:minmax(104px,.75fr) minmax(0,1.25fr);padding:0;display:grid}.homeroom-student-table :is(th,td):before{content:attr(data-label);color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:650}.teacher-attention-card{grid-template-columns:1fr}.teacher-attention-card .primary-link{text-align:center;width:100%}.teacher-today-card-heading,.lesson-workspace-heading,.lesson-panel-heading,.lesson-complete-bar{flex-direction:column;align-items:stretch}.lesson-workspace-tabs button{padding-inline:var(--space-1);font-size:.84rem}.quick-grade-row{scroll-margin-block:96px}.lesson-complete-bar{flex-flow:wrap;align-items:center;position:static}.teacher-lesson-metrics,.lesson-attendance-row{grid-template-columns:1fr}.lesson-attendance-row select,.lesson-homework-actions>*{width:100%}.lesson-complete-bar button{overflow-wrap:anywhere;width:auto;min-width:144px;max-width:100%}.journal-cell-popover{inset:auto max(var(--space-3), env(safe-area-inset-right)) calc(76px + env(safe-area-inset-bottom)) max(var(--space-3), env(safe-area-inset-left));width:auto;position:fixed;transform:none}.journal-page-heading{flex-direction:column;align-items:start}.journal-heading-actions{justify-content:stretch;width:100%}.journal-heading-actions>*{text-align:center;flex:140px;justify-content:center}.journal-export-panel{padding:var(--space-3)}.journal-export-panel fieldset{grid-template-columns:1fr}.journal-export-actions>*{flex:140px}.journal-create-panel{padding:var(--space-3)}.journal-student-summary{grid-template-columns:minmax(0,1fr) 52px}.journal-student-summary .grade-save-state{grid-column:1/2}.journal-correct-button{overflow-wrap:anywhere;grid-column:1/-1;justify-self:start;max-width:100%}.journal-grade-picker{grid-template-columns:repeat(5,minmax(44px,1fr))}.journal-correction-history li{grid-template-columns:auto minmax(0,1fr)}.journal-correction-history time{grid-column:1/-1}.journal-publish-bar{flex-direction:column;align-items:stretch}.journal-publish-bar button{width:100%}}@media (width<=350px){.lesson-panel{padding:var(--space-3)}.lesson-workspace-tabs{grid-template-columns:1fr}.grade-shortcuts .clear-grade{flex:100%}.lesson-complete-bar{flex-direction:column;align-items:stretch}.lesson-complete-bar button{width:100%}.journal-grade-picker{grid-template-columns:repeat(2,minmax(44px,1fr))}}.today-step-list{gap:.65rem;margin:0;padding:0;list-style:none;display:grid}.today-step-list li{align-items:flex-start;gap:.65rem;display:flex}.student-profile-summary{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:1rem;display:grid}.student-profile-summary[class*=level-tier-]{border-color:color-mix(in srgb, var(--level-accent) 32%, var(--color-border-subtle))}.student-profile-summary[class*=level-tier-] .profile-user-avatar{border:4px solid var(--level-accent);background:var(--level-accent-soft);color:var(--level-accent)}.student-profile-level{flex-wrap:wrap;align-items:center;gap:7px;display:inline-flex}.student-profile-level-emblem{flex:0 0 36px;width:36px;height:36px}.student-profile-level>span:not(.level-pin-artwork){gap:1px;display:grid}.student-profile-level small{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:500}.student-profile-visual-reward{margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.student-profile-visual-reward strong{color:var(--color-text-primary)}.student-profile-avatar{background:var(--color-surface-secondary);border-radius:50%;place-items:center;width:3.5rem;height:3.5rem;font-size:1.35rem;font-weight:700;display:grid}.student-profile-summary h2{margin-top:0}.student-profile-details{margin-bottom:0}.profile-link-list{gap:.75rem;display:grid}.profile-logout{min-height:44px}@media (width<=350px){.student-profile-summary{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.student-panel-backdrop,.journal-cell-popover{scroll-behavior:auto;transition:none}}.content-empty{margin-top:var(--space-6);padding:var(--space-8) 0;border-block:1px solid var(--color-border-subtle);text-align:center}.content-first-use{justify-items:center;gap:var(--space-3);display:grid}.content-first-use h2,.content-first-use p{margin:0}.content-first-use>div{justify-content:center;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.content-how-it-works{margin-block:var(--space-5);border-block:1px solid var(--color-border-subtle);padding-block:var(--space-3)}.content-how-it-works summary,.content-editor-disclosure>summary,.content-advanced-fields>summary,.content-block-advanced>summary{min-height:44px;color:var(--color-brand-strong);cursor:pointer;align-content:center;font-weight:750}.content-how-it-works ol{margin:var(--space-3) 0 0;padding-left:var(--space-6);color:var(--color-text-secondary)}.content-publication-list{margin-top:var(--space-5);border-top:1px solid var(--color-border-subtle);display:grid}.content-publication-row{gap:var(--space-5);padding:var(--space-5) 0;border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.content-publication-row h2,.content-publication-row p{margin:0}.content-publication-row p{margin-top:var(--space-2);color:var(--color-text-secondary)}.content-publication-row small{margin-top:var(--space-2);color:var(--color-text-muted);display:block}.content-publications-anchor{scroll-margin-top:calc(var(--space-8) + env(safe-area-inset-top))}.content-publications-anchor:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:var(--space-2)}.content-publication-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.content-row-title{gap:var(--space-3);flex-wrap:wrap;align-items:center;display:flex}.content-create-options{gap:var(--space-3);max-width:720px;padding-block:var(--space-4);display:grid}.content-create-option{align-content:center;gap:var(--space-1) var(--space-4);min-height:104px;padding:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-primary);text-align:left;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title""icon copy""icon status";display:grid}.content-create-option:hover{border-color:var(--color-border-strong);background:var(--color-surface-secondary)}.content-create-option.is-primary{border-color:color-mix(in srgb, var(--color-brand-primary) 35%, var(--color-border-subtle));background:var(--color-brand-soft)}.content-create-option>svg{color:var(--color-brand-strong);grid-area:icon;align-self:center}.content-create-option>strong{font-size:var(--font-size-section-title);grid-area:title}.content-create-option>span{color:var(--color-text-secondary);grid-area:copy}.content-create-option>small{color:var(--color-brand-strong);grid-area:status}.content-create-form{gap:var(--space-6);max-width:620px;padding-block:var(--space-4);display:grid}.content-create-form fieldset,.content-editor-section fieldset{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.content-create-form legend,.content-editor-section legend{margin-bottom:var(--space-3);font-weight:750}.content-create-form>label,.content-dialog-form>label,.content-schedule-grid label{gap:var(--space-2);font-weight:700;display:grid}.content-editor-progress{gap:var(--space-2);margin:0 0 var(--space-8);counter-reset:content-step;grid-template-columns:repeat(6,minmax(0,1fr));padding:0;list-style:none;display:grid}.content-editor-progress li{gap:var(--space-1);min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-caption);overflow-wrap:anywhere;text-align:center;display:grid}.content-editor-progress li:before{counter-increment:content-step;content:counter(content-step);border-radius:var(--radius-round);background:var(--color-brand-soft);width:2rem;height:2rem;color:var(--color-brand-strong);place-items:center;margin-inline:auto;font-weight:800;display:grid}.content-editor-section{padding-block:var(--space-8);border-top:1px solid var(--color-border-subtle)}.content-editor-section>h2,.content-section-heading h2{margin-top:0}.content-section-heading{gap:var(--space-5);justify-content:space-between;align-items:start;display:flex}.content-section-heading p{color:var(--color-text-secondary);margin-bottom:0}.content-block-list{margin-top:var(--space-5);display:grid}.content-block-row{gap:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.content-story-screen{grid-template-columns:minmax(9rem,14rem) minmax(0,1fr) auto}.content-screen-visual{border-radius:var(--radius-lg);background:var(--color-surface-secondary);place-items:center;min-height:9rem;display:grid;overflow:hidden}.content-screen-visual img{object-fit:cover;width:100%;height:11rem}.content-screen-visual span{justify-items:center;gap:var(--space-2);padding:var(--space-4);color:var(--color-text-secondary);text-align:center;display:grid}.content-add-screen{width:100%;min-height:56px;margin-top:var(--space-4)}.content-block-row p{margin:var(--space-1) 0 0;color:var(--color-text-secondary);overflow-wrap:anywhere}.content-block-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.content-class-list{gap:var(--space-2);max-width:520px;margin:var(--space-4) 0;padding:var(--space-4);background:var(--color-surface-secondary);border-radius:var(--radius-md);display:grid}.content-class-list p{margin:var(--space-2) 0 0;color:var(--color-text-secondary)}.content-schedule-grid{gap:var(--space-4);max-width:660px;margin-block:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.content-publish-section{gap:var(--space-3);flex-wrap:wrap;display:flex}.content-preview-button{min-width:10rem}.content-editor-status{justify-content:flex-end;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.content-editor-status>span{align-items:center;gap:var(--space-1);color:var(--color-success);font-size:var(--font-size-caption);font-weight:750;display:inline-flex}.content-dialog-form{gap:var(--space-4);display:grid}.content-dialog-form textarea{resize:vertical;min-height:8rem}.content-image-field{gap:var(--space-3);display:grid}.content-media-capability-loading{min-height:5.5rem;padding:var(--space-4);border:1px dashed var(--color-border-subtle);border-radius:var(--radius-lg);color:var(--color-text-secondary);text-align:center;place-items:center;display:grid}.content-image-field .content-image-input{clip-path:inset(50%);opacity:0;pointer-events:none;border:0;width:1px;min-width:0;height:1px;min-height:0;padding:0;position:fixed;top:0;left:0}.content-photo-picker{align-content:center;place-items:center;gap:var(--space-2);min-height:11rem;padding:var(--space-5);border:2px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface-secondary);color:var(--color-brand-strong);text-align:center;cursor:pointer;display:grid}.content-photo-picker:hover{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.content-photo-picker:focus-within{outline:3px solid var(--color-brand-primary);outline-offset:2px}.content-photo-picker[aria-disabled=true]{opacity:.6;cursor:wait}.content-photo-picker span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.content-photo-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.content-photo-actions label{cursor:pointer;min-height:44px}.content-image-input:focus-visible~.content-photo-picker{outline:3px solid var(--color-focus-ring);outline-offset:3px}.content-image-preview{gap:var(--space-3);display:grid}.content-image-preview img{border-radius:var(--radius-lg);background:var(--color-surface-secondary);object-fit:contain;width:100%;max-height:24rem}.content-image-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.content-upload-progress{gap:var(--space-2);color:var(--color-text-secondary);font-size:var(--font-size-caption);display:grid}.content-upload-progress progress{width:100%}.content-selected-file{justify-content:space-between;gap:var(--space-3);min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0;display:flex}.content-selected-file strong{color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content-image-optimization{margin:calc(var(--space-2) * -1) 0 0;color:var(--color-success-strong);font-size:var(--font-size-caption);font-weight:700}.content-upload-success{color:var(--color-success-strong);font-size:var(--font-size-caption);margin:0;font-weight:750}.content-upload-error{justify-items:start;gap:var(--space-2);color:var(--color-danger-strong);display:grid}.content-upload-error p{margin:0}.content-priority-field{gap:var(--space-2);max-width:28rem;margin-top:var(--space-5);display:grid}.content-priority-field p{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.content-block-row small{margin-top:var(--space-2);color:var(--color-warning-strong);display:block}.content-block-type-list{gap:var(--space-2);display:grid}.content-block-type-list>button{gap:var(--space-1);width:100%;min-height:64px;padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);text-align:left;display:grid}.content-block-type-list>button:hover{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.content-block-type-list>button.is-primary{border-color:color-mix(in srgb, var(--color-brand-primary) 38%, var(--color-border-subtle));background:var(--color-brand-soft)}.content-block-type-list>button span{color:var(--color-text-secondary)}.content-advanced-fields{gap:var(--space-4);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2);display:grid}.content-advanced-fields[open]{padding-bottom:var(--space-2)}.content-editor-disclosure{border-top:1px solid var(--color-border-subtle);padding-block:var(--space-3)}.content-editor-disclosure>summary{font-size:var(--font-size-section-title)}.content-disclosure-body{padding-block:var(--space-3) var(--space-5)}.content-disclosure-body>h2{margin-top:0}.content-editor-disclosure .content-editor-section{padding-block:var(--space-3);border:0}.content-block-advanced{margin-top:var(--space-3)}.content-block-advanced .content-reward-editor{margin-top:var(--space-2)}.content-section-summary{color:var(--color-text-secondary)}.content-publish-summary{margin:0;display:grid}.content-publish-summary>div{gap:var(--space-3);padding-block:var(--space-3);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(7rem,.7fr) minmax(0,1.3fr);display:grid}.content-publish-summary dt{color:var(--color-text-secondary)}.content-publish-summary dd{overflow-wrap:anywhere;margin:0;font-weight:750}.content-inline-type-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.content-inline-type-list button{min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary)}.content-inline-type-list button[aria-pressed=true]{border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong);font-weight:750}.content-interaction-rows{gap:var(--space-3);display:grid}.content-interaction-row{gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;align-items:end;display:grid}.content-interaction-row label,.content-selection-bounds label{gap:var(--space-2);font-weight:700;display:grid}.content-interaction-row-actions{gap:var(--space-1);flex-wrap:wrap;display:flex}.content-selection-bounds{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,10rem));display:grid}.content-reaction-picker{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.content-reaction-picker legend,.content-reaction-picker p{grid-column:1/-1}.content-reaction-picker .ui-choice{justify-content:center;min-height:52px;font-size:1.5rem}.content-results-list{gap:var(--space-6);margin-top:var(--space-5);display:grid}.content-result-block{padding-block:var(--space-5);border-top:1px solid var(--color-border-subtle)}.content-result-block>header{gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.content-result-block h3,.content-result-block header p{margin:0}.content-result-block header p{margin-top:var(--space-1);color:var(--color-text-secondary)}.content-result-block header>strong{font-variant-numeric:tabular-nums;font-size:1.1rem}.content-result-bars{gap:var(--space-4);margin:var(--space-5) 0 0;padding:0;list-style:none;display:grid}.content-result-bars li>div{gap:var(--space-3);justify-content:space-between;display:flex}.content-result-track{height:.65rem;margin-top:var(--space-2);border-radius:var(--radius-round);background:var(--color-surface-secondary);display:block;overflow:hidden}.content-result-track>span{border-radius:inherit;background:var(--color-brand-primary);height:100%;display:block}.content-result-facts{gap:var(--space-4);margin:var(--space-5) 0 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.content-result-facts div{gap:var(--space-1);display:grid}.content-result-facts dt{color:var(--color-text-secondary)}.content-result-facts dd{font-variant-numeric:tabular-nums;margin:0;font-size:1.35rem;font-weight:800}.content-result-note{max-width:68ch;color:var(--color-text-secondary)}.content-block-main{min-width:0}.content-reward-editor{gap:var(--space-4);max-width:46rem;margin-top:var(--space-5);padding-block:var(--space-5);border-block:1px solid var(--color-border-subtle);display:grid}.content-reward-editor>div:first-child{gap:var(--space-1);display:grid}.content-reward-editor>div:first-child p,.content-reward-editor.is-unavailable p{color:var(--color-text-secondary);margin:0}.content-reward-editor fieldset{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.content-reward-editor.is-locked{color:var(--color-text-secondary)}.content-reward-fields{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;display:grid}.content-reward-fields>label{gap:var(--space-2);min-width:0;font-weight:700;display:grid}.content-reward-fields>label>span{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:500}.content-reward-fields input[aria-invalid=true]{border-color:var(--color-danger)}.content-reward-error{color:var(--color-danger);margin:0;font-weight:700}.content-reward-exposure-grid{gap:var(--space-5);margin:var(--space-5) 0;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.content-reward-exposure-grid div{gap:var(--space-2);min-width:0;display:grid}.content-reward-exposure-grid dt{color:var(--color-text-secondary)}.content-reward-exposure-grid dd{overflow-wrap:anywhere;margin:0;font-size:1.1rem;font-weight:800}.content-reward-result-list{margin-top:var(--space-4);display:grid}.content-reward-result-list article{padding-block:var(--space-4);border-top:1px solid var(--color-border-subtle)}.content-reward-result-list h3,.content-reward-result-list p{margin:0}.content-reward-result-list p{margin-top:var(--space-2);color:var(--color-text-secondary)}.story-renderer{--story-foreground:var(--color-text-primary);border-radius:var(--radius-card);background:var(--color-surface-secondary);min-height:min(620px,70dvh);color:var(--story-foreground);grid-template-rows:auto 1fr auto;display:grid;overflow:hidden}.story-background-lavender{background:var(--color-brand-soft)}.story-background-mint{background:var(--color-success-soft)}.story-background-warm{background:var(--color-warning-soft)}.story-background-dark{--story-foreground:var(--color-on-inverse);background:var(--color-surface-inverse)}.story-renderer-header{gap:var(--space-3);padding:var(--space-4);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.story-renderer-header p{font-variant-numeric:tabular-nums;margin:0}.story-preview-label{padding:var(--space-1) var(--space-3);border-radius:var(--radius-round);color:var(--color-text-primary);font-size:var(--font-size-caption);background:#ffffffc7;grid-column:1/-1;justify-self:start}.story-segments{gap:var(--space-1);grid-template-columns:repeat(auto-fit,minmax(12px,1fr));display:grid}.story-segments span{border-radius:var(--radius-round);background:#5f6b7d47;height:4px}.story-segments span.active{background:currentColor}.story-slide{align-content:end;min-height:0;display:grid}.story-slide.has-media{grid-template-rows:minmax(0,1fr) auto;align-content:stretch}.story-slide-media{place-items:center;min-height:0;display:grid;overflow:hidden}.story-slide-media img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.story-slide-copy{gap:var(--space-4);padding:var(--space-8);align-content:end;display:grid}.story-slide-copy h2{letter-spacing:-.03em;margin:0;font-size:clamp(1.75rem,7vw,3rem)}.story-slide-copy p{max-width:65ch;color:inherit;white-space:pre-wrap;margin:0;font-size:1.05rem;line-height:1.65}.story-slide-copy .button{justify-self:start}.moment-home-entry{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-4);background:linear-gradient(135deg, var(--color-surface), var(--color-brand-soft));display:flex}.moment-home-entry>div{align-items:center;gap:var(--space-3);min-width:0;display:flex}.moment-home-entry h2,.moment-home-entry p{margin:0}.moment-home-entry h2{font-size:1.1rem}.moment-home-entry p{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin-top:2px}.moment-home-entry>a{flex:none;font-weight:800}.moment-home-mark{background:var(--color-brand-primary);width:44px;height:44px;color:var(--color-on-brand);border-radius:15px;flex:0 0 44px;place-items:center;font-size:1.35rem;display:grid}.moment-summary,.moment-admin-summary{margin-bottom:var(--space-6);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.moment-summary>div,.moment-admin-summary>span{min-width:0;padding:var(--space-4);gap:2px;display:grid}.moment-summary>div+div,.moment-admin-summary>span+span{border-left:1px solid var(--color-border-subtle)}.moment-summary strong,.moment-admin-summary strong{font-variant-numeric:tabular-nums;font-size:1.45rem}.moment-summary span,.moment-admin-summary span{color:var(--color-text-secondary);font-size:var(--font-size-caption);overflow-wrap:anywhere}.moment-year-list,.moment-year-list>section,.moment-timeline,.moment-admin-list{gap:var(--space-4);display:grid}.moment-year-list>section>h2{margin:0;font-size:1.15rem}.moment-timeline{padding-left:18px;position:relative}.moment-timeline:before{border-radius:var(--radius-round);background:var(--color-border-subtle);content:"";width:2px;position:absolute;top:10px;bottom:10px;left:4px}.moment-card{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid;position:relative}.moment-card:before{border:3px solid var(--color-surface);background:var(--color-brand-primary);width:12px;height:12px;box-shadow:0 0 0 1px var(--color-border-strong);content:"";border-radius:50%;position:absolute;top:22px;left:-20px}.moment-achievement{background:linear-gradient(145deg, var(--color-surface), var(--color-warning-soft))}.moment-best_work{background:linear-gradient(145deg, var(--color-surface), var(--color-brand-soft))}.moment-card h3,.moment-card p{margin:0}.moment-card h3{overflow-wrap:anywhere;font-size:1.15rem}.moment-card p{color:var(--color-text-secondary);white-space:pre-wrap;line-height:1.55}.moment-card-meta,.moment-card-footer{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.moment-card-meta{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.moment-card-meta>span{color:var(--color-brand-primary);font-weight:800}.moment-status{border-radius:var(--radius-round);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-caption);padding:5px 10px;font-weight:800}.moment-status-ready_for_review,.moment-status-published{background:var(--color-success-soft);color:var(--color-success-strong)}.moment-status-pending_consent{background:var(--color-warning-soft);color:var(--color-warning-strong)}.moment-consent-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.moment-consent-actions button{min-height:44px}.moment-privacy-note{border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--color-surface-secondary);color:var(--color-text-secondary)}.moment-admin-card{gap:var(--space-3);display:grid}.moment-admin-card>h2,.moment-admin-card>p{margin:0}.moment-admin-context{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:800}.moment-admin-fact{gap:var(--space-3);padding-block:var(--space-2);display:grid}.moment-admin-fact h3,.moment-admin-fact p{margin:0}.moment-admin-fact h3{font-size:1.15rem}.moment-admin-fact>p{color:var(--color-text-secondary);line-height:1.55}.moment-issue-actions{gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border-subtle);display:grid}.moment-action-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.moment-action-row>*{flex:170px}.moment-action-message{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:0}.moment-ai-variants{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.moment-ai-variants legend{margin-bottom:var(--space-2);font-weight:800}.moment-ai-variants label{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-height:44px;padding:var(--space-3);background:var(--color-surface);grid-template-columns:auto minmax(0,1fr);align-items:start;display:grid}.moment-ai-variants label:has(input:checked){border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.moment-ai-variants input{width:20px;height:20px;accent-color:var(--color-brand-primary);margin-top:2px}.moment-ai-variants span{gap:var(--space-1);display:grid}.moment-ai-variants small{color:var(--color-text-secondary);line-height:1.45}.best-work-panel{gap:var(--space-3);margin-top:var(--space-5);display:grid}.best-work-panel h2,.best-work-panel p{margin:0}.best-work-panel label{gap:var(--space-2);font-weight:800;display:grid}.best-work-panel textarea{resize:vertical;width:100%}@media (width<=390px){.moment-home-entry{align-items:stretch}.moment-home-entry>a{align-self:center}.moment-summary>div,.moment-admin-summary>span{padding:var(--space-3)}.moment-summary strong,.moment-admin-summary strong{font-size:1.2rem}.moment-card-footer{flex-direction:column;align-items:stretch}.moment-consent-actions,.moment-action-row{grid-template-columns:1fr;display:grid}}.story-interaction{gap:var(--space-5);width:min(100%,44rem);padding:var(--space-8);place-self:end center;display:grid}.story-interaction-heading{gap:var(--space-2);display:grid}.story-interaction-heading h2,.story-interaction-heading p{margin:0}.story-interaction-heading h2{letter-spacing:-.03em;text-wrap:balance;font-size:clamp(1.6rem,6vw,2.7rem)}.story-interaction-heading p{max-width:65ch;line-height:1.55}.story-choice-list{gap:var(--space-3);border:0;margin:0;padding:0;display:grid}.story-choice{gap:var(--space-3);min-height:54px;padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, currentColor 24%, transparent);border-radius:var(--radius-md);color:inherit;cursor:pointer;background:#ffffff94;grid-template-columns:auto minmax(0,1fr);align-items:center;font-weight:700;display:grid}.story-choice:has(input:checked){background:#ffffffd1;border-color:currentColor}.story-choice input{width:1.35rem;height:1.35rem;accent-color:var(--color-brand-primary)}.story-interaction>.button{justify-self:start;min-width:9rem}.story-interaction-status{gap:var(--space-4);flex-wrap:wrap;align-items:center;margin:0;display:flex}.story-interaction-status .button{min-width:9rem}.story-interaction-error{color:var(--color-danger);margin:0;font-weight:700}.story-read-only-note{max-width:65ch;color:inherit;font-size:var(--font-size-secondary);margin:0;font-weight:700;line-height:1.5}.story-saving-status{font-size:var(--font-size-caption);margin:0}.story-selection-rule{color:inherit;font-size:var(--font-size-caption);font-variant-numeric:tabular-nums;margin:0}.story-checklist-progress{font-variant-numeric:tabular-nums;margin:0}.story-quiz-feedback{gap:var(--space-2);padding-block:var(--space-4);border-block:1px solid color-mix(in srgb, currentColor 28%, transparent);display:grid}.story-quiz-feedback strong{font-size:1.35rem}.story-quiz-feedback p,.story-quiz-feedback small{margin:0}.content-reward-promise{width:fit-content;max-width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:inherit;overflow-wrap:anywhere;background:#ffffffad;margin:0;font-weight:750}.content-reward-feedback{gap:var(--space-2);width:fit-content;max-width:100%;padding:var(--space-4);border-radius:var(--radius-md);color:var(--color-text-primary);background:#ffffffd6;animation:.36s cubic-bezier(.16,1,.3,1) both content-reward-arrive;display:grid;box-shadow:0 8px 24px #1820331f}.content-reward-feedback>div{gap:var(--space-3);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.content-reward-feedback p{margin:0}@keyframes content-reward-arrive{0%{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.story-reactions{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(64px,1fr));display:grid}.story-reactions button{border:1px solid color-mix(in srgb, currentColor 24%, transparent);border-radius:var(--radius-md);min-width:0;min-height:64px;color:inherit;background:#ffffff94;font-size:2rem}.story-reactions button.is-selected{background:#ffffffe0;border-color:currentColor;box-shadow:0 8px 20px #1820331f}.story-renderer-actions{gap:var(--space-3);padding:var(--space-4);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;display:grid}.story-completion-reward{gap:var(--space-3);grid-column:1/-1;display:grid}.story-renderer.is-empty{min-height:280px;padding:var(--space-8);text-align:center;place-items:center}@media (width<=600px){.content-editor-progress{row-gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr))}.content-publication-row,.content-block-row{grid-template-columns:1fr;align-items:stretch}.content-publication-actions{width:100%}.content-publication-actions>.button,.content-publication-actions>.ui-button{flex:9rem}.content-section-heading{flex-direction:column;align-items:stretch}.content-block-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.content-block-actions>:first-child{grid-column:1/-1}.content-screen-visual img{height:min(18rem,66vw)}.content-schedule-grid,.content-interaction-row,.content-result-block>header{grid-template-columns:1fr}.content-interaction-row-actions{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.content-result-facts,.content-reward-fields,.content-reward-exposure-grid{grid-template-columns:1fr}.story-slide-copy,.story-interaction{padding:var(--space-6)}.managed-home-card{padding:var(--space-5);grid-template-columns:1fr}.managed-home-card-media{grid-row:auto;width:100%;height:min(12rem,42vw)}.managed-home-card>.button{width:100%}.content-publish-section{z-index:3;bottom:calc(68px + env(safe-area-inset-bottom));margin-inline:calc(var(--space-4) * -1);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg) var(--radius-lg) 0 0;background:var(--color-surface);position:sticky;box-shadow:0 -10px 28px #1820331a}.content-publish-section>*{flex:9rem}}@media (width<=350px){.content-block-actions{grid-template-columns:1fr}.content-publish-section>*{width:100%}.content-create-option{grid-template-columns:1fr;grid-template-areas:"icon""title""copy""status"}.content-publish-summary>div{gap:var(--space-1);grid-template-columns:1fr}.content-interaction-row-actions,.content-selection-bounds,.content-reaction-picker{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.story-renderer,.content-publication-row{transition:none}.content-reward-feedback{animation:none}}.student-stories-section{min-width:0;padding-block:2px var(--space-2)}.parent-stories-section{gap:var(--space-2);display:grid}.parent-stories-heading{gap:var(--space-1);display:grid}.parent-stories-heading h2,.parent-stories-heading p,.parent-stories-status{margin:0}.parent-stories-heading p,.parent-stories-status{max-width:65ch;color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-stories-heading p{align-items:flex-start;gap:5px;display:flex}.parent-stories-heading p svg{color:var(--color-brand-strong);flex:none;margin-top:1px}.parent-stories-section>.button{width:fit-content;min-height:44px}.managed-home-card{gap:var(--space-5);padding:var(--space-6);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.managed-home-card.priority-important{border-color:var(--color-brand-soft);background:linear-gradient(135deg, var(--color-brand-soft), var(--color-surface))}.managed-home-card-copy{min-width:0}.managed-home-card-copy h2,.managed-home-card-copy p{overflow-wrap:anywhere;margin:0}.managed-home-card-copy h2{margin-top:var(--space-1)}.managed-home-card-copy h2+p{margin-top:var(--space-2);color:var(--color-text-secondary)}.managed-home-card-media{object-fit:cover;border-radius:var(--radius-md);grid-row:span 2;width:7rem;height:5rem}.student-stories-section h2{letter-spacing:-.02em;margin:0 0 10px;font-size:1.2rem;font-weight:800}.student-stories-row{max-width:100%;padding:var(--space-1) 3px 10px;scroll-snap-type:x proximity;scrollbar-width:thin;gap:10px;margin-inline:0;display:flex;overflow-x:auto}.student-story-tile{width:96px;min-height:0;color:var(--color-text-primary);text-align:left;scroll-snap-align:start;background:0 0;border:0;border-radius:0;flex:0 0 96px;align-content:start;justify-items:stretch;gap:7px;padding:0;display:grid}.student-story-tile:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.student-story-tile:active:not(:disabled){transform:none}.student-story-cover{border:2px solid var(--color-border-strong);width:96px;min-width:96px;height:128px;min-height:128px;color:var(--color-brand-strong);border-radius:15px;align-self:start;place-items:center;display:grid;position:relative;overflow:hidden}.student-story-cover img{object-fit:cover;width:100%;height:100%;display:block}.student-story-cover.story-background-neutral{background:var(--color-surface-secondary)}.student-story-fallback-art{background:color-mix(in srgb, currentColor 9%, var(--color-surface));color:currentColor;border-radius:50%;place-items:center;width:62px;height:62px;display:grid;position:relative;transform:translateY(-9px)}.student-story-fallback-art:before,.student-story-fallback-art:after{content:"";opacity:.16;background:currentColor;border-radius:50%;position:absolute}.student-story-fallback-art:before{width:15px;height:15px;top:-16px;right:-13px}.student-story-fallback-art:after{width:9px;height:9px;bottom:-9px;left:-18px}.student-story-fallback-art svg{stroke-width:1.65px}.student-story-cover-shade{background:linear-gradient(#0000,#11162abd);position:absolute;inset:42% 0 0}.student-story-cover-title{right:var(--space-2);bottom:var(--space-2);left:var(--space-2);color:var(--color-on-inverse);text-shadow:0 1px 2px #11162a73;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.72rem;font-weight:800;line-height:1.18;display:-webkit-box;position:absolute;overflow:hidden}.student-story-tile.is-unseen .student-story-cover{border-color:var(--color-brand-primary);outline:2px solid var(--color-brand-soft);outline-offset:2px}.student-story-unseen-mark{z-index:1;top:var(--space-2);right:var(--space-2);border:2px solid var(--color-surface);background:var(--color-brand-primary);border-radius:50%;width:14px;height:14px;position:absolute}.student-story-completed-mark{z-index:1;top:var(--space-2);right:var(--space-2);border:2px solid var(--color-surface);background:var(--color-route-complete);width:18px;height:18px;color:var(--color-route-complete-ink);border-radius:50%;place-items:center;display:grid;position:absolute}.student-story-completed-mark svg{stroke-width:3px;width:11px;height:11px}.student-story-tile.is-completed .student-story-cover{border-color:color-mix(in srgb, var(--color-route-complete-ink) 48%, var(--color-route-complete))}.student-story-tile small{min-height:2.4em;color:var(--color-text-secondary);text-align:center;font-size:.66rem;font-weight:650;line-height:1.2}.student-story-tile.is-unseen small{color:var(--color-brand-strong)}.student-story-tile.is-completed small{color:var(--color-route-complete-ink)}.student-story-tile:focus-visible .student-story-cover{outline:3px solid var(--color-info);outline-offset:3px}.student-story-viewer{z-index:calc(var(--z-overlay) + 1);background:var(--color-overlay-scrim);place-items:center;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.student-story-viewer>.story-renderer{border-radius:0;width:min(100%,560px);height:100dvh;min-height:0;max-height:100dvh}.student-story-viewer .story-renderer-header{padding-inline-end:calc(var(--space-4) + 8.5rem)}.student-story-viewer .story-slide{overscroll-behavior:contain;overflow-y:auto}.student-story-close{z-index:2;top:max(var(--space-3), env(safe-area-inset-top));right:max(var(--space-3), env(safe-area-inset-right));min-height:44px;padding-inline:var(--space-4);border-radius:var(--radius-round);color:var(--color-text-primary);background:#ffffffe0;border:0;font-weight:750;position:fixed}.student-story-loading{width:min(100%,560px);height:100dvh;min-height:0;max-height:100dvh}.student-story-loading .story-renderer-header{min-height:76px;padding-inline-end:calc(var(--space-4) + 8.5rem)}.student-story-loading-segment{border-radius:var(--radius-round);background:var(--color-border-strong);width:100%;height:4px;display:block}.student-story-loading-body{width:min(100% - var(--space-8), 24rem);place-self:center;gap:var(--space-3);text-align:center;justify-items:center;display:grid}.student-story-loading-body h2,.student-story-loading-body p{margin:0}.student-story-loading-body p{color:var(--color-text-secondary)}.student-story-loading-mark{border:4px solid var(--color-brand-soft);border-top-color:var(--color-brand-primary);border-radius:50%;width:48px;height:48px;animation:.8s linear infinite student-story-loading-spin}.student-story-loading-body[role=alert] .student-story-loading-mark{background:var(--color-danger-soft);border:0;animation:none}.student-story-loading-actions{gap:var(--space-3);padding:var(--space-4);padding-bottom:max(var(--space-4), env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;display:grid}.student-story-loading-actions span{border-radius:var(--radius-md);background:var(--color-border-subtle);min-height:44px}@keyframes student-story-loading-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.student-story-loading-mark{animation:none}}.content-area-navigation{gap:var(--space-2);margin-block:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border-subtle);display:flex}.content-area-navigation a{min-height:44px;padding:var(--space-3) var(--space-4);color:var(--color-text-secondary);font-weight:750;text-decoration:none}.content-area-navigation a[aria-current=page]{box-shadow:inset 0 -3px 0 var(--color-brand-primary);color:var(--color-text-primary)}.content-area-navigation a:focus-visible{outline:3px solid var(--color-info);outline-offset:2px}.content-landing-navigation{gap:var(--space-3);margin-block:var(--space-4) var(--space-6);display:grid}.content-calendar-toolbar{justify-content:space-between;align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.content-calendar-toolbar .ui-tabs{margin:0}.content-calendar-navigation{align-items:center;gap:var(--space-2);min-width:0;display:flex}.content-calendar-navigation button{min-width:44px;min-height:44px;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);font:inherit;cursor:pointer;place-items:center;font-weight:700;display:inline-grid}.content-calendar-navigation button:hover{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.content-calendar-navigation button:focus-visible{outline:3px solid var(--color-info);outline-offset:2px}.content-calendar-navigation strong{min-width:min(17rem,35vw);margin-left:var(--space-2);text-transform:capitalize;font-size:1.05rem}.content-calendar-filters{margin-bottom:var(--space-5);border-block:1px solid var(--color-border-subtle)}.content-calendar-filters summary{width:fit-content;min-height:44px;padding-block:var(--space-3);cursor:pointer;font-weight:800}.content-calendar-filters>div{gap:var(--space-4);padding-bottom:var(--space-4);grid-template-columns:minmax(0,1fr) minmax(11rem,15rem) minmax(11rem,15rem);align-items:end;display:grid}.content-calendar-filters .ui-tabs{flex-wrap:wrap;margin:0;overflow:visible}.content-calendar-grid{border-top:1px solid var(--color-border-subtle);border-left:1px solid var(--color-border-subtle);background:var(--color-surface);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.content-calendar-grid.view-week{min-height:34rem}.content-calendar-grid.view-day{display:none}.content-calendar-day{min-width:0;min-height:9.5rem;padding:var(--space-2);border-right:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle)}.content-calendar-day.is-today{background:var(--color-brand-soft)}.content-calendar-day>h2{justify-content:space-between;align-items:baseline;gap:var(--space-2);margin:0 0 var(--space-2);font-variant-numeric:tabular-nums;text-transform:capitalize;font-size:1rem;display:flex}.content-calendar-day>h2 span{color:var(--color-text-secondary);font-size:var(--font-size-caption);font-weight:650}.content-calendar-day>div{gap:var(--space-1);display:grid}.content-calendar-item{gap:var(--space-2);min-width:0;padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface-secondary);color:var(--color-text-primary);border:1px solid #0000;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;text-decoration:none;display:grid}.content-calendar-item:hover{border-color:var(--color-border-strong)}.content-calendar-item:focus-visible{outline:3px solid var(--color-info);outline-offset:2px}.content-calendar-item.type-story{background:color-mix(in srgb, var(--color-info) 9%, var(--color-surface))}.content-calendar-item.type-home_card{background:color-mix(in srgb, var(--color-success) 9%, var(--color-surface))}.content-calendar-item.type-campaign{background:var(--color-brand-soft)}.content-calendar-item.type-campaign_step{background:color-mix(in srgb, var(--color-warning) 10%, var(--color-surface))}.content-calendar-item.type-scheduled_notification{background:color-mix(in srgb, var(--color-text-primary) 6%, var(--color-surface))}.content-calendar-item-icon{width:1.5rem;height:1.5rem;color:var(--color-text-secondary);place-items:center;display:grid}.content-calendar-item-copy{gap:1px;min-width:0;display:grid}.content-calendar-item-copy strong{font-size:var(--font-size-caption);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.content-calendar-item-copy span,.content-calendar-item-copy small{color:var(--color-text-secondary);font-size:.72rem;line-height:1.35}.content-calendar-agenda{gap:var(--space-7);display:none}.content-calendar-grid.view-day+.content-calendar-agenda{display:grid}.content-calendar-agenda-day>h2{margin:0 0 var(--space-3);text-transform:capitalize;font-size:1.1rem}.content-calendar-agenda-day>div{gap:var(--space-2);border-top:1px solid var(--color-border-subtle);display:grid}.content-calendar-agenda-day .content-calendar-item{padding:var(--space-4) 0;border:0;border-bottom:1px solid var(--color-border-subtle);background:0 0;border-radius:0}.content-calendar-agenda-day .content-calendar-item:hover{background:var(--color-surface-secondary)}.content-calendar-agenda-day .content-calendar-item-copy strong{white-space:normal;font-size:1rem}.content-calendar-agenda-day .content-calendar-item-copy span,.content-calendar-agenda-day .content-calendar-item-copy small{font-size:var(--font-size-caption)}.content-notification-rule-controls{gap:var(--space-4);margin-top:var(--space-4);display:grid}.content-notification-rule{gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface-secondary);display:grid}.content-notification-rule>.ui-field{max-width:260px}.content-notification-time{gap:var(--space-1);color:var(--color-text-secondary);margin-left:28px;display:grid}.content-notification-time strong{color:var(--color-warning-strong)}.content-notification-history{justify-items:start;gap:var(--space-1);border-top:1px solid var(--color-border-subtle);padding-top:var(--space-2);margin-left:28px;display:grid}.content-notification-history p{color:var(--color-text-secondary);margin:0}.campaign-notification-target{margin-top:var(--space-3)}.campaign-step-notification{gap:var(--space-2);margin-top:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--color-surface-secondary);display:grid}.campaign-step-notification>small{color:var(--color-text-secondary)}.content-quiet-hours{gap:var(--space-4);max-width:720px;display:grid}.content-quiet-hours>p{color:var(--color-text-secondary);margin:0}.content-quiet-hours-range{align-items:end;gap:var(--space-3);display:flex}.content-quiet-hours-range label{gap:var(--space-1);font-weight:700;display:grid}.content-quiet-hours-range input{border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);min-height:44px;padding-inline:var(--space-3);background:var(--color-surface);color:var(--color-text-primary);font:inherit}.campaign-list{gap:var(--space-3);display:grid}.campaign-list-row{gap:var(--space-5);padding:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.campaign-list-main{gap:var(--space-2);min-width:0;display:grid}.campaign-list-main p,.campaign-list-main small{color:var(--color-text-secondary);margin:0}.campaign-list-aggregate{font-weight:750}.campaign-builder{gap:var(--space-5);display:grid}.campaign-form-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.campaign-wide-field{grid-column:1/-1}.campaign-step-list{gap:var(--space-3);margin-top:var(--space-5);display:grid}.campaign-step-row{gap:var(--space-5);padding-block:var(--space-4);border-bottom:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.campaign-step-row>div:first-child{gap:var(--space-1);min-width:0;display:grid}.campaign-step-row p,.campaign-step-row small,.campaign-step-row span{color:var(--color-text-secondary);margin:0}.campaign-reward-fields{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.campaign-reward-summary{gap:var(--space-3);margin-top:var(--space-5);display:grid}.campaign-reward-summary dl{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.campaign-reward-summary dl>div{padding:var(--space-4);background:var(--color-surface-secondary);border-radius:var(--radius-md)}.campaign-reward-summary dt{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.campaign-reward-summary dd{margin:var(--space-1) 0 0;font-weight:800}.campaign-preview-card{gap:var(--space-4);min-width:min(38rem,80vw);display:grid}.campaign-preview-card h2,.campaign-preview-card p{margin:0}.campaign-preview-steps,.campaign-result-steps{gap:var(--space-2);display:grid}.campaign-preview-steps>div,.campaign-result-steps>p{justify-content:space-between;gap:var(--space-4);padding-block:var(--space-3);border-bottom:1px solid var(--color-border-subtle);margin:0;display:flex}.campaign-result-summary{gap:var(--space-2);max-width:34rem;display:grid}.campaign-result-summary>strong{font-size:1.5rem}.campaign-publish-panel{background:var(--color-surface-secondary)}.student-campaigns-section{gap:var(--space-4);display:grid}.student-campaign-card-list{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.student-campaign-card{gap:var(--space-4);padding:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);display:grid;box-shadow:0 10px 24px #18203314}.student-campaign-card.is-important{background:var(--color-brand-soft)}.student-campaign-card h3,.student-campaign-card p{margin:0}.student-campaign-card p{color:var(--color-text-secondary)}.student-campaign-progress-copy{justify-content:space-between;gap:var(--space-3);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;display:flex}.student-campaign-progress-copy strong{color:var(--color-text-primary)}.student-campaign-card .button{justify-self:start}.student-campaign-page{gap:var(--space-7);padding-bottom:max(var(--space-10), env(safe-area-inset-bottom));display:grid}.student-campaign-description{max-width:68ch;color:var(--color-text-secondary);margin:0;font-size:1.05rem;line-height:1.65}.student-campaign-overview{gap:var(--space-4);max-width:48rem;padding:var(--space-5);background:var(--color-brand-soft);border-radius:var(--radius-card);display:grid}.student-campaign-overview h2,.student-campaign-overview p{margin:0}.student-campaign-overview p{color:var(--color-text-secondary)}.student-campaign-steps{margin:var(--space-5) 0 0;gap:0;padding:0;list-style:none;display:grid;position:relative}.student-campaign-steps:before{background:var(--color-border-strong);content:"";width:1px;position:absolute;top:1.5rem;bottom:1.5rem;left:1.25rem}.student-campaign-step{gap:var(--space-4);min-width:0;padding-block:var(--space-4);grid-template-columns:2.5rem minmax(0,1fr);display:grid;position:relative}.student-campaign-step-marker{z-index:1;border:1px solid var(--color-border-strong);background:var(--color-surface);width:2.5rem;height:2.5rem;color:var(--color-text-secondary);border-radius:50%;place-items:center;font-weight:800;display:grid}.student-campaign-step.is-completed .student-campaign-step-marker{border-color:var(--color-success);background:var(--color-success);color:var(--color-on-brand)}.student-campaign-step.is-available .student-campaign-step-marker{border-color:var(--color-brand-primary);color:var(--color-brand-strong)}.student-campaign-step>div:last-child{gap:var(--space-2);min-width:0;padding-bottom:var(--space-4);display:grid}.student-campaign-step-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.student-campaign-step h3,.student-campaign-step p,.student-campaign-step small{margin:0}.student-campaign-step p,.student-campaign-step small{color:var(--color-text-secondary)}.student-campaign-step .button{margin-top:var(--space-2);justify-self:start}.student-campaign-primary-action{z-index:2;padding:var(--space-3);padding-bottom:max(var(--space-3), env(safe-area-inset-bottom));background:color-mix(in srgb, var(--color-background) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);justify-content:flex-end;display:flex;position:sticky;bottom:0}.student-campaign-primary-action p{margin:0;font-weight:800}.campaign-complete-message{gap:var(--space-3);padding-block:var(--space-5);border-block:1px solid var(--color-border-subtle);display:grid}.campaign-complete-message h2{margin:0}@media (width<=720px){.content-area-navigation{max-width:100%;overflow-x:auto}.content-area-navigation a{flex:none}.content-calendar-toolbar{flex-direction:column;align-items:stretch}.content-calendar-navigation{grid-template-columns:auto 1fr auto;display:grid}.content-calendar-navigation strong{grid-area:1/1/auto/-1;min-width:0;margin:0}.content-calendar-navigation button:first-of-type{grid-area:2/1}.content-calendar-navigation button:nth-of-type(2){grid-area:2/2}.content-calendar-navigation button:nth-of-type(3){grid-area:2/3}.content-calendar-filters>div{grid-template-columns:1fr}.content-calendar-grid{display:none}.content-calendar-agenda{display:grid}.content-notification-time,.content-notification-history{margin-left:0}.content-quiet-hours-range{align-items:stretch}.campaign-list-row,.campaign-step-row{grid-template-columns:1fr}.campaign-list-row>.button{justify-self:start}.campaign-form-grid,.campaign-reward-fields,.campaign-reward-summary dl,.student-campaign-card-list{grid-template-columns:1fr}.campaign-wide-field{grid-column:auto}.campaign-step-row .content-block-actions{justify-content:flex-start}.campaign-preview-card{min-width:0}.student-campaign-progress-copy,.student-campaign-step-heading{flex-direction:column;align-items:flex-start}.student-campaign-primary-action .button{width:100%}}@media (width>=700px){.content-landing-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.student-campaign-card,.student-campaign-step{scroll-behavior:auto}}@media (width>=700px){.student-story-viewer{padding:var(--space-6)}.student-story-viewer>.story-renderer{height:min(760px, calc(100dvh - var(--space-12)));min-height:0;max-height:calc(100dvh - var(--space-12));border-radius:var(--radius-dialog);box-shadow:var(--shadow-elevated)}}.role-parent,.role-teacher{--color-background:var(--color-student-background);--color-surface-secondary:var(--color-student-surface-secondary);--color-border-subtle:var(--color-student-border-subtle);--color-border-strong:var(--color-student-border-strong);--color-brand-primary:var(--color-student-brand-primary);--color-brand-hover:var(--color-student-brand-hover);--color-brand-soft:var(--color-student-brand-soft);--color-brand-tint:var(--color-student-brand-tint);--color-brand-strong:var(--color-student-brand-strong);min-height:100dvh;padding-bottom:calc(82px + var(--safe-bottom));background:var(--color-background)}.role-parent .app-header,.role-teacher .app-header{padding-block:calc(.65rem + var(--safe-top)) .65rem;background:color-mix(in srgb, var(--color-surface) 98%, transparent);box-shadow:none}.role-parent .brand-mark,.role-teacher .brand-mark{background:var(--color-brand-primary);width:46px;height:46px;color:var(--color-on-brand);border:0;border-radius:14px;flex-basis:46px}.role-parent .brand-mark svg,.role-teacher .brand-mark svg{stroke-width:2px;width:25px;height:25px}.role-parent .app-brand-copy strong,.role-teacher .app-brand-copy strong{letter-spacing:-.02em;font-size:1.05rem;font-weight:800}.role-parent .notification-bell,.role-parent .text-button,.role-teacher .notification-bell,.role-teacher .text-button{background:var(--color-brand-soft);color:var(--color-text-primary);border:0;border-radius:14px}.role-parent .bottom-nav a,.role-teacher .bottom-nav a{gap:3px;min-height:62px;font-size:12px;font-weight:600}.role-parent .bottom-nav a svg,.role-teacher .bottom-nav a svg{stroke-width:1.9px;width:24px;height:24px}.role-parent .bottom-nav a.active,.role-teacher .bottom-nav a.active{font-weight:750}.role-parent .bottom-nav a.active:before,.role-teacher .bottom-nav a.active:before{display:none}.role-parent .role-home-page-content,.role-teacher .role-home-page-content{width:min(100%, var(--content-wide));padding:20px clamp(16px, 4.5vw, 24px) var(--space-10)}.parent-child-context{background:var(--color-surface);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:16px;grid-template-columns:44px minmax(0,1fr) auto;margin-bottom:20px;padding:12px;display:grid;position:relative;top:auto}.parent-child-avatar{background:var(--color-brand-soft);width:44px;height:44px;color:var(--color-brand-strong);border-radius:14px;place-items:center;font-weight:800;display:grid}.parent-child-context>div{align-self:center}.parent-child-context label.parent-child-switcher{width:44px;min-width:44px;height:44px;color:var(--color-text-secondary);place-items:center;display:grid;position:relative}.parent-child-switcher select{opacity:0;cursor:pointer;width:44px;min-height:44px;position:absolute;inset:0}.parent-child-switcher>svg{transform:rotate(90deg)}.parent-child-switcher:focus-within{border-radius:var(--radius-md);outline:3px solid color-mix(in srgb, var(--color-brand-primary) 68%, white);outline-offset:2px}.parent-home-flow,.teacher-home-flow{gap:22px;min-width:0;display:grid}.parent-home-flow>*,.teacher-home-flow>*{min-width:0}.role-home-greeting{gap:5px;display:grid}.role-home-greeting h2{letter-spacing:-.03em;margin:0;font-size:clamp(1.45rem,5.4vw,1.75rem);font-weight:800}.role-home-greeting p{color:var(--color-text-secondary);margin:0}.role-home-hero-grid,.role-home-dashboard-cluster,.role-home-primary-grid{gap:var(--space-4);min-width:0;display:grid}.role-home-focus{gap:var(--space-3);border:1px solid color-mix(in srgb, var(--color-brand-primary) 22%, var(--color-border-subtle));background:var(--color-surface);border-radius:18px;min-height:210px;padding:22px 20px 20px 84px;display:grid;position:relative;overflow:hidden}.role-home-focus-rail{background:var(--color-brand-primary);width:64px;color:var(--color-on-brand);place-items:center;display:grid;position:absolute;inset:0 auto 0 0}.role-home-focus-rail svg{stroke-width:2px;width:27px;height:27px}.role-home-focus-copy{align-content:start;gap:6px;min-width:0;display:grid}.role-home-focus-label{color:var(--color-brand-strong);font-size:var(--font-size-caption);letter-spacing:.035em;text-transform:uppercase;font-weight:800}.role-home-focus h2{letter-spacing:-.025em;overflow-wrap:anywhere;max-width:24ch;margin:0;font-size:clamp(1.3rem,5.6vw,1.65rem);font-weight:800}.role-home-focus p,.role-home-focus time,.role-home-focus-detail{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:0}.role-home-focus time,.role-home-focus-detail{font-size:var(--font-size-secondary)}.role-home-focus-action{width:100%;min-height:48px;margin-top:var(--space-2);border-radius:12px}.role-home-overview{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:12px;min-width:0;display:grid}.role-home-overview-main,.role-home-stat-stack>a{border:1px solid var(--color-border-subtle);background:var(--color-surface);color:var(--color-text-primary);border-radius:16px;text-decoration:none}.role-home-overview-main{gap:12px;min-width:0;min-height:176px;padding:14px;display:grid}.role-home-overview-heading{justify-content:space-between;align-items:center;gap:var(--space-2);min-width:0;display:flex}.role-home-overview-heading>strong{font-size:1.18rem;font-weight:800}.role-home-icon,.role-home-row-icon{background:var(--color-brand-soft);width:40px;height:40px;color:var(--color-brand-strong);border-radius:13px;flex:0 0 40px;place-items:center;display:grid}.role-home-icon svg,.role-home-row-icon svg{stroke-width:1.9px;width:22px;height:22px}.role-home-metrics{gap:var(--space-2);display:grid}.role-home-metrics>span{align-items:baseline;gap:var(--space-2);min-width:0;color:var(--color-text-secondary);display:flex}.role-home-metrics strong{color:var(--color-text-primary);font-size:1.52rem;font-weight:800;line-height:1}.role-home-overview-main>small{color:var(--color-text-secondary);font-weight:700}.role-home-stat-stack{gap:12px;min-width:0;display:grid}.role-home-stat-stack>a{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label arrow""value arrow";align-items:center;gap:2px 8px;min-width:0;min-height:82px;padding:12px;display:grid}.role-home-stat-stack>a>span{color:var(--color-text-secondary);font-size:var(--font-size-caption);grid-area:label}.role-home-stat-stack>a>strong{overflow-wrap:anywhere;grid-area:value;min-width:0;font-size:1rem;font-weight:800}.role-home-stat-stack>a>svg{grid-area:arrow}.role-home-quick-actions{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:18px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px 8px;display:grid}.role-home-quick-actions a{min-width:0;min-height:92px;color:var(--color-text-primary);text-align:center;border-radius:14px;align-content:center;justify-items:center;gap:9px;padding:6px 3px;font-size:12px;line-height:1.18;text-decoration:none;display:grid}.role-home-quick-actions a>span{background:var(--color-brand-soft);width:50px;height:50px;color:var(--color-brand-strong);border-radius:15px;place-items:center;display:grid}.role-home-quick-actions a svg{stroke-width:1.9px;width:27px;height:27px}.role-home-quick-actions a:hover{background:var(--color-surface-secondary)}.role-home-quick-actions a:active{transform:none}.role-home-quick-actions strong{overflow-wrap:anywhere;max-width:100%;font-weight:700}.role-home-quick-actions .role-tool-icon{stroke-width:2.15px;width:38px;height:38px;overflow:visible}.role-tool-icon>:not(.role-tool-icon-accent){vector-effect:non-scaling-stroke}.role-tool-icon-accent{color:var(--color-brand-primary);stroke:currentColor;stroke-width:2.75px;vector-effect:non-scaling-stroke}.role-home-quick-actions:is(.is-parent,.is-teacher) a{transition:background-color .16s ease-out,transform .16s cubic-bezier(.2,.8,.2,1)}.role-home-quick-actions:is(.is-parent,.is-teacher) a>span{transition:background-color .16s ease-out,color .16s ease-out,transform .18s cubic-bezier(.2,.8,.2,1)}.role-home-quick-actions.is-parent a:nth-child(odd)>span{transform:rotate(-1deg)}.role-home-quick-actions.is-parent a:nth-child(2n)>span{transform:rotate(1deg)}.role-home-quick-actions.is-parent a:hover>span{background:color-mix(in srgb, var(--color-brand-soft) 76%, var(--color-surface));transform:translateY(-2px)rotate(0)}.role-home-quick-actions.is-teacher a:hover>span{background:color-mix(in srgb, var(--color-brand-soft) 76%, var(--color-surface));transform:translateY(-2px)}.role-home-quick-actions:is(.is-parent,.is-teacher) a:active{transform:translateY(1px)}.role-home-quick-actions:is(.is-parent,.is-teacher) a:active>span{transform:scale(.96)}.role-home-quick-actions:is(.is-parent,.is-teacher) a:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.role-home-quick-actions:is(.is-parent,.is-teacher) a:focus-visible>span{transform:translateY(-1px)rotate(0)}@media (prefers-reduced-motion:reduce){.role-home-quick-actions:is(.is-parent,.is-teacher) a,.role-home-quick-actions:is(.is-parent,.is-teacher) a>span{transition:none}.role-home-quick-actions:is(.is-parent,.is-teacher) a:hover>span,.role-home-quick-actions:is(.is-parent,.is-teacher) a:active,.role-home-quick-actions:is(.is-parent,.is-teacher) a:active>span,.role-home-quick-actions:is(.is-parent,.is-teacher) a:focus-visible>span{transform:none}}.parent-home-greeting .parent-child-context.is-compact{margin:8px 0 0;padding:0;display:block}.role-home-section{min-width:0;padding-top:var(--space-2);border:0;gap:12px;display:grid}.role-home-section>.ui-section-header{margin:0}.role-home-section>.ui-section-header h2{letter-spacing:-.02em;font-size:1.2rem;font-weight:800}.role-home-section>.ui-section-header a,.role-home-section-action{min-height:44px;color:var(--color-brand-primary);text-underline-offset:3px;align-items:center;text-decoration:underline;display:inline-flex}.role-home-section-action{background:0 0;border:0;padding:0;font-weight:700}.role-home-section-action:hover:not(:disabled){color:var(--color-brand-hover);background:0 0}.role-home-list{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;gap:0;min-width:0;margin:0;padding:0;list-style:none;display:grid;overflow:hidden}.role-home-row,.role-home-row.parent-attention-card,.role-home-row.teacher-attention-card{border:0;border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;min-height:64px;box-shadow:none;border-inline-start:0;border-radius:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.role-home-row:last-child{border-bottom:0}.role-home-row>div{gap:2px;min-width:0;display:grid}.role-home-row>div>span,.role-home-row p,.role-home-row small{color:var(--color-text-secondary);font-size:var(--font-size-secondary);overflow-wrap:anywhere;margin:0}.role-home-row h3,.role-home-row strong{overflow-wrap:anywhere;min-width:0;margin:0}.role-home-row>a{text-align:right;justify-content:center;align-items:center;min-height:44px;font-weight:700;display:inline-flex}.role-home-row>time{font-variant-numeric:tabular-nums;min-width:48px;font-weight:800}.role-home-positive-empty{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-success-soft);color:var(--color-text-secondary);margin:0}.parent-attention-more{justify-self:start}.parent-today-preview li{grid-template-columns:58px minmax(0,1fr) auto;min-height:58px;padding:10px 14px}.teacher-home-lessons .role-home-row[aria-current=true]{background:color-mix(in srgb, var(--color-brand-soft) 42%, var(--color-surface))}.teacher-context-list{gap:var(--space-3);display:grid}.teacher-context-card{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;min-height:68px;color:var(--color-text-primary);border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:grid}.teacher-context-card>strong{overflow-wrap:anywhere;min-width:0}.role-home-service-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.role-home-service-grid a{align-items:center;gap:var(--space-3);background:var(--color-brand-soft);min-width:0;min-height:60px;color:var(--color-brand-strong);border-radius:14px;padding:12px;font-weight:700;text-decoration:none;display:flex}.role-home-service-grid a span{overflow-wrap:anywhere;min-width:0}@media (width<=600px){.role-home-row.teacher-attention-card{grid-template-columns:auto minmax(0,1fr);align-items:start}.role-home-row.teacher-attention-card>a:last-child{text-align:left;grid-column:2;justify-self:start}}@media (width<=360px){.role-home-focus{padding-left:calc(var(--space-4) + 44px)}.role-home-focus-rail{width:44px}.role-home-overview{grid-template-columns:minmax(0,1fr)}.role-home-stat-stack,.role-home-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.role-home-row,.role-home-row.parent-attention-card,.role-home-row.teacher-attention-card{grid-template-columns:auto minmax(0,1fr);align-items:start}.role-home-row>a:last-child{text-align:left;grid-column:2;justify-self:start}.parent-today-preview li{grid-template-columns:54px minmax(0,1fr)}.parent-today-preview li small{grid-column:2}}@media (width>=700px){.teacher-context-list{grid-template-columns:repeat(2,minmax(0,1fr))}.role-home-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=980px){.role-parent,.role-teacher{padding-bottom:0}.role-parent .app-header,.role-teacher .app-header{z-index:calc(var(--z-navigation) + 1)}.role-parent .app-brand,.role-teacher .app-brand{z-index:calc(var(--z-navigation) + 1);top:calc(24px + var(--safe-top));width:184px;position:fixed;left:20px}.role-parent .header-actions,.role-teacher .header-actions{grid-column:2;justify-self:end}.role-parent .bottom-nav a.active:before,.role-teacher .bottom-nav a.active:before{display:block}.role-home-hero-grid{grid-template-columns:minmax(0,1.65fr) minmax(330px,.85fr);align-items:stretch}.role-home-focus{min-height:292px}.role-home-dashboard-cluster{align-content:start}.role-home-dashboard-cluster .role-home-quick-actions a{min-height:80px}.role-home-dashboard-cluster .role-home-quick-actions a>span{width:44px;height:44px}.role-home-dashboard-cluster .role-home-quick-actions a svg{width:24px;height:24px}.role-home-dashboard-cluster .role-home-quick-actions a .role-tool-icon{width:33px;height:33px}.role-home-primary-grid{grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);align-items:start}.parent-home-flow .role-home-primary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.role-home-service-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.role-parent .role-home-page-content{gap:22px var(--space-5);grid-template-columns:minmax(300px,.75fr) minmax(0,1.25fr);display:grid}.role-parent .parent-home-flow{display:contents}.role-parent .parent-home-flow>*{grid-column:1/-1}.role-parent .parent-home-flow>.role-home-greeting{grid-column:1/-1;align-self:center}}@media (width<=619px){.role-parent .header-actions>.text-button,.role-teacher .header-actions>.text-button{display:none}}.role-home-vacation:empty{display:none}.role-home-vacation .vacation-banner,.role-home-vacation-note{box-shadow:none;margin:0}@media (width<=420px){.role-home-vacation .vacation-banner,.role-home-vacation-note{grid-template-columns:auto minmax(0,1fr) auto;align-items:center}.role-home-vacation .vacation-banner p,.role-home-vacation .vacation-banner small,.role-home-vacation-note p{display:none}.role-home-vacation .vacation-banner>.button{grid-column:auto;width:auto;min-height:44px;padding:8px 12px}}@media (forced-colors:active){.role-home-focus{color:canvastext;background:canvas;border:2px solid canvastext}.role-home-focus-rail{color:canvastext;background:canvas;border-right:1px solid canvastext}.role-home-focus-action{color:linktext;background:canvas;border:2px solid linktext}}.app-install-offer{gap:var(--space-4);max-width:var(--content-standard);margin:0 auto var(--space-5);padding:var(--space-5);color:var(--color-text-primary);background:var(--color-brand-soft);border-radius:var(--radius-card);grid-template-columns:2.75rem minmax(0,1fr);display:grid}.app-install-offer-icon{width:44px;height:44px;color:var(--color-on-brand);background:var(--color-brand-primary);border-radius:var(--radius-md);place-items:center;display:grid}.app-install-offer-title,.app-install-offer p{margin:0}.app-install-offer-title{font-size:var(--font-size-section-title);line-height:var(--line-height-tight);display:block}.app-install-offer p{margin-top:var(--space-2);color:var(--color-text-secondary)}.app-install-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.app-install-actions button,.phone-app-settings>button{min-height:44px}.phone-app-settings,.phone-install-help{gap:var(--space-4);display:grid}.phone-app-status{gap:var(--space-3);grid-template-columns:2.75rem minmax(0,1fr);align-items:start;display:grid}.phone-app-status>span{width:2.75rem;height:2.75rem;color:var(--color-text-secondary);background:var(--color-surface-secondary);border-radius:var(--radius-md);place-items:center;display:grid}.phone-app-status>span.is-installed{color:var(--color-success-strong);background:var(--color-success-soft)}.phone-app-status strong,.phone-app-status p{margin:0;display:block}.phone-app-status p{margin-top:var(--space-1);color:var(--color-text-secondary)}.phone-install-steps{gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.phone-install-steps li{gap:var(--space-3);grid-template-columns:2rem minmax(0,1fr);align-items:start;display:grid}.phone-install-steps svg{color:var(--color-brand-primary);margin-top:.1rem}.phone-install-steps strong,.phone-install-steps small{display:block}.phone-install-steps small{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-caption)}@media (width<=520px){.app-install-offer{padding:var(--space-4)}.app-install-actions{grid-template-columns:minmax(0,1fr);display:grid}.app-install-actions button{white-space:normal;overflow-wrap:anywhere;width:100%;min-width:0}.file-picker-actions{grid-template-columns:1fr}}@media (width<=360px){.app-install-offer{grid-template-columns:minmax(0,1fr)}}@media (width<=519px){.file-picker-actions{grid-template-columns:1fr}}.app-experience-status{z-index:var(--z-toast);top:max(var(--space-2), var(--safe-top));right:max(var(--space-3), var(--safe-right));left:max(var(--space-3), var(--safe-left));gap:var(--space-2);pointer-events:none;width:min(100% - 1.5rem,680px);margin:0 auto;display:grid;position:fixed}.app-status-banner{gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-4);color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-elevated);pointer-events:auto;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.app-status-banner.is-offline{color:var(--color-warning-strong);background:var(--color-warning-soft);border-color:color-mix(in srgb, var(--color-warning) 28%, transparent)}.app-status-banner.is-restored{color:var(--color-success-strong);background:var(--color-success-soft);border-color:color-mix(in srgb, var(--color-success) 24%, transparent);grid-template-columns:auto minmax(0,1fr)}.app-status-banner.is-update{border-color:color-mix(in srgb, var(--color-brand-primary) 24%, transparent)}.app-status-banner>svg{width:1.25rem;height:1.25rem}.app-status-banner strong,.app-status-banner span,.app-status-banner small{display:block}.app-status-banner span{color:var(--color-text-secondary);font-size:var(--font-size-secondary);margin-top:2px}.app-status-banner small{margin-top:var(--space-1);color:var(--color-danger-strong)}.app-status-banner .ui-button{min-width:7rem;min-height:44px}.route-error-page{min-height:100dvh;padding:calc(var(--safe-top) + var(--space-8)) max(var(--space-4), var(--safe-right)) calc(var(--safe-bottom) + var(--space-8)) max(var(--space-4), var(--safe-left))}.route-error-page .state-card{width:min(100%,460px)}.state-actions{gap:var(--space-2);margin-top:var(--space-5);flex-wrap:wrap;justify-content:center;display:flex}@media (width<=520px){.app-status-banner{grid-template-columns:auto minmax(0,1fr)}.app-status-banner .ui-button{grid-column:1/-1;width:100%}}.visually-hidden{clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.user-avatar{background:var(--color-brand-primary);width:56px;height:56px;color:var(--color-on-brand);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-size:1.2rem;font-weight:850;line-height:1;display:inline-grid;overflow:hidden}.user-avatar img{object-fit:cover;image-orientation:from-image;width:100%;height:100%}.avatar-preset-artwork{background-repeat:no-repeat;background-size:400% 400%;width:100%;height:100%;display:block}.header-user-avatar{width:34px;height:34px;font-size:.75rem}.profile-header-link{padding:5px}.profile-user-avatar{width:88px;height:88px;font-size:1.75rem;box-shadow:0 8px 20px #18203324}.profile-avatar-editor{align-content:start;justify-items:center;gap:var(--space-3);text-align:center;min-width:0;max-width:220px;display:grid}.profile-avatar-actions{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.profile-avatar-actions button{min-height:44px}.profile-avatar-actions .profile-avatar-remove{border-color:color-mix(in srgb, var(--color-danger) 22%, var(--color-border-subtle));background:var(--color-danger-soft);width:auto;min-width:44px;height:auto;color:var(--color-danger);white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:.6875rem 1rem;display:inline-flex}.profile-avatar-actions .profile-avatar-remove:hover:not(:disabled){border-color:color-mix(in srgb, var(--color-danger) 38%, var(--color-border-subtle));background:color-mix(in srgb, var(--color-danger) 13%, var(--color-surface));color:var(--color-danger)}.profile-avatar-hint,.profile-avatar-message{max-width:32ch;color:var(--color-text-secondary);font-size:var(--font-size-secondary);overflow-wrap:anywhere;margin:0}.profile-avatar-message{color:var(--color-text-primary);font-weight:700}.profile-identity-card{gap:var(--space-6);grid-template-columns:minmax(140px,220px) minmax(0,1fr);align-items:start;display:grid}.profile-identity-details{margin:0}.appearance-settings{gap:var(--space-4);margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);box-shadow:var(--shadow-card);display:grid}.appearance-settings>header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.appearance-settings h2,.appearance-settings p{margin:0}.appearance-settings p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.appearance-settings-status{border-radius:var(--radius-round);background:var(--color-brand-soft);color:var(--color-brand-strong);font-size:var(--font-size-caption);flex:none;padding:5px 9px;font-weight:750}.appearance-settings fieldset{gap:var(--space-2);border:0;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;display:grid}.haptic-settings{justify-content:space-between;align-items:center;gap:var(--space-4);min-width:0;margin-block:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);box-shadow:var(--shadow-card);display:flex}.haptic-settings h2,.haptic-settings p{margin:0}.haptic-settings p{margin-top:var(--space-1);color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.haptic-settings-toggle{align-items:center;gap:var(--space-2);cursor:pointer;flex:none;min-height:44px;display:flex;position:relative}.haptic-settings-toggle input{z-index:1;opacity:0;cursor:pointer;width:48px;height:28px;margin:0;position:absolute}.haptic-settings-toggle>span{border:1px solid var(--color-border-strong);border-radius:var(--radius-round);background:var(--color-surface-muted);width:48px;height:28px;transition:background-color .14s,border-color .14s;position:relative}.haptic-settings-toggle>span:after{background:var(--color-surface);width:20px;height:20px;box-shadow:var(--shadow-card);content:"";border-radius:50%;transition:transform .14s;position:absolute;top:3px;left:3px}.haptic-settings-toggle input:checked+span{border-color:var(--color-brand-primary);background:var(--color-brand-primary)}.haptic-settings-toggle input:checked+span:after{transform:translate(20px)}.haptic-settings-toggle input:focus-visible+span{outline:3px solid color-mix(in srgb, var(--color-brand-primary) 68%, white);outline-offset:3px}.haptic-settings-toggle strong{min-width:72px;color:var(--color-text-secondary);font-size:var(--font-size-secondary)}.appearance-choice{align-content:start;gap:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-surface-secondary);cursor:pointer;min-width:0;min-height:112px;padding:10px;display:grid;position:relative}.appearance-choice:has(input:checked){border-color:var(--color-brand-primary);background:var(--color-brand-soft);box-shadow:inset 0 0 0 1px var(--color-brand-primary)}.appearance-choice input{width:20px;height:20px;accent-color:var(--color-brand-primary);margin:0;position:absolute;top:9px;right:9px}.appearance-choice>span:last-child{gap:2px;min-width:0;display:grid}.appearance-choice strong{overflow-wrap:anywhere;padding-right:24px;font-size:.82rem;line-height:1.2}.appearance-choice small{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.68rem;line-height:1.3}.appearance-choice-preview{border:1px solid var(--color-border-strong);background:var(--color-theme-preview-light);border-radius:7px;grid-template-columns:18px 1fr;gap:4px;width:58px;height:34px;padding:4px;display:grid;overflow:hidden}.appearance-choice-preview i{background:var(--color-theme-preview-accent-light);border-radius:3px;display:block}.appearance-choice-preview i:last-child{background:var(--color-theme-preview-light-surface)}.appearance-choice-preview.is-dark{background:var(--color-theme-preview-dark)}.appearance-choice-preview.is-dark i{background:var(--color-theme-preview-accent-dark)}.appearance-choice-preview.is-dark i:last-child{background:var(--color-theme-preview-dark-surface)}.appearance-choice-preview.is-system{background:var(--color-theme-preview-light);box-shadow:inset -28px 0 var(--color-theme-preview-dark)}.appearance-choice-preview.is-system i:last-child{background:var(--color-theme-preview-light-surface);box-shadow:inset -16px 0 var(--color-theme-preview-dark-surface)}@media (width<=520px){.appearance-settings>header{display:grid}.appearance-settings-status{width:fit-content}.haptic-settings{align-items:flex-start}.haptic-settings-toggle{padding-top:2px}.haptic-settings-toggle strong{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.appearance-settings fieldset{grid-template-columns:1fr}.appearance-choice{grid-template-columns:58px minmax(0,1fr);align-content:center;align-items:center;min-height:76px}}.avatar-picker-backdrop{z-index:1200;padding:var(--space-4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a9e;place-items:center;display:grid;position:fixed;inset:0}.avatar-picker{width:min(780px,100%);max-height:min(760px,100dvh - 32px);padding:var(--space-5);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-elevated);text-align:left;overflow:auto}.avatar-picker-header{align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:minmax(0,1fr) auto;display:grid}.avatar-picker-header>div{min-width:0}.avatar-picker-header h2,.avatar-picker-header p{margin:0}.avatar-picker-header p{margin-top:var(--space-1);color:var(--color-text-secondary)}.avatar-picker .avatar-picker-close{white-space:nowrap;flex:none;justify-content:center;align-items:center;width:auto;min-width:44px;height:auto;min-height:44px;padding:.6875rem 1rem;display:inline-flex}.avatar-preset-grid{gap:var(--space-3);grid-template-columns:repeat(8,minmax(0,1fr));display:grid}.avatar-preset-option{align-content:start;justify-items:center;gap:var(--space-2);min-width:0;min-height:112px;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--color-surface-secondary);color:var(--color-text-primary);font:inherit;text-align:center;cursor:pointer;border:2px solid #0000;font-size:.75rem;font-weight:750;line-height:1.15;display:grid}.avatar-preset-option .avatar-preset-artwork{border-radius:50%;width:64px;height:64px;box-shadow:0 3px 12px #0f172a24}.avatar-preset-option:hover:not(:disabled){border-color:var(--color-brand-primary);transform:translateY(-1px)}.avatar-preset-option:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px}.avatar-preset-option.is-selected{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.avatar-preset-option:disabled{cursor:wait;opacity:.68}.admin-avatar-panel{gap:var(--space-4);display:grid}.admin-avatar-summary{align-items:center;gap:var(--space-4);min-width:0;display:flex}.admin-user-avatar{width:72px;height:72px;font-size:1.4rem}.admin-avatar-summary p{margin:var(--space-1) 0 0;color:var(--color-text-secondary)}.admin-avatar-reason{gap:var(--space-2);font-weight:750;display:grid}.admin-avatar-reason textarea{resize:vertical;width:100%}@media (width<=520px){.profile-identity-card,.student-profile-summary{grid-template-columns:1fr}.profile-avatar-editor{text-align:left;justify-items:start;max-width:none}.profile-avatar-actions{justify-content:flex-start}.avatar-picker-backdrop{place-items:end stretch;padding:0}.avatar-picker{width:100%;max-height:88dvh;padding:var(--space-4);border-radius:var(--radius-card) var(--radius-card) 0 0}.avatar-picker-header{margin-bottom:var(--space-4)}.avatar-preset-grid{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr))}.avatar-preset-option{min-height:104px;padding:var(--space-1)}.avatar-preset-option .avatar-preset-artwork{width:58px;height:58px}}.academic-progress-card{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.academic-progress-heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-3);display:flex}.academic-progress-heading h2{margin:0;font-size:1rem}.academic-progress-heading span{color:var(--color-text-secondary);text-align:right;font-size:.72rem}.academic-progress-metrics{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.academic-progress-metrics a{border-top:1px solid var(--color-border-subtle);min-width:0;min-height:104px;padding:var(--space-3) var(--space-4);color:var(--color-text-primary);flex-direction:column;justify-content:center;gap:3px;text-decoration:none;display:flex}.academic-progress-metrics a+a{border-left:1px solid var(--color-border-subtle)}.academic-progress-metrics a:hover{background:var(--color-surface-secondary)}.academic-progress-metrics span,.academic-progress-metrics small{color:var(--color-text-secondary);text-overflow:ellipsis;font-size:.7rem;line-height:1.25;overflow:hidden}.academic-progress-metrics span{font-weight:700}.academic-progress-metrics strong{letter-spacing:-.025em;font-size:clamp(1.25rem,5vw,1.75rem);line-height:1.1}.academic-progress-metrics .is-attention strong{color:var(--color-danger)}.academic-progress-card.is-compact{margin-block:var(--space-5)}.student-home-flow>.academic-progress-card{margin-inline:0}.parent-home-progress-grid{gap:var(--space-4);display:grid}.parent-home-progress-grid .academic-progress-card.is-compact{margin:0}.parent-motivation-card{border:1px solid color-mix(in srgb, var(--color-brand-primary) 24%, var(--color-border-subtle));border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.parent-motivation-card[class*=level-tier-]{border-color:color-mix(in srgb, var(--level-accent) 28%, var(--color-border-subtle))}.parent-motivation-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.parent-motivation-heading h2{margin:0;font-size:1rem}.parent-motivation-heading p{color:var(--color-text-secondary);font-size:var(--font-size-caption);margin:3px 0 0}.parent-motivation-heading a{font-size:var(--font-size-caption);flex:none;font-weight:800}.parent-motivation-level{align-items:center;gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.parent-motivation-badge{width:52px;height:52px}.parent-motivation-level>div{gap:1px;min-width:0;display:grid}.parent-motivation-level>div span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-motivation-coins{color:var(--color-reward);font-size:var(--font-size-caption);white-space:nowrap;align-items:center;gap:5px;font-weight:800;display:inline-flex}.parent-motivation-track{height:8px;margin-top:var(--space-3);border-radius:var(--radius-round);background:var(--color-surface-muted);overflow:hidden}.parent-motivation-track>span{width:var(--progress-value);border-radius:inherit;background:var(--level-accent);height:100%;display:block}.parent-motivation-metrics{margin:var(--space-4) 0 0;border-top:1px solid var(--color-border-subtle);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.parent-motivation-metrics>div{min-width:0;padding:var(--space-3) var(--space-2) 0}.parent-motivation-metrics>div:first-child{padding-left:0}.parent-motivation-metrics dt{color:var(--color-text-secondary);font-size:.68rem;line-height:1.25}.parent-motivation-metrics dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-weight:850}.parent-motivation-lifetime{margin:var(--space-3) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-caption)}.parent-motivation-latest{align-items:start;gap:var(--space-2);margin:var(--space-3) 0 0;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-3);color:var(--color-text-secondary);font-size:var(--font-size-caption);grid-template-columns:auto minmax(0,1fr);display:grid}.parent-motivation-latest>svg{color:var(--color-reward)}.parent-motivation-latest>span{gap:2px;display:grid}.parent-motivation-latest strong{color:var(--color-text-primary)}@media (width>=820px){.parent-home-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}}@media (width<=359px){.parent-motivation-card{padding:var(--space-4)}.parent-motivation-level{grid-template-columns:auto minmax(0,1fr)}.parent-motivation-coins{grid-column:2}.parent-motivation-metrics dt{font-size:.62rem}.academic-progress-heading{padding-inline:var(--space-4)}.academic-progress-metrics a{min-height:100px;padding-inline:var(--space-2)}.academic-progress-metrics strong{font-size:1.2rem}.academic-progress-metrics small{font-size:.64rem}}.role-student{--color-background:var(--color-student-background);--color-surface-secondary:var(--color-student-surface-secondary);--color-surface-muted:var(--color-student-surface-muted);--color-border-subtle:var(--color-student-border-subtle);--color-border-strong:var(--color-student-border-strong);--color-text-primary:var(--color-student-text-primary);--color-text-secondary:var(--color-student-text-secondary);--color-text-muted:var(--color-student-text-muted);--color-brand-primary:var(--color-student-brand-primary);--color-brand-hover:var(--color-student-brand-hover);--color-brand-strong:var(--color-student-brand-strong);--color-brand-soft:var(--color-student-brand-soft);--shadow-card:none}.role-student .app-header{border-bottom:1px solid var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 96%, transparent)}.role-student .notification-bell,.role-student .header-actions>.text-button{border:1px solid var(--color-border-subtle);background:var(--color-surface)}.role-student .page-content{width:min(100%,920px);padding-top:clamp(1.25rem,4vw,2.25rem)}.role-student .bottom-nav{border-color:var(--color-border-subtle);background:color-mix(in srgb, var(--color-surface) 97%, transparent);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 -8px 24px #1d1b220d}.role-student .bottom-nav a{color:var(--color-student-text-muted)}.role-student .bottom-nav a.active{color:var(--color-brand-strong)}.student-home-page{gap:var(--space-6);display:grid}.student-home-hero-shell{gap:var(--space-4);display:grid}.student-home-greeting{align-items:center;gap:var(--space-4);display:grid}.student-home-greeting-copy{min-width:0;padding-right:106px;position:relative}.student-home-greeting h1{color:var(--color-text-primary);letter-spacing:-.035em;margin:0;font-size:clamp(2.25rem,8vw,3.25rem);line-height:.98}.student-home-context{align-items:center;gap:var(--space-2) var(--space-4);margin:var(--space-2) 0 0;color:var(--color-text-secondary);flex-wrap:wrap;display:flex}.student-home-context time{align-items:center;gap:var(--space-1);color:var(--color-brand-strong);font-size:var(--font-size-secondary);font-weight:750;display:inline-flex}.student-home-ink-note{color:var(--color-student-ink);transform-origin:50%;align-items:flex-end;gap:1px;display:flex;position:absolute;top:50%;right:0;transform:translateY(-50%)rotate(-2deg)}.student-home-ink-note .student-ink-icon:first-child{transform:rotate(-8deg)}.student-home-ink-note .student-ink-icon:nth-child(2){transform:translateY(-7px)rotate(5deg)}.student-home-ink-note .student-ink-icon:nth-child(3){transform:rotate(8deg)}.student-ink-icon{display:block;overflow:visible}.student-ink-icon>:not(.student-ink-accent){vector-effect:non-scaling-stroke}.student-ink-accent{color:var(--color-brand-primary);stroke:currentColor;stroke-width:2.7px}.student-success-summary{border:0;border-block:1px solid var(--color-border-subtle);background:0 0;border-radius:0;min-height:82px;padding-inline:0}.student-success-icon,.student-level-badge{background:var(--color-brand-primary);width:48px;height:52px;color:var(--color-on-brand);clip-path:polygon(50% 0,91% 22%,91% 74%,50% 100%,9% 74%,9% 22%);place-items:center;font-size:1.25rem;font-weight:900;display:grid}.student-home-level-emblem{justify-self:start;width:38px;height:38px}@media (forced-colors:active){.level-pin-artwork{filter:none;forced-color-adjust:none;border:1px solid canvastext;border-radius:50%}.student-profile-summary[class*=level-tier-] .profile-user-avatar{border-color:canvastext}}.student-success-copy{gap:2px;min-width:0;display:grid}.student-success-copy small{color:var(--color-text-secondary)}.student-success-copy .ui-progress{margin-top:var(--space-1)}.student-success-copy .ui-progress-track{background:var(--color-surface-muted);height:7px}.student-success-coins{border:1px solid var(--color-student-reward-border);background:var(--color-reward-soft);min-width:68px;color:var(--color-reward);border-radius:12px;justify-items:center;padding:7px 10px;display:grid}.student-success-coins small{font-size:.7rem}.student-now-card{gap:var(--space-3);background:var(--color-student-next-action);min-height:0;color:var(--color-text-primary);border:0;border-radius:14px;grid-template-columns:minmax(0,1fr) auto;padding:clamp(1.25rem,5vw,2rem)}.student-now-card.urgency-urgent{border-color:#0000}.student-now-status{justify-content:space-between;align-items:center;gap:var(--space-3);color:#102421c2;grid-column:1/-1;font-weight:750;display:flex}.student-now-status>span{align-items:center;gap:var(--space-2);display:inline-flex}.student-now-status strong{border-radius:var(--radius-round);color:var(--color-text-primary);background:#ffffff73;padding:5px 10px}.student-now-copy{grid-column:1;align-self:center;padding:0}.student-now-copy h2{letter-spacing:-.03em;font-size:clamp(1.65rem,5vw,2.35rem);line-height:1.1}.student-now-copy p{color:#102421b8}.student-now-copy>strong{color:var(--color-text-primary)}.student-now-illustration{width:72px;height:72px;color:var(--color-student-ink);grid-area:2/2;align-self:center;place-items:center;transition:transform .18s cubic-bezier(.2,.8,.2,1);display:grid;transform:rotate(3deg)}.student-now-card:hover .student-now-illustration{transform:translateY(-2px)rotate(-2deg)}.student-now-card:active .student-now-illustration{transform:translateY(1px)rotate(5deg)scale(.96)}.student-now-progress{color:#102421b8;grid-column:1/-1}.student-now-progress-track{background:#ffffff73}.student-now-progress-track>span{background:var(--color-text-primary)}.student-now-action{width:fit-content;min-height:48px;padding-inline:var(--space-4);background:var(--color-text-primary);color:var(--color-on-brand);border-radius:12px;grid-column:1/-1;justify-self:end}.student-now-action:hover{background:var(--color-student-next-action-hover)}.student-home-flow{gap:var(--space-6)}.student-learning-grid{gap:var(--space-5)}.student-home-section{gap:var(--space-3);padding-top:var(--space-6)}.student-learning-grid .student-home-section{padding-top:0}.student-section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.student-section-heading h2{letter-spacing:-.02em;text-transform:uppercase;margin:0;font-size:1.35rem}.student-section-heading a,.student-more-link{color:var(--color-brand-primary)}.student-schedule-preview ol,.student-assignment-list{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:14px;gap:0;overflow:hidden}.student-schedule-preview li{border-bottom:1px solid var(--color-border-subtle);min-height:58px;padding:0;display:block}.student-schedule-preview li:last-child{border-bottom:0}.student-schedule-preview li>:is(a,div){align-items:center;gap:var(--space-2);min-height:58px;padding:var(--space-2) var(--space-3);color:inherit;grid-template-columns:64px minmax(0,1fr) auto 18px;text-decoration:none;display:grid}.student-schedule-preview li>a:hover{background:var(--color-brand-soft)}.student-schedule-preview li span{font-weight:750}.student-schedule-preview small{color:var(--color-brand-strong)}.student-schedule-preview li svg{color:var(--color-text-muted)}.student-assignment-row{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface)}.student-assignment-icon{background:var(--color-brand-soft);color:var(--color-brand-strong);border-radius:10px}.student-assignment-due{color:var(--color-reward);font-size:var(--font-size-caption);margin-top:2px;font-weight:750;display:block}.student-assignment-row>a{color:var(--color-brand-primary);background:0 0;gap:4px;padding:7px 8px}.student-home-progress{padding-top:0}.student-home-progress-panel{gap:var(--space-4);border:1px solid var(--color-student-progress-border);padding:var(--space-5);background:var(--color-student-progress-surface);color:var(--color-text-primary);border-radius:14px;text-decoration:none;display:grid;position:relative}.student-home-progress-level{align-items:center;gap:var(--space-3);display:flex}.student-home-progress-level>div{gap:2px;display:grid}.student-home-progress-level small,.student-home-progress-track small{color:var(--color-text-secondary)}.student-home-progress-track{gap:var(--space-2);display:grid}.student-home-progress-track .ui-progress-track{background:var(--color-student-progress-track);height:8px}.student-home-progress-stats{border:1px solid var(--color-student-progress-border);background:var(--color-student-progress-border);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:0;display:grid;overflow:hidden}.student-home-progress-stats>div{padding:var(--space-3);background:#ffffff94}.student-home-progress-stats dt{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.student-home-progress-stats dd{font-variant-numeric:tabular-nums;margin:3px 0 0;font-size:1.35rem;font-weight:900}.student-home-latest-result{border-top:1px solid var(--color-student-progress-border);padding-top:var(--space-3);gap:2px;margin:0;display:grid}.student-home-latest-result span{color:var(--color-text-secondary);font-size:var(--font-size-caption)}.student-home-progress-arrow{top:var(--space-4);right:var(--space-4);color:var(--color-brand-primary);position:absolute}.student-goal-list{gap:var(--space-3);grid-template-columns:1fr}.student-goal-row{min-height:0;padding:var(--space-4);border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto}.student-goal-icon{background:var(--color-brand-soft);width:42px;height:42px;color:var(--color-brand-strong);border-radius:11px;place-items:center;display:grid}.student-goal-class_goal .student-goal-icon{background:var(--color-reward-soft);color:var(--color-reward)}.student-goal-copy{gap:2px;display:grid}.student-goal-contribution{width:fit-content;margin-top:var(--space-1);border-radius:var(--radius-round);background:var(--color-reward-soft);align-items:center;gap:3px;padding:3px 7px;font-weight:750;display:inline-flex;color:var(--color-reward)!important}.student-goal-progress{align-items:center;gap:var(--space-3);margin-top:var(--space-2);grid-template-columns:minmax(0,1fr) auto;display:grid}.student-goal-action{grid-area:1/3/3;align-self:center;align-items:center;min-height:44px;font-weight:750;display:inline-flex;color:var(--color-brand-primary)!important}.student-quick-actions{box-shadow:none;border-radius:14px}.student-quick-actions a{transition:background-color .16s ease-out,transform .16s cubic-bezier(.2,.8,.2,1)}.student-quick-actions a>span{background:var(--color-student-ink-soft);color:var(--color-student-ink);transition:transform .18s cubic-bezier(.2,.8,.2,1),background-color .16s ease-out}.student-quick-actions a .student-ink-icon{width:40px;height:40px}.student-quick-actions a:nth-child(2n)>span{transform:rotate(2deg)}.student-quick-actions a:nth-child(odd)>span{transform:rotate(-2deg)}.student-quick-actions a:hover>span{background:color-mix(in srgb, var(--color-student-ink-soft) 74%, white);transform:translateY(-3px)rotate(0)}.student-quick-actions a:active{transform:translateY(1px)}.student-quick-actions a:active>span{transform:scale(.92)rotate(-4deg)}.student-quick-actions a:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.student-quick-actions a:focus-visible>span{transform:translateY(-2px)rotate(0)}.student-extra-grid{gap:var(--space-2)}@media (prefers-reduced-motion:no-preference){.student-home-ink-note{animation:.52s cubic-bezier(.16,1,.3,1) both student-ink-note-arrive}@keyframes student-ink-note-arrive{0%{clip-path:inset(0 22% 0 0);filter:blur(1.5px);opacity:.45;transform:translateY(-47%)rotate(-4deg)scale(.94)}to{clip-path:inset(0);filter:blur();opacity:1;transform:translateY(-50%)rotate(-2deg)scale(1)}}}@media (width>=700px){.student-home-greeting{grid-template-columns:minmax(0,1fr) minmax(300px,.75fr)}.student-learning-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.student-home-progress-panel{grid-template-columns:minmax(190px,.75fr) minmax(240px,1.25fr) minmax(180px,.75fr);align-items:center}.student-home-latest-result{grid-column:1/-1}}@media (width<=560px){.role-student .page-content{padding-top:var(--space-4)}.student-home-page{gap:var(--space-4)}.student-home-hero-shell{gap:var(--space-3)}.student-home-greeting{gap:var(--space-2)}.student-home-greeting-copy{padding-right:82px}.student-home-greeting h1{font-size:2rem;line-height:1}.student-home-ink-note{right:-4px}.student-home-ink-note .student-ink-icon{width:25px;height:25px}.student-home-ink-note .student-ink-icon:nth-child(2){width:28px;height:28px}.student-home-context{gap:2px var(--space-3);font-size:.9rem}.student-home-context time{font-size:.78rem}.student-success-summary{gap:var(--space-2);min-height:64px;padding-block:var(--space-2);grid-template-columns:auto minmax(0,1fr) auto}.student-success-icon{width:42px;height:46px;font-size:1.15rem}.student-success-copy{gap:0}.student-success-copy small{font-size:.7rem}.student-success-copy strong{font-size:.9rem}.student-success-copy .ui-progress{margin-top:3px}.student-success-coins{gap:2px;min-width:58px;padding:6px 8px}.student-success-coins svg{width:14px;height:14px}.student-success-coins strong{font-size:1rem}.student-success-coins small{font-size:.62rem}.student-now-card{gap:var(--space-2) var(--space-3);padding:var(--space-4);grid-template-columns:minmax(0,1fr) 48px}.student-now-status{font-size:.76rem}.student-now-status strong{padding:4px 8px;font-size:.7rem}.student-now-copy{grid-row:2/4}.student-now-copy h2{font-size:1.4rem}.student-now-copy>strong{font-size:.88rem}.student-now-copy p{max-width:26ch;font-size:.82rem;line-height:1.35}.student-now-illustration{grid-row:2;width:48px;height:48px}.student-now-illustration svg{width:34px;height:34px}.student-now-progress{grid-area:4/1}.student-now-action{border-radius:50%;grid-area:3/2;justify-self:center;width:44px;min-height:44px;padding:0}.student-now-action-label{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.student-home-flow,.student-learning-grid{gap:var(--space-5)}.student-home-section{gap:var(--space-2);padding-top:var(--space-5)}.student-learning-grid .student-home-section{padding-top:0}.student-section-heading h2{font-size:1.15rem}.student-section-heading a,.student-more-link{font-size:.78rem}.student-schedule-preview li,.student-schedule-preview li>:is(a,div){min-height:50px}.student-schedule-preview li>:is(a,div){gap:2px var(--space-2);padding:5px var(--space-3);grid-template-columns:52px minmax(0,1fr) 18px}.student-schedule-preview small{grid-column:2}.student-schedule-preview li svg{grid-area:1/3/3}.student-goal-row{grid-template-columns:auto minmax(0,1fr)}.student-goal-action{grid-area:auto/2;justify-content:flex-start}}.student-store-page,.store-detail-page,.store-orders-page,.store-order-detail,.admin-store-page{min-width:0}.store-balance-hero{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:132px;margin-bottom:var(--space-5);border-radius:var(--radius-card);padding:var(--space-5);background:var(--color-brand-strong);color:var(--color-on-brand);display:flex;position:relative;overflow:hidden}.store-balance-hero:after{border:24px solid color-mix(in srgb, var(--color-on-brand) 12%, transparent);content:"";border-radius:50%;width:150px;height:150px;position:absolute;bottom:-58px;right:-38px}.store-balance-hero>div{gap:var(--space-1);display:grid}.store-balance-hero span{color:color-mix(in srgb, var(--color-on-brand) 76%, transparent);font-weight:650}.store-balance-hero strong{align-items:center;gap:var(--space-2);letter-spacing:-.03em;font-size:clamp(2rem,10vw,3rem);line-height:1;display:flex}.store-balance-hero>svg{z-index:1;opacity:.78;flex:none;position:relative}.store-goal{gap:var(--space-3);margin-bottom:var(--space-7);border:1px solid color-mix(in srgb, var(--color-reward) 35%, var(--color-border-subtle));border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-reward-soft);color:var(--color-text-primary);display:grid}.store-goal.is-unavailable{border-color:var(--color-border-subtle);background:var(--color-surface-secondary)}.store-goal-copy{align-items:center;gap:var(--space-3);display:flex}.store-goal-copy h2{color:var(--color-text-secondary);margin:0 0 2px;font-size:.78rem}.store-goal-copy strong{overflow-wrap:anywhere}.store-goal-icon{border-radius:var(--radius-md);background:var(--color-surface);width:44px;height:44px;color:var(--color-reward);flex:0 0 44px;place-items:center;display:grid}.store-goal-progress{justify-content:space-between;gap:var(--space-2);color:var(--color-text-secondary);flex-wrap:wrap;font-size:.82rem;font-weight:700;display:flex}.store-goal>a{justify-self:start;font-weight:800}.store-text-action{min-height:44px;color:var(--color-text-secondary);background:0 0;justify-self:start;padding-inline:0}.store-text-action:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.store-section+.store-section{margin-top:var(--space-8)}.store-section-heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.store-section-heading h2{margin:0;font-size:1.25rem}.store-section-heading span{color:var(--color-text-muted);font-size:.78rem}.store-category-tabs,.store-filter-tabs,.admin-store-tabs{gap:var(--space-2);max-width:100%;padding:3px 3px var(--space-3);scrollbar-width:thin;display:flex;overflow-x:auto}.store-category-tabs button,.store-filter-tabs button,.admin-store-tabs a{border:1px solid var(--color-border-strong);border-radius:var(--radius-round);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);flex:none;padding:.55rem .85rem;font-size:.84rem;font-weight:750;text-decoration:none}.store-category-tabs button.is-active,.store-filter-tabs button.is-active,.admin-store-tabs a.is-active{border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong)}.store-grid,.store-featured-row{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}.store-featured-row{margin-bottom:var(--space-2)}.store-item{border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);min-width:0;color:var(--color-text-primary);transition:border-color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);text-decoration:none;display:grid;overflow:hidden}.store-item:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.store-item.is-unavailable{background:var(--color-surface-secondary)}.store-item-media{background:var(--color-brand-soft);height:clamp(132px,36vw,176px);position:relative}.store-item-media>img,.store-detail-media>img{object-fit:cover;width:100%;height:100%}.store-item-media .shop-image-placeholder{aspect-ratio:auto;height:100%;min-height:0;color:var(--color-brand-primary);background:0 0;border-radius:0}.store-goal-marker{top:var(--space-3);left:var(--space-3);border-radius:var(--radius-round);background:var(--color-reward-soft);min-height:30px;color:var(--color-reward);align-items:center;gap:4px;padding:4px 9px;font-size:.72rem;font-weight:800;display:inline-flex;position:absolute}.store-item-copy{gap:var(--space-2);min-width:0;padding:var(--space-4);display:grid}.store-item-copy h3{overflow-wrap:anywhere;margin:0;font-size:1.05rem}.store-item-meta{gap:var(--space-1) var(--space-2);min-width:0;color:var(--color-text-muted);flex-wrap:wrap;font-size:.72rem;font-weight:700;display:flex}.store-item-meta span+span:before{margin-right:var(--space-2);content:"·"}.store-item-bottom{justify-content:space-between;align-items:end;gap:var(--space-3);display:flex}.store-item-bottom strong,.store-price-line strong,.admin-store-item>strong,.admin-store-order strong{color:var(--color-reward);align-items:center;gap:4px;font-size:1.08rem;display:inline-flex}.store-item-bottom>span{max-width:52%;color:var(--color-text-secondary);text-align:right;font-size:.74rem}.store-detail-layout{gap:var(--space-5);display:grid}.store-detail-media{border-radius:var(--radius-card);background:var(--color-brand-soft);width:100%;min-height:240px;max-height:430px;color:var(--color-brand-primary);place-items:center;display:grid;overflow:hidden}.store-detail-media>span{background:var(--color-surface);border-radius:50%;place-items:center;width:92px;height:92px;display:grid}.store-detail-copy{min-width:0}.store-detail-copy h1{margin:var(--space-2) 0 var(--space-3);overflow-wrap:anywhere;font-size:clamp(1.75rem,8vw,2.6rem)}.store-detail-description{max-width:68ch;color:var(--color-text-secondary)}.store-price-line{justify-content:space-between;align-items:center;gap:var(--space-3);border-block:1px solid var(--color-border-subtle);padding-block:var(--space-4);display:flex}.store-price-line strong{font-size:1.55rem}.store-price-line span{color:var(--color-text-secondary);font-weight:700}.store-balance-preview{margin:var(--space-4) 0;border-radius:var(--radius-md);background:var(--color-surface-secondary);grid-template-columns:repeat(2,minmax(0,1fr));gap:0;display:grid}.store-balance-preview>div{padding:var(--space-3);gap:3px;display:grid}.store-balance-preview>div+div{border-inline-start:1px solid var(--color-border-subtle)}.store-balance-preview dt{color:var(--color-text-muted);font-size:.75rem}.store-balance-preview dd{margin:0;font-weight:800}.store-availability-message,.store-inline-error,.store-notice{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-warning-soft);color:var(--color-warning);font-weight:700}.store-inline-error{background:var(--color-danger-soft);color:var(--color-danger)}.store-rules{margin-top:var(--space-5)}.store-rules h2,.store-next-step h2{margin-bottom:var(--space-1);font-size:1rem}.store-rules ul{color:var(--color-text-secondary);margin:0;padding-inline-start:1.3rem}.store-next-step{align-items:flex-start;gap:var(--space-3);margin:var(--space-5) 0;padding:var(--space-4);border-radius:var(--radius-card);background:var(--color-info-soft);display:flex}.store-next-step>svg{color:var(--color-info);flex:none}.store-next-step p{color:var(--color-text-secondary);margin:0}.store-detail-actions{gap:var(--space-2);display:grid}.store-confirm-balance{justify-content:center;align-items:center;gap:var(--space-3);border-radius:var(--radius-md);background:var(--color-reward-soft);min-height:74px;font-size:1.1rem;display:flex}.store-confirm-balance strong{color:var(--color-reward)}.store-success-dialog .ui-dialog-body{overflow:visible}.store-success-state{justify-items:center;gap:var(--space-2);text-align:center;display:grid}.store-success-state h3{margin:var(--space-2) 0 0;font-size:1.25rem}.store-success-state>strong{color:var(--color-reward);font-size:1.6rem}.store-success-state p,.store-success-state small{color:var(--color-text-secondary);margin:0}.store-success-mark{background:var(--color-success-soft);width:82px;height:82px;color:var(--color-success);animation:store-success-pop .48s var(--ease-standard) both;border-radius:50%;place-items:center;display:grid}.store-order-list,.admin-store-order-list{border-block-start:1px solid var(--color-border-subtle);display:grid}.store-order-row,.admin-store-order{gap:var(--space-3);padding:var(--space-4) 0;border-block-end:1px solid var(--color-border-subtle);color:var(--color-text-primary);grid-template-columns:minmax(0,1fr);text-decoration:none;display:grid}.store-order-row>div,.admin-store-order>div{justify-items:start;gap:var(--space-1);min-width:0;display:grid}.store-order-row h2,.admin-store-order h2{overflow-wrap:anywhere;margin:0;font-size:1rem}.store-order-row p,.admin-store-order p{margin:0}.store-order-row time,.admin-store-order time{color:var(--color-text-muted);font-size:.74rem}.store-pagination{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-5);display:flex}.store-pagination span{color:var(--color-text-secondary);font-size:.8rem}.store-order-detail>article,.admin-store-order-detail{gap:var(--space-4);border-radius:var(--radius-card);padding:var(--space-4);background:var(--color-surface);display:grid}.store-order-detail-head{align-items:center;gap:var(--space-3);grid-template-columns:72px minmax(0,1fr);display:grid}.store-order-detail-head>img,.store-order-detail-head>span{border-radius:var(--radius-md);object-fit:cover;background:var(--color-brand-soft);width:72px;height:72px;color:var(--color-brand-primary);place-items:center;display:grid}.store-order-detail-head h1{margin:2px 0;font-size:1.3rem}.store-order-detail-head span{color:var(--color-text-muted);font-size:.74rem}.store-order-timeline{gap:0;margin:0;padding:0;list-style:none;display:grid}.store-order-timeline li{gap:var(--space-3);padding:var(--space-3) 0;border-block-start:1px solid var(--color-border-subtle);grid-template-columns:minmax(0,1fr) auto;display:grid}.store-order-timeline time{color:var(--color-text-muted);text-align:right;font-size:.76rem}.student-home-store{align-items:center;gap:var(--space-3);margin:var(--space-4) 0;padding:var(--space-3) 0;border-block:1px solid var(--color-border-subtle);grid-template-columns:auto minmax(0,1fr);display:grid}.student-home-store-balance{align-items:center;gap:var(--space-2);color:var(--color-reward);display:flex}.student-home-store-balance>span,.student-home-store-goal{min-width:0;display:grid}.student-home-store-balance small,.student-home-store-goal small,.student-home-store-goal span{color:var(--color-text-muted);font-size:.72rem}.student-home-store-goal strong{overflow-wrap:anywhere}.student-home-store-actions{gap:var(--space-2);grid-column:1/-1;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);display:grid}.student-home-store-actions>a{justify-content:center;gap:var(--space-1);min-width:0;padding-inline:var(--space-2);text-align:center}.student-home-store-actions>a:only-child{grid-column:1/-1}.student-home-class-goals-link>span{white-space:nowrap}.student-home-class-goals-link small{border-radius:var(--radius-round);background:var(--color-reward-soft);color:var(--color-reward);padding:2px 6px;font-size:.68rem;font-weight:800}.admin-store-tabs{margin-bottom:var(--space-5);border-block-end:1px solid var(--color-border-subtle)}.admin-store-tabs a{border-radius:var(--radius-md) var(--radius-md) 0 0;border-color:#0000}.admin-store-summary{margin:0 0 var(--space-6);border-block:1px solid var(--color-border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-store-summary>div{min-width:0;padding:var(--space-3)}.admin-store-summary dt{color:var(--color-text-muted);font-size:.74rem}.admin-store-summary dd{margin:2px 0 0;font-size:1.35rem;font-weight:850}.admin-store-item-list{border-block-start:1px solid var(--color-border-subtle);display:grid}.admin-store-item{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-block-end:1px solid var(--color-border-subtle);color:var(--color-text-primary);grid-template-columns:54px minmax(0,1fr) auto auto;text-decoration:none;display:grid}.admin-store-item-media{border-radius:var(--radius-md);background:var(--color-brand-soft);width:54px;height:54px;color:var(--color-brand-primary);place-items:center;display:grid;overflow:hidden}.admin-store-item-media img{object-fit:cover;width:100%;height:100%}.admin-store-item h2{overflow-wrap:anywhere;margin:1px 0;font-size:.98rem}.admin-store-item p,.admin-store-item span{color:var(--color-text-muted);margin:0;font-size:.74rem}.admin-store-editor{gap:var(--space-5);display:grid}.admin-store-editor>section{gap:var(--space-3);border-block-end:1px solid var(--color-border-subtle);padding-block-end:var(--space-5);display:grid}.admin-store-editor h2{margin:0;font-size:1.05rem}.admin-store-editor label,.admin-store-photo label,.admin-store-category-form label,.admin-store-order-detail+.ui-dialog label{gap:var(--space-2);color:var(--color-text-secondary);font-size:.82rem;font-weight:700;display:grid}.admin-store-editor input:not([type=radio]):not([type=checkbox]),.admin-store-editor select,.admin-store-editor textarea,.admin-store-category-form input,.admin-store-order-detail+.ui-dialog textarea{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);padding:.65rem .75rem}.admin-store-choice-grid{gap:var(--space-2);display:grid}.admin-store-choice-grid label{gap:2px var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);min-height:68px;padding:var(--space-3);background:var(--color-surface);grid-template-columns:24px minmax(0,1fr);display:grid}.admin-store-choice-grid label.is-selected{border-color:var(--color-brand-primary);background:var(--color-brand-soft)}.admin-store-choice-grid input{grid-row:1/3;width:20px;height:20px;margin:2px 0 0}.admin-store-choice-grid span{color:var(--color-text-muted);font-size:.75rem;font-weight:500}.admin-store-category-choice{align-items:end;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-store-category-choice>label{flex:240px}.admin-store-category-choice>small{color:var(--color-text-muted);flex-basis:100%;font-weight:500}.admin-store-category-dialog{gap:var(--space-3);display:grid}.admin-store-category-dialog label{gap:var(--space-2);color:var(--color-text-secondary);font-size:.82rem;font-weight:700;display:grid}.admin-store-category-dialog input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);padding:.65rem .75rem}.admin-store-category-dialog>p{color:var(--color-text-secondary);margin:0}.admin-store-category-dialog>.store-inline-error{color:var(--color-danger)}.admin-store-two-columns{gap:var(--space-4);display:grid}.admin-store-two-columns>div{align-content:start;gap:var(--space-3);display:grid}.admin-store-radio{grid-template-columns:24px minmax(0,1fr);align-items:center;min-height:44px;display:grid!important}.admin-store-radio input,.admin-store-class-list input{width:20px;height:20px;accent-color:var(--color-brand-primary);margin:0}.admin-store-class-list{gap:var(--space-2);border:0;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0;padding:0;display:grid}.admin-store-class-list legend{margin-bottom:var(--space-2);font-weight:750}.admin-store-class-list label{align-items:center;gap:var(--space-2);min-height:44px;display:flex}.admin-store-editor-actions,.admin-store-order-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-store-editor-actions{z-index:2;bottom:calc(72px + var(--safe-bottom));padding:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);position:sticky;box-shadow:0 8px 24px #0a1c281f}.admin-store-photo{gap:var(--space-3);margin-top:var(--space-6);padding-block:var(--space-4);border-block:1px solid var(--color-border-subtle);grid-template-columns:72px minmax(0,1fr);display:grid}.admin-store-photo>div,.admin-store-photo>div img{border-radius:var(--radius-md);object-fit:cover;background:var(--color-brand-soft);place-items:center;width:72px;height:72px;display:grid;overflow:hidden}.admin-store-photo label span{color:var(--color-text-muted);font-weight:500}.admin-store-photo button,.admin-store-photo p{grid-column:1/-1}.admin-store-order-detail header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.admin-store-order-detail header h1{overflow-wrap:anywhere;margin:2px 0}.admin-store-order-detail header p,.admin-store-order-detail header span{color:var(--color-text-muted);margin:0}.admin-store-order-detail dl{margin:0;display:grid}.admin-store-order-detail dl>div{gap:var(--space-3);padding-block:var(--space-2);border-block-start:1px solid var(--color-border-subtle);grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);display:grid}.admin-store-order-detail dt{color:var(--color-text-muted)}.admin-store-order-detail dd{margin:0;font-weight:700}.admin-store-category-form{gap:var(--space-3);margin-bottom:var(--space-6);border-block-end:1px solid var(--color-border-subtle);padding-block-end:var(--space-5);display:grid}.admin-store-category-list{border-block-start:1px solid var(--color-border-subtle);display:grid}.admin-store-category-list article{gap:var(--space-3);padding:var(--space-3) 0;border-block-end:1px solid var(--color-border-subtle);display:grid}.admin-store-category-copy{min-width:0}.admin-store-category-list h2,.admin-store-category-list p{margin:0}.admin-store-category-list h2{font-size:1rem}.admin-store-category-list p{color:var(--color-text-muted);font-size:.76rem}.admin-store-category-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-store-category-edit{gap:var(--space-3);width:100%;display:grid}.admin-store-category-edit label{gap:var(--space-2);color:var(--color-text-secondary);font-size:.82rem;font-weight:700;display:grid}.admin-store-category-edit input{border:1px solid var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface);width:100%;min-width:0;min-height:44px;color:var(--color-text-primary);padding:.65rem .75rem}.admin-store-category-note{margin:var(--space-4) 0 0;color:var(--color-text-muted);font-size:.8rem}@keyframes store-success-pop{0%{opacity:.3;transform:scale(.82)}to{opacity:1;transform:scale(1)}}@media (width>=620px){.store-grid,.store-featured-row{grid-template-columns:repeat(2,minmax(0,1fr))}.store-order-row,.admin-store-order{grid-template-columns:minmax(0,1fr) auto;align-items:center}.store-order-row>div:last-child,.admin-store-order>div:last-child{justify-items:end}.student-home-store{grid-template-columns:auto minmax(0,1fr) auto}.student-home-store-actions{grid-column:auto}.admin-store-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-store-two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-store-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-store-category-form{grid-template-columns:minmax(0,1fr) 130px auto;align-items:end}.admin-store-category-list article{grid-template-columns:minmax(0,1fr) auto;align-items:center}.admin-store-category-edit{grid-column:1/-1;grid-template-columns:minmax(0,1fr) 130px auto;align-items:end}}@media (width>=900px){.store-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.store-detail-layout{grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);align-items:start}.store-detail-copy{position:sticky;top:100px}.admin-store-editor{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-store-editor>section{height:100%}.admin-store-editor>section:first-child,.admin-store-editor>section:last-of-type,.admin-store-editor>.store-inline-error,.admin-store-editor>footer{grid-column:1/-1}.admin-store-editor-actions{bottom:var(--space-4)}}@media (prefers-reduced-motion:reduce){.store-success-mark{animation:none}.store-item{transition:none}}@media (width<=380px){.store-balance-preview{grid-template-columns:1fr}.store-balance-preview>div+div{border-block-start:1px solid var(--color-border-subtle);border-inline-start:0}.admin-store-item{grid-template-columns:48px minmax(0,1fr) auto}.admin-store-item>strong{grid-column:2}.admin-store-item>svg:last-child{grid-area:1/3/3}.admin-store-order-detail header{display:grid}}@media (width<=359px){.student-home-greeting-copy{padding-right:0}.student-home-ink-note{display:none}}.personal-name-fields{border:0;gap:14px;min-width:0;margin:0;padding:0;display:grid}.personal-name-fields legend{color:var(--color-text-primary);margin-bottom:10px;font-weight:800}.personal-name-fields label{min-width:0;color:var(--color-text-primary);gap:7px;font-weight:700;display:grid}.personal-name-fields label>span{color:var(--color-text-secondary);font-size:.78rem;font-weight:500}.personal-name-fields input{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;min-height:48px;color:var(--color-text-primary);font:inherit;border-radius:12px;margin:0;padding:10px 12px}.personal-name-fields input:focus-visible{border-color:var(--color-brand-primary);outline:3px solid var(--color-focus-ring);outline-offset:1px}.personal-name-preview{background:var(--color-surface-secondary);border-radius:12px;gap:3px;margin:0;padding:12px 14px;display:grid}.personal-name-preview span,.personal-name-preview small{color:var(--color-text-secondary)}.personal-name-editor{gap:18px;display:grid}.personal-name-editor button{min-height:48px}.personal-name-notice{background:var(--color-warning-soft);border-radius:12px;margin:0 0 16px;padding:12px 14px}.staff-absence-entry{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;margin-block:0 var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);color:var(--color-text-primary);text-decoration:none;display:flex}.staff-absence-entry>span:first-child{gap:2px;display:grid}.staff-absence-entry small{color:var(--color-text-muted);font-weight:500}.staff-absence-entry>span:last-child{color:var(--color-brand-primary);font-size:1.25rem}.staff-absence-page{gap:var(--space-4);display:grid}.staff-absence-filters{gap:var(--space-2);max-width:100%;padding-block:2px;display:flex;overflow-x:auto}.staff-absence-filters button{border:1px solid var(--color-border-strong);background:var(--color-surface);min-height:44px;color:var(--color-text-primary);border-radius:999px;flex:none}.staff-absence-filters button.is-active{border-color:var(--color-brand-primary);background:var(--color-brand-soft);color:var(--color-brand-strong)}.staff-absence-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.staff-absence-list a{align-items:center;gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);background:var(--color-surface);color:inherit;grid-template-columns:minmax(105px,auto) minmax(0,1fr) auto;text-decoration:none;display:grid}.staff-absence-date,.staff-absence-copy{gap:3px;display:grid}.staff-absence-date span,.staff-absence-copy p{color:var(--color-text-muted)}.staff-absence-copy h2,.staff-absence-copy p{margin:0}.staff-absence-copy h2{font-size:1rem}.staff-absence-status{color:var(--color-success);font-weight:800}.staff-absence-status.is-cancelled{color:var(--color-text-muted)}.staff-absence-detail-card{gap:var(--space-4);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-4);background:var(--color-surface);display:grid}.staff-absence-detail-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.staff-absence-detail-heading h2{overflow-wrap:anywhere;margin:2px 0 0}.staff-absence-detail-card dl{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.staff-absence-detail-card dl>div{border-radius:var(--radius-md);min-width:0;padding:var(--space-3);background:var(--color-surface-secondary);overflow-wrap:anywhere;gap:4px;display:grid}.staff-absence-detail-card dt{color:var(--color-text-muted);font-size:var(--font-size-caption)}.staff-absence-detail-card dd{margin:0;font-weight:750}.staff-absence-acknowledgement{gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-brand-soft);display:grid}.staff-absence-acknowledgement h3,.staff-absence-acknowledgement p{margin:0}.staff-absence-acknowledgement button{justify-self:start;min-width:160px}.staff-absence-acknowledged{justify-content:space-between;gap:var(--space-2);color:var(--color-success);flex-wrap:wrap;display:flex}.staff-absence-back{justify-self:start;text-decoration:none}.parent-child-week{gap:var(--space-3);padding-block:var(--space-3);border-block:1px solid var(--color-border-subtle);display:grid}.parent-child-week-heading{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.parent-child-week-heading span{color:var(--color-info);font-size:.78rem;font-weight:800}.parent-child-week dl{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.parent-child-week dl>div{min-width:0;padding-inline:var(--space-3);border-inline-start:1px solid var(--color-border-subtle)}.parent-child-week dl>div:first-child{border-inline-start:0;padding-inline-start:0}.parent-child-week dt{color:var(--color-text-muted);font-size:.72rem}.parent-child-week dd{margin:4px 0 0;font-size:1.05rem;font-weight:800}.parent-child-week p,.parent-child-week-loading{color:var(--color-text-muted);margin:0}.parent-weekly-digest-fields{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}@media (width<=560px){.staff-absence-list a{gap:var(--space-3);grid-template-columns:1fr}.staff-absence-detail-card dl{grid-template-columns:1fr}.staff-absence-back{width:100%}.parent-child-week dl{gap:var(--space-3) 0;grid-template-columns:repeat(2,minmax(0,1fr))}.parent-child-week dl>div:nth-child(3){border-inline-start:0;padding-inline-start:0}.parent-weekly-digest-fields{grid-template-columns:1fr}}.school-event-detail-page,.school-event-unavailable{gap:var(--space-4);min-width:0;display:grid}.school-event-detail-card,.school-event-description,.school-event-children,.school-event-audience{gap:var(--space-3);border:1px solid var(--color-border-subtle);border-radius:var(--radius-card);min-width:0;padding:var(--space-4);background:var(--color-surface);overflow-wrap:anywhere;display:grid}.school-event-detail-card h2,.school-event-description h2,.school-event-description p,.school-event-children h2,.school-event-audience h2,.school-event-audience p{margin:0}.school-event-detail-card dl{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.school-event-detail-card dl>div{border-radius:var(--radius-md);min-width:0;padding:var(--space-3);background:var(--color-surface-secondary);gap:4px;display:grid}.school-event-detail-card dt,.school-event-children span{color:var(--color-text-muted);font-size:var(--font-size-caption)}.school-event-detail-card dd{margin:0;font-weight:750}.school-event-children ul{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.school-event-children li,.school-event-children li>div{gap:var(--space-2);min-width:0;display:grid}.school-event-children li{border-radius:var(--radius-md);padding:var(--space-3);background:var(--color-surface-secondary)}.school-event-children .secondary-link{text-align:center;overflow-wrap:anywhere;width:100%;min-width:0;max-width:100%}.school-event-calendar-cta,.school-event-fallback{overflow-wrap:anywhere;width:fit-content;max-width:100%}@media (width<=560px){.school-event-detail-card dl{grid-template-columns:1fr}.school-event-calendar-cta,.school-event-fallback{width:100%}}.branded-app-launch{z-index:1000;min-width:0;min-height:100dvh;padding:max(28px, calc(env(safe-area-inset-top,0px) + 18px)) max(24px, calc(env(safe-area-inset-right,0px) + 18px)) max(64px, calc(env(safe-area-inset-bottom,0px) + 46px)) max(24px, calc(env(safe-area-inset-left,0px) + 18px));background:radial-gradient(circle at 50% 42%, var(--color-launch-halo) 0 18%, var(--color-launch-clear) 53%), linear-gradient(150deg, var(--color-launch-field-start) 0%, var(--color-launch-field-middle) 48%, var(--color-launch-field-end) 100%);color:var(--color-launch-ink);opacity:1;isolation:isolate;place-items:center;transition:opacity .3s cubic-bezier(.4,0,1,1);display:grid;position:fixed;inset:0;overflow:hidden}.branded-app-launch.is-exiting{pointer-events:none;opacity:0}.branded-app-launch__content{z-index:2;text-align:center;justify-items:center;width:min(55vw,248px);min-width:0;display:grid;position:relative;transform:translateY(clamp(-12px,-1.5dvh,-4px))}.branded-app-launch__logo{opacity:0;transform-origin:50%;width:100%;height:auto;animation:.5s cubic-bezier(.16,1,.3,1) .5s forwards branded-launch-logo;display:block;transform:scale(.96)}.branded-app-launch__slogan{color:var(--color-launch-copy);font-family:var(--font-family-sans);letter-spacing:.105em;text-transform:uppercase;opacity:0;margin:clamp(13px,2.4dvh,20px) 0 0;font-size:clamp(.72rem,3.15vw,.9rem);font-weight:650;line-height:1.45;animation:.36s cubic-bezier(.16,1,.3,1) .84s forwards branded-launch-slogan;transform:translateY(8px)}.branded-app-launch__slogan:after{background:linear-gradient(90deg, var(--color-launch-geometry), var(--color-launch-wave-front-end));content:"";border-radius:999px;width:clamp(22px,6vw,34px);height:2px;margin:clamp(9px,1.6dvh,13px) auto 0;display:block}.branded-app-launch__geometry{z-index:1;opacity:0;animation:.4s ease-out .2s forwards branded-launch-geometry;position:absolute;inset:0}.branded-app-launch__geometry span{display:block;position:absolute}.branded-app-launch__corner{top:max(3dvh, calc(env(safe-area-inset-top,0px) - 8px));aspect-ratio:1;background:linear-gradient(145deg, var(--color-launch-corner-start), var(--color-launch-corner-end));opacity:.82;border-radius:clamp(16px,4vw,25px);width:clamp(90px,22vw,146px);right:clamp(-34px,-8vw,-18px);transform:rotate(45deg)}.branded-app-launch__dots{background-image:radial-gradient(circle, var(--color-launch-dot) 1.2px, transparent 1.4px);background-size:10px 10px;width:64px;height:64px}.branded-app-launch__dots--a{top:max(10dvh, calc(env(safe-area-inset-top,0px) + 54px));left:clamp(24px,8vw,90px)}.branded-app-launch__dots--b{top:26dvh;right:clamp(12px,5vw,60px);transform:scale(.76)}.branded-app-launch__dots--c{right:clamp(24px,9vw,105px);bottom:max(13dvh, calc(env(safe-area-inset-bottom,0px) + 100px));opacity:.45;transform:scale(.64)}.branded-app-launch__ring{border:1.5px solid var(--color-launch-ring);border-radius:50%}.branded-app-launch__ring--a{left:clamp(-64px,-13vw,-36px);bottom:max(16dvh, calc(env(safe-area-inset-bottom,0px) + 120px));aspect-ratio:1;width:clamp(120px,34vw,210px)}.branded-app-launch__ring--b{aspect-ratio:1;width:clamp(40px,12vw,72px);top:36dvh;right:clamp(13px,6vw,72px)}.branded-app-launch__ring--c{aspect-ratio:1;width:clamp(25px,7vw,44px);top:31dvh;left:clamp(28px,10vw,110px)}.branded-app-launch__particle{aspect-ratio:1;background:var(--color-launch-geometry);width:4px;box-shadow:0 0 9px var(--color-launch-particle-glow);opacity:.62;border-radius:50%}.branded-app-launch__particle--a{top:27dvh;left:18vw}.branded-app-launch__particle--b{width:3px;top:34dvh;right:23vw}.branded-app-launch__particle--c{width:3px;top:54dvh;left:14vw}.branded-app-launch__particle--d{width:5px;top:59dvh;right:15vw}.branded-app-launch__waves{z-index:0;opacity:0;height:clamp(152px,24dvh,250px);animation:.44s cubic-bezier(.16,1,.3,1) .18s forwards branded-launch-waves;position:absolute;bottom:-2px;left:-4vw;right:-4vw}.branded-app-launch__wave{width:100%;height:100%;position:absolute;bottom:0;right:0;overflow:visible}.branded-app-launch__wave--front{height:77%;transform:translateY(2px)}@keyframes branded-launch-geometry{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes branded-launch-logo{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes branded-launch-slogan{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes branded-launch-waves{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}.branded-app-launch__wave--back{opacity:.72}.branded-app-launch__wave--front{opacity:.82}@media (width>=700px){.branded-app-launch__content{width:min(25vw,270px)}.branded-app-launch__slogan{font-size:.86rem}}@media (width<=340px){.branded-app-launch__content{width:min(56vw,190px)}.branded-app-launch__slogan{letter-spacing:.08em;font-size:.66rem}}@media (prefers-reduced-motion:reduce){.branded-app-launch{transition-duration:.16s}.branded-app-launch__geometry{opacity:1;animation:none}.branded-app-launch__waves{opacity:1;animation:none;transform:none}.branded-app-launch__logo,.branded-app-launch__slogan{animation:.1s linear forwards branded-launch-fade;transform:none}.branded-app-launch__slogan{animation-delay:60ms}}@keyframes branded-launch-fade{0%{opacity:0}to{opacity:1}}.app-shell{background:var(--color-background)}.app-header{background:color-mix(in srgb, var(--color-surface) 98%, transparent);box-shadow:none}.app-brand{gap:10px}.app-brand .brand-mark{width:32px;height:42px;color:var(--color-brand-field);background:0 0;border:0;border-radius:0;flex:0 0 32px}.app-brand .school-brand-mark{width:28px;height:38px}.app-brand-copy strong{letter-spacing:-.03em;font-size:1rem;font-weight:850}.header-actions :where(.notification-bell,.text-button){border-color:var(--color-border-subtle);background:var(--color-surface);color:var(--color-brand-strong);border-radius:12px}.bottom-nav a.active{color:var(--color-brand-strong)}.bottom-nav a>span{white-space:nowrap}.bottom-nav a.active:before{background:var(--color-brand-field);width:34px;height:3px;display:block!important}.role-home-page-content{width:min(100%, var(--content-wide));padding:18px clamp(14px, 4.5vw, 24px) var(--space-10)}.contextual-back{width:fit-content;min-height:44px;margin:-6px 0 var(--space-3);border-radius:var(--radius-md);color:var(--color-brand-strong);text-align:left;background:0 0;align-items:center;gap:7px;padding:8px 10px 8px 6px;font-weight:800;line-height:1.2;display:inline-flex}.contextual-back:hover:not(:disabled){background:var(--color-brand-soft);color:var(--color-brand-strong)}.contextual-back svg{flex:none}.has-contextual-back .back-link{display:none}@media (width<=370px){.contextual-back{max-width:100%;margin-top:-8px}.contextual-back span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}}@media (forced-colors:active){.contextual-back{border:1px solid buttontext}}.context-tabs{border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-secondary);scrollbar-width:thin;scroll-snap-type:x proximity;gap:0;min-width:0;display:flex;overflow-x:auto}.context-tab{min-width:min(42vw,180px);min-height:54px;color:var(--color-text-secondary);scroll-snap-align:start;text-align:left;background:0 0;border-radius:0;flex:1 0 auto;align-content:center;gap:2px;padding:8px 14px 10px;display:grid;position:relative}.context-tab:hover:not(:disabled){background:color-mix(in srgb, var(--color-brand-soft) 62%, var(--color-surface))}.context-tab[aria-selected=true]{background:var(--color-surface);color:var(--color-brand-strong)}.context-tab[aria-selected=true]:after{background:var(--color-brand-field);content:"";border-radius:3px 3px 0 0;height:3px;position:absolute;bottom:-1px;left:18%;right:18%}.context-tab strong{text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.context-tab span{color:var(--color-text-secondary);font-size:.7rem}.parent-child-context{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;margin-bottom:16px;padding:0;display:block;overflow:hidden}.parent-child-context.is-compact{background:0 0;border:0;border-radius:0;margin:8px 0 0;overflow:visible}.parent-child-context.is-compact .context-tabs{background:0 0;border:0;flex-flow:row;gap:8px;display:flex;overflow-x:auto}.parent-child-context.is-compact .context-tab{border:1px solid var(--color-border-subtle);border-radius:var(--radius-round);background:var(--color-surface);flex:none;grid-template-columns:auto auto;align-items:baseline;gap:4px;width:max-content;min-width:auto;min-height:40px;padding:8px 12px}.parent-child-context.is-compact .context-tab[aria-selected=true]{border-color:var(--color-brand-primary);background:var(--color-brand-primary);color:var(--color-on-brand)}.parent-child-context.is-compact .context-tab[aria-selected=true]:after{display:none}.parent-child-context.is-compact .context-tab strong{font-size:.78rem}.parent-child-context.is-compact .context-tab span{color:inherit;opacity:.82;font-size:.68rem}.learning-route-home{gap:16px;min-width:0;display:grid}.learning-route-home>*{min-width:0}.learning-route-greeting{justify-content:space-between;align-items:flex-start;gap:12px;min-width:0;display:flex}.learning-route-greeting>div{min-width:0}.learning-route-greeting h1,.learning-route-greeting h2{color:var(--color-text-primary);letter-spacing:-.035em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.5rem,6vw,1.9rem);font-weight:850;line-height:1.08}.learning-route-greeting p{color:var(--color-text-secondary);margin:5px 0 0;font-size:.9rem}.learning-route-date{color:var(--color-brand-strong);flex:none;padding-top:3px;font-size:.75rem;font-weight:800}.parent-home-greeting{grid-template-columns:minmax(0,1fr) auto;display:grid}.parent-home-greeting>.parent-child-context.is-compact{grid-column:1/-1}.learning-route-hero{background:var(--color-route-current);min-height:172px;color:var(--color-on-route-current);border-radius:16px 16px 0 0;align-content:start;gap:7px;padding:20px 18px 18px;display:grid;position:relative;overflow:hidden}.stories-first-hero .learning-route-hero{border-radius:16px}.learning-route-hero:before{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);content:"";background:#ffffff85;width:96px;height:96px;position:absolute;top:-28px;right:14px}.learning-route-hero:after{content:"";border:18px solid #ffffff94;border-radius:50%;width:116px;height:116px;position:absolute;bottom:-34px;right:-24px}.learning-route-hero[data-tone=attention]{background:var(--color-route-attention);color:var(--color-on-attention)}.learning-route-hero[data-tone=attention]:before,.learning-route-hero[data-tone=attention]:after{opacity:.72}.learning-route-hero[data-tone=calm]{background:var(--color-brand-lime-soft);color:var(--color-on-route-calm)}.learning-route-hero-copy{z-index:1;gap:5px;max-width:min(76%,520px);display:grid;position:relative}.learning-route-hero-label{letter-spacing:.035em;text-transform:uppercase;font-size:.72rem;font-weight:850}.learning-route-hero h2{letter-spacing:-.035em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.45rem,6vw,2rem);font-weight:850;line-height:1.08}.learning-route-hero p,.learning-route-hero time,.learning-route-hero-detail{color:color-mix(in srgb, currentColor 78%, transparent);overflow-wrap:anywhere;margin:0;font-size:.85rem}.learning-route-hero-action{z-index:1;background:var(--color-brand-strong);width:fit-content;min-height:44px;color:var(--color-on-brand);border-radius:11px;align-items:center;gap:8px;margin-top:8px;padding:0 14px;font-weight:800;text-decoration:none;display:inline-flex;position:relative}.learning-route-hero[data-tone=attention] .learning-route-hero-action{background:var(--color-surface);color:var(--color-brand-strong)}.learning-route-hero.student-now-card{border:0;border-radius:16px 16px 0 0;grid-template-rows:auto;grid-template-columns:minmax(0,1fr);gap:7px;padding:20px 18px 18px}.learning-route-hero.student-now-card .learning-route-hero-copy{grid-area:auto/1;align-self:start;padding:0}.learning-route-hero.student-now-card .learning-route-hero-action{border-radius:11px;grid-area:auto;justify-self:start;width:fit-content;min-height:44px;padding:0 14px;position:relative}.learning-route-hero.student-now-card .student-now-action-label{clip:auto;clip-path:none;white-space:nowrap;width:auto;height:auto;position:static;overflow:visible}.learning-route-hero.student-now-card .student-now-progress{z-index:1;grid-area:auto/1;max-width:min(76%,520px);position:relative}.learning-route-hero-shell{border-radius:16px;overflow:hidden}.learning-route-summary-strip{background:var(--color-brand-primary);color:var(--color-on-brand);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.learning-route-summary-strip>:where(span,a){border-right:1px solid color-mix(in srgb, currentColor 20%, transparent);min-width:0;min-height:52px;color:inherit;align-content:center;gap:1px;padding:8px 11px;text-decoration:none;display:grid}.learning-route-summary-strip>:last-child{border-right:0}.learning-route-summary-strip strong{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;overflow:hidden}.learning-route-summary-strip small{color:currentColor;font-size:.67rem}.learning-route-panel{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:16px;overflow:hidden}.learning-route-panel-header{justify-content:space-between;align-items:center;gap:12px;min-height:52px;padding:10px 12px;display:flex}.learning-route-panel-header h2{letter-spacing:-.02em;margin:0;font-size:1.02rem;font-weight:850}.learning-route-panel-header a{align-items:center;min-height:44px;font-size:.75rem;font-weight:750;display:inline-flex}.learning-route{min-width:0;margin:0;padding:0;list-style:none;display:grid}.learning-route-item{min-width:0;position:relative}.learning-route-item:before{z-index:0;background:var(--color-route-line);content:"";width:2px;position:absolute;top:36px;bottom:-18px;left:29px}.learning-route-item:last-child:before{display:none}.learning-route-link{min-width:0;min-height:62px;color:var(--color-text-primary);grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px 12px;text-decoration:none;display:grid;position:relative}.learning-route-link:not(.is-static):hover{background:var(--color-surface-secondary)}.learning-route-item[aria-current=step] .learning-route-link{background:var(--color-brand-soft)}.learning-route-node{z-index:1;border:2px solid var(--color-route-future);background:var(--color-surface);width:34px;height:34px;color:var(--color-brand-strong);border-radius:50%;place-items:center;display:grid}.learning-route-node svg{width:17px;height:17px}.learning-route-item[data-state=complete] .learning-route-node{border-color:var(--color-route-complete);background:var(--color-route-complete);color:var(--color-route-complete-ink)}.learning-route-item[data-state=current] .learning-route-node{border-color:var(--color-brand-field);background:var(--color-brand-field);color:var(--color-on-brand-field)}.learning-route-item[data-state=attention] .learning-route-node{border-color:var(--color-route-attention);background:var(--color-route-attention);color:var(--color-on-attention)}.learning-route-item[data-state=muted] .learning-route-node{border-color:var(--color-route-muted);color:var(--color-text-secondary)}.learning-route-copy{gap:2px;min-width:0;display:grid}.learning-route-copy strong{overflow-wrap:anywhere;min-width:0;font-size:.86rem}.learning-route-copy>span{color:var(--color-text-secondary);overflow-wrap:anywhere;font-size:.72rem;line-height:1.35}.learning-route-aside{min-width:54px;color:var(--color-brand-strong);justify-items:end;gap:3px;display:grid}.learning-route-aside small{white-space:nowrap;font-size:.72rem;font-weight:800}.learning-route-action{min-height:28px;color:var(--color-brand-primary);align-items:center;gap:2px;font-size:.7rem;font-weight:750;display:inline-flex}.learning-route-action svg{width:15px;height:15px}.learning-route-quick-actions,.student-quick-actions,.role-home-quick-actions{background:0 0;border:0;border-radius:0;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:0;display:grid}.learning-route-quick-actions a,.student-quick-actions a,.role-home-quick-actions a{border:1px solid var(--color-border-subtle);background:var(--color-surface);min-width:0;min-height:78px;color:var(--color-text-primary);text-align:center;border-radius:14px;align-content:center;justify-items:center;gap:6px;padding:7px 4px;font-size:.72rem;line-height:1.15;text-decoration:none;display:grid}.learning-route-quick-actions a>span,.student-quick-actions a>span,.role-home-quick-actions a>span{background:var(--color-brand-soft);width:38px;height:38px;color:var(--color-brand-strong);border-radius:11px;place-items:center;display:grid}.learning-route-quick-actions a:nth-child(2)>span,.student-quick-actions a:nth-child(2)>span,.role-home-quick-actions a:nth-child(2)>span{background:var(--color-brand-lemon-soft)}.learning-route-quick-actions a:nth-child(3)>span,.student-quick-actions a:nth-child(3)>span,.role-home-quick-actions a:nth-child(3)>span{background:var(--color-brand-lime-soft)}.learning-route-quick-actions a:nth-child(4)>span,.student-quick-actions a:nth-child(4)>span,.role-home-quick-actions a:nth-child(4)>span{background:var(--color-brand-raspberry-soft)}.learning-route-quick-actions svg,.student-quick-actions svg,.role-home-quick-actions a svg{width:22px;height:22px}.learning-route-quick-actions strong,.student-quick-actions strong,.role-home-quick-actions strong{overflow-wrap:anywhere;max-width:100%;font-weight:750}.learning-route-metrics{border:1px solid var(--color-border-subtle);background:var(--color-surface);border-radius:14px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:hidden}.learning-route-metrics>:where(div,a){border-right:1px solid var(--color-border-subtle);min-width:0;color:inherit;align-content:center;gap:3px;padding:10px 9px;text-decoration:none;display:grid}.learning-route-metrics>:last-child{border-right:0}.learning-route-metrics small{color:var(--color-text-secondary);font-size:.67rem}.learning-route-metrics strong{font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:clamp(1rem,4vw,1.2rem)}.learning-route-metrics span{color:var(--color-success);font-size:.65rem}.learning-route-work-grid,.learning-route-secondary{gap:16px;min-width:0;display:grid}.admin-route-home .learning-route-hero[data-tone=calm],.role-teacher .learning-route-hero:not([data-tone=attention]):not([data-tone=calm]){background:var(--color-brand-sky);color:var(--color-on-route-current)}.admin-route-tools{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.admin-route-tools a{background:var(--color-brand-soft);min-height:58px;color:var(--color-brand-strong);border-radius:14px;align-items:center;gap:10px;padding:10px 12px;font-weight:750;text-decoration:none;display:flex}.admin-route-tools a svg{flex:none}@media (width<=360px){.learning-route-greeting{grid-template-columns:minmax(0,1fr) auto;display:grid}.learning-route-date{padding-top:0}.parent-home-greeting>.parent-child-context.is-compact{grid-column:1/-1}.learning-route-hero-copy{max-width:88%}.learning-route-quick-actions,.student-quick-actions,.role-home-quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.learning-route-link{grid-template-columns:34px minmax(0,1fr)}.learning-route-aside{grid-column:2;justify-items:start}.learning-route-item:before{left:28px}}@media (width<=699px){.learning-route-hero-copy{max-width:88%}.learning-route-hero-action{font-size:.84rem}.learning-route-aside{min-width:44px}.learning-route-action{gap:0;font-size:0}.learning-route-action svg{width:18px;height:18px}}@media (width>=700px){.context-tab{min-width:170px}.learning-route-work-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);align-items:start}.learning-route-secondary{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-route-tools{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=980px){.app-shell{min-height:100dvh;padding-bottom:0;padding-left:216px}.app-header{min-height:78px}.app-brand{z-index:calc(var(--z-navigation) + 1);top:calc(18px + var(--safe-top));width:176px;position:fixed;left:20px}.bottom-nav{border-top:0;border-right:1px solid var(--color-border-subtle);width:216px;padding:calc(88px + var(--safe-top)) 14px 20px;background:var(--color-surface);-webkit-backdrop-filter:none;backdrop-filter:none;flex-direction:column;place-content:start flex-start;gap:5px;top:0;bottom:0;right:auto;box-shadow:8px 0 24px #004c7a0d}.bottom-nav a{text-align:left;border-radius:12px;grid-template-columns:28px minmax(0,1fr);justify-content:start;justify-items:start;gap:11px;width:100%;max-width:none;min-height:52px;padding:0 13px;font-size:.85rem}.bottom-nav a.active{background:var(--color-brand-soft)}.bottom-nav a.active:before{border-radius:0 4px 4px 0;width:4px;height:auto;top:11px;bottom:11px;left:-14px}.learning-route-home{gap:20px}.learning-route-hero{min-height:220px;padding:26px}.learning-route-hero-copy{max-width:70%}.learning-route-summary-strip>:where(span,a){min-height:62px;padding-inline:16px}.learning-route-panel-header,.learning-route-link{padding-inline:16px}.learning-route-item:before{left:33px}}@media (prefers-reduced-motion:reduce){.context-tabs{scroll-behavior:auto}.learning-route-node,.context-tab,.learning-route-hero-action{transition:none}}@media (forced-colors:active){.learning-route-hero,.learning-route-summary-strip,.learning-route-panel,.learning-route-metrics,.context-tabs{color:canvastext;background:canvas;border:2px solid canvastext}.learning-route-hero-action{color:linktext;background:canvas;border:2px solid linktext}.learning-route-node{color:canvastext!important;background:canvas!important;border-color:canvastext!important}.learning-route-item[aria-current=step] .learning-route-link,.context-tab[aria-selected=true]{outline-offset:-2px;background:canvas;outline:2px solid highlight}}
