:root{color-scheme:light dark;--color-bg: #eef1f3;--color-surface: #ffffff;--color-surface-2: #f5f8f8;--color-surface-muted: #eef2f1;--color-primary: #0b4f4a;--color-primary-strong: #0f6b63;--color-text: #16211f;--color-text-muted: #5b6b68;--color-error: #9c3524;--color-error-bg: #f7e2de;--color-error-border: #e6bdb4;--color-border: #dbe3e1;--color-rule-strong: #a9b7b4;--color-active: #dceae7;--color-on-primary: #ffffff;--color-on-brand: #ffffff;--color-badge-bg: #9c3524;--color-badge-fg: #ffffff;--color-badge-wait-bg: #8a5a00;--color-badge-wait-fg: #ffffff;--fs-2xs: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 15px;--fs-xl: 16px;--fs-2xl: 18px;--fs-3xl: 22px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--shadow: 0 1px 2px rgba(40, 44, 90, .08), 0 4px 14px rgba(40, 44, 90, .08);--shadow-lifted: 0 6px 20px rgba(40, 44, 90, .18);--shadow-modal: 0 8px 32px rgba(40, 44, 90, .25);--color-scrim: rgba(28, 30, 38, .4);--st-ok-border: #a9cdc7;--st-late-border: #e8cf9a;--brand-grad: linear-gradient(135deg, #0f6b63 0%, #0b4f4a 55%, #0a3f45 100%);--footer-h: 60px;--font-sans: "Archivo", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--st-absent-bg: #f7e2de;--st-absent-fg: #9c3524;--st-late-bg: #fbebcb;--st-late-fg: #8a5a00;--st-info-bg: #dceae7;--st-info-fg: #0b4f4a;--st-ok-bg: #dceae7;--st-ok-fg: #0b4f4a;--av1-bg: #e7ecfd;--av1-fg: #3a4fd0;--av2-bg: #e2f6f1;--av2-fg: #08665e;--av3-bg: #fdeede;--av3-fg: #8c5307;--av4-bg: #fbe6f0;--av4-fg: #be1d68;--av5-bg: #e8f3e2;--av5-fg: #2e6621;--av6-bg: #eee9fb;--av6-fg: #6a4bd1}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*{-webkit-tap-highlight-color:transparent}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}body{font-family:var(--font-sans);line-height:1.45;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border)}.appbar__where{min-width:0;flex:1}.appbar__title{display:block;font-weight:600;font-size:var(--fs-xl);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar__sub{display:block;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.appbar__switch{flex-shrink:0;border:1px solid var(--color-border);background:transparent;color:var(--color-text-muted);border-radius:var(--radius-sm);padding:7px 10px;font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer}.appbar__switch:hover{border-color:var(--color-rule-strong);color:var(--color-text)}.appbar__brand{display:flex;align-items:center;gap:10px;min-width:0}.appbar__logo{background:var(--brand-grad);color:var(--color-on-brand);border-radius:var(--radius-md);width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-sm);flex-shrink:0;box-shadow:0 2px 6px #3a4fd059}.appbar__title{font-weight:600;font-size:var(--fs-lg)}.lang-switch{font-family:inherit;font-size:var(--fs-xl);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:4px 8px}.settings{position:relative}.settings__gear{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--color-text-muted);border-radius:50%;cursor:pointer;transition:background .15s,color .15s}.settings__gear:hover{background:var(--color-active);color:var(--color-primary)}.settings__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20}.settings__panel{position:absolute;bottom:calc(100% + 8px);left:0;z-index:21;min-width:220px;padding:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.settings__title{font-size:var(--fs-xs);font-weight:600;color:var(--color-text-muted);padding:4px 8px 8px}.settings__row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px}.settings__label{font-size:var(--fs-md)}.settings__sep{height:1px;background:var(--color-border);margin:6px 0}.settings__logout{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:inherit;text-align:left;color:var(--color-error);cursor:pointer}.settings__logout:hover{background:var(--color-error-bg)}.settings__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:inherit;text-align:left;color:var(--color-text);cursor:pointer}.settings__item:hover{background:var(--color-active);color:var(--color-primary)}.kebab{position:relative}.kebab__btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--color-text-muted);border-radius:50%;cursor:pointer;transition:background .15s,color .15s}.kebab__btn:hover{background:var(--color-active);color:var(--color-primary)}.kebab__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40}.kebab__panel{position:fixed;z-index:41;min-width:200px;max-width:calc(100vw - 16px);padding:8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.kebab__item{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:none;background:transparent;border-radius:var(--radius-sm);font-size:var(--fs-md);font-family:inherit;text-align:left;color:var(--color-text);cursor:pointer}.kebab__item:hover:not(:disabled){background:var(--color-active);color:var(--color-primary)}.kebab__item:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.linklike{border:none;background:transparent;padding:0;font-family:inherit;font-size:var(--fs-sm);color:var(--color-primary);cursor:pointer}.linklike:hover{text-decoration:underline}.detail{padding:4px 4px 8px}.detail__row{display:flex;justify-content:space-between;gap:16px;padding:12px 14px}.detail__row:not(:last-child){border-bottom:1px solid var(--color-border)}.detail__label{font-size:var(--fs-sm);color:var(--color-text-muted)}.detail__value{font-size:var(--fs-md);font-weight:500;text-align:right}.guardians{padding:4px 4px 12px;border-top:1px solid var(--color-border)}.guardians__title{font-size:var(--fs-sm);font-weight:600;color:var(--color-text-muted);padding:12px 14px 4px}.guardians__subtitle{font-size:var(--fs-lg);font-weight:500;margin-bottom:4px}.guardians__meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.guardians__form{padding:8px 14px 0}.guardians__readback{font-size:var(--fs-2xl);font-weight:600;line-height:1.3;overflow-wrap:anywhere;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-active);text-align:center}.codes{padding:4px 4px 12px}.codes__meta{display:flex;align-items:center;gap:8px;margin-top:4px;flex-wrap:wrap}.codes__code{font-family:var(--font-mono, ui-monospace, SFMono-Regular, Menlo, monospace);font-size:var(--fs-lg);font-weight:600;letter-spacing:.08em}.codes--past{opacity:.65}.att-tag--pending{background:var(--st-late-bg);color:var(--st-late-fg)}.att-tag--expired{background:var(--st-absent-bg);color:var(--st-absent-fg)}.btn--quiet{background:transparent;color:var(--color-text-muted);padding-inline:var(--sp-2)}.btn--quiet:hover{color:var(--color-text)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-family:inherit;color:var(--color-text);font-size:var(--fs-md);font-weight:500;padding:10px var(--sp-4);min-height:44px;transition:background .15s,opacity .15s,box-shadow .15s,filter .15s}.btn:disabled{cursor:not-allowed;background:var(--color-active);background-image:none;color:var(--color-text-muted);box-shadow:none}.btn--brand{background:var(--brand-grad);color:var(--color-on-brand);box-shadow:0 2px 8px #3a4fd047}.btn--brand:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 14px #3a4fd05c}.btn--primary{background:var(--color-primary);color:var(--color-on-primary)}.btn--primary:hover:not(:disabled){background:var(--color-primary-strong)}.btn--danger{background:var(--color-error-bg);color:var(--color-error);box-shadow:inset 0 0 0 1px var(--color-error-border)}.btn--danger:hover:not(:disabled){filter:brightness(.97)}.btn--ghost{background:transparent;color:var(--color-primary)}.btn--ghost:hover:not(:disabled){background:var(--color-active)}.btn--sm{padding:6px 14px;font-size:var(--fs-sm);min-height:36px}.btn--block{width:100%;margin-top:8px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.field__label{font-size:var(--fs-sm);font-weight:500;color:var(--color-text)}.field__input{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;font-size:var(--fs-xl);font-family:inherit;color:var(--color-text);background:var(--color-surface);transition:border-color .15s}.field__input:focus{border-color:var(--color-primary)}.field__input:focus-visible{outline-offset:0}.field__input--area{resize:vertical;min-height:96px;line-height:1.4}.field__hint{font-size:var(--fs-xs);color:var(--color-text-muted)}.sent__toolbar{margin-bottom:14px}.sent-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.sent{display:flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px}.sent__main{flex:1;min-width:0}.sent--editing{display:block}.sent__open{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;min-width:40px;min-height:40px;padding:9px;margin-right:-6px;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer}.sent__open:hover,.sent__open:focus-visible{background:var(--color-active);color:var(--color-primary)}.sent__chevron{flex-shrink:0}.sent--retracted{opacity:.65}.sent__head{display:flex;align-items:center;gap:8px;justify-content:space-between}.sent__title{font-weight:600}.sent__body{margin:6px 0 0;white-space:pre-wrap}.sent__meta{margin:8px 0 0;font-size:var(--fs-xs);color:var(--color-text-muted)}.sent__actions{margin-top:10px}.sent-detail__back{margin-bottom:4px}.sent-detail .sent__body{margin:10px 0 0}.sent-detail__facts{margin:14px 0 0;font-size:var(--fs-sm);color:var(--color-text-muted)}.sent__quote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--color-border);background:var(--color-surface-muted);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.roster__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--sp-4);border-bottom:1px solid var(--color-border)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-scrim);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-modal);width:100%;max-width:360px;padding:20px}.modal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.modal__title{font-size:var(--fs-2xl);font-weight:700}.modal__close{border:none;background:transparent;font-size:var(--fs-xl);color:var(--color-text-muted);cursor:pointer;width:32px;height:32px;border-radius:50%}.modal__close:hover{background:var(--color-bg)}.modal__hint{font-size:var(--fs-sm);color:var(--color-text-muted);margin-bottom:14px}.modal__actions{display:flex;justify-content:space-between;gap:8px;margin-top:16px}.invite-qr{display:flex;flex-direction:column;align-items:center;gap:8px}.invite-qr svg{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px;background:#fff}.invite-qr__valid{font-size:var(--fs-xs);color:var(--color-text-muted)}.invite-delivery{display:flex;gap:4px;padding:3px;margin-bottom:12px;background:var(--color-surface-2);border-radius:var(--radius-md)}.invite-delivery__opt{flex:1;padding:7px 10px;border:0;border-radius:7px;background:transparent;color:var(--color-text-muted);font-size:var(--fs-sm);font-weight:500;cursor:pointer}.invite-delivery__opt--on{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #00000014}.invite-code{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:30px;font-weight:600;letter-spacing:.08em;line-height:1.2;color:var(--color-text);-webkit-user-select:all;user-select:all}.invite-qr--handout{gap:12px}.invite-qr--handout .invite-code{font-size:38px}.start__codelink{margin-top:10px}.start__code{display:flex;flex-direction:column;gap:8px;margin-top:12px}.start__code .field__input{font-size:var(--fs-xl)}.invite-code-input{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:22px;letter-spacing:.06em;text-align:center;text-transform:uppercase}.start__footer--end{justify-content:flex-end}.gsi{display:flex;flex-direction:column;gap:12px}.gsi__head{display:flex;align-items:center;gap:10px;margin-bottom:2px}.gsi__title{font-size:var(--fs-lg);font-weight:600}.gsi__subtitle{font-size:var(--fs-xs);color:var(--color-text-muted);margin-top:3px}.gsi__another{align-self:flex-start;border:none;background:transparent;padding:4px 0;font-family:inherit;font-size:var(--fs-sm);color:var(--color-primary);cursor:pointer}.gsi__another:hover{text-decoration:underline}.gsi__actions{display:flex;justify-content:space-between;gap:8px;margin-top:4px}.gsi__sim{font-size:var(--fs-2xs);color:var(--color-text-muted);text-align:center;margin-top:4px}.gsi__button{display:flex;justify-content:center;margin-top:4px}.btn-facebook{align-self:center;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:240px;min-height:40px;padding:0 20px;border:none;border-radius:999px;background:#1877f2;color:#fff;font-family:inherit;font-size:14px;font-weight:500;cursor:pointer}.btn-facebook:hover{background:#166fe0}.btn-facebook:active{background:#1462c8}.btn-facebook__icon{width:20px;height:20px;flex:none}.start{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:32px 16px}.start__card{width:100%;max-width:380px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow);padding:28px 24px}.start__head{display:flex;align-items:center;gap:12px;margin-bottom:18px}.start__title{font-size:var(--fs-3xl);font-weight:700}.start__subtitle{margin-top:4px;margin-bottom:16px;font-size:var(--fs-md);color:var(--color-text-muted)}.user-list{list-style:none;display:flex;flex-direction:column;gap:8px}.user-list__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;text-align:left;font-family:inherit;color:var(--color-text);transition:background .12s,border-color .12s}.user-list__item:hover:not(:disabled){background:var(--color-active);border-color:var(--color-primary)}.user-list__item:disabled{opacity:.6;cursor:default}.user-list__avatar{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--av1-bg);color:var(--av1-fg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:600}.user-list li:nth-child(6n+2) .user-list__avatar{background:var(--av2-bg);color:var(--av2-fg)}.user-list li:nth-child(6n+3) .user-list__avatar{background:var(--av3-bg);color:var(--av3-fg)}.user-list li:nth-child(6n+4) .user-list__avatar{background:var(--av4-bg);color:var(--av4-fg)}.user-list li:nth-child(6n+5) .user-list__avatar{background:var(--av5-bg);color:var(--av5-fg)}.user-list li:nth-child(6n) .user-list__avatar{background:var(--av6-bg);color:var(--av6-fg)}.user-list__text{display:flex;flex-direction:column;min-width:0}.user-list__name{font-size:var(--fs-lg);font-weight:500}.user-list__email{font-size:var(--fs-xs);color:var(--color-text-muted)}.user-list--rows{gap:0}.user-list--rows>li:not(:last-child){border-bottom:1px solid var(--color-border)}.user-list--rows .user-list__item{border:0;border-radius:0;background:none;padding:12px var(--sp-4);cursor:default}.user-list--rows .user-list__item:hover{background:none;border-color:transparent}.user-list--rows .user-list__text{flex:1}.user-list__open{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;min-width:40px;min-height:40px;padding:9px;margin-right:-6px;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer}.user-list__open:hover,.user-list__open:focus-visible{background:var(--color-active);color:var(--color-primary)}.user-list__chevron{flex-shrink:0}.start__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--color-border)}.start__qr{display:flex;flex-direction:column;align-items:center;gap:8px}.start__qr svg{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px;background:#fff}.start__qrhint{font-size:var(--fs-sm);color:var(--color-text-muted)}.start__origin{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--fs-xs);color:var(--color-text-muted);word-break:break-all;text-align:center}.surface{flex:1;width:100%;max-width:640px;margin:0 auto;padding-bottom:24px}.nav{flex:none;position:relative;display:flex;align-items:stretch;height:var(--footer-h);padding:0 4px;background:var(--color-surface);padding-bottom:env(safe-area-inset-bottom);box-sizing:content-box}.nav__rule{position:absolute;top:0;left:0;right:0;height:3px;background:var(--st-late-bg);overflow:hidden}.nav__rule i{display:block;height:100%;background:var(--color-primary);transition:width .5s cubic-bezier(.22,1,.36,1)}.nav__rule--flat{height:1px;background:var(--color-border)}.nav__btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 2px 7px;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;font:inherit;transition:color .14s}.nav__btn:hover{color:var(--color-text)}.nav__btn[aria-current=page]{color:var(--color-primary)}.nav__ico{position:relative;width:34px;height:26px;display:grid;place-items:center;border-radius:var(--radius-sm);transition:background .16s}.nav__btn[aria-current=page] .nav__ico{background:var(--color-active)}.nav__lbl{font-size:10px;letter-spacing:.02em;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav__btn[aria-current=page] .nav__lbl{font-weight:700}.nav__dot{position:absolute;top:-3px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:9px;font-weight:600;line-height:16px;text-align:center}.nav__dot--unread{background:var(--color-badge-bg);color:var(--color-badge-fg)}.nav__dot--wait{background:var(--color-badge-wait-bg);color:var(--color-badge-wait-fg)}.view{position:relative;flex:1;overflow:hidden}.page{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;overscroll-behavior:contain;background:var(--color-bg);padding-bottom:24px}.page>*{max-width:640px;margin-left:auto;margin-right:auto}.pane{padding:13px 16px calc(18px + env(safe-area-inset-bottom))}.view[data-anim]>.page{animation-duration:.27s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-fill-mode:both}.view[data-anim=fwd]>.page--lower{animation-name:pg-exit-left}.view[data-anim=fwd]>.page--upper{animation-name:pg-enter-right}.view[data-anim=back]>.page--upper{animation-name:pg-exit-right}.view[data-anim=back]>.page--lower{animation-name:pg-enter-left}.view[data-anim=tab]>.page--lower{animation-name:pg-fade-out}.view[data-anim=tab]>.page--upper{animation-name:pg-fade-in}@keyframes pg-enter-right{0%{transform:translate(100%)}}@keyframes pg-exit-left{0%{transform:none}to{transform:translate(-26%);opacity:.45}}@keyframes pg-enter-left{0%{transform:translate(-26%);opacity:.45}}@keyframes pg-exit-right{to{transform:translate(100%)}}@keyframes pg-fade-in{0%{opacity:0;transform:translateY(7px)}}@keyframes pg-fade-out{to{opacity:0}}@media(prefers-reduced-motion:reduce){.view[data-anim]>.page{animation-duration:.12s}.view[data-anim=fwd]>.page--upper,.view[data-anim=back]>.page--lower,.view[data-anim=tab]>.page--upper{animation-name:pg-fade-in-still}.view[data-anim=fwd]>.page--lower,.view[data-anim=back]>.page--upper,.view[data-anim=tab]>.page--lower{animation-name:pg-fade-out}@keyframes pg-fade-in-still{0%{opacity:0}}}.appbar__back{flex:none;width:34px;height:34px;display:grid;place-items:center;margin-left:-4px;border:none;background:transparent;color:var(--color-text-muted);border-radius:var(--radius-sm);cursor:pointer}.appbar__back:hover{background:var(--color-surface-2);color:var(--color-text)}.appbar__acct{flex:none;width:34px;height:34px;border-radius:50%;border:none;cursor:pointer;background:var(--brand-grad);color:var(--color-on-brand);font:inherit;font-size:var(--fs-xs);font-weight:700;display:grid;place-items:center}.appbar__acct:hover{filter:brightness(1.08)}.helpbtn{position:relative;flex:none;width:21px;height:21px;padding:0;border-radius:50%;border:1.25px solid var(--color-rule-strong);background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:11px;font-weight:700;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background .14s,color .14s,border-color .14s}.helpbtn:after{content:"";position:absolute;top:-11px;right:-11px;bottom:-11px;left:-11px}.helpbtn:hover{color:var(--color-text);border-color:var(--color-text-muted)}.helpbtn[aria-expanded=true]{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.help{padding:1px 0 1px 11px;margin:9px 0;border-left:1px solid var(--color-rule-strong);font-size:var(--fs-xs);line-height:1.5;color:var(--color-text-muted);animation:help-in .2s ease-out}@keyframes help-in{0%{transform:translateY(-4px)}to{transform:none}}.page>.help:first-child{margin:13px auto 0;width:calc(100% - 2 * var(--sp-4))}.whoami{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.whoami__avatar{flex:none;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--color-active);color:var(--color-primary);font-weight:600;font-size:var(--fs-md)}.whoami__text{min-width:0;display:flex;flex-direction:column;gap:1px}.whoami__name{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.01em;overflow-wrap:anywhere}.whoami__role{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-primary)}.whoami__email{font-size:var(--fs-xs);color:var(--color-text-muted);overflow-wrap:anywhere}.nudge{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 4px;padding:12px var(--sp-4);border:none;border-bottom:1px solid var(--color-border);background:var(--color-active);color:var(--color-primary);font:inherit;font-size:var(--fs-md);font-weight:500;text-align:left;cursor:pointer}.nudge:hover{background:var(--st-info-bg)}.nudge__icon{flex:none;display:inline-flex}.nudge__text{flex:1;min-width:0}.nudge__go{flex:none;display:inline-flex;opacity:.7}.day{padding:14px 16px 12px;background:var(--color-surface-2);border-bottom:1px solid var(--color-border)}.day__row{display:flex;align-items:center;gap:8px}.day__date{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase}.day__stripwrap{margin-top:11px}.day__strip{display:flex;flex-wrap:wrap;gap:3px}.day__legend{margin-top:8px;font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:1.4;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.mk{position:relative;flex:none;width:var(--mk, 18px);height:var(--mk, 18px);border:1.25px solid var(--color-rule-strong);border-radius:2px;background:var(--color-surface);display:grid;place-items:center;font-family:var(--font-mono);font-size:calc(var(--mk, 18px) * .5);font-weight:600;letter-spacing:-.04em;color:var(--st-absent-fg)}.mk:before{content:"";position:absolute;left:0;right:0;height:50%;background:var(--color-primary);opacity:0}.mk[data-c=tardy_late]:before{top:0;opacity:.85}.mk[data-c=tardy_cutting]:before{bottom:0;opacity:.85}.mk[data-c=absent_half],.mk[data-c=absent_full]{border-color:var(--color-error-border);background:var(--st-absent-bg)}.mk[data-c=excused]:after{content:"";width:calc(var(--mk, 18px) * .38);height:calc(var(--mk, 18px) * .38);border:1.5px solid var(--color-primary);border-radius:50%}.drawer__bar{display:flex;align-items:center;gap:8px;padding:10px var(--sp-4);border-bottom:1px solid var(--color-border)}.drawer__bar .field__input{flex:1;min-width:0;padding:6px 12px}.drawer__bar .kebab{flex:none;margin-left:auto}.stack{display:flex;flex-direction:column;gap:18px}.sublab{font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:8px}.menu{display:flex;flex-direction:column}.menu__i{display:flex;align-items:center;gap:10px;width:100%;padding:13px 2px;border:none;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text);font:inherit;font-size:var(--fs-lg);font-weight:500;text-align:left;cursor:pointer}.menu__i:last-child{border-bottom:none}.menu__i:hover{color:var(--color-primary)}.menu__i svg{flex:none;color:var(--color-text-muted)}.menu__i--danger,.menu__i--danger:hover{color:var(--color-error)}.menu__i--danger svg{color:var(--color-error)}.srf{padding:14px 16px;display:flex;flex-direction:column;gap:16px}.meter{display:flex;height:8px;border-radius:4px;background:var(--st-late-bg);border:1px solid var(--st-late-border);overflow:hidden}.meter i{display:block;height:100%;background:var(--color-primary)}.cov-list{list-style:none}.cov{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--color-border)}.cov:last-child{border-bottom:none}.cov__name{font-weight:600;font-size:var(--fs-lg);width:56px;flex:none}.cov__teacher{flex:1;min-width:0;font-size:var(--fs-md);color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tick{flex:none;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;font-size:var(--fs-2xs);font-weight:700}.tick--ok{background:var(--st-ok-bg);color:var(--st-ok-fg)}.tick--wait{background:var(--st-late-bg);color:var(--st-late-fg)}.tick--unknown{background:var(--color-surface-2);color:var(--color-text-muted)}.note{border-radius:var(--radius-lg);padding:12px 14px;font-size:var(--fs-md);line-height:1.5;border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text-muted)}.note--wait{background:var(--st-late-bg);border-color:var(--st-late-border);color:var(--st-late-fg)}.assign{margin-top:16px}.assign__row{display:flex;gap:8px;align-items:center}.assign__row .field__input{flex:1}.state{font-size:var(--fs-md);padding:12px 4px}.state--muted{color:var(--color-text-muted)}.state--error{color:var(--color-error);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:var(--radius-sm);padding:12px 14px}.state--success{color:var(--st-ok-fg);background:var(--st-ok-bg);border:1px solid var(--st-ok-border);border-radius:var(--radius-sm);padding:12px 14px}.state--pending{color:var(--st-late-fg);background:var(--st-late-bg);border:1px solid var(--st-late-border);border-radius:var(--radius-sm);padding:12px 14px}.greeting{margin-bottom:20px}.greeting__note{margin-top:4px;font-size:var(--fs-md);color:var(--color-text-muted)}.roster{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.roster__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:var(--sp-4) var(--sp-4) var(--sp-3);border-bottom:1px solid var(--color-border)}.roster>.state,.roster>.cal__term{padding-left:var(--sp-4);padding-right:var(--sp-4)}.roster>.state--error,.roster>.state--success,.roster>.state--pending{margin:12px var(--sp-4);padding:12px 14px}.roster__name{font-size:var(--fs-2xl);font-weight:700}.roster__sub{margin-top:2px;font-size:var(--fs-sm);color:var(--color-text-muted)}.roster__count{flex-shrink:0;font-size:var(--fs-xs);font-weight:600;color:var(--color-primary);background:var(--color-active);border-radius:var(--radius-pill);padding:4px 10px;white-space:nowrap}.cal__term{font-size:var(--fs-xs);color:var(--color-text-muted);padding:0 4px 8px}.cal__badge{flex-shrink:0;font-size:var(--fs-2xs);font-weight:600;color:var(--color-text-muted);background:var(--color-active);border-radius:var(--radius-pill);padding:3px 8px;white-space:nowrap}.roster__foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px var(--sp-4);border-top:1px solid var(--color-border)}.att-tag{flex-shrink:0;font-size:var(--fs-2xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);white-space:nowrap}.att-tag--absent,.att-tag--absent_half,.att-tag--absent_full{background:var(--st-absent-bg);color:var(--st-absent-fg)}.att-tag--late,.att-tag--tardy_late,.att-tag--tardy_cutting{background:var(--st-late-bg);color:var(--st-late-fg)}.att-tag--expected{background:var(--st-info-bg);color:var(--st-info-fg)}.att-tag--btn{border:none;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:4px}.att-tag--btn:hover{filter:brightness(.95)}.att-tag--btn:focus-visible{outline-offset:1px}.att-tag--btn:disabled{cursor:default;opacity:.6}.admin-actions{display:flex;flex-direction:column;gap:10px;padding:var(--sp-4)}.roster__body{padding:16px var(--sp-4)}.roster__body .admin-actions{padding:14px 0 0}.roster__body .state{padding-left:0;padding-right:0}.seg{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.seg__btn{background:var(--color-surface);border:0;border-left:1px solid var(--color-border);min-height:40px;padding:7px 12px;font:inherit;font-size:var(--fs-sm);color:var(--color-text-muted);cursor:pointer}.seg__btn:first-child{border-left:0}.seg--fill{display:flex}.seg--fill .seg__btn{flex:1 1 0;text-align:center}.seg__btn:hover{background:var(--color-active)}.seg__btn.is-active{color:var(--color-on-primary)}.seg__btn--reason.is-active,.seg__btn--daymark.is-active{background:var(--color-primary)}.roster__toggle{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:0;background:none;border:0;color:inherit;font:inherit;text-align:left;cursor:pointer}.roster__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .15s ease}.roster__chevron.is-open{transform:rotate(180deg)}.roster__head--collapsed{border-bottom:0}.user-list__item--draggable{cursor:grab}.user-list__item--draggable:active{cursor:grabbing}.class-row{display:flex;flex-direction:column;gap:2px;width:100%;padding:12px var(--sp-4)}.class-row--drop{background:var(--color-active);outline:2px dashed var(--color-primary);outline-offset:-2px;border-radius:var(--radius-sm)}.class-row__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.class-row__head .user-list__open{margin-block:-9px}.class-row__homeroom{display:flex;align-items:center;gap:8px}.class-row__homeroom-name{font-size:var(--fs-sm);color:var(--color-text-muted)}.child-actions{margin-top:16px}.dob-row{display:flex;gap:8px}.dob-row .field__input{flex:1 1 0;min-width:0;padding:7px 6px;font-size:var(--fs-xl);line-height:1.2;background:var(--color-surface)}.dob-row .field__input:nth-child(2){flex:1.6 1 0}.report{margin-top:16px;padding:16px var(--sp-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.report__title{font-size:var(--fs-lg);margin:0 0 8px}.report__hint,.report__status{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0 0 10px}.report__actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.report__nudge{font-size:var(--fs-xs);color:var(--color-primary-strong);margin:10px 0 0}.report__note{margin:10px 0 0}.report__note .field__input--area{min-height:56px}.roster__head-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.todos{display:flex;flex-direction:column}.notes__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.notes__title{font-size:var(--fs-lg);margin:0;overflow-wrap:anywhere}.todos__add{display:flex;gap:8px;margin-bottom:10px}.todos__input{flex:1;min-width:0;font:inherit;color:var(--color-text);background:var(--color-surface);padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm)}.todos__empty{font-size:var(--fs-sm);color:var(--color-text-muted);margin:4px 0}.todos__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.todos__row{display:flex;align-items:flex-start;gap:8px;padding:6px 4px;border-bottom:1px solid var(--color-border)}.todos__row:last-child{border-bottom:none}.todos__check{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0;cursor:pointer}.todos__check input{width:16px;height:16px;flex:none;margin-top:1px}.todos__text{font-size:var(--fs-md);min-width:0;overflow-wrap:anywhere}.todos__row.is-done .todos__text{text-decoration:line-through;color:var(--color-text-muted)}.todos__remove{border:none;background:none;color:var(--color-text-muted);font-size:var(--fs-2xl);line-height:1;padding:2px 6px;cursor:pointer;border-radius:var(--radius-sm)}.todos__remove:hover{background:var(--color-active);color:var(--color-primary)}.onboarding{padding:8px var(--sp-4);border-bottom:1px solid var(--color-border);background:var(--color-surface-muted)}.onboarding__row{display:flex;align-items:center;gap:8px}.onboarding__text{flex:1;min-width:0;font-size:var(--fs-sm);color:var(--color-text)}.gap-dot{flex-shrink:0;width:9px;height:9px;border-radius:50%;background:var(--st-late-fg)}.gap-dot--waiting{background:transparent;border:2px solid var(--st-late-fg)}.learner-list{list-style:none}.learner-list>li:not(:last-child){border-bottom:1px solid var(--color-border)}.learner{display:flex;align-items:center;gap:10px;padding:0 var(--sp-4);min-height:46px}.learner--excusable{flex-direction:column;align-items:stretch;gap:8px}.learner__main{display:flex;align-items:center;gap:12px}.learner__excuse{align-self:flex-start}.learner__excuse-form{display:flex;align-items:center;gap:8px;padding-left:50px}.learner__excuse-form .field__input{flex:1}.learner__excuse-actions{display:flex;gap:8px;flex-shrink:0}.learner__excuse-note{flex:1;font-size:var(--fs-sm);color:var(--color-text-muted)}.att-tag--excused{background:var(--st-ok-bg);color:var(--st-ok-fg)}.rollcall-openday{margin-top:4px}.rollcall-openday__row{display:flex;gap:8px;align-items:center}.rollcall-openday__row .field__input{flex:1}.learner__open{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:0;min-width:40px;min-height:40px;padding:9px;margin-right:-6px;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer}.learner__open:hover,.learner__open:focus-visible{background:var(--color-active);color:var(--color-primary)}.learner__chevron{flex-shrink:0}.learner__name{flex:1;min-width:0;font-size:var(--fs-md);font-weight:500;letter-spacing:-.005em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.learner.is-selected .learner__name{font-weight:600}.learner__toggle{flex:1;min-width:0;min-height:44px;display:flex;align-items:center;gap:10px;cursor:pointer;border-radius:var(--radius-sm)}.learner__check{position:absolute;width:1px;height:1px;margin:0;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.learner__toggle:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.learner__no{flex-shrink:0;width:22px;text-align:right;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.learner.is-selected .learner__no{color:var(--color-primary);font-weight:600}.learner__mark{margin-left:auto}.learner__mark--btn{--mark-pad: 4px;display:inline-grid;place-items:center;padding:var(--mark-pad);margin-left:auto;margin-right:calc(var(--mark-pad) * -1);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer}.learner__mark--btn:hover{background:var(--color-active)}.learner__mark--btn:disabled{cursor:default;opacity:.6}.learner--unselectable .learner__toggle{cursor:not-allowed;opacity:.55}.learner__check:disabled{cursor:not-allowed}.learner.is-selected{background:var(--color-active)}.roster__bulkbar{position:fixed;left:8px;right:8px;bottom:calc(var(--footer-h) + env(safe-area-inset-bottom) + 8px);z-index:4;max-width:624px;margin:0 auto;display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lifted)}.roster__bulkbar-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.roster__bulkbar-count{flex:1;font-size:var(--fs-md);font-weight:600}.roster__bulkbar-hint{font-size:var(--fs-xs);color:var(--color-text-muted)}.unread{display:flex;flex-direction:column;gap:12px}.msgcard{padding:14px 16px;background:var(--color-surface);border:1px solid var(--color-primary);border-left-width:4px;border-radius:var(--radius-lg);box-shadow:var(--shadow)}.msgcard__title{font-size:var(--fs-xl);font-weight:700;margin:0 0 6px}.msgcard__body{font-size:var(--fs-md);line-height:1.45;margin:0 0 12px}.msgcard__foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.msgcard__from{font-size:var(--fs-xs);color:var(--color-text-muted)}.btn--sm{padding:6px 12px;font-size:var(--fs-sm)}.messages{margin-top:4px}.messages__title{font-size:var(--fs-2xl);font-weight:700;margin:0 0 12px}.messages__list{list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.messages__list>.msg:not(:last-child){border-bottom:1px solid var(--color-border)}.msg--unread{background:var(--color-active)}.msg__head{width:100%;display:flex;align-items:center;gap:10px;padding:14px 16px;border:0;background:transparent;font:inherit;color:var(--color-text);text-align:left;cursor:pointer}.msg__dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--color-primary)}.msg__headtext{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.msg__title{font-size:var(--fs-lg);font-weight:600}.msg--unread .msg__title{font-weight:700}.msg__chevron{flex-shrink:0;color:var(--color-text-muted);transition:transform .15s}.msg__chevron.is-open{transform:rotate(180deg)}.msg__body{padding:0 16px 8px;font-size:var(--fs-md);line-height:1.45}.msg__meta{padding:0 16px 14px;font-size:var(--fs-xs);color:var(--color-text-muted)}.empty{padding:var(--sp-6) var(--sp-4);text-align:center}.empty__title{font-size:var(--fs-2xl);font-weight:600;margin:0 0 var(--sp-2)}.empty__body{font-size:var(--fs-md);color:var(--color-text-muted);margin:0 auto;max-width:36ch}.empty__action{margin-top:var(--sp-4)}.schedule{margin-top:4px}.schedule__bar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.schedule__nav{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-3xl);line-height:1;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.schedule__nav:hover{background:var(--color-active);color:var(--color-primary)}.schedule__week{flex:1;height:36px;font-size:var(--fs-md);font-weight:600;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}.schedule__week:disabled{color:var(--color-text-muted);cursor:default}.schedule__days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.schedule__day{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:12px 16px}.schedule__day--today{border-color:var(--color-primary)}.schedule__dayhead{display:flex;align-items:baseline;gap:8px;margin-bottom:8px}.schedule__dayname{font-size:var(--fs-lg);font-weight:700}.schedule__daydate{font-size:var(--fs-xs);color:var(--color-text-muted)}.schedule__todaytag{margin-left:auto;font-size:var(--fs-2xs);font-weight:700;color:var(--color-primary);background:var(--color-active);border-radius:var(--radius-pill);padding:2px 8px}.schedule__free{font-size:var(--fs-sm);color:var(--color-text-muted);margin:0}.schedule__lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.schedule__lesson{display:flex;align-items:baseline;gap:12px;font-size:var(--fs-md)}.schedule__time{flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--color-text-muted);min-width:96px}.schedule__subject{font-weight:600}.schedule__lesson--cancelled .schedule__subject{text-decoration:line-through;font-weight:500}.schedule__lesson--cancelled .schedule__time,.schedule__lesson--cancelled .schedule__subject{color:var(--color-text-muted)}.schedule__cancelled{font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-error)}.coverage__section{padding:16px var(--sp-4)}.coverage__section+.coverage__section{border-top:1px solid var(--color-border)}.coverage__subtitle{margin:0 0 12px;font-size:var(--fs-lg);font-weight:700}.coverage__section .user-list--rows .user-list__item{padding-left:0;padding-right:0}.coverage__section .admin-actions{padding:12px 0 0}.coverage__cancelled .user-list__name{color:var(--color-text-muted);text-decoration:none}.absence__range{display:flex;gap:12px}.absence__range .field{flex:1;margin-bottom:12px}.absence__summary{margin:4px 0 0;font-size:var(--fs-sm);color:var(--color-text-muted)}.absence__bulk{flex-direction:row;flex-wrap:wrap;gap:8px}.absence__day{margin-top:16px}.absence__dayhead{margin:0 0 6px;font-size:var(--fs-sm);font-weight:700;color:var(--color-text-muted)}.rollcall-tools{display:flex;flex-direction:column;gap:12px}.rollcall-nag{margin:0}.rollcall-nag__list{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.rollcall-nag__list li{display:flex;align-items:center;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.sf2-tools{display:flex;flex-direction:column;gap:10px}.sf2-summary{padding:12px;border-radius:var(--radius-sm);background:var(--color-surface-2);display:flex;flex-direction:column;gap:8px;font-size:var(--fs-md)}.past-rollcall{display:flex;flex-direction:column;gap:12px}.past-rollcall__title{margin:4px 0 0;font-variant-numeric:tabular-nums}.added-list{margin:6px 0 0;padding-left:18px}.learner.is-absent{opacity:.72}.btn:active:not(:disabled){transform:translateY(1px)}.btn--brand:active:not(:disabled){filter:brightness(.95);box-shadow:0 1px 4px #3a4fd04d}.btn--primary:active:not(:disabled){background:var(--color-primary-strong)}.btn--danger:active:not(:disabled){filter:brightness(.94)}.btn--ghost:active:not(:disabled){background:var(--color-active)}.btn--quiet:active:not(:disabled){background:var(--color-active)}.settings__gear:active,.kebab__btn:active,.learner__open:active,.user-list__open:active,.sent__open:active{background:var(--color-active);color:var(--color-primary)}.learner:not(.learner--unselectable) .learner__toggle:active,.user-list__item:active,.msg__head:active,.settings__item:active,.kebab__item:active:not(:disabled),.seg__btn:active{background:var(--color-active)}.todos__remove:active{background:var(--color-active);color:var(--color-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.btn:active:not(:disabled){transform:none}}@media(min-width:600px){.surface{max-width:720px}.page>*{max-width:720px}.roster__bulkbar{max-width:672px}.modal{max-width:420px}.schedule__days{display:grid;grid-template-columns:1fr 1fr;align-items:start}}@media(min-width:900px){.surface{max-width:820px}.page>*{max-width:820px}.roster__bulkbar{max-width:772px}}@media(prefers-color-scheme:dark){:root{--color-bg: #0e1615;--color-surface: #18211f;--color-surface-2: #212c2a;--color-surface-muted: #212c2a;--color-primary: #5fc9b9;--color-primary-strong: #7ad9ca;--color-text: #e7eeec;--color-text-muted: #9aaba7;--color-error: #f0a08f;--color-error-bg: #3a201b;--color-error-border: #5a322a;--color-border: #2b3735;--color-rule-strong: #4d5c59;--color-active: #17322e;--color-on-primary: #08201d;--color-badge-bg: #b8483a;--color-badge-wait-bg: #8a6420;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 4px 14px rgba(0, 0, 0, .45);--shadow-lifted: 0 6px 20px rgba(0, 0, 0, .55);--shadow-modal: 0 8px 32px rgba(0, 0, 0, .6);--color-scrim: rgba(0, 0, 0, .6);--st-absent-bg: #3a201b;--st-absent-fg: #f0a08f;--st-late-bg: #33290f;--st-late-fg: #efc271;--st-info-bg: #17322e;--st-info-fg: #7ad9ca;--st-ok-bg: #17322e;--st-ok-fg: #7ad9ca;--st-ok-border: #2b4a45;--st-late-border: #4f3f17;--av1-bg: #232b4d;--av1-fg: #b3c0ff;--av2-bg: #123430;--av2-fg: #7fd8c6;--av3-bg: #3a2a12;--av3-fg: #efc078;--av4-bg: #3a1c2c;--av4-fg: #f2a8c8;--av5-bg: #1d3320;--av5-fg: #a6d894;--av6-bg: #2c2450;--av6-fg: #c3b0f5}.field__input,.todos__input,.lang-switch{background:var(--color-surface-2)}.btn--danger{background:transparent}}.classpicker{display:flex;align-items:center;gap:var(--sp-2);padding:8px var(--sp-4) 0}.classpicker__label{font-size:var(--fs-sm);color:var(--color-text-muted)}.classpicker__select{flex:1;min-width:0;padding:6px 12px}.pass{padding-bottom:var(--sp-4)}.pass__toggle{flex:1;display:flex;align-items:center;gap:10px;min-width:0;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px}.pass__submit{display:flex;align-items:center;gap:var(--sp-2);padding:12px var(--sp-4)}.pass__log{padding:0 var(--sp-4) var(--sp-4)}.pass__log-title{font-size:var(--fs-sm);font-weight:600;margin:0 0 4px}.pass__log-list{list-style:none;margin:0;padding:0;font-size:var(--fs-xs);color:var(--color-text-muted)}.pass__log-list li{padding:2px 0}.att-tag--evidence{background:var(--st-info-bg);color:var(--st-info-fg)}.roster__evidence{margin:0;font-size:var(--fs-xs);color:var(--color-text-muted)}.pass .att-tag--present{color:var(--color-text-muted);font-weight:500}.subjects__add{padding:12px 14px 0}.subjects__lead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.legal{max-width:46rem;margin:0 auto;padding:var(--sp-6) var(--sp-5) 64px;font-size:var(--fs-xl);line-height:1.65}.legal>article{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-6) 28px}@media(max-width:640px){.legal{padding:var(--sp-3) var(--sp-3) 48px}.legal>article{padding:18px var(--sp-4);border-radius:var(--radius-md)}}.legal h1{font-size:var(--fs-3xl);line-height:1.25;margin:0 0 var(--sp-4)}.legal h2{font-size:var(--fs-2xl);margin:32px 0 var(--sp-2);padding-top:10px;border-top:1px solid var(--color-border)}.legal h3{font-size:var(--fs-xl);margin:var(--sp-5) 0 var(--sp-1)}.legal p,.legal ul,.legal ol{margin:0 0 var(--sp-3)}.legal ul,.legal ol{padding-left:22px}.legal li{margin-bottom:var(--sp-1)}.legal hr{border:0;border-top:1px solid var(--color-border);margin:28px 0 var(--sp-4)}.legal a{color:var(--color-primary);overflow-wrap:anywhere}.legal hr+p{color:var(--color-text-muted);font-size:var(--fs-md)}
