@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/inter-latin-500-normal-Cerq10X2.woff2)format("woff2"),url(/assets/inter-latin-500-normal-BL9OpVg8.woff)format("woff")}@font-face{font-family:Inter;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/inter-latin-700-normal-Yt3aPRUw.woff2)format("woff2"),url(/assets/inter-latin-700-normal-BLAVimhd.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--surface:#f7f8fc;--surface-raised:#fff;--ink:#1f2937;--ink-muted:#4b5563;--line:#e3e6f2;--brand:#3b4cca;--on-brand:#fff;--brand-text:#3b4cca;--brand-tint:#e3e6f8;--accent:#ff7a59;--on-accent:#1f2937;--signal:#2ec4b6;--on-signal:#1f2937;--brand-hover:#2e3ca0;--accent-hover:#f0623e;--line-strong:#8a94a6;--success-tint:#d5f5f1;--success-ink:#0f6b63;--warning-tint:#fef0c7;--warning-ink:#93370d;--danger:#b42318;--danger-tint:#fee4e2;--danger-ink:#912018;--on-danger:#fff;--overlay:#141b2880;--shadow-sm:0 1px 2px #1f29370f;--shadow-md:0 12px 32px -16px #1f293738;--accent-tint:#ffe4dc;--highlight:#fbbf24;--on-highlight:#3b2600;--banner-party:#b45309;--banner-calendar:#0369a1;--banner-health:#047857;--media-bg:#000;--on-media:#fff;--media-scrim:#000000a6;--media-scrim-gradient:linear-gradient(to top, #000000b8, #0000000d 65%);--media-backdrop:#000000f0;--media-control:#fff3;--media-control-hover:#ffffff52;--media-text-shadow:0 1px 3px #00000059;--font-display:"Poppins", "Nunito", system-ui, sans-serif;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:12px;--text-sm:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--leading-tight:1.2;--leading-normal:1.5;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-xl:24px;--radius-full:999px;--tap:44px;--field-label-h:20px;--font-base:var(--text-md);--sidebar-w:264px;--tabbar-h:64px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--surface:#141b28;--surface-raised:#1f2937;--ink:#f7f8fc;--ink-muted:#b4bccb;--line:#2e3a4d;--brand:#5b6be0;--brand-text:#8c99f0;--brand-tint:#33407a;--brand-hover:#6b7ae8;--accent-hover:#ff8f73;--line-strong:#6b778c;--success-tint:#0b3b37;--success-ink:#99f0e6;--warning-tint:#4e1d09;--warning-ink:#fedf89;--danger:#f97066;--danger-tint:#55160c;--danger-ink:#fecdca;--on-danger:#1f2937;--accent-tint:#5a2a1d;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 32px -16px #0009;--media-scrim:#000000a6;--media-scrim-gradient:linear-gradient(to top, #000000b8, #0000000d 65%);--media-backdrop:#000000f0;--media-control:#fff3;--media-control-hover:#ffffff52;--media-text-shadow:0 1px 3px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--surface:#141b28;--surface-raised:#1f2937;--ink:#f7f8fc;--ink-muted:#b4bccb;--line:#2e3a4d;--brand:#5b6be0;--brand-text:#8c99f0;--brand-tint:#33407a;--brand-hover:#6b7ae8;--accent-hover:#ff8f73;--line-strong:#6b778c;--success-tint:#0b3b37;--success-ink:#99f0e6;--warning-tint:#4e1d09;--warning-ink:#fedf89;--danger:#f97066;--danger-tint:#55160c;--danger-ink:#fecdca;--on-danger:#1f2937;--accent-tint:#5a2a1d;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 12px 32px -16px #0009;--media-scrim:#000000a6;--media-scrim-gradient:linear-gradient(to top, #000000b8, #0000000d 65%);--media-backdrop:#000000f0;--media-control:#fff3;--media-control-hover:#ffffff52;--media-text-shadow:0 1px 3px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-size:var(--font-base);color:var(--ink);background:var(--surface);-webkit-font-smoothing:antialiased;margin:0;line-height:24px;overflow-x:hidden}img,video,svg{max-width:100%;height:auto}a{color:var(--brand-text);text-underline-offset:2px}a:hover{text-decoration-thickness:2px}::selection{background:var(--brand-tint);color:var(--ink)}:focus-visible{outline:3px solid var(--brand);outline-offset:2px;border-radius:4px}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0 0 var(--space-3)}h1{font-size:var(--text-2xl);letter-spacing:-.02em;font-weight:700;line-height:32px}h2{font-size:var(--text-xl);margin-top:var(--space-5);font-weight:700;line-height:26px}h3{font-size:var(--text-lg);font-weight:500;line-height:24px}h1+h2,.card>h2:first-child{margin-top:0}p{margin:0 0 var(--space-3)}.muted{color:var(--ink-muted)}.layout{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom))}.layout__body{min-width:0}.brand{align-items:center;gap:var(--space-3);color:var(--ink);text-decoration:none;display:inline-flex}.brand-symbol{flex:none}.brand__text{flex-direction:column;line-height:1.1;display:flex}.brand__name{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);letter-spacing:-.01em}.brand__endorse{font-family:var(--font-display);font-weight:500;font-size:var(--text-xs);color:var(--ink-muted)}.layout__header{z-index:20;align-items:center;gap:var(--space-3);padding:calc(var(--space-2) + env(safe-area-inset-top)) var(--space-4) var(--space-2);background:var(--surface-raised);border-bottom:1px solid var(--line);display:flex;position:sticky;top:0}.layout__brand{flex:1;min-width:0}.layout__user{align-items:center;gap:var(--space-3);display:flex}.layout__username{font-size:var(--text-sm);font-weight:600}.avatar{border-radius:var(--radius-full);background:var(--brand-tint);width:36px;height:36px;color:var(--brand-text);font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);flex:none;place-items:center;display:inline-grid}@media (width<=600px){.layout__username{display:none}}.layout__backdrop{z-index:30;background:var(--overlay);position:fixed;inset:0}.layout__drawer{z-index:40;top:0;left:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));gap:var(--space-4);width:min(300px,85vw);padding:calc(var(--space-4) + env(safe-area-inset-top)) var(--space-3) var(--space-5);overscroll-behavior:contain;background:var(--surface-raised);border-right:1px solid var(--line);box-shadow:var(--shadow-md);visibility:hidden;flex-direction:column;transition:transform .22s,visibility 0s linear .22s;display:flex;position:fixed;overflow-y:auto;transform:translate(-100%)}.layout__drawer--open{visibility:visible;transition:transform .22s;transform:translate(0)}.layout__drawer-brand{padding:var(--space-1) var(--space-3) var(--space-2)}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group__title{margin:0 0 var(--space-1);padding:0 var(--space-3);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-weight:600;line-height:16px}.nav-link{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--ink);font-size:var(--text-md);font-weight:500;text-decoration:none;display:flex}.nav-link svg{color:var(--ink-muted);flex:none}.nav-link:hover{background:var(--surface);text-decoration:none}.nav-link.active{background:var(--brand-tint);color:var(--brand-text);font-weight:600}.nav-link.active svg{color:var(--brand-text)}.tabbar{z-index:50;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding:0 var(--space-1) env(safe-area-inset-bottom);background:var(--surface-raised);border-top:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar__item{min-width:0;padding:var(--space-1);cursor:pointer;color:var(--ink-muted);font:600 var(--text-xs)/14px var(--font-sans);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;text-decoration:none;display:flex}.tabbar__item span{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.tabbar__item svg{padding:2px var(--space-4);box-sizing:content-box;border-radius:var(--radius-full)}.tabbar__item.active,.tabbar__item--active{color:var(--brand-text)}.tabbar__item.active svg,.tabbar__item--active svg{background:var(--brand-tint)}.tabbar__item:hover{color:var(--brand-text);text-decoration:none}.layout__main{max-width:1120px;padding:var(--space-4) var(--space-3) var(--space-6);margin:0 auto}@media (width>=1024px){.layout{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);padding-bottom:0;display:grid}.layout__drawer{z-index:10;visibility:visible;width:auto;height:100dvh;box-shadow:none;padding-top:var(--space-5);transition:none;position:sticky;top:0;bottom:auto;transform:none}.layout__drawer-brand{padding-bottom:var(--space-4)}.layout__backdrop,.tabbar{display:none}.layout__brand{visibility:hidden}.layout__header{padding:var(--space-3) var(--space-6)}.layout__main{padding:var(--space-6) var(--space-6) var(--space-8)}}@media (prefers-reduced-motion:reduce){.layout__drawer{transition:none}}.card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.card+.card,.card+section,section+.card{margin-top:var(--space-4)}.card--nested{margin-top:var(--space-4);background:var(--surface);box-shadow:none}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap);min-width:var(--tap);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font:600 var(--text-sm)/20px var(--font-sans);cursor:pointer;border:1px solid #0000;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn--primary{background:var(--brand);color:var(--on-brand)}.btn--primary:hover:not(:disabled){background:var(--brand-hover)}.btn--accent{background:var(--accent);color:var(--on-accent)}.btn--accent:hover:not(:disabled){background:var(--accent-hover)}.btn--secondary{background:var(--surface-raised);color:var(--ink);border-color:var(--line-strong)}.btn--secondary:hover:not(:disabled){background:var(--surface);border-color:var(--brand)}.btn--danger{background:var(--danger);color:var(--on-danger)}.btn--danger:hover:not(:disabled){filter:brightness(.92)}.btn--danger-outline{background:var(--surface-raised);color:var(--danger-ink);border-color:var(--danger)}.btn--danger-outline:hover:not(:disabled){background:var(--danger-tint)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--icon-text svg{flex:none}@media (width<=600px){.layout__user .btn--icon-text span{display:none}}.link-button{padding:var(--space-2) 0;min-height:32px;color:var(--brand-text);text-underline-offset:2px;cursor:pointer;font:inherit;background:0 0;border:0;font-weight:600;text-decoration:underline}.form{gap:var(--space-4);display:grid}.qr-code{border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.form--inline{margin-bottom:var(--space-4);grid-template-columns:1fr;align-items:start}.form--inline>.btn,.form--inline>button,.form--inline>.checkbox{margin-top:calc(var(--field-label-h) + var(--space-2))}.form--inline .alert{grid-column:1/-1}.field{gap:var(--space-2);display:grid}.field label{font-size:var(--text-sm);line-height:var(--field-label-h);color:var(--ink);font-weight:600}.field input,.field select,.field textarea,.slot-row select,.slot-row input,.invite-link{width:100%;min-height:var(--tap);padding:var(--space-2) var(--space-3);background:var(--surface-raised);color:var(--ink);border:1px solid var(--line-strong);border-radius:var(--radius-md);font:400 var(--font-base)/22px var(--font-sans);transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical;min-height:96px}.field input:focus,.field select:focus,.field textarea:focus,.slot-row select:focus,.slot-row input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint);outline:none}.field input[aria-invalid=true],.field select[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--danger)}.field__error{color:var(--danger);font-size:var(--text-sm);line-height:18px}.field input[type=checkbox],.checkbox input{width:20px;height:20px;min-height:0;padding:0}input[type=checkbox],input[type=radio]{accent-color:var(--brand)}.checkbox{align-items:center;gap:var(--space-2);font-size:var(--text-sm);padding-bottom:var(--space-2);font-weight:600;display:flex}.field__hint{color:var(--ink-muted);font-size:var(--text-sm);line-height:18px}.form--inline>.field--wide,.form--inline>.form-section,.form--inline>.choice-group,.form--inline>p{grid-column:1/-1}.form--inline>label:has(textarea){grid-column:1/-1}.file-field__row{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.file-field__empty{color:var(--ink-muted);font-size:var(--text-sm)}.file-field__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.file-field__item{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.file-field__name{overflow-wrap:anywhere;font-weight:600}.file-field__size{color:var(--ink-muted)}.file-field__item .link-button{min-height:var(--tap);margin-left:auto}.form-section{gap:var(--space-4);border:0;min-width:0;margin:0;padding:0;display:grid}.form-section+.form-section{margin-top:var(--space-5)}.form-section__title{float:left;width:100%;font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-tight);color:var(--ink);margin:0;padding:0;font-weight:700}.form-section__description{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.choice-group{gap:var(--space-2);border:0;min-width:0;margin:0;padding:0;display:grid}.choice-group__legend{float:left;width:100%;font-size:var(--text-sm);color:var(--ink);margin:0;padding:0;font-weight:600;line-height:20px}.choice-group__options{gap:0 var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));display:grid}.choice-group--stack .choice-group__options{grid-template-columns:1fr}.choice-group--scroll .choice-group__options{max-height:calc(var(--space-8) * 4);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);overflow-y:auto}.choice-group__option{align-items:center;gap:var(--space-2);min-height:var(--tap);font-size:var(--text-sm);color:var(--ink);cursor:pointer;display:flex}.choice-group__option input{width:20px;height:20px;accent-color:var(--brand);flex:none;margin:0}.choice-group__option:has(input:disabled){cursor:not-allowed;color:var(--ink-muted)}.choice-group__text{padding-block:var(--space-1);gap:2px;display:grid}.choice-group__description{color:var(--ink-muted)}.status-badge{align-items:center;gap:var(--space-1);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);white-space:nowrap;vertical-align:middle;border:1px solid #0000;font-weight:600;line-height:18px;display:inline-flex}.status-badge--wrap{white-space:normal}.status-badge--ok{background:var(--success-tint);color:var(--success-ink)}.status-badge--warning{background:var(--warning-tint);color:var(--warning-ink)}.status-badge--danger{background:var(--danger-tint);color:var(--danger-ink)}.status-badge--info{background:var(--brand-tint);color:var(--ink)}.status-badge--neutral{background:var(--surface);color:var(--ink-muted);border-color:var(--line)}.empty-state{justify-items:center;gap:var(--space-2);margin:var(--space-3) 0;padding:var(--space-6) var(--space-4);border:1px dashed var(--line);border-radius:var(--radius-md);text-align:center;color:var(--ink-muted);display:grid}.empty-state__title{font-size:var(--text-md);color:var(--ink);margin:0;font-weight:600}.empty-state__text{font-size:var(--text-sm);margin:0}.empty-state .btn{margin-top:var(--space-2);text-decoration:none}.page-header{gap:var(--space-2);margin-bottom:var(--space-4);display:grid}.page-header__back{min-height:var(--tap);font-size:var(--text-sm);justify-self:start;align-items:center;font-weight:600;text-decoration:none;display:inline-flex}.page-header__back:hover{text-decoration:underline}.page-header__main{gap:var(--space-3);flex-direction:column;display:flex}.page-header__text{gap:var(--space-2);min-width:0;display:grid}.page-header__text h1{margin:0}.page-header__description{color:var(--ink-muted);margin:0}.page-header__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.page-header__actions .btn{text-decoration:none}@media (width>=641px){.page-header__main{flex-direction:row;justify-content:space-between;align-items:flex-start}.page-header__actions{flex:none;justify-content:flex-end}}.toaster{z-index:70;left:var(--space-4);right:var(--space-4);bottom:calc(var(--tabbar-h) + var(--space-4) + env(safe-area-inset-bottom,0px));justify-items:center;gap:var(--space-2);pointer-events:none;display:grid;position:fixed}.toast{pointer-events:auto;align-items:center;gap:var(--space-2);max-width:min(480px,100%);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--success-tint);color:var(--success-ink);box-shadow:var(--shadow-md);font-size:var(--text-sm);font-weight:600;display:flex}.toast__close{min-width:var(--tap);min-height:var(--tap);color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;display:inline-grid}@media (width>=900px){.toaster{left:auto;bottom:var(--space-4);justify-items:end}}.alert{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:20px}.alert--error{background:var(--danger-tint);color:var(--danger-ink);border:1px solid #0000}.alert--warning{background:var(--warning-tint);color:var(--warning-ink);border:1px solid #0000}.alert--info{background:var(--brand-tint);color:var(--ink);border:1px solid #0000}.alert--success{background:var(--success-tint);color:var(--success-ink);border:1px solid #0000}.alert__title{margin-bottom:var(--space-1);display:block}.tags{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.tags li{background:var(--brand-tint);color:var(--ink);padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);line-height:20px}.chip-list{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.chip{align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-sm);background:var(--brand-tint);color:var(--ink);font-weight:600;line-height:18px;display:inline-flex}.chip__action{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0;font-weight:600;text-decoration:underline}.overdue{color:var(--danger);font-weight:600}.table{width:100%;margin:var(--space-3) 0;border-collapse:separate;border-spacing:0;font-size:var(--text-sm);-webkit-overflow-scrolling:touch;white-space:nowrap;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);line-height:20px;display:block;overflow-x:auto}.table:focus-visible{outline:2px solid var(--brand-text);outline-offset:2px}.table th,.table td{text-align:left;padding:var(--space-3);border-bottom:1px solid var(--line);vertical-align:top}.table td{white-space:normal;min-width:96px}.table th{font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-muted);background:var(--surface);font-weight:600}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface)}.table__actions{gap:var(--space-2);flex-wrap:wrap;align-items:end;display:flex}.table__actions .btn{min-height:36px;padding:var(--space-2) var(--space-3)}.toolbar{align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-4);flex-wrap:wrap;display:flex}.pager{gap:var(--space-3);font-size:var(--text-sm);color:var(--ink-muted);flex-direction:column;align-items:stretch;display:flex}.pager__label{text-align:center}.pager__buttons{gap:var(--space-3);flex-flow:row;display:flex}.pager__buttons>*{justify-content:center;align-items:center;gap:var(--space-2);flex:1;display:inline-flex}.pager__icon{flex-shrink:0}.stat-row{gap:var(--space-2);margin:var(--space-2) 0 var(--space-4);flex-wrap:wrap;display:flex}.stat{min-width:96px;padding:var(--space-3) var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--ink-muted);flex:110px;line-height:18px}.stat strong{font-family:var(--font-display);font-size:var(--text-xl);color:var(--ink);font-weight:700;line-height:30px;display:block}.slots{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.slot-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.slot-row select,.slot-row input{width:auto}.history{padding-left:var(--space-4);gap:var(--space-2);font-size:var(--text-sm);display:grid}.file-list{margin:var(--space-2) 0;gap:var(--space-1);padding:0;list-style:none;display:grid}.labels-editor{gap:var(--space-2);display:grid}.overview section{margin-bottom:var(--space-4)}.narrative{margin:var(--space-2) 0;padding:var(--space-3) var(--space-4);background:var(--brand-tint);border-radius:var(--radius-md)}.student-list{margin:0 0 var(--space-4);gap:var(--space-2);padding:0;list-style:none;display:grid}.student-list__item{align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);grid-template-columns:auto 1fr auto;display:grid}.student-list__avatar{border-radius:var(--radius-full);background:var(--brand-tint);width:40px;height:40px;color:var(--brand-text);font-weight:600;font-size:var(--text-sm);justify-content:center;align-items:center;display:inline-flex}.student-list__info{min-width:0;display:grid}.student-list__name{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.student-list__meta{font-size:var(--text-sm);color:var(--ink-muted);overflow-wrap:anywhere}.student-list__actions{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.student-list__actions .btn{flex:auto}@media (width>=768px){.student-list__item{grid-template-columns:auto 1fr auto auto}.student-list__actions{flex-wrap:nowrap;grid-column:auto}.student-list__actions .btn{flex:none}}.notification-list{margin:0;padding:0;list-style:none}.notification{padding:var(--space-3) 0;border-bottom:1px solid var(--line)}.notification--unread{padding-left:var(--space-3);padding-right:var(--space-3);background:var(--brand-tint);border-radius:var(--radius-sm);border-bottom-color:#0000;margin-bottom:2px;font-weight:600}.install-banner{align-items:center;gap:var(--space-3);margin:var(--space-3) var(--space-3) 0;padding:var(--space-3) var(--space-4);background:var(--brand-tint);border-radius:var(--radius-lg);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.install-banner__text{flex:180px}.install-banner__actions{gap:var(--space-2);display:flex}.page{gap:var(--space-5);display:grid}.section-title{font-size:var(--text-xl);margin:0 0 var(--space-3);font-weight:500;line-height:24px}.hero{padding:var(--space-5);background:var(--brand);color:var(--on-brand);border-radius:var(--radius-xl)}.hero__eyebrow{margin-bottom:var(--space-2);font-family:var(--font-display);font-weight:500;font-size:var(--text-sm);opacity:.9;display:inline-block}.hero__title{color:var(--on-brand);margin:0 0 var(--space-1)}.hero__text{font-size:var(--text-md);opacity:.9;margin:0}.highlights{gap:var(--space-2);display:grid}.highlights__track{gap:var(--space-3);scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;display:flex;overflow-x:auto}.highlights__track::-webkit-scrollbar{display:none}.highlights__slide{scroll-snap-align:start;border-radius:var(--radius-xl);min-height:168px;color:inherit;flex-direction:column;flex:0 0 90%;text-decoration:none;display:flex;position:relative}.highlights__slide>.hero,.highlights__slide>.banner{flex:1}.highlights__slide:hover{text-decoration:none}.highlights__slide:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.highlights__cta{right:var(--space-4);bottom:var(--space-4);align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);font:inherit;font-weight:600;font-size:var(--text-sm);cursor:pointer;background:var(--surface-raised);color:var(--brand-text);border:0;border-radius:999px;display:inline-flex;position:absolute}.highlights__cta--new{background:var(--highlight);color:var(--on-highlight);animation:2s ease-in-out 3 highlights-pulse}@keyframes highlights-pulse{50%{transform:scale(1.06)}}.highlights__controls{justify-content:center;align-items:center;gap:var(--space-2);display:flex}.highlights__arrow{border:1px solid var(--line);background:var(--surface-raised);cursor:pointer;width:32px;height:32px;color:var(--ink);border-radius:999px;display:none}.highlights__dots{gap:0;display:flex}.highlights__dot{width:var(--tap);height:var(--tap);cursor:pointer;background:0 0;border:0;padding:0;position:relative}.highlights__dot:before{content:"";border-radius:var(--radius-full);background:var(--line);width:8px;height:8px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.highlights__dot--active:before{background:var(--brand);width:22px}.highlights__dot--new:before{box-shadow:0 0 0 2px var(--highlight)}@media (width>=900px){.highlights__slide{flex-basis:85%;min-height:200px}.highlights__arrow{place-items:center;display:inline-grid}}@media (prefers-reduced-motion:reduce){.highlights__cta--new{animation:none}}.banner{border-radius:var(--radius-xl);background:linear-gradient(135deg, var(--brand), color-mix(in srgb, var(--brand) 55%, var(--media-bg)));min-height:168px;color:var(--on-brand);align-items:flex-end;display:flex;position:relative;overflow:hidden}.banner--party{background:linear-gradient(135deg, var(--brand), var(--banner-party))}.banner--calendar{background:linear-gradient(135deg, var(--brand), var(--banner-calendar))}.banner--health{background:linear-gradient(135deg, var(--brand), var(--banner-health))}.banner__art{opacity:.22;color:var(--on-brand);position:absolute;top:-12px;right:-12px}.banner__image{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.banner--photo:after{content:"";background:var(--media-scrim-gradient);position:absolute;inset:0}.banner__text{z-index:1;gap:var(--space-1);padding:var(--space-4) var(--space-5);max-width:100%;display:grid;position:relative}.banner__title{font-family:var(--font-display);font-size:var(--text-xl);text-shadow:var(--media-text-shadow);line-height:1.2}.banner__tagline{font-size:var(--text-md);opacity:.95;text-shadow:var(--media-text-shadow)}.banner__new{background:var(--highlight);color:var(--on-highlight);padding:2px var(--space-3);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;border-radius:999px;justify-self:start;font-weight:700}.banner-patterns{gap:var(--space-2);flex-wrap:wrap;display:flex}.shortcut-grid{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid}.shortcut{align-items:flex-start;gap:var(--space-3);height:100%;padding:var(--space-4);background:var(--surface-raised);color:var(--ink);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.shortcut:hover{border-color:var(--brand);text-decoration:none}.shortcut__icon{border-radius:var(--radius-md);background:var(--brand-tint);width:44px;height:44px;color:var(--brand-text);flex:none;place-items:center;display:grid}.shortcut__label{font-family:var(--font-display);font-weight:500;font-size:var(--text-md);line-height:20px}.shortcut__arrow{color:var(--ink-muted);flex:none;display:none}.disclosure summary{cursor:pointer;font-weight:600;font-size:var(--text-sm)}.disclosure[open] summary{margin-bottom:var(--space-3)}.auth-page{justify-content:center;align-items:center;gap:var(--space-5);min-height:100dvh;padding:var(--space-5) var(--space-4) calc(var(--space-5) + env(safe-area-inset-bottom));background:var(--surface);flex-direction:column;display:flex}.auth-page .card{width:100%;max-width:420px;padding:var(--space-5);border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.auth-brand{margin:0 0 var(--space-4)}.auth-logo{justify-content:center;display:flex}.brand-lockup img,.auth-logo img{width:auto;height:36px;display:block}.feed{gap:var(--space-4);margin-top:var(--space-4);display:grid}.feed-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm)}.feed-card--unread{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.feed-card__header{gap:var(--space-2);flex-wrap:wrap;align-items:baseline;display:flex}.feed-card__header time{color:var(--ink-muted);font-size:var(--text-xs)}.feed-card--done{box-shadow:none;opacity:.75;border-style:dashed}.feed-card--done h3{text-decoration:line-through}.switch{align-items:center;gap:var(--space-2);font-size:var(--text-sm);cursor:pointer;align-self:end;min-height:44px;font-weight:600;display:inline-flex}.switch input{appearance:none;background:var(--line);cursor:pointer;border-radius:999px;width:40px;height:22px;margin:0;transition:background .15s;position:relative}.switch input:after{content:"";background:var(--surface-raised);width:18px;height:18px;box-shadow:var(--shadow-sm);border-radius:50%;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked{background:var(--brand)}.switch input:checked:after{transform:translate(18px)}.switch input:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.feed-card__completion{margin-top:var(--space-2);gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.thread__messages{gap:var(--space-2);padding:0;list-style:none;display:grid}.thread__message{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-3);max-width:90%}.thread__message--author{background:var(--brand-tint);border-color:#0000;justify-self:end}.announcement__actions{align-items:center;gap:var(--space-3);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.announcement--completed{opacity:.85}.thread__files{margin:var(--space-1) 0 0;gap:var(--space-1);padding:0;list-style:none;display:grid}.calendar__item--done a{text-decoration:line-through}.calendar__item--lesson{color:var(--ink-muted);font-size:var(--text-sm);border-left:3px solid var(--line-strong);padding-left:var(--space-2)}.calendar-lessons-toggle{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);margin:var(--space-1) 0;display:inline-flex}.timetable-today__day+.timetable-today__day{margin-top:var(--space-3)}.timetable-today__day h3{font-size:var(--text-md);margin:0 0 var(--space-1)}.calendar-grid{background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);gap:1px;display:grid;overflow-x:auto}.calendar-grid__head,.calendar-grid__week{grid-template-columns:repeat(7,minmax(96px,1fr));gap:1px;display:grid}.calendar-grid__head div{padding:var(--space-2) 0;text-align:center;text-transform:uppercase;font-weight:600;font-size:var(--text-xs);letter-spacing:.04em;color:var(--ink-muted);background:var(--surface)}.calendar-grid__cell{min-height:88px;padding:var(--space-2);font-size:var(--text-xs);background:var(--surface-raised);line-height:16px}.calendar-grid__cell ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.calendar-grid__cell--out{background:var(--surface);color:var(--ink-muted)}.calendar-grid__cell--today{outline:2px solid var(--brand);outline-offset:-2px}.calendar-grid__day{font-weight:600}.calendar-week{gap:var(--space-2);grid-template-columns:1fr;display:grid}.calendar-week__day{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3)}.calendar-week__day--today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.calendar-week ul{margin:0;padding:0;list-style:none}@media (width>=900px){.calendar-week{grid-template-columns:repeat(7,1fr)}}.chip.week-chip{background:var(--brand-tint);color:var(--ink);margin-left:var(--space-1)}.week-banner{margin:0 0 var(--space-3);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--brand-tint);color:var(--ink);font-weight:600;font-size:var(--text-sm);display:inline-block}@media (width>=641px){h1{font-size:var(--text-3xl);line-height:42px}h2{font-size:var(--text-xl);line-height:28px}.card{padding:var(--space-5)}.form--inline{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.table{white-space:normal;display:table;overflow-x:visible}.table th:first-child{border-top-left-radius:var(--radius-md)}.table th:last-child{border-top-right-radius:var(--radius-md)}.field input,.field select,.field textarea{width:auto;min-width:220px}.form .field input,.form .field select,.form .field textarea,.form--inline .field input,.form--inline .field select,.form--inline .field textarea{width:100%;min-width:0}.pager{flex-direction:row;justify-content:flex-end;align-items:center}.pager__label{text-align:right}.pager__buttons>*{flex:none}.hero{padding:var(--space-6)}.shortcut-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.shortcut{padding:var(--space-4) var(--space-5);flex-direction:row;align-items:center}.shortcut__label{flex:1}.shortcut__arrow{display:block}.auth-page .card{padding:var(--space-6)}}@media (pointer:fine){.btn{min-width:40px;min-height:40px}.field input,.field select{min-height:40px;padding-top:var(--space-2);padding-bottom:var(--space-2);font-size:var(--text-sm);line-height:20px}}.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}.design-sample{max-width:1120px;padding:var(--space-4);margin:0 auto}.design-sample__frame{contain:paint;height:10rem;position:relative}.field input.sr-only{width:1px;min-height:0;padding:0}.combo{position:relative}.combo__trigger{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;width:100%;font:inherit;color:var(--ink);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md);padding:var(--space-3) var(--space-3);cursor:pointer;min-height:44px;display:flex}.combo__trigger[aria-invalid=true]{border-color:var(--danger)}.combo__caret{color:var(--ink-muted);flex:none}.combo__panel{z-index:30;width:max-content;min-width:100%;max-width:min(360px,100vw - 32px);margin-top:var(--space-1);padding:var(--space-2);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:absolute;left:0}.field .combo__search{width:100%;min-width:0;margin-bottom:var(--space-2)}.combo__list{max-height:240px;margin:0;padding:0;list-style:none;overflow-y:auto}.combo__option{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer}.combo__option[aria-selected=true]{font-weight:600}.combo__option--active{background:var(--brand-tint);color:var(--ink)}.combo__empty{padding:var(--space-2) var(--space-3);color:var(--ink-muted)}.shortcut-grid--compact{margin-bottom:var(--space-4)}.history-more{margin-top:var(--space-2)}.settings-block{padding-block:var(--space-3);border-top:1px solid var(--line)}.settings-block:first-of-type{border-top:0}.settings-block h3{margin:0 0 var(--space-2);font-size:var(--text-md)}.settings-block__hint{margin:0 0 var(--space-2);color:var(--ink-muted);font-size:var(--text-sm)}.preference-list{margin:0;padding:0;list-style:none}.preference{justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:var(--space-2);display:flex}.preference+.preference{border-top:1px solid var(--line)}.preference__text{flex-direction:column;min-width:0;display:flex}.preference__text small{color:var(--ink-muted)}.preference .switch{align-self:center}.dialog-backdrop{z-index:60;padding:var(--space-4);background:var(--overlay);place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--surface-raised);width:min(100%,420px);color:inherit;border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-5)}.dialog h2{margin-top:0}.dialog__actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;justify-content:flex-end;display:flex}.chat{--chat-chrome:calc(168px + env(safe-area-inset-top) + env(safe-area-inset-bottom));height:calc(100vh - var(--chat-chrome));height:calc(100dvh - var(--chat-chrome));grid-template-rows:minmax(0,1fr);grid-template-columns:1fr;gap:0;min-height:420px;padding:0;display:grid;overflow:hidden}.chat__sidebar{gap:var(--space-2);padding:var(--space-4) var(--space-4) 0;flex-direction:column;min-width:0;min-height:0;display:flex;overflow:hidden}.chat__title{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.chat__new{background:var(--brand);color:var(--on-brand);font:inherit;padding:var(--space-2) var(--space-4);cursor:pointer;border:0;border-radius:999px;min-height:40px;font-weight:600}.chat-new{gap:var(--space-2);flex-direction:column;flex:1;min-height:0;display:flex}.chat-new__header{align-items:center;gap:var(--space-2);display:flex}.chat-new__header h2{font-size:var(--text-lg);margin:0}.chat-new__header p{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.chat-new__back{color:var(--ink);padding:var(--space-2);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;min-width:44px;min-height:44px}.chat-new__hint{color:var(--ink-muted);margin:0}.chat-new__groups{min-height:0;margin:0 calc(-1 * var(--space-4));flex:1;overflow-y:auto}.chat-new__stage h3{z-index:1;padding:var(--space-2) var(--space-4);background:var(--surface-raised);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--brand-text);border-bottom:1px solid var(--line);margin:0;position:sticky;top:0}.chat-new__class h4{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);color:var(--ink-muted);background:var(--surface);margin:0}.chat-new__groups .chat-list{margin:0;overflow:visible}.chat__sidebar h1{margin:0}.chat__main{border-top:1px solid var(--line);min-width:0;min-height:0;display:none}.chat--thread-open .chat__sidebar{display:none}.chat--thread-open .chat__main{display:flex}.chat__placeholder{color:var(--ink-muted);margin:auto}.chat__empty{color:var(--ink-muted)}.chat__filters{gap:var(--space-2);flex-wrap:wrap;display:flex}.chat__filter{border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);padding:var(--space-2) var(--space-4);font:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:999px;min-height:36px}.chat__filter--active{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.chat__search{align-items:center;gap:var(--space-2);border:1px solid var(--line);padding:0 var(--space-3);background:var(--surface);color:var(--ink-muted);border-radius:999px;display:flex}.chat__search input{min-width:0;color:var(--ink);font:inherit;padding:var(--space-3) 0;background:0 0;border:0;outline:none;flex:1}.chat__search:focus-within{border-color:var(--brand)}.chat-list{margin:0 calc(-1 * var(--space-4));flex:1;min-height:0;padding:0;list-style:none;overflow-y:auto}.chat-list__item{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:0;border-bottom:1px solid var(--line);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;display:flex}.chat-list__item:hover,.chat-list__item--active{background:var(--brand-tint)}.chat-list__text{flex-direction:column;flex:1;min-width:0;display:flex}.chat-list__title{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.chat-list__subtitle,.chat-list__preview{font-size:var(--text-sm);color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-list__item--unread .chat-list__preview{color:var(--ink);font-weight:600}.chat-list__meta{align-items:flex-end;gap:var(--space-1);font-size:var(--text-xs);color:var(--ink-muted);flex-direction:column;display:flex}.chat-list__badge{min-width:22px;height:22px;padding:0 var(--space-2);background:var(--danger);color:var(--on-danger);font-size:var(--text-xs);border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.chat-avatar{border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.chat-avatar--md{width:44px;height:44px;font-size:var(--text-md)}.chat-avatar--sm{width:32px;height:32px;font-size:var(--text-xs)}.chat-avatar--person{background:var(--brand-tint);color:var(--brand-text)}.chat-avatar--channel{background:var(--brand);color:var(--on-brand)}.chat-thread{flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}.chat-thread__header{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line);flex:none;display:flex}.chat-thread__back{color:var(--ink);padding:var(--space-2);cursor:pointer;background:0 0;border:0;border-radius:50%;min-width:44px;min-height:44px}.chat-thread__who{min-width:0}.chat-thread__who h2{font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.chat-thread__who p{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.chat-thread__messages{padding:var(--space-4);overscroll-behavior:contain;gap:var(--space-2);background:var(--surface);flex-direction:column;flex:1;min-height:0;margin:0;list-style:none;display:flex;overflow-y:auto}.chat-thread__older,.chat-thread__empty{color:var(--ink-muted);align-self:center}.chat-thread__day{font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface-raised);padding:2px var(--space-3);margin-block:var(--space-2);border-radius:999px;align-self:center;font-weight:600}.chat-thread__reason,.chat-thread__readonly,.chat-thread__assign{padding:var(--space-4);flex:none}.chat-thread__readonly{color:var(--ink-muted);border-top:1px solid var(--line);margin:0}.chat-thread__assign{border-top:1px solid var(--line)}.chat-bubble{background:var(--surface-raised);border:1px solid var(--line);max-width:min(80%,560px);padding:var(--space-2) var(--space-3);box-shadow:var(--shadow-sm);border-radius:16px 16px 16px 4px;align-self:flex-start}.chat-bubble--mine{background:var(--brand);border-color:var(--brand);color:var(--on-brand);border-radius:16px 16px 4px;align-self:flex-end}.chat-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-bubble time{text-align:right;font-size:var(--text-xs);opacity:.75;margin-top:2px;display:block}.chat-bubble__author{font-size:var(--text-xs);color:var(--brand-text);margin-bottom:2px;font-weight:700;display:block}.chat-composer{align-items:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);background:var(--surface-raised);flex-wrap:wrap;flex:none;display:flex}.chat-composer .alert{flex-basis:100%}.chat-composer__field{flex:1;min-width:0}.chat-composer__field textarea{box-sizing:border-box;resize:none;field-sizing:content;border:1px solid var(--line-strong);width:100%;min-height:44px;max-height:160px;padding:var(--space-3) var(--space-4);font:inherit;background:var(--surface);color:var(--ink);border-radius:22px}.chat-composer__send{background:var(--brand);width:44px;height:44px;color:var(--on-brand);cursor:pointer;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.chat-composer__send:disabled{opacity:.5;cursor:default}@media (width>=900px){.chat{--chat-chrome:184px;grid-template-columns:minmax(300px,360px) 1fr}.chat__sidebar{border-right:1px solid var(--line)}.chat__main,.chat--thread-open .chat__main{border-top:0;display:flex}.chat--thread-open .chat__sidebar{display:flex}.chat-thread__back{display:none}}.header-icon,.user-menu__trigger{box-sizing:border-box;border:1px solid var(--line);background:var(--surface-raised);border-radius:999px;min-width:40px;height:40px}.header-icon{width:40px;color:var(--ink);justify-content:center;align-items:center;text-decoration:none;display:inline-flex;position:relative}.header-icon:hover,.header-icon.active{background:var(--brand-tint);color:var(--brand-text)}.header-icon__badge{min-width:18px;height:18px;padding:0 var(--space-1);background:var(--danger);color:var(--on-danger);font-size:var(--text-xs);box-shadow:0 0 0 2px var(--surface-raised);border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex;position:absolute;top:2px;right:0}.user-menu{position:relative}.user-menu__trigger{align-items:center;gap:var(--space-2);color:var(--ink);font:inherit;font-size:var(--text-sm);padding:3px var(--space-3) 3px 3px;cursor:pointer;font-weight:600;display:inline-flex}.user-menu__trigger .chat-avatar{width:32px;height:32px}.user-menu__trigger:hover,.user-menu__trigger[aria-expanded=true]{background:var(--brand-tint)}.user-menu__popover{z-index:50;background:var(--surface-raised);border:1px solid var(--line);min-width:220px;box-shadow:var(--shadow-md);padding:var(--space-2);border-radius:12px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0}.user-menu__who{padding:var(--space-2) var(--space-3) var(--space-3);border-bottom:1px solid var(--line);margin-bottom:var(--space-1);flex-direction:column;display:flex}.user-menu__who small{color:var(--ink-muted);text-overflow:ellipsis;overflow:hidden}.user-menu__item{align-items:center;gap:var(--space-3);color:var(--ink);font:inherit;font-size:var(--text-sm);text-align:left;padding:var(--space-3) var(--space-3);cursor:pointer;background:0 0;border:0;border-radius:8px;min-height:40px;display:flex}.user-menu__item:hover{background:var(--brand-tint)}.user-menu__item--danger{color:var(--danger-ink)}@media (width<=600px){.user-menu__name{display:none}.user-menu__trigger{justify-content:center;width:40px;padding:3px}}.notifications__header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.notifications__header h1{margin:0}.notifications__actions{margin-block:var(--space-2)}.notice-list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.notice{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px;align-items:stretch;display:flex;overflow:hidden}.notice--unread{border-color:var(--brand);box-shadow:inset 3px 0 0 var(--brand)}.notice__main{align-items:flex-start;gap:var(--space-3);color:inherit;font:inherit;text-align:left;padding:var(--space-3);cursor:pointer;background:0 0;border:0;flex:1;min-width:0;display:flex}.notice__main:disabled{cursor:default}.notice__main:hover:not(:disabled){background:var(--brand-tint)}.notice__icon{background:var(--brand-tint);width:40px;height:40px;color:var(--brand-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.notice__icon--megaphone{background:var(--warning-tint);color:var(--warning-ink)}.notice__icon--alert,.notice__icon--clock{background:var(--danger-tint);color:var(--danger-ink)}.notice__icon--assessment,.notice__icon--clipboard{background:var(--success-tint);color:var(--success-ink)}.notice__text{flex-direction:column;gap:2px;min-width:0;display:flex}.notice__title{align-items:center;gap:var(--space-2);font-weight:600;display:flex}.notice--unread .notice__title{font-weight:700}.notice__dot{background:var(--brand);border-radius:50%;flex:none;width:8px;height:8px}.notice__body{color:var(--ink-muted);font-size:var(--text-sm);overflow-wrap:anywhere}.notice__time{font-size:var(--text-xs);color:var(--ink-muted)}.notice__read{border:0;border-left:1px solid var(--line);width:48px;color:var(--ink-muted);cursor:pointer;background:0 0;flex:none}.notice__read:hover{background:var(--brand-tint);color:var(--brand-text)}.settings-collapse>summary{cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:var(--text-lg);justify-content:space-between;align-items:center;min-height:44px;list-style:none;display:flex}.settings-collapse>summary::-webkit-details-marker{display:none}.settings-collapse>summary:after{content:"▾";color:var(--ink-muted);transition:transform .15s}.settings-collapse[open]>summary:after{transform:rotate(180deg)}.settings-collapse[open]>summary{margin-bottom:var(--space-2)}.assignment-list{margin:var(--space-3) 0 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.assignment-card{border:1px solid var(--line);background:var(--surface-raised);border-radius:12px}.assignment-card--canceled{opacity:.65}.assignment-card__link{align-items:center;column-gap:var(--space-3);row-gap:var(--space-1);padding:var(--space-3);color:inherit;border-radius:12px;grid-template-columns:auto 1fr auto;grid-template-areas:"icon main main""icon due state";text-decoration:none;display:grid}.assignment-card__link:hover{background:var(--brand-tint)}.assignment-card__icon{background:var(--brand-tint);width:40px;height:40px;color:var(--brand-text);border-radius:50%;grid-area:icon;justify-content:center;align-self:start;align-items:center;display:inline-flex}.assignment-card__main{flex-direction:column;grid-area:main;min-width:0;display:flex}.assignment-card__title{overflow-wrap:anywhere;font-weight:700}.assignment-card__meta{font-size:var(--text-sm);color:var(--ink-muted)}.assignment-card__due{align-items:center;gap:var(--space-1);font-size:var(--text-sm);color:var(--ink-muted);grid-area:due;display:inline-flex}.assignment-card__due--late{color:var(--danger-ink);font-weight:700}.assignment-card__state{grid-area:state;justify-self:end}@media (width>=768px){.assignment-card__link{grid-template-columns:auto 1fr 110px 170px;grid-template-areas:"icon main due state"}}.roster{margin:var(--space-2) 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.roster__item{align-items:center;gap:var(--space-3);border:1px solid var(--line);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border-radius:12px;flex-wrap:wrap;display:flex}.roster__item--selected{border-color:var(--brand)}.roster__name{flex:1;min-width:140px;font-weight:600}.roster__counts{color:var(--ink-muted);font-size:var(--text-sm)}.review__choices{gap:var(--space-2);flex-wrap:wrap;display:flex}.review__choice{border:2px solid var(--line-strong);background:var(--surface-raised);min-width:130px;min-height:48px;color:var(--ink);font:inherit;cursor:pointer;border-radius:12px;flex:1;font-weight:700}.review__choice--done.is-selected{border-color:var(--success-ink);background:var(--success-tint);color:var(--success-ink)}.review__choice--not-done.is-selected{border-color:var(--danger-ink);background:var(--danger-tint);color:var(--danger-ink)}.review__hint,.review__feedback{color:var(--ink-muted)}.modal{width:min(100%,520px);max-height:calc(100dvh - 2 * var(--space-4));flex-direction:column;padding:0;display:flex}.modal--sm{width:min(100%,420px)}.modal:focus{outline:none}.modal__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-2);display:flex}.modal__header h2{font-size:var(--text-lg);margin:0}.modal__close{width:40px;height:40px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.modal__close:hover{background:var(--brand-tint);color:var(--ink)}.modal__body{padding:0 var(--space-5) var(--space-5);overflow-y:auto}@media (width<=600px){.dialog-backdrop:has(.modal){place-items:end center;padding:0}.modal{width:100%;max-height:90dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:16px 16px 0 0}}.doubts-button{align-items:center;gap:var(--space-3);margin-block:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);border-radius:999px;text-decoration:none;display:inline-flex}.doubts-button:hover{border-color:var(--brand);background:var(--brand-tint)}.doubts-button svg{color:var(--brand-text)}.doubts-button__text{flex-direction:column;line-height:1.2;display:flex}.doubts-button__text small{color:var(--ink-muted);font-size:var(--text-xs)}.doubts-button__badge{min-width:24px;height:24px;padding:0 var(--space-2);background:var(--brand);color:var(--on-brand);font-size:var(--text-xs);border-radius:999px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.doubts-button--waiting{border-color:var(--danger)}.doubts-button--waiting .doubts-button__badge{background:var(--danger);color:var(--on-danger)}.doubts-button--waiting .doubts-button__text small{color:var(--danger-ink);font-weight:600}.filter-chip{align-items:center;gap:var(--space-2);background:var(--brand-tint);padding:var(--space-2) var(--space-4);border-radius:999px;flex-wrap:wrap;display:inline-flex}.feed-card__hint{color:var(--ink-muted)}.chat-bubble a{color:inherit;overflow-wrap:anywhere;text-decoration:underline}.feed-card--not-done{border-left:4px solid var(--danger)}.detail-actions{align-items:center;gap:var(--space-3);margin-block:var(--space-3);flex-wrap:wrap;display:flex}.detail-actions>.doubts-button,.detail-actions>.btn{min-height:48px;padding-inline:var(--space-4);box-sizing:border-box;border-radius:999px;margin:0}.detail-actions>section{flex-basis:100%}.device-list{margin:var(--space-3) 0;gap:var(--space-2);flex-direction:column;padding:0;list-style:none;display:flex}.device{align-items:center;gap:var(--space-3);border:1px solid var(--line);padding:var(--space-3);background:var(--surface-raised);border-radius:12px;flex-wrap:wrap;display:flex}.device--current{border-color:var(--success-ink)}.device__icon{background:var(--brand-tint);width:40px;height:40px;color:var(--brand-text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.device__text{flex-direction:column;flex:1;gap:2px;min-width:180px;display:flex}.device__text strong{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.device__text small{color:var(--ink-muted)}.pickup-list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.pickup-person{gap:var(--space-3);padding:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);align-items:flex-start;display:flex}.pickup-person--blocked{border-color:var(--danger)}.pickup-person__body{flex:1;min-width:0}.pickup-person__actions{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.pickup-photo{object-fit:cover;border-radius:50%;flex:none}.pickup-photo--empty{background:var(--surface);color:var(--ink-muted);border:1px solid var(--line);justify-content:center;align-items:center;font-weight:600;display:inline-flex}.pickup-blocked{color:var(--danger);margin-top:var(--space-1);font-weight:600}.pickup-temporary{margin-top:var(--space-1);padding:2px var(--space-2);background:var(--accent-tint);color:var(--ink);font-size:var(--text-sm);border-radius:999px;font-weight:600;display:inline-block}.pickup-student{border-top:1px solid var(--line);padding-top:var(--space-3);margin-top:var(--space-3)}.pickup-student h2{margin:0 0 var(--space-2);font-size:var(--text-lg)}.gate:fullscreen{padding:var(--space-5);overflow:auto}.gate-scanner video{background:var(--media-bg);border-radius:12px;width:100%;max-width:480px}.gate-card{padding:var(--space-5);margin-block:var(--space-4);border:4px solid;border-radius:16px}.gate-card--green{border-color:var(--success-ink);background:var(--success-tint)}.gate-card--yellow{border-color:var(--warning-ink);background:var(--warning-tint)}.gate-card--red{border-color:var(--danger-ink);background:var(--danger-tint)}.gate-card__status{font-size:var(--text-2xl);margin:0;font-weight:700}.gate-card--green .gate-card__status{color:var(--success-ink)}.gate-card--yellow .gate-card__status{color:var(--warning-ink)}.gate-card--red .gate-card__status{color:var(--danger-ink)}.gate-card__reason{font-size:var(--text-lg)}.gate-card__adult,.gate-card__children li{gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.gate-card__adult h2{margin:0}.gate-card__children{gap:var(--space-3);margin-top:var(--space-4);padding:0;list-style:none;display:grid}.public-qr{min-height:100vh;padding-inline:var(--space-4);text-align:center;place-items:center;display:grid}.public-qr .qr-code{max-width:100%;height:auto}.gate-card{color:var(--ink)}.school-logo{object-fit:contain;width:auto;max-width:180px;height:40px;display:block}.school-logo--compact{max-width:140px;height:32px}.school-logo--large{max-width:min(260px,100%);height:72px;margin-inline:auto}.auth-brand--school{justify-items:center;gap:var(--space-1);display:grid}.auth-brand--school small{font-size:var(--text-xs);font-weight:500}.brand--school{align-items:center;gap:var(--space-2);display:flex}.app-update-notice{border:1px solid var(--line);background:var(--surface-raised);padding:var(--space-4);margin-bottom:var(--space-4);border-radius:12px}.app-update-notice p{margin:var(--space-2) 0}.app-icon-preview{border:1px solid var(--line);border-radius:14px}.storage-bar{background:var(--brand-tint);height:12px;margin-block:var(--space-2) var(--space-4);border-radius:999px;overflow:hidden}.storage-bar span{background:var(--brand);height:100%;display:block}.storage-bar--warn span{background:var(--warning-ink)}.storage-bar--full span{background:var(--danger)}.album-grid{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(180px,1fr));padding:0;list-style:none;display:grid}.album-card{gap:var(--space-1);color:inherit;text-decoration:none;display:grid}.album-card img,.album-card__empty{aspect-ratio:4/3;object-fit:cover;background:var(--brand-tint);border-radius:12px;width:100%;display:block}.album-items{gap:var(--space-2);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(140px,1fr));padding:0;list-style:none;display:grid}.album-item{position:relative}.album-item__open{background:var(--brand-tint);aspect-ratio:1;cursor:pointer;border:0;border-radius:10px;width:100%;padding:0;display:block;position:relative;overflow:hidden}.album-item__open:disabled{cursor:default;opacity:.8}.album-item__remove{background:var(--media-scrim);width:32px;height:32px;color:var(--on-media);font-size:var(--text-xl);cursor:pointer;border:0;border-radius:999px;place-items:center;line-height:1;display:grid;position:absolute;top:6px;right:6px}.album-item__remove:hover,.album-item__remove:focus-visible{background:var(--danger);color:var(--on-danger)}.album-item img{object-fit:cover;width:100%;height:100%;display:block}.album-item__placeholder{height:100%;font-size:var(--text-3xl);color:var(--brand-text);place-items:center;display:grid}.album-item__badge,.album-item__status{background:var(--media-scrim);color:var(--on-media);font-size:var(--text-xs);padding:2px var(--space-2);border-radius:6px;position:absolute;bottom:6px;left:6px}.album-item--failed .album-item__status{background:var(--danger);color:var(--on-danger)}.album-viewer{z-index:1000;background:var(--media-backdrop);color:var(--on-media);padding:calc(env(safe-area-inset-top,0px) + 56px) var(--space-4) calc(env(safe-area-inset-bottom,0px) + var(--space-3));grid-template-rows:minmax(0,1fr) auto auto;display:grid;position:fixed;inset:0}.album-viewer__close{top:calc(env(safe-area-inset-top,0px) + 8px);z-index:1;background:var(--media-control);width:44px;height:44px;color:var(--on-media);font-size:var(--text-2xl);cursor:pointer;border:0;border-radius:999px;line-height:1;position:absolute;right:12px}.album-viewer__close:hover,.album-viewer__close:focus-visible{background:var(--media-control-hover)}.album-viewer__media{place-items:center;min-height:0;display:grid;overflow:hidden}.album-viewer__media img,.album-viewer__media video{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:100%}.album-viewer__caption{text-align:center;margin:var(--space-2) 0 0}.album-viewer__bar{gap:var(--space-3);padding-top:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.album-viewer__nav{background:var(--media-control);width:44px;height:44px;color:var(--on-media);font-size:var(--text-xl);cursor:pointer;border:0;border-radius:999px}.album-viewer__save{min-height:44px;padding:0 var(--space-5);background:var(--surface-raised);color:var(--ink);cursor:pointer;border:0;border-radius:999px;font-weight:600}.album-viewer__save:disabled{opacity:.7;cursor:default}.album-uploader{gap:var(--space-1);display:grid}.health-badge{background:var(--warning-tint);width:1.4em;height:1.4em;color:var(--warning-ink);cursor:help;vertical-align:middle;border-radius:999px;place-items:center;margin-inline:.25em;font-size:.85em;display:inline-grid}.health-badge--severe{background:var(--danger-tint);color:var(--danger-ink)}.health-summary{gap:var(--space-1) var(--space-4);grid-template-columns:max-content 1fr;display:grid}.health-summary dt{font-weight:600}.health-summary dd{margin:0}.medication-list{gap:var(--space-3);padding:0;list-style:none;display:grid}@media (width<=600px){.health-summary{grid-template-columns:1fr}}.authorization-card{border:1px solid var(--line);padding:var(--space-4);margin-block:var(--space-3);gap:var(--space-2);border-radius:12px;display:grid}.authorization-card h2{font-size:var(--text-lg);margin:0}.authorization-card--pending{border-left:4px solid var(--brand)}.authorization-decision{margin:0;font-weight:600}.authorization-decision--authorized{color:var(--success-ink)}.authorization-decision--denied{color:var(--danger)}.table-scroll{overflow-x:auto}.table,.table-scroll{position:relative}.daily-photos{gap:var(--space-2);margin-block:var(--space-2);flex-wrap:wrap;display:flex}.daily-photos figure{margin:0;position:relative}.daily-photos img{object-fit:cover;border-radius:10px;width:96px;height:96px;display:block}.daily-apply{border:1px dashed var(--line);padding:var(--space-3);gap:var(--space-2);border-radius:12px;flex-wrap:wrap;display:flex}.daily-children{gap:var(--space-3);padding:0;list-style:none;display:grid}.daily-child{border:1px solid var(--line);padding:var(--space-3);gap:var(--space-2);border-radius:12px;display:grid}.daily-child h3{align-items:center;gap:var(--space-1);flex-wrap:wrap;margin:0;display:flex}.daily-child__alert{color:var(--danger);margin:0;font-weight:600}.daily-child__fields{gap:var(--space-2);flex-wrap:wrap;align-items:end;display:flex}.daily-messages{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.daily-messages li{background:var(--surface-raised);padding:var(--space-1) var(--space-2);border-radius:8px}.daily-messages .from-family{border-left:3px solid var(--brand)}.daily-day{border:1px solid var(--line);padding:var(--space-3);margin-block:var(--space-2);border-radius:12px}.daily-day h3{margin:0 0 var(--space-1)}.daily-day p{margin:var(--space-1) 0}.daily-actions{padding-block:var(--space-2)}.grade-picker{border:1px solid var(--line);padding:var(--space-2) var(--space-3);gap:var(--space-1);border-radius:12px;min-width:min(100%,420px);display:grid}.grade-picker summary{cursor:pointer;padding-block:var(--space-1);font-weight:600}.grade-picker__items{gap:var(--space-1) var(--space-4);padding-block:var(--space-1);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.grade-picker__legacy{color:var(--warning-ink);margin:0}.progress{height:6px;margin-top:var(--space-1);border-radius:var(--radius-full);background:var(--brand-tint);overflow:hidden}.progress>div{background:var(--accent);height:100%}.progress--wide{max-width:20rem;height:var(--space-3)}.progress--indeterminate>div{width:30%;animation:1.4s ease-in-out infinite progress-slide}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(400%)}}@media (prefers-reduced-motion:reduce){.progress--indeterminate>div{opacity:.35;width:100%;animation:none}}fieldset{min-width:0}.field--error input,.field--error select{border-color:var(--danger)}.field .error{color:var(--danger)}.update-banner{z-index:900;left:50%;bottom:calc(var(--space-4) + 64px + env(safe-area-inset-bottom,0px));align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-full);background:var(--ink);color:var(--surface);box-shadow:var(--shadow-md);max-width:calc(100vw - 2 * var(--space-4));display:flex;position:fixed;transform:translate(-50%)}@media (width>=900px){.update-banner{bottom:var(--space-4)}}.release-badge{left:8px;bottom:calc(64px + 8px + env(safe-area-inset-bottom,0px));z-index:950;padding:2px var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);background:var(--warning-tint);color:var(--warning-ink);pointer-events:none;opacity:.92;font-weight:700;position:fixed}@media (width>=900px){.release-badge{bottom:8px;left:auto;right:8px}}.auth-page--wide .card{max-width:560px}.input-suffix{align-items:stretch;display:flex}.input-suffix input{border-top-right-radius:0;border-bottom-right-radius:0;flex:1;min-width:0}.input-suffix span{padding:0 var(--space-2);border:1px solid var(--line);border-radius:0 var(--radius-md) var(--radius-md) 0;background:var(--surface);color:var(--ink-muted);white-space:nowrap;font-size:var(--text-sm);border-left:0;align-items:center;display:flex}.field__ok{color:var(--success-ink);font-size:var(--text-sm)}.link-button{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:0;padding:0 .25em;text-decoration:underline}.legal{max-width:760px;padding:var(--space-5) var(--space-4);overflow-wrap:anywhere;margin:0 auto;line-height:1.6}.legal h2{margin-top:var(--space-5)}.accept-terms__doc{margin-block:var(--space-4);border-bottom:1px solid var(--line);padding-block-end:var(--space-4)}.accept-terms__doc details summary{cursor:pointer;margin-block:var(--space-2)}.layout--plain{min-height:100vh}.layout__plain-header{padding:var(--space-3) var(--space-4)}.legal.manual{max-width:980px}.manual h3{align-items:center;gap:var(--space-2);margin:var(--space-4) 0 var(--space-1);flex-wrap:wrap;display:flex}.manual__badge{font-size:var(--text-xs);padding:2px var(--space-2);background:var(--brand-tint);color:var(--ink);border-radius:999px;font-weight:600}.manual__who{font-size:var(--text-sm);color:var(--ink-muted);margin:0}.manual__tip{background:var(--surface);border-left:3px solid var(--brand);padding:var(--space-2) var(--space-3);border-radius:4px}.manual__topic{border-bottom:1px solid var(--line);padding-bottom:var(--space-3)}.manual__search{gap:var(--space-1);margin:var(--space-4) 0;font-weight:600;display:grid}.manual__search input{width:100%}.manual__toc ol{columns:2;column-gap:var(--space-5)}@media (width<=600px){.manual__toc ol{columns:1}}.manual__gallery,.manual__tour-grid{gap:var(--space-3);margin:var(--space-3) 0;flex-wrap:wrap;align-items:flex-start;display:flex}.manual__media{flex:100%;max-width:100%;margin:0}.manual__media--mobile{flex:0 260px}.manual__media img,.manual__video{border:1px solid var(--line);width:100%;height:auto;box-shadow:var(--shadow-sm);background:var(--surface);border-radius:12px;display:block}.manual__media figcaption{font-size:var(--text-sm);color:var(--ink-muted);margin-top:var(--space-1)}.manual__tour-grid .manual__media:not(.manual__media--mobile){flex:420px}.onboarding-steps{gap:var(--space-3);padding:0;list-style:none;display:grid}.onboarding-step{gap:var(--space-3);align-items:flex-start;display:flex}.onboarding-step__mark{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:2rem;height:2rem;font-weight:700;display:grid}.onboarding-step--done .onboarding-step__mark{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.onboarding-step__body{flex:1;min-width:0}@media (width<=480px){.input-suffix{flex-direction:column}.input-suffix input{border-radius:var(--radius-md)}.input-suffix span{padding:var(--space-1) 2px 0;font-size:var(--text-sm);background:0 0;border:0}}.field__label{font-weight:600}.segmented{gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.segmented__item{font:inherit;font-size:var(--text-md);padding:var(--space-3) var(--space-4);cursor:pointer;border:2px solid var(--line);background:var(--surface-raised);color:var(--ink);border-radius:999px;font-weight:600}.segmented__item--on{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.collapse{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);margin:var(--space-4) 0;background:var(--surface-raised)}.collapse>summary{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;font-weight:700;font-size:var(--text-lg);flex-wrap:wrap;display:flex}.collapse[open]>summary{margin-bottom:var(--space-3)}.collapse--nested{margin:var(--space-3) 0;background:var(--surface)}.collapse--nested>summary{font-size:var(--text-md)}.choices{gap:var(--space-2);border:0;margin:0;padding:0;display:grid}.choices legend{margin-bottom:var(--space-2);padding:0}.choice{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);cursor:pointer;text-align:left;display:flex}.choice input{width:1.15rem;height:1.15rem;accent-color:var(--brand);flex:none;margin:0}.choice__title{flex:1;font-weight:600}.choice__price{color:var(--brand);white-space:nowrap;font-weight:700}.choice--on{border-color:var(--brand);background:color-mix(in srgb, var(--brand) 8%, var(--surface-raised))}.roll{margin:0 0 var(--space-4);gap:var(--space-2);padding:0;list-style:none;display:grid}.roll__row{align-items:flex-end;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.roll__name{overflow-wrap:anywhere;flex:12rem;align-self:center;min-width:0;font-weight:600}.roll__row .segmented{margin-top:0}.roll__row .segmented__item{min-height:var(--tap);padding:var(--space-2) var(--space-3);font-size:var(--text-sm)}.roll__row>.field{flex:14rem;min-width:0}.roll__note{flex:100%;min-width:0}.roll__note .link-button,.roll__row>.link-button{min-height:var(--tap)}.roll__toolbar{gap:var(--space-2);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.slot-row:has(>.field){align-items:flex-end}.slot-row>.field{flex:9rem;min-width:0}.panel-cards{gap:var(--space-4);margin-block:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));display:grid}.panel-cards>.card{margin:0}.panel-card h2{margin:0 0 var(--space-3);font-size:var(--text-lg)}.panel-card__footer{margin:var(--space-3) 0 0;font-size:var(--text-sm)}.item-list{margin:var(--space-2) 0;gap:var(--space-2);padding:0;list-style:none;display:grid}.item-list__item{align-items:center;gap:var(--space-1) var(--space-3);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);grid-template-columns:minmax(0,1fr) fit-content(50%);display:grid}.item-list__title{overflow-wrap:anywhere;grid-column:1;font-weight:600}.item-list__meta{font-size:var(--text-sm);color:var(--ink-muted);grid-column:1}.item-list__text{font-size:var(--text-sm);overflow-wrap:anywhere;grid-column:1/-1}.item-list__side{text-align:right;overflow-wrap:anywhere;grid-area:1/2/span 2;justify-self:end}.item-list__body{grid-column:1/-1;min-width:0}.item-list__actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.item-list__actions .btn,.item-list__actions .link-button{min-height:var(--tap)}.item-list__actions a{min-height:var(--tap);align-items:center;display:inline-flex}.item-list--ordered{counter-reset:item}.item-list--ordered>.item-list__item{counter-increment:item}.item-list--ordered>.item-list__item>.item-list__title:before{content:counter(item) ". ";color:var(--ink-muted);font-variant-numeric:tabular-nums}.item-list__item--inactive .item-list__meta,.item-list__item--inactive .item-list__title,.item-list__item--inactive .item-list__title a{color:var(--ink-muted)}.score{font-family:var(--font-display);font-size:var(--text-lg);color:var(--ink);white-space:nowrap;font-weight:700}.score--empty{font-family:inherit;font-size:var(--text-sm);color:var(--ink-muted);white-space:normal;font-weight:600}.child-actions{align-items:center;gap:var(--space-2);margin-block:var(--space-2);flex-wrap:wrap;display:flex}.child-actions__name{flex-basis:100%;font-weight:600}.facts{gap:var(--space-1) var(--space-4);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.facts dt{color:var(--ink-muted);font-size:var(--text-sm)}.facts dd{overflow-wrap:anywhere;margin:0}@media (width<=480px){.facts{grid-template-columns:1fr}.facts dt{margin-top:var(--space-2)}}.terms-box{max-height:calc(var(--space-8) * 4);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);overflow:auto}@media (width>=641px){.form--inline.list-filters{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.table th.actions-cell,.table td.actions-cell{white-space:nowrap;text-align:right;vertical-align:middle;width:1%}.row-actions{gap:var(--space-2);flex-wrap:nowrap;justify-content:flex-end;align-items:center;display:flex}.row-actions .btn{min-height:36px;padding:var(--space-1) var(--space-3)}.table--cards td{vertical-align:middle}@media (width<=640px){.table--cards{white-space:normal;background:0 0;border:0;display:block;overflow:visible}.table--cards thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.table--cards tbody{gap:var(--space-2);display:grid}.table--cards tr{gap:var(--space-1);padding:var(--space-3) var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);display:grid}.table--cards td{border:0;min-width:0;padding:0;display:block}.table--cards td:empty{display:none}.table--cards td:first-child{color:var(--ink);font-weight:600}.table--cards td[data-label]:before{content:attr(data-label) ": ";color:var(--ink-muted);font-weight:600}.table--cards td.actions-cell{text-align:left;width:auto;margin-top:var(--space-2);white-space:normal}.table--cards .row-actions{flex-wrap:wrap;justify-content:flex-start}.table--cards .row-actions .btn{min-height:var(--tap);flex:auto}.table--cards tbody tr:hover td{background:0 0}}.form-actions{gap:var(--space-2);flex-direction:column-reverse;grid-column:1/-1;display:flex}@media (width>=641px){.form>.btn[type=submit]{grid-column:1/-1;justify-self:end;min-width:160px}.form-actions{flex-direction:row;justify-content:flex-end}}.modal--lg{width:min(100%,720px)}.stat-row--grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.stat-row--grid .stat{min-width:0}.timeline{padding:0 0 0 var(--space-4);border-left:2px solid var(--line);gap:var(--space-3);font-size:var(--text-sm);margin:0;list-style:none;display:grid}.timeline__item{position:relative}.timeline__item:before{content:"";left:calc(-1 * var(--space-4) - 6px);border-radius:var(--radius-full);background:var(--brand);width:10px;height:10px;position:absolute;top:6px}.timeline p{margin:var(--space-1) 0 0;white-space:pre-wrap}.timeline .timeline__item--ok:before{background:var(--success-ink)}.timeline .timeline__item--warning:before{background:var(--warning-ink)}.timeline .timeline__item--danger:before{background:var(--danger)}.timeline .timeline__item--neutral:before{background:var(--line-strong)}.timeline__head{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-xs);flex-wrap:wrap;display:flex}.timeline__title{color:var(--ink);display:block}.timeline__meta{color:var(--ink-muted);display:block}.timeline__body{margin:var(--space-1) 0 0;white-space:pre-wrap;color:var(--ink)}.timeline__item--muted .timeline__title,.timeline__item--muted .timeline__body,.timeline__item--muted .timeline__meta{color:var(--ink-muted)}.timeline__more{margin-top:var(--space-3)}.tab-strip{gap:var(--space-1);-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--line);margin-bottom:var(--space-4);display:flex;overflow-x:auto}.tab-strip::-webkit-scrollbar{display:none}.tab-strip__tab{align-items:center;gap:var(--space-2);min-height:var(--tap);padding:var(--space-2) var(--space-3);color:var(--ink-muted);font:inherit;font-size:var(--text-sm);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;font-weight:600;display:inline-flex}.tab-strip__tab:hover:not(:disabled){color:var(--ink)}.tab-strip__tab--selected{color:var(--ink);border-bottom-color:var(--brand)}.tab-strip__tab:disabled{opacity:.5;cursor:not-allowed}.tab-strip__count{flex:none}.tab-strip__panel{min-width:0}.reason-dialog{gap:var(--space-3);display:grid}.field__hint-row{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.field__count{color:var(--ink-muted);font-size:var(--text-sm);margin-left:auto;line-height:18px}.field__count--near{color:var(--warning-ink);font-weight:600}.search-picker__chips{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.search-picker__chip{align-items:center;gap:var(--space-1);padding-left:var(--space-3);border-radius:var(--radius-full);background:var(--brand-tint);color:var(--ink);font-size:var(--text-sm);display:inline-flex}.search-picker__remove{min-width:var(--tap);min-height:var(--tap);color:var(--ink);font:inherit;font-size:var(--text-md);cursor:pointer;background:0 0;border:0}.search-picker__selection{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.search-picker__selection strong{color:var(--ink)}.search-picker__count{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.search-picker__box{position:relative}.search-picker__panel{z-index:20;margin-top:var(--space-1);max-height:320px;padding:var(--space-1);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-picker__status{margin:var(--space-1) 0 0;color:var(--ink-muted);font-size:var(--text-sm)}.search-picker__retry{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.search-picker__retry [role=alert]{color:var(--danger-ink)}.search-picker__list,.search-picker__sublist{margin:0;padding:0;list-style:none}.search-picker__group{margin:var(--space-2) var(--space-3) var(--space-1);color:var(--ink-muted);font-size:var(--text-xs);font-weight:600;display:block}.search-picker__option{align-items:center;gap:var(--space-3);min-height:var(--tap);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--ink);font-size:var(--text-sm);cursor:pointer;display:flex}.search-picker__option--active{background:var(--brand-tint)}.search-picker__option--disabled{color:var(--ink-muted);cursor:not-allowed}.search-picker__text{flex:auto;gap:2px;min-width:0;display:grid}.search-picker__sub,.search-picker__reason{color:var(--ink-muted);font-size:var(--text-xs)}.search-picker__check{color:var(--brand);font-weight:700}@media (width<=640px){.search-picker__panel{max-height:none;box-shadow:none;position:static}}.generated-file{gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);display:grid}.generated-file__head{align-items:center;gap:var(--space-2);color:var(--ink);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.generated-file__meta{color:var(--ink-muted);font-size:var(--text-xs)}.generated-file__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.period-filter{gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));align-items:start;display:grid}.form--inline>.period-filter{grid-column:1/-1}.dialog__message{margin:0 0 var(--space-3)}.period-filter__presets{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.tt-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow-x:auto}.tt-grid{border-collapse:collapse;width:100%;min-width:28rem;font-size:var(--text-sm)}.tt-grid th,.tt-grid td{border:1px solid var(--line);padding:var(--space-2);vertical-align:top;text-align:left}.tt-grid thead th{background:var(--surface)}.tt-grid tbody th{white-space:nowrap;font-weight:600}.tt-hour{color:var(--ink-muted);font-weight:400;font-size:var(--text-xs);display:block}.tt-cell{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;min-width:6.5rem;min-height:2.75rem;color:var(--ink);padding:var(--space-2);font:inherit;cursor:pointer}.tt-cell--can{background:var(--success-tint);color:var(--success-ink)}.tt-cell--prefer-not{background:var(--warning-tint);color:var(--warning-ink)}.tt-cell--cannot{background:var(--danger-tint);color:var(--danger-ink)}.tt-cell:disabled{opacity:.7;cursor:not-allowed}.tt-cell--off{background:var(--surface)}.tt-slot{border:1px dashed var(--line-strong);width:100%;min-height:2.5rem;color:var(--ink-muted);border-radius:var(--radius-sm);font:inherit;cursor:pointer;background:0 0}.tt-lesson{text-align:left;width:100%;margin-bottom:var(--space-1);padding:var(--space-2);border:1px solid var(--brand);border-radius:var(--radius-sm);background:var(--brand-tint);color:var(--ink);font:inherit;cursor:pointer;gap:2px;display:grid}.tt-lesson--selected{outline:3px solid var(--accent);outline-offset:1px}.tt-lesson--pinned{border-style:double}.tt-lesson__who{font-size:var(--text-xs);color:var(--ink-muted)}.tt-labels{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));display:grid}.tt-periods{border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-3);gap:var(--space-3);display:grid}.tt-period-row{gap:var(--space-2);grid-template-columns:auto 1fr 1fr auto auto;align-items:end;display:grid}.tt-period-row__n{font-weight:600}.tt-quality{font-size:var(--text-sm)}.tt-hint{color:var(--ink-muted);font-size:var(--text-sm)}.tt-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=40rem){.tt-period-row{grid-template-columns:1fr 1fr}}.tt-cell-btn{gap:var(--space-1);width:100%;min-height:2.75rem;padding:var(--space-2);border-radius:var(--radius-sm);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;display:grid}.tt-cell-btn[aria-disabled=true]{cursor:not-allowed}.tt-picked{align-items:center;gap:var(--space-1);width:fit-content;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--brand);color:var(--on-brand);font-size:var(--text-xs);font-weight:600;display:inline-flex}.tt-cell-btn--target{box-shadow:inset 0 0 0 3px var(--brand)}.tt-dest{align-items:center;gap:var(--space-1);width:fit-content;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;display:inline-flex}.tt-dest--free{background:var(--success-tint);color:var(--success-ink);border:1px solid var(--success-ink)}.tt-dest--warning{background:var(--warning-tint);color:var(--warning-ink);border:1px solid var(--warning-ink)}.tt-dest--cannot{background:var(--danger-tint);color:var(--danger-ink);border:2px dashed var(--danger)}.tt-dest--clash{background:var(--danger-tint);color:var(--danger-ink);border:2px solid var(--danger)}.tt-dest--checking{background:var(--surface);color:var(--ink-muted);border:1px dashed var(--line-strong)}.menu-toolbar{gap:var(--space-3);align-items:end;display:grid}.menu-week{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.menu-status{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--ink-muted);flex-wrap:wrap;display:flex}.menu-actions{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;display:flex}.menu-note{font-size:var(--text-sm);color:var(--ink-muted);margin:var(--space-2) 0}.menu-badge{padding:0 var(--space-2);border-radius:var(--radius-full);background:var(--brand-tint);color:var(--ink);font-size:var(--text-xs);display:inline-block}.menu-badge--changed{background:var(--warning-tint);color:var(--warning-ink)}.menu-grid{display:none}.menu-grid__row{gap:var(--space-2);grid-template-columns:7rem repeat(auto-fit,minmax(10rem,1fr));display:grid}.menu-grid__row--head{font-size:var(--text-sm);color:var(--ink-muted)}.menu-grid__day{align-items:flex-start;gap:var(--space-1);flex-direction:column;font-weight:600;display:flex}.menu-days{gap:var(--space-3);margin-top:var(--space-3);display:grid}.menu-day__title{align-items:center;gap:var(--space-2);font-size:var(--text-lg);margin:0 0 var(--space-2);flex-wrap:wrap;display:flex}.menu-day__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.menu-cell{align-items:flex-start;gap:var(--space-1);width:100%;height:100%;min-height:5rem;padding:var(--space-2);text-align:left;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:inherit;cursor:pointer;flex-direction:column;display:flex}.menu-cell:hover:not(:disabled){border-color:var(--brand)}.menu-cell:disabled{cursor:default;opacity:.7}.menu-cell__items{font-size:var(--text-sm)}.menu-cell__empty{font-size:var(--text-sm);color:var(--ink-muted)}.menu-cell__allergens{font-size:var(--text-xs);color:var(--warning-ink)}.menu-cell--list{gap:var(--space-1);min-height:0;display:grid}.menu-meals{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.menu-meal{padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised)}.menu-meal--alert{border-color:var(--danger);background:var(--danger-tint)}.menu-meal__head{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.menu-meal__items{margin:var(--space-1) 0}.menu-alert{margin:var(--space-2) 0 0;color:var(--danger-ink);font-size:var(--text-sm)}.menu-today__child+.menu-today__child{margin-top:var(--space-3)}.menu-served{margin:var(--space-2) 0;padding-left:var(--space-4)}.menu-alerts{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.menu-alerts__group+.menu-alerts__group{margin-top:var(--space-4)}.menu-alerts__item{padding:var(--space-3);border-radius:var(--radius-md);border-left:3px solid var(--warning-ink);background:var(--warning-tint);color:var(--ink)}.menu-alerts__item--severe{border-left-color:var(--danger);background:var(--danger-tint);color:var(--danger-ink)}@media (width>=641px){.menu-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-grid{gap:var(--space-2);display:grid;overflow-x:auto}.menu-days{display:none}}@media print{.menu-toolbar,.menu-actions,.menu-note,.layout__drawer,.layout__header{display:none!important}.menu-days{display:grid}.menu-alerts__item{border:1px solid var(--ink);background:0 0}}.absence-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.absence-item{border:1px solid var(--line);padding:var(--space-4);gap:var(--space-2);border-radius:12px;display:grid}.absence-item p{margin:0}.absence-item .form--inline{flex-wrap:wrap}.question-view{gap:var(--space-3);display:grid}.question-view__heading{font-size:var(--text-lg);margin:0}.question-view__language,.question-support__ref{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.question-support{border-left:3px solid var(--line-strong);padding:var(--space-2) var(--space-3);background:var(--surface-raised);border-radius:var(--radius-md);gap:var(--space-1);display:grid}.question-md{overflow-wrap:anywhere;line-height:var(--leading-normal)}.question-md p{margin:0 0 var(--space-2)}.question-md--inline p,.question-md--inline{margin:0;display:inline}.question-md table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.question-md th,.question-md td{border:1px solid var(--line);padding:var(--space-1) var(--space-2)}.question-math-error{color:var(--danger-ink)}.question-image{border-radius:var(--radius-sm);max-width:100%;height:auto;display:block}.question-figure{margin:0}.question-image-refused,.question-view__missing{color:var(--danger-ink);font-size:var(--text-sm)}.question-alt{display:inline}.question-alts{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.question-alts__item{padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md)}.question-alts__item--correct{border-color:var(--success-ink);background:var(--success-tint)}.question-alts__mark{color:var(--ink-muted);font-size:var(--text-sm)}.question-table__preview{max-width:28rem;color:var(--ink-muted);font-size:var(--text-sm)}.question-curation__original{margin-top:var(--space-4)}.question-curation__support{gap:var(--space-1);display:grid}.console-cards{gap:var(--space-3);margin-bottom:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));display:grid}.console-card{gap:var(--space-1);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);min-height:var(--tap);text-decoration:none;display:grid}.console-card:hover,.console-card:focus-visible{border-color:var(--line-strong)}.console-card__value{font-size:var(--text-xl);font-weight:600}.console-card__label{color:var(--ink-muted);font-size:var(--text-sm)}.console-plan{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.progress-grid__bar{vertical-align:middle;width:8rem;max-width:100%;margin-top:0;display:inline-block}.review{gap:var(--space-4);display:grid}.review__position{margin:0}.review__grid{gap:var(--space-4);align-items:start;display:grid}.review__source{gap:var(--space-2);display:grid}.review__image{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--media-bg);max-width:100%;height:auto}.review__missing,.review__usage{color:var(--warning-ink);background:var(--warning-tint);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);margin:0}.review__edit{gap:var(--space-4);min-width:0;display:grid}.review__answer{border-top:1px solid var(--line);padding-top:var(--space-3)}.review__reasons{gap:var(--space-2);border-top:1px solid var(--line);padding-top:var(--space-3);display:grid}.review__reasons h2{margin:0}.review__reason-list{padding-left:var(--space-4);gap:var(--space-1);margin:0;display:grid}.review__credit{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.review__shortcuts{gap:var(--space-2);margin:0;display:grid}.review__shortcuts>div{gap:var(--space-3);align-items:baseline;display:flex}.review__shortcuts dt{min-width:3rem}@media (width>=1024px){.review__grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}.review__source{top:calc(var(--space-8) + var(--space-4));max-height:calc(100vh - var(--space-8) * 2);position:sticky;overflow-y:auto}}.exam-take__credit{color:var(--ink-muted);font-size:var(--text-sm);margin:0}.exam-take__image{max-width:100%}.exam-take{overflow-wrap:anywhere}.exam-take__top{gap:var(--space-1);margin-bottom:var(--space-4);display:grid}.exam-take__top h1{margin:0}.exam-take__timer{font-size:var(--text-xl);font-variant-numeric:tabular-nums;color:var(--ink);margin:0;font-weight:700}.exam-take__question{overflow-wrap:anywhere;min-width:0}.exam-take__question img{max-width:100%;height:auto}.exam-take__nav{gap:var(--space-2);margin-block:var(--space-4);flex-wrap:wrap;display:flex}.exam-take__dot{min-width:var(--tap);min-height:var(--tap);padding:var(--space-1) var(--space-2);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:inherit;font-size:var(--text-sm);cursor:pointer;font-weight:600}.exam-take__dot--answered{border:2px solid var(--brand)}.exam-take__dot--current{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.exam-take__pager,.exam-manage__actions{align-items:center;gap:var(--space-2);margin-block:var(--space-2);flex-wrap:wrap;display:flex}.exam-take__save{margin:var(--space-2) 0;font-size:var(--text-sm);color:var(--ink-muted)}.results-panel{margin-block:var(--space-5);overflow-wrap:anywhere}.results-panel h3{margin-block:var(--space-4) var(--space-2);font-size:var(--text-lg)}.exam-result__question{gap:var(--space-2);overflow-wrap:anywhere;min-width:0;display:grid}.exam-result__question img{max-width:100%;height:auto}.dashboard .console-card__value{font-size:var(--text-2xl)}.dash-charts{gap:var(--space-5);margin-bottom:var(--space-4);display:grid}.dash-chart{min-width:0;margin:0}.dash-chart__title{font-weight:600;font-size:var(--text-lg);margin-bottom:var(--space-2)}.dash-chart__svg{width:100%;height:auto;display:block}.dash-chart__grid{stroke:var(--line);stroke-width:1px}.dash-chart__tick{fill:var(--ink-muted);font-size:var(--text-xs)}.dash-legend{gap:var(--space-3);margin:var(--space-2) 0 0;color:var(--ink);font-size:var(--text-sm);flex-wrap:wrap;padding:0;list-style:none;display:flex}.dash-legend li{align-items:center;gap:var(--space-2);display:inline-flex}.dash-legend__swatch{width:var(--space-3);height:var(--space-3);border-radius:var(--radius-sm);display:inline-block}.dash-table{margin-top:var(--space-2)}.dash-table summary{cursor:pointer;color:var(--brand-text)}.dash-rankings{gap:var(--space-4);display:grid}.dash-list{padding-left:var(--space-5)}.dash-list li{margin-bottom:var(--space-2)}.library-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.library-list>li{margin:0}.library-title{align-items:center;gap:var(--space-3);display:flex}.library-cover{object-fit:cover;border-radius:var(--radius-sm);background:var(--media-bg);flex:none;width:48px;height:64px}.plain-list{margin:var(--space-2) 0;gap:var(--space-1);padding:0;list-style:none;display:grid}.plain-list li{overflow-wrap:anywhere}.menu-meals--compact{gap:var(--space-2)}.tt-lesson__subject{overflow-wrap:anywhere;font-weight:600}.extras-grade{min-width:calc(var(--space-8) * 1.5)}.audit-json{white-space:pre-wrap;overflow-wrap:anywhere;font-size:var(--text-sm);margin:0}.plain-text{white-space:pre-line}.calendar__item{overflow-wrap:anywhere}.alert p{margin:0}.alert p+p{margin-top:var(--space-1)}.form-human{gap:var(--space-2);display:grid}.turnstile-slot{max-width:100%}
