.error-screen{padding:var(--space-4);grid-template-columns:minmax(0,1fr);place-items:center;display:grid}.error-screen--app{min-height:100dvh;padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:var(--color-bg)}.error-screen__card{gap:var(--space-3);width:100%;max-width:28rem;display:grid}.error-screen__card h1,.error-screen__card p{margin:0}.error-screen__logo{width:auto;height:56px;padding:var(--space-2) var(--space-3);background:var(--brand-purple);border-radius:var(--radius);justify-self:start}.error-screen__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.error-screen__actions .button{flex:10rem}.toast-region{right:var(--space-4);bottom:var(--space-4);left:var(--space-4);z-index:200;pointer-events:none;justify-content:center;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-1);width:min(100%,32rem);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);color:var(--color-toast-text);background:var(--color-toast-bg);border-radius:var(--radius);pointer-events:auto;display:flex;box-shadow:0 8px 24px #00000059}.toast__message{flex:auto;min-width:0;margin:0}.toast__button{min-width:44px;min-height:44px;padding:var(--space-2) var(--space-2);font:inherit;color:inherit;border-radius:var(--radius);cursor:pointer;background:0 0;border:0;flex:none;font-weight:600}.toast__button:hover{background:#ffffff1f}.toast__button:focus-visible{outline-color:var(--color-toast-focus)}.toast__undo{color:var(--color-toast-action);text-decoration:underline}@media (width<=899px){.toast-region{bottom:calc(var(--nav-bottom-height) + var(--space-3) + env(safe-area-inset-bottom,0px))}}.form-renderer,.form-section{gap:var(--space-4);min-width:0;display:grid}.form-section__title{color:var(--color-text);margin:0;font-size:1.0625rem}.form-q{gap:var(--space-2);border:0;min-width:0;margin:0;padding:0;display:grid}.form-q__label{margin:0;padding:0;font-weight:600}.form-q__value{white-space:pre-wrap;margin:0}.form-q--info .form-q__label{color:var(--color-text-muted);font-weight:600}.form-q__error{padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface-2);border-left:4px solid var(--color-danger);border-radius:8px;margin:0;font-weight:600}.form-q .input[aria-invalid=true]{border-color:var(--color-danger)}.form-q__choices{gap:0 var(--space-3);display:grid}.form-q__choices--inline{flex-wrap:wrap;display:flex}.form-q__consent{align-items:flex-start}.form-q__consent input{flex:none;margin-top:12px}.form-parts{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.form-part{gap:var(--space-1);flex:8rem;min-width:0;display:grid}.form-part--wide{flex-basis:12rem}.form-part__label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.form-parts__echo{flex-basis:100%}.form-grid,.form-avail{gap:var(--space-2);display:grid}.form-grid__row{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:8px;margin:0}.form-grid__legend{padding:0 var(--space-1);font-weight:600}.form-rank{gap:var(--space-2);display:grid}.form-rank__list{gap:var(--space-2);padding-left:var(--space-5);margin:0;display:grid}.form-rank__item{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.form-rank__name{flex:10rem;min-width:0}.form-rank .button:disabled{opacity:.5;cursor:not-allowed}.form-rank__actions,.form-rank__add{gap:var(--space-2);flex-wrap:wrap;display:flex}.form-errors{gap:var(--space-2);display:grid}.form-errors:focus{outline:3px solid var(--color-focus);outline-offset:2px}.form-errors__title{margin:0;font-size:1rem}.form-errors__list{padding-left:var(--space-5);margin:0}.form-errors__list a{min-height:44px;padding:var(--space-2) 0;color:var(--color-link);font-weight:600;display:inline-block}.form-answers{gap:var(--space-3);margin:0;display:grid}.form-answers__row{gap:var(--space-1);min-width:0;display:grid}.form-answers dt{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.form-answers dd{white-space:pre-wrap;margin:0}.form-answers__rows{padding-left:var(--space-5);margin:0}.topics{gap:var(--space-4);min-width:0;display:grid}.topics__subject{gap:var(--space-3);min-width:0;display:grid}.topics__title{margin:0;font-size:1.0625rem}.topics__count{color:var(--color-text-muted);margin:0;font-weight:600}.topics__group{gap:var(--space-2);min-width:0;display:grid}.topics__topic{padding:var(--space-2) var(--space-3);background:var(--color-surface-2);border-radius:8px;margin:0;font-size:1rem}.topics__none{margin:0}.topic-row{min-width:0;padding:var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--color-border);border-radius:8px;margin:0}.topic-row__name{padding:0 var(--space-1);font-weight:600}.topic-row__controls{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.topic-row__control{gap:var(--space-1);flex:12rem;min-width:0;display:grid}.topic-row__label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.topic-row .input[aria-invalid=true]{border-color:var(--color-danger)}.upload{gap:var(--space-3);min-width:0;display:grid}.upload__files{gap:var(--space-1);padding-left:var(--space-5);margin:0;display:grid}.upload__file{font-weight:600}.upload__details{gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.upload__detail{gap:var(--space-1);flex:10rem;min-width:0;display:grid}.upload__detail label{color:var(--color-text-muted);font-size:.875rem;font-weight:600}.upload__pick{gap:var(--space-2);flex-wrap:wrap;display:flex}.upload__pick .button{flex:10rem}@media (hover:hover) and (pointer:fine){.upload__pick .upload__camera{display:none}}.upload__progress{gap:var(--space-1);display:grid}.upload__progress progress{width:100%;height:12px;accent-color:var(--brand-purple)}.upload__status{margin:0;font-weight:600}.upload__status:empty{display:none}.field{gap:var(--space-1);min-width:0;display:grid}.field__label{color:var(--color-text-muted);font-size:.8125rem;font-weight:600}.field__value{align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);font:inherit;text-align:left;color:var(--color-text);border-radius:var(--radius);cursor:text;background:0 0;border:1px dashed #0000;display:flex}.field__value:hover{background:var(--color-surface-2);border-color:var(--color-border)}.field__empty{color:var(--color-text-muted);font-style:italic}.field__lock{color:var(--color-text-muted);flex:none;margin-left:auto}.field__error{padding:var(--space-2) var(--space-3);color:var(--color-text);background:var(--color-surface-2);border-left:4px solid var(--color-danger);border-radius:8px;margin:0}.field__link{min-height:44px;padding:0 var(--space-2);font:inherit;color:var(--color-link);cursor:pointer;background:0 0;border:0;font-weight:600;text-decoration:underline}.field__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.family-page{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.family-page__header{padding:var(--space-3) var(--space-4);padding-top:calc(var(--space-3) + env(safe-area-inset-top,0px));background:var(--brand-purple);align-items:center;display:flex}.family-page__logo{width:auto;height:44px}.family-page__main{align-content:start;gap:var(--space-4);width:100%;max-width:44rem;padding:var(--space-4);min-width:0;margin:0 auto;display:grid}.family-page__main>*{min-width:0;margin-top:0;margin-bottom:0}.family-page__title{font-size:1.5rem}.family-page__title:focus{outline:none}.family-page__lead{font-size:1.0625rem}.family-page__for{color:var(--color-text-muted);font-weight:600}.family-page__back{justify-self:start;min-height:44px}.family-page__message{gap:var(--space-3);justify-items:start;display:grid}.family-page__message p{margin:0;font-size:1.0625rem}.family-page__actions{gap:var(--space-2);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);display:grid}.family-page__saving{color:var(--color-text-muted);margin:0}.family-page__send{width:100%;font-size:1.0625rem}.family-page__footer{padding:var(--space-4);padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));color:var(--color-text-muted);border-top:1px solid var(--color-border);font-size:.875rem}.family-page__footer p{max-width:44rem;margin:0 auto}.family-forms{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.family-forms__item{gap:var(--space-2);justify-items:start;display:grid}.family-forms__title{margin:0;font-size:1.125rem}.family-forms__for,.family-forms__status{margin:0}.family-forms__item .button{width:100%}@media (width>=600px){.family-page__main{padding:var(--space-5)}.family-page__send,.family-forms__item .button{justify-self:start;width:auto}}.alert-badge{min-width:44px;min-height:44px;color:var(--color-header-text);border-radius:var(--radius);flex:none;justify-content:center;align-items:center;margin-left:auto;display:inline-flex;position:relative}.alert-badge:hover{background:#ffffff26}.alert-badge:focus-visible{outline-color:var(--color-header-focus)}.alert-badge__count{text-align:center;font-variant-numeric:tabular-nums;min-width:20px;color:var(--color-on-accent);background:var(--color-accent);border-radius:999px;padding:0 5px;font-size:.75rem;font-weight:700;line-height:20px;position:absolute;top:2px;right:0}.alert-popups{top:calc(64px + env(safe-area-inset-top,0px));right:var(--space-4);z-index:50;gap:var(--space-2);width:min(24rem, calc(100vw - 2 * var(--space-4)));display:grid;position:fixed}.alert-popup{padding:var(--space-3) var(--space-4);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);border-left-width:6px;box-shadow:0 8px 28px #0000004d}.alert-popup[data-tier=critical]{border-left-color:var(--color-danger)}.alert-popup[data-tier=high]{border-left-color:var(--color-accent)}.alert-popup__tier{align-items:center;gap:var(--space-1);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.8125rem;font-weight:700;display:flex}.alert-popup[data-tier=critical] .alert-popup__tier{color:var(--color-danger)}.alert-popup__title{margin:var(--space-1) 0 var(--space-3);font-weight:600}.alert-popup__actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.alert-popups__more{padding:var(--space-2) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0;font-size:.875rem}@media (prefers-reduced-motion:no-preference){.alert-popup{animation:.18s ease-out alert-popup-in}}@keyframes alert-popup-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.alert-popups__backlog{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-1) var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin:0;font-size:.875rem;display:flex}.alert-popups__backlog a{align-items:center;min-height:44px;font-weight:600;display:inline-flex}@media (width<=599px){.alert-popups{top:calc(60px + env(safe-area-inset-top,0px));right:var(--space-2);left:var(--space-2);gap:var(--space-1);width:auto}.alert-popup{padding:var(--space-2) var(--space-3)}.alert-popup__title{margin:0 0 var(--space-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.alert-popup__actions{flex-wrap:nowrap}.alert-popups--chip{left:auto}}.alert-chip{align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);font:inherit;color:var(--color-text);background:var(--color-surface);border:2px solid var(--color-border);cursor:pointer;border-radius:999px;font-size:.875rem;font-weight:700;display:inline-flex;box-shadow:0 4px 14px #00000040}.alert-chip[data-tier=critical]{border-color:var(--color-danger)}.alert-chip[data-tier=high]{border-color:var(--color-accent)}.skip-link{z-index:100;padding:var(--space-3) var(--space-4);min-height:44px;color:var(--color-on-primary);background:var(--color-primary);position:absolute;top:0;left:0;transform:translateY(-120%)}.skip-link:focus{outline:3px solid var(--color-header-focus);outline-offset:-3px;transform:translateY(0)}.shell{grid-template:"header""main"minmax(0,1fr)/minmax(0,1fr);min-height:100dvh;display:grid}.shell[data-layout=side]{grid-template-columns:var(--nav-side-width) minmax(0, 1fr);grid-template-areas:"header header""nav main"}.shell__header{z-index:10;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);padding-top:calc(var(--space-2) + env(safe-area-inset-top,0px));padding-left:calc(var(--space-4) + env(safe-area-inset-left,0px));padding-right:calc(var(--space-4) + env(safe-area-inset-right,0px));color:var(--color-header-text);background:var(--color-header-bg);grid-area:header;display:flex;position:sticky;top:0}.shell__header :focus-visible{outline-color:var(--color-header-focus)}.shell__logo{width:auto;height:36px;display:block}.shell__title{margin:0;font-size:1rem;font-weight:600}.shell__main{min-width:0;padding:var(--space-4);padding-left:calc(var(--space-4) + env(safe-area-inset-left,0px));padding-right:calc(var(--space-4) + env(safe-area-inset-right,0px));grid-area:main}.shell[data-layout=bottom] .shell__main{padding-bottom:calc(var(--nav-bottom-height) + var(--space-4) + env(safe-area-inset-bottom,0px))}.shell[data-layout=side] .shell__main{padding:var(--space-5);max-width:72rem}.nav{background:var(--color-surface);border-color:var(--color-border)}.nav__list{margin:0;padding:0;list-style:none;display:flex}.nav__item{min-width:0}.nav-link{min-width:44px;min-height:44px;color:var(--color-text-muted);align-items:center;font-weight:600;text-decoration:none;display:flex}.nav-link:hover{color:var(--color-text)}.nav-link[aria-current=page]{color:var(--color-link)}.nav-link__icon{flex:none;width:24px;height:24px}.nav[data-layout=side]{height:calc(100dvh - 56px);padding:var(--space-3);padding-left:calc(var(--space-3) + env(safe-area-inset-left,0px));border-right:1px solid var(--color-border);grid-area:nav;align-self:start;position:sticky;top:56px}.nav[data-layout=side] .nav__list{gap:var(--space-1);flex-direction:column}.nav[data-layout=side] .nav-link{gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius)}.nav[data-layout=side] .nav-link[aria-current=page]{background:var(--color-surface-2)}.nav[data-layout=bottom]{z-index:20;padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);border-top:1px solid var(--color-border);position:fixed;bottom:0;left:0;right:0}.nav[data-layout=bottom] .nav__item{flex:1 1 0}.nav[data-layout=bottom] .nav-link{min-height:64px;padding:var(--space-1) 0;text-align:center;flex-direction:column;justify-content:center;gap:2px;font-size:.75rem}.nav[data-layout=bottom] .nav-link[aria-current=page]{box-shadow:inset 0 3px 0 var(--color-accent)}.quickview__line{align-items:center;gap:var(--space-2) var(--space-3);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.quickview__id{color:var(--color-text-muted);font-size:.875rem}.quickview h3{margin:var(--space-4) 0 var(--space-2);font-size:1rem}.quickview__list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.quickview__stage{margin:var(--space-1) 0 0}.quickview a:not(.button){align-items:center;min-height:44px;display:inline-flex}.today__grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr));align-items:start;display:grid}.today__head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.today__head h2{margin:0;font-size:1.125rem}.today__count{min-width:2rem;padding:2px var(--space-2);text-align:center;font-variant-numeric:tabular-nums;color:var(--color-on-primary);background:var(--color-primary);border-radius:999px;font-weight:700}.today__empty{color:var(--color-text-muted);margin:0}.today__list{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.today__item{gap:var(--space-1);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);font:inherit;text-align:left;color:var(--color-text);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius);cursor:pointer;display:grid}.today__item:hover{border-color:var(--color-primary)}.today__title{font-weight:600}.today__meta{align-items:center;gap:var(--space-2);color:var(--color-text-muted);flex-wrap:wrap;font-size:.875rem;display:flex}.login{min-height:100dvh;padding:var(--space-4);padding-top:calc(var(--space-4) + env(safe-area-inset-top,0px));padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));grid-template-columns:minmax(0,1fr);place-items:center;display:grid}.login__card{gap:var(--space-3);width:100%;max-width:26rem;display:grid}.login__logo{width:auto;height:56px;padding:var(--space-2) var(--space-3);background:var(--brand-purple);border-radius:var(--radius);justify-self:start}.login__card h1,.login__card h2{margin:0}.login__card h2{font-size:1.125rem}.login__hint{color:var(--color-text-muted);margin:0;font-size:.875rem}.login__google{text-align:center}.login__dev{gap:var(--space-2);padding-top:var(--space-4);border-top:1px dashed var(--color-border);display:grid}.login__dev select{width:100%;min-width:0;min-height:44px;padding:var(--space-2) var(--space-3);font:inherit;color:var(--color-text);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius)}.login__idle{gap:var(--space-2);margin:0;display:grid}.login__idle h2{font-size:1rem}.login__idle p{margin:0}@font-face{font-family:Sora;src:url(/fonts/Sora-VariableFont_wght.ttf)format("truetype");font-weight:100 800;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-sans:"Sora", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--brand-purple:#9b26b6;--brand-orange:#ff9425;--color-bg:#faf7fc;--color-surface:#fff;--color-surface-2:#f1e9f5;--color-border:#ddd0e3;--color-text:#1f1626;--color-text-muted:#5c4a68;--color-primary:var(--brand-purple);--color-on-primary:#fff;--color-link:#7f1f97;--color-accent:var(--brand-orange);--color-on-accent:#1f1626;--color-focus:#7f1f97;--color-danger:#b3261e;--color-header-bg:var(--brand-purple);--color-header-text:#fff;--color-header-focus:#fff;--color-scrim:#1f16268c;--color-toast-bg:#2b1f35;--color-toast-text:#fff;--color-toast-action:#ffc480;--color-toast-focus:#fff;--color-ok-bg:#e0f3e4;--color-ok-text:#17542a;--color-soon-bg:#fff0d1;--color-soon-text:#734300;--color-late-bg:#fde5e2;--color-late-text:#8a1b15;--touch-target:44px;--radius:12px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--nav-side-width:232px;--nav-bottom-height:64px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--color-bg:#15101a;--color-surface:#1f1827;--color-surface-2:#2a2033;--color-border:#3d3049;--color-text:#f4eef7;--color-text-muted:#c5b6cf;--color-link:#e0a8f0;--color-focus:var(--brand-orange);--color-danger:#ffb4ab;--color-scrim:#000000a6;--color-toast-bg:#f4eef7;--color-toast-text:#1f1626;--color-toast-action:#7f1f97;--color-toast-focus:#1f1626;--color-ok-bg:#1d3a26;--color-ok-text:#b9e8c4;--color-soon-bg:#4a3410;--color-soon-text:#ffd9a0;--color-late-bg:#4d1f1c;--color-late-text:#ffc9c4}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-width:320px;font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);overflow-wrap:anywhere;margin:0;font-size:1rem;line-height:1.5}img,svg{max-width:100%}h1,h2,h3{margin:0 0 var(--space-3);line-height:1.25}h1{font-size:1.5rem}a{color:var(--color-link)}:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px}main:focus{outline:none}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.button{justify-content:center;align-items:center;gap:var(--space-2);min-width:44px;min-height:44px;padding:var(--space-2) var(--space-4);font:inherit;color:var(--color-on-primary);background:var(--color-primary);border:2px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{filter:brightness(.92)}.button:disabled{cursor:not-allowed;filter:none;opacity:.55}.button--secondary{color:var(--color-link);border-color:var(--color-border);background:0 0}.card{padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius)}.placeholder{border-style:dashed}.placeholder__tag{margin:0 0 var(--space-2);padding:2px var(--space-2);letter-spacing:.04em;text-transform:uppercase;color:var(--color-on-accent);background:var(--color-accent);border-radius:6px;font-size:.75rem;font-weight:600;display:inline-block}.notice{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border-left:4px solid var(--color-accent);border-radius:8px}.notice--error{border-left-color:var(--color-danger)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.page-status{padding:var(--space-5) var(--space-4);text-align:center}
