@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-arabic-400.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+898-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-arabic-600.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+898-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}@font-face{font-family:IBM Plex Sans Arabic;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-sans-arabic-700.woff2)format("woff2");unicode-range:U+6??,U+750-77F,U+870-88E,U+890-891,U+898-8E1,U+8E3-8FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FEFF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-sans-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-sans-600.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-sans-700.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--hue-present:152;--hue-absent:0;--present-light:#116a3a;--present-dark:#4ac782;--absent-light:#b91c1c;--absent-dark:#f87171;--student-light:#115836;--student-dark:#60be8c;--teacher-light:#253371;--teacher-dark:#8c9ce9;--employee-light:#a04c29;--employee-dark:#e2926a;--brand-light:#115836;--brand-dark:#60be8c;--excused-light:#0f6c7f;--excused-dark:#67c8de;--caution-light:#965406;--caution-dark:#f5b950;--repeat-light:#474e5c;--repeat-dark:#b2bac7;--present-fill:#116a3a;--absent-fill:#b91c1c;--student-fill:#115836;--teacher-fill:#253371;--employee-fill:#a04c29;--repeat-fill:#5b6272;--excused-fill:#0f6c7f;--caution-fill:#965406;--on-fill:#fff;--pending-mark:#d29a34;--offline-mark:#f59e0b;--glass-dark-fill:#0e10168f;--glass-dark-edge:#ffffff24;--glass-dark-ink:#f0f3f7;--glass-dark-ink-muted:#f0f3f7b8;--glass-dark-control:#ffffff1a;--glass-dark-track:#ffffff38;--camera-bg:#000;--camera-dim:#0000004d;--camera-veil:#080a0e8f;--camera-ink:#ffffffeb;--camera-fallback:#000000b3;--bracket:#fffffff2;--bracket-read:#4ac782;--bracket-refused:#f87171;--sweep:#78e6aaf2;--shadow-float:0 24px 60px #00000080;--shadow-float-strong:0 30px 70px #0000008c;--shadow-sheet:0 -12px 40px #00000059;--look-light-page:#ebeff2;--look-light-card:#fafcfc;--look-light-edge:#d4dcde;--look-light-brand:#115836;--look-dark-page:#0b0d12;--look-dark-card:#1e232b;--look-dark-brand:#60be8c;--paper:#fff;--paper-ink:#12141c;--paper-muted:#757d8a;--paper-hair:#d9dee6;--paper-tint:#f4f5f7;--paper-student:#115836;--paper-teacher:#253371;--paper-employee:#a04c29;--paper-cut:#9ea6b3;--paper-shadow:#12141c52;--paper-placeholder:#a5acb8;--paper-qr:#000;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--present:var(--present-light);--absent:var(--absent-light);--student:var(--student-light);--teacher:var(--teacher-light);--employee:var(--employee-light);--brand:var(--brand-light);--on-brand:#fff;--excused:var(--excused-light);--caution:var(--caution-light);--repeat:var(--repeat-light);--ink-soft:#474e5c;--chrome-fill:var(--glass-dark-fill);--chrome-edge:var(--glass-dark-edge);--chrome-ink:var(--glass-dark-ink);--chrome-ink-muted:var(--glass-dark-ink-muted);--chrome-control:var(--glass-dark-control);--chrome-track:var(--glass-dark-track);--chrome-ring:var(--bracket-read);--bg:#ebeff2;--surface:#fafcfc;--surface-sunken:#e4e9ec;--surface-raised:#fcfdfd;--ink:#12141c;--ink-muted:#5e6776;--ink-faint:#838c99;--hairline:#d4dcde;--hairline-strong:#bcc7cc;--wash-faint:5%;--wash-strength:8%;--wash-strength-strong:16%;--wash-card:6%;--wash-edge:15%;--card-highlight:#fffc;--wash-option:4.5%;--wash-option-chosen:9.5%;--wash-field:2.5%;--wash-sheet:3.5%;--wash-panel:5%;--card-light:#ffffff8c;--button-sheen-top:#1c784a;--button-sheen-bottom:#115836;--button-sheen-line:#ffffff38;--button-shadow:0 10px 22px -12px #115836b3;--field-bg:color-mix(in srgb, var(--brand) 2%, #fff);--field-edge:color-mix(in srgb, var(--brand) 14%, var(--surface));--field-inset:inset 0 1px 2px #12141c0f;--band-top:#186c43;--band-bottom:#0a3c25;--band-mark:#ffffff0f;--on-band:#fff;--on-band-muted:#ffffffd1;--glow:color-mix(in srgb, var(--brand) 12%, transparent);--card-drop:0 1px 2px #12141c0d;--card-lift:45%;--amber:#d29a34;--amber-ink:#8a5a12;--amber-wash:#fff9ef;--amber-edge:#e8c889;--green-wash:#f0f7f3;--present-dot:#2f8f5b;--present-dot-ink:#fff;--brand-wash:color-mix(in srgb, var(--brand) 7%, var(--surface));--brand-edge:color-mix(in srgb, var(--brand) 18%, var(--surface));--shadow-1:0 1px 2px #12141c0d;--shadow-2:0 6px 16px #12141c12;--shadow-3:0 18px 40px #12141c1a;--focus-ring:0 0 0 3px color-mix(in srgb, var(--brand) 38%, transparent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--present:var(--present-dark);--absent:var(--absent-dark);--student:var(--student-dark);--teacher:var(--teacher-dark);--employee:var(--employee-dark);--brand:var(--brand-dark);--on-brand:#081810;--excused:var(--excused-dark);--caution:var(--caution-dark);--repeat:var(--repeat-dark);--ink-soft:#c8ced8;--bg:#0b0d12;--surface:#161920;--surface-sunken:#0f1218;--surface-raised:#1e232b;--ink:#f0f3f7;--ink-muted:#a3acba;--ink-faint:#7a8391;--hairline:#ffffff14;--hairline-strong:#ffffff24;--wash-faint:10%;--wash-strength:14%;--wash-strength-strong:24%;--wash-card:5%;--wash-edge:12%;--card-highlight:#ffffff0d;--wash-option:5%;--wash-option-chosen:12%;--wash-field:0%;--wash-sheet:3.5%;--wash-panel:5%;--card-light:#ffffff09;--button-sheen-top:#6ecd98;--button-sheen-bottom:#50b27e;--button-sheen-line:#ffffff40;--button-shadow:0 10px 22px -12px #000000b3;--field-bg:#00000038;--field-edge:#ffffff1a;--field-inset:inset 0 1px 2px #0000004d;--band-top:#124e31;--band-bottom:#0b0d12;--band-mark:#ffffff0d;--on-band:#f0f3f7;--on-band-muted:#f0f3f7c7;--glow:color-mix(in srgb, var(--brand) 9%, transparent);--card-drop:0 18px 34px -20px #000000b3;--card-lift:0%;--amber:#e8b250;--amber-ink:#f0c676;--amber-wash:color-mix(in srgb, var(--amber) 9%, var(--surface));--amber-edge:color-mix(in srgb, var(--amber) 34%, var(--surface));--green-wash:color-mix(in srgb, var(--present) 9%, var(--surface));--present-dot:#4ac782;--present-dot-ink:#081810;--brand-wash:color-mix(in srgb, var(--brand) 10%, var(--surface));--brand-edge:color-mix(in srgb, var(--brand) 26%, var(--surface));--shadow-1:0 1px 2px #0000004d;--shadow-2:0 6px 16px #00000061;--shadow-3:0 18px 40px #00000075}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--present:var(--present-dark);--absent:var(--absent-dark);--student:var(--student-dark);--teacher:var(--teacher-dark);--employee:var(--employee-dark);--brand:var(--brand-dark);--on-brand:#081810;--excused:var(--excused-dark);--caution:var(--caution-dark);--repeat:var(--repeat-dark);--ink-soft:#c8ced8;--bg:#0b0d12;--surface:#161920;--surface-sunken:#0f1218;--surface-raised:#1e232b;--ink:#f0f3f7;--ink-muted:#a3acba;--ink-faint:#7a8391;--hairline:#ffffff14;--hairline-strong:#ffffff24;--wash-faint:10%;--wash-strength:14%;--wash-strength-strong:24%;--wash-card:5%;--wash-edge:12%;--card-highlight:#ffffff0d;--wash-option:5%;--wash-option-chosen:12%;--wash-field:0%;--wash-sheet:3.5%;--wash-panel:5%;--card-light:#ffffff09;--button-sheen-top:#6ecd98;--button-sheen-bottom:#50b27e;--button-sheen-line:#ffffff40;--button-shadow:0 10px 22px -12px #000000b3;--field-bg:#00000038;--field-edge:#ffffff1a;--field-inset:inset 0 1px 2px #0000004d;--band-top:#124e31;--band-bottom:#0b0d12;--band-mark:#ffffff0d;--on-band:#f0f3f7;--on-band-muted:#f0f3f7c7;--glow:color-mix(in srgb, var(--brand) 9%, transparent);--card-drop:0 18px 34px -20px #000000b3;--card-lift:0%;--amber:#e8b250;--amber-ink:#f0c676;--amber-wash:color-mix(in srgb, var(--amber) 9%, var(--surface));--amber-edge:color-mix(in srgb, var(--amber) 34%, var(--surface));--green-wash:color-mix(in srgb, var(--present) 9%, var(--surface));--present-dot:#4ac782;--present-dot-ink:#081810;--brand-wash:color-mix(in srgb, var(--brand) 10%, var(--surface));--brand-edge:color-mix(in srgb, var(--brand) 26%, var(--surface));--shadow-1:0 1px 2px #0000004d;--shadow-2:0 6px 16px #00000061;--shadow-3:0 18px 40px #00000075}:root{--t-exit:.13s;--t-enter:.18s;--t-move:.26s;--ease-out:cubic-bezier(.22, .8, .3, 1);--ease-in:cubic-bezier(.5, 0, .75, .3);--radius-s:10px;--radius-m:14px;--radius-card:18px;--radius-l:20px;--radius-sheet:28px;--radius-pill:999px;--tap-desk:44px;--tap-min:48px;--tap-primary:64px;--gutter:16px;--safe-bottom:env(safe-area-inset-bottom,0px);--font-latin:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--text-xs:.8125rem;--text-sm:.875rem;--text-md:.9375rem;--text-base:1rem;--text-lg:1.1875rem;--text-xl:1.4375rem;--text-2xl:1.625rem;--text-3xl:2.125rem;--leading-tight:1.25;--leading-normal:1.5;--weight-regular:400;--weight-semibold:600;--weight-bold:700;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:44px;--t-rise:.32s;--t-pop:.52s;--t-draw:.4s;--ease-rise:cubic-bezier(.2, .8, .2, 1)}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;min-height:100%}body{min-height:100dvh;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-family:IBM Plex Sans Arabic,IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-size:16px;line-height:1.6}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{text-wrap:balance;margin:0;font-weight:700;line-height:1.25}p{margin:0}a{color:var(--brand);text-underline-offset:3px}:where(a,button,input,select,textarea,[tabindex]):focus-visible{box-shadow:var(--focus-ring);border-radius:var(--radius-s);outline:none}.ltr{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.card{--wash:var(--brand);background:color-mix(in srgb, var(--wash) var(--wash-card), var(--surface));border:1px solid color-mix(in srgb, var(--wash) var(--wash-edge), var(--hairline));border-radius:var(--radius-m);box-shadow:inset 0 1px 0 var(--card-highlight), var(--card-drop), 0 14px 30px -18px color-mix(in srgb, var(--wash) var(--card-lift), transparent)}.card--raised{background:color-mix(in srgb, var(--wash) var(--wash-strength), var(--surface-raised));box-shadow:var(--shadow-2)}.card--present{--wash:var(--present)}.card--absent{--wash:var(--absent)}.card--student{--wash:var(--student)}.card--teacher{--wash:var(--teacher)}.card--employee{--wash:var(--employee)}.btn{min-height:var(--tap-min);border-radius:var(--radius-s);cursor:pointer;transition:transform var(--t-exit) var(--ease-out), filter var(--t-exit) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:12px 20px;font-weight:700;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{color:var(--on-brand);background:var(--brand)}.btn--quiet{color:var(--ink);background:color-mix(in srgb, var(--brand) var(--wash-strength), var(--surface));border-color:var(--hairline)}.btn--ghost{color:var(--ink-muted);background:0 0}.btn--lg{min-height:var(--tap-primary);padding:16px 24px;font-size:1.0625rem}.btn--block{width:100%}.field{gap:8px;font-weight:600;display:grid}.field input{width:100%;min-height:var(--tap-min);color:var(--ink);background:var(--surface-sunken);border:1px solid var(--hairline);border-radius:var(--radius-s);padding:13px 14px}.field input::placeholder{color:var(--ink-faint)}.field input[data-latin=true]{text-align:left;direction:ltr}.shell{min-height:100dvh;padding:24px var(--gutter);place-items:center;display:grid}.panel{background:color-mix(in srgb, var(--brand) var(--wash-strength), var(--surface));border:1px solid var(--hairline);border-radius:var(--radius-l);width:min(100%,460px);box-shadow:var(--shadow-2);padding:clamp(20px,5vw,32px)}.brand{align-items:center;gap:12px;margin-bottom:24px;display:flex}.brand img{width:44px;height:44px}.brand strong{font-size:1.125rem;display:block}.brand span,.muted{color:var(--ink-muted)}.footer{color:var(--ink-faint);text-align:center;margin-top:24px;font-size:.875rem}.form{gap:18px;margin-top:24px;display:grid}.message{min-height:26px;color:var(--absent);margin:0;font-weight:600}.status{border-radius:var(--radius-s);background:var(--surface-sunken);padding:14px}.empty{text-align:center;justify-items:center;gap:14px;padding:32px 20px;display:grid}.empty__mark{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--brand) var(--wash-strength-strong), var(--surface));width:64px;height:64px;color:var(--brand);place-items:center;display:grid}.empty__title{font-size:1.125rem;font-weight:700}.empty__hint{color:var(--ink-muted);max-width:34ch}:root{--slide:56px}::view-transition{pointer-events:none}::view-transition-group(*){animation-duration:var(--t-move)}:root[data-nav=forward]::view-transition-old(.sv-page){animation:var(--t-exit) var(--ease-in) both sv-fade-out, var(--t-move) var(--ease-in) both sv-slide-out-forward}:root[data-nav=forward]::view-transition-new(.sv-page){animation:var(--t-enter) var(--ease-out) var(--t-exit) both sv-fade-in, var(--t-move) var(--ease-out) both sv-slide-in-forward}:root[data-nav=back]::view-transition-old(.sv-page){animation:var(--t-exit) var(--ease-in) both sv-fade-out, var(--t-move) var(--ease-in) both sv-slide-out-back}:root[data-nav=back]::view-transition-new(.sv-page){animation:var(--t-enter) var(--ease-out) var(--t-exit) both sv-fade-in, var(--t-move) var(--ease-out) both sv-slide-in-back}:root:not([data-nav])::view-transition-old(.sv-page){animation:var(--t-exit) var(--ease-in) both sv-fade-out}:root[data-nav=none]::view-transition-old(.sv-page){animation:var(--t-exit) var(--ease-in) both sv-fade-out}:root:not([data-nav])::view-transition-new(.sv-page){animation:var(--t-enter) var(--ease-out) both sv-fade-in}:root[data-nav=none]::view-transition-new(.sv-page){animation:var(--t-enter) var(--ease-out) both sv-fade-in}::view-transition-group(sv-chrome){z-index:20;animation:none}::view-transition-old(sv-chrome){display:none}::view-transition-new(sv-chrome){animation:none}@keyframes sv-fade-in{0%{opacity:0}to{opacity:1}}@keyframes sv-fade-out{0%{opacity:1}to{opacity:0}}@keyframes sv-slide-in-forward{0%{translate:var(--slide) 0}to{translate:0}}@keyframes sv-slide-out-forward{0%{translate:0}to{translate:calc(var(--slide) * -1) 0}}@keyframes sv-slide-in-back{0%{translate:calc(var(--slide) * -1) 0}to{translate:0}}@keyframes sv-slide-out-back{0%{translate:0}to{translate:var(--slide) 0}}@keyframes sv-rise{0%{opacity:0;transform:translateY(56px)}to{opacity:1;transform:none}}@keyframes sv-pop{0%{opacity:0;transform:scale(.4)}55%{opacity:1;transform:scale(1.12)}to{opacity:1;transform:none}}@keyframes sv-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes sv-ring{0%{stroke-dashoffset:100px}to{stroke-dashoffset:0}}@keyframes sv-lift{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@keyframes sv-nudge{0%,to{transform:none}25%{transform:translate(-5px)}50%{transform:translate(5px)}75%{transform:translate(-3px)}}@keyframes sv-tick{0%,to{transform:none}40%{transform:scale(1.18)}}@keyframes sv-snap{0%{transform:scale(1.05)}to{transform:none}}@keyframes sv-sweep{0%{opacity:0;top:0}12%,88%{opacity:.95}to{opacity:0;top:100%}}@keyframes sv-spin{to{transform:rotate(360deg)}}@keyframes sv-toast{0%{opacity:0;transform:translateY(12px)}8%,86%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)}}::view-transition-group(.sv-morph){animation-duration:var(--t-move)}@media (prefers-reduced-motion:reduce){::view-transition-old(*){animation-duration:1ms!important;animation-delay:0s!important}::view-transition-new(*){animation-duration:1ms!important;animation-delay:0s!important}::view-transition-group(*){animation-duration:1ms!important;animation-delay:0s!important}*{transition-duration:1ms!important;animation-duration:1ms!important}}
.ui-tone--present{--tone:var(--present);--tone-fill:var(--present-fill)}.ui-tone--absent{--tone:var(--absent);--tone-fill:var(--absent-fill)}.ui-tone--excused{--tone:var(--excused);--tone-fill:var(--excused-fill)}.ui-tone--caution{--tone:var(--caution);--tone-fill:var(--caution-fill)}.ui-tone--repeat{--tone:var(--repeat);--tone-fill:var(--repeat-fill)}.ui-tone--waiting{--tone:var(--ink-muted);--tone-fill:var(--repeat-fill)}.ui-tone--student{--tone:var(--student);--tone-fill:var(--student-fill)}.ui-tone--teacher{--tone:var(--teacher);--tone-fill:var(--teacher-fill)}.ui-tone--employee{--tone:var(--employee);--tone-fill:var(--employee-fill)}.ui-tone--brand{--tone:var(--brand);--tone-fill:var(--student-fill)}.ui-icon{flex-shrink:0;width:1em;height:1em;display:block}.ui-icon--draw .ui-icon__stroke{stroke-dasharray:1 1;animation:sv-draw var(--t-draw) ease-out var(--draw-delay,.28s) both}.ui-mark{--mark:24px;width:var(--mark);height:var(--mark);border-radius:var(--radius-pill);font-size:calc(var(--mark) * .55);color:var(--tone);background:color-mix(in srgb, var(--tone) 13%, transparent);flex-shrink:0;place-items:center;display:inline-grid}.ui-mark--sm{--mark:18px}.ui-mark--lg{--mark:32px}.ui-mark--xl{--mark:44px}.ui-mark--xxl{--mark:52px}.ui-mark--solid{color:var(--on-fill);background:var(--tone-fill)}.ui-badge{border-radius:var(--radius-pill);min-height:1.9em;font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;color:var(--tone);background:color-mix(in srgb, var(--tone) var(--wash-strength), var(--surface));border:1px solid color-mix(in srgb, var(--tone) var(--wash-strength-strong), transparent);align-items:center;gap:.4em;padding-block:.2em;padding-inline:.45em .7em;line-height:1.2;display:inline-flex}.ui-badge__mark{place-items:center;font-size:1.15em;display:inline-grid}.ui-badge__time{color:var(--ink-soft)}.ui-badge--sm{font-size:var(--text-xs)}.ui-badge--lg{font-size:var(--text-base);min-height:2.1em}.ui-badge--plain{background:0 0;border-color:#0000;padding-inline:0}.ui-badge--solid{color:var(--on-fill);background:var(--tone-fill);border-color:#0000}.ui-badge--solid .ui-badge__time{color:inherit}.ui-time{white-space:nowrap}.ui-time__clock,.ui-count{font-family:var(--font-latin);font-variant-numeric:tabular-nums}.ui-count{white-space:nowrap;font-weight:var(--weight-semibold)}.ui-ring{flex-shrink:0;display:block}.ui-ring circle{fill:none;stroke-width:3px}.ui-ring__track{stroke:var(--ring-track,color-mix(in srgb, var(--ink) 16%, transparent))}.ui-ring__value{stroke:var(--ring-value,var(--present));stroke-linecap:round;transition:stroke-dasharray var(--t-move) var(--ease-out)}.ui-button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-min);padding:0 var(--space-5);border-radius:var(--radius-m);font:inherit;font-size:var(--text-base);font-weight:var(--weight-bold);cursor:pointer;transition:transform var(--t-exit) var(--ease-out), background-color var(--t-exit) var(--ease-out);border:1px solid #0000;line-height:1.2;text-decoration:none;display:inline-flex}.ui-button:active:not(:disabled){transform:scale(.98)}.ui-button:disabled{opacity:.55;cursor:not-allowed}.ui-button .ui-icon{font-size:1.2em}.ui-button--primary{color:var(--on-brand);background:var(--brand);background-image:linear-gradient(180deg, var(--button-sheen-top), var(--button-sheen-bottom));box-shadow:inset 0 1px 0 var(--button-sheen-line), var(--button-shadow)}.ui-button--secondary{color:var(--ink);background:color-mix(in srgb, var(--brand) var(--wash-strength), var(--surface-raised));border-color:color-mix(in srgb, var(--brand) var(--wash-strength-strong), var(--hairline))}.ui-button--ghost{color:var(--ink-soft);background:0 0}.ui-button--danger{color:var(--on-fill);background:var(--absent-fill)}.ui-button--lg{min-height:var(--tap-primary);padding:0 var(--space-6);font-size:1.0625rem}.ui-button--sm{min-height:var(--tap-desk);padding:0 var(--space-4);font-size:var(--text-sm)}.ui-button--block{width:100%}.ui-iconButton{width:var(--tap-desk);height:var(--tap-desk);border-radius:var(--radius-pill);cursor:pointer;border:0;flex-shrink:0;place-items:center;padding:0;font-size:1.25rem;display:inline-grid}.ui-iconButton--quiet{color:var(--ink);background:var(--bg)}.ui-iconButton--lg{width:52px;height:52px;font-size:1.375rem}.ui-card{--card-tone:var(--brand);background:color-mix(in srgb, var(--card-tone) var(--wash-card), var(--surface));background-image:linear-gradient(180deg, var(--card-light), transparent 120px);border:1px solid color-mix(in srgb, var(--card-tone) var(--wash-edge), var(--hairline));border-radius:var(--radius-l);box-shadow:inset 0 1px 0 var(--card-highlight), var(--card-drop), 0 14px 30px -18px color-mix(in srgb, var(--card-tone) var(--card-lift), transparent)}.ui-card--toned{--card-tone:var(--tone)}.ui-panel{background:var(--surface-sunken);border-radius:var(--radius-m)}.ui-notice{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.ui-notice__text{gap:2px;min-width:0;display:grid}.ui-notice__text strong{font-size:var(--text-base);font-weight:var(--weight-bold);color:var(--tone)}.ui-notice__text small{font-size:var(--text-sm);color:var(--ink-soft);overflow-wrap:anywhere}.ui-row{align-items:center;gap:var(--space-3);width:100%;min-width:0;color:var(--ink);text-align:start;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-m);font:inherit;margin:0;text-decoration:none;display:flex}a.ui-row,button.ui-row{cursor:pointer;transition:transform var(--t-enter) var(--ease-out), background-color var(--t-enter) var(--ease-out)}a.ui-row:active,button.ui-row:active:not(:disabled){transform:scale(.99)}button.ui-row:disabled{cursor:not-allowed}.ui-row--toned{background:color-mix(in srgb, var(--tone) var(--wash-strength), var(--surface));border-color:color-mix(in srgb, var(--tone) var(--wash-strength-strong), var(--hairline))}.ui-row--operator{min-height:var(--tap-primary);padding:var(--space-3) var(--space-4)}.ui-row--operator .ui-row__title{font-size:1.0625rem}.ui-row--compact{min-height:50px;padding:0 var(--space-4);border-radius:var(--radius-m);border-color:#0000}.ui-row--compact.ui-row--toned{background:color-mix(in srgb, var(--tone) var(--wash-faint), var(--surface));border-color:#0000}.ui-row--desk{min-height:var(--tap-desk);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);border-radius:var(--radius-s)}.ui-row__start,.ui-row__end{align-items:center;gap:var(--space-2);flex:none;display:flex}.ui-row__main{flex:auto;gap:2px;min-width:0;display:grid}.ui-row__title{font-weight:var(--weight-bold);line-height:var(--leading-tight);overflow-wrap:anywhere}.ui-row--compact .ui-row__title{font-size:var(--text-base);font-weight:var(--weight-semibold)}.ui-row__subtitle{font-size:var(--text-sm);color:var(--ink-muted)}.ui-section{padding:var(--space-4) var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--ink-muted);margin:0}.ui-empty{justify-items:center;gap:var(--space-3);padding:var(--space-7) var(--space-5);text-align:center;background:color-mix(in srgb, var(--brand) var(--wash-strength), var(--surface));border:1px solid color-mix(in srgb, var(--brand) var(--wash-strength-strong), var(--hairline));border-radius:var(--radius-l);display:grid}.ui-empty__mark{border-radius:var(--radius-pill);width:56px;height:56px;color:var(--brand);background:color-mix(in srgb, var(--brand) var(--wash-strength-strong), var(--surface));box-shadow:0 0 0 7px color-mix(in srgb, var(--brand) 6%, transparent);place-items:center;font-size:28px;display:grid}.ui-empty__title{font-size:var(--text-lg);font-weight:var(--weight-bold)}.ui-empty__hint{max-width:36ch;color:var(--ink-muted)}.ui-empty__action{justify-content:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ui-sheet{z-index:30;pointer-events:none;flex-direction:column;justify-content:flex-end;display:flex;position:fixed;inset:0}.ui-sheet[hidden]{display:none}.ui-sheet__veil{background:var(--camera-veil);pointer-events:auto;animation:sv-fade-in var(--t-enter) var(--ease-out) both;position:absolute;inset:0}.ui-sheet__panel{width:min(100%,720px);max-height:calc(100dvh - 72px);color:var(--ink);background:color-mix(in srgb, var(--brand) var(--wash-sheet), var(--surface));background-image:linear-gradient(180deg, var(--card-light), transparent 160px);border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;box-shadow:var(--shadow-sheet);pointer-events:auto;animation:sv-rise var(--t-rise) var(--ease-rise) both;flex-direction:column;margin-inline:auto;display:flex;position:relative}.ui-sheet__grabber{background:var(--hairline);border-radius:3px;flex-shrink:0;align-self:center;width:40px;height:5px;margin-top:10px}.ui-sheet__head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-5) var(--space-1);display:flex}.ui-sheet__heading{gap:var(--space-2);min-width:0;display:grid}.ui-sheet__title{font-size:var(--text-lg);font-weight:var(--weight-bold);overflow-wrap:anywhere}.ui-sheet__body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;padding:var(--space-2) var(--space-4) calc(var(--space-6) + var(--safe-bottom));overflow-y:auto}.ui-field{gap:var(--space-2);min-width:0;display:grid}.ui-field__label{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink-soft)}.ui-input{width:100%;min-height:var(--tap-min);padding:0 var(--space-4);color:var(--ink);background:var(--field-bg);border:1px solid var(--field-edge);border-radius:var(--radius-m);box-shadow:var(--field-inset);font:inherit;font-size:var(--text-base)}.ui-input::placeholder{color:var(--ink-faint)}.ui-input:focus-visible{border-color:var(--brand);box-shadow:var(--focus-ring);outline:none}.ui-input[data-latin=true]{text-align:left;font-family:var(--font-latin);direction:ltr}.ui-field__hint{font-size:var(--text-xs);color:var(--ink-muted)}.ui-field__error{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--absent)}.ui-tableWrap{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-m);width:100%;max-width:100%;overflow-x:auto}.ui-tableWrap:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--text-sm)}.ui-table__caption{caption-side:top;padding:var(--space-3) var(--space-4);font-size:var(--text-md);font-weight:var(--weight-bold);text-align:start}.ui-table th{z-index:1;padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-semibold);text-align:start;white-space:nowrap;color:var(--ink-muted);background:var(--surface-sunken);border-bottom:1px solid var(--hairline);position:sticky;top:0}.ui-table td{height:40px;padding:0 var(--space-3);vertical-align:middle;white-space:nowrap;border-bottom:1px solid var(--hairline)}.ui-table tbody tr:nth-child(2n) td{background:color-mix(in srgb, var(--ink) 3%, var(--surface))}.ui-table tbody tr:last-child td{border-bottom:0}.ui-table .ui-table__num{text-align:end;font-variant-numeric:tabular-nums}.ui-table td.ui-table__empty{height:auto;padding:var(--space-4);white-space:normal}.ui-desk{--desk-gap:var(--space-4);--desk-panel-least:380px;--desk-list-room:calc(100cqi - var(--desk-panel-least) - var(--desk-gap));justify-content:center;gap:var(--desk-gap);min-width:0;height:100%;min-height:0;display:flex;container-type:inline-size}.ui-desk__main{gap:var(--desk-gap);min-width:min(480px, var(--desk-list-room));flex-direction:column;flex:0 auto;min-height:0;display:flex}.ui-desk__main>*{flex:none}.ui-desk__main>:not(.ui-deskTable){contain:inline-size}.ui-desk__main>.ui-deskTable{flex:1 1 0}.ui-desk>.ui-deskPanel{flex:1 0 var(--desk-panel-least);min-width:var(--desk-panel-least);max-width:720px}.ui-deskTable{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--radius-m);grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden}.ui-deskTable__scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;overflow:auto}.ui-deskTable__scroll:focus-visible{box-shadow:inset 0 0 0 2px var(--brand);outline:none}.ui-deskTable .ui-table th,.ui-deskTable .ui-table td{padding-inline:var(--space-3)}.ui-deskTable__floor{width:min(14em, calc(var(--desk-list-room) * .28));height:0;display:block}.ui-deskTable th.ui-deskTable__lead{white-space:nowrap}.ui-deskTable td.ui-deskTable__lead{white-space:normal;overflow-wrap:anywhere}.ui-deskTable .ui-deskTable__code,.ui-deskTable .ui-deskTable__cut,.ui-deskTable .ui-deskTable__fit,.ui-deskTable .ui-deskTable__icon{white-space:nowrap;width:1px}.ui-deskTable td.ui-deskTable__code{font-variant-numeric:tabular-nums}.ui-deskTable th.ui-deskTable__cut{white-space:normal}.ui-deskTable .ui-table .ui-deskTable__icon{padding-inline:var(--space-2);color:var(--ink-faint)}.ui-deskTable__cutText,.ui-deskTable__sizer{max-width:min(15em, calc(var(--desk-list-room) * .24));text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ui-deskTable__sizer{visibility:hidden;height:0;font-size:var(--text-sm);font-weight:400}.ui-deskTable__row{cursor:pointer}.ui-deskTable .ui-deskTable__row.is-picked td{background:var(--brand-wash)}.ui-deskTable .ui-deskTable__row.is-picked td:first-child{box-shadow:inset -3px 0 0 var(--brand)}.ui-deskTable__foot{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:50px;padding:var(--space-2) 14px;font-size:var(--text-xs);color:var(--ink-muted);background:var(--surface-sunken);border-top:1px solid var(--hairline);display:flex}.ui-deskPanel{gap:var(--desk-gap,var(--space-4));grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.ui-deskPanel__body{align-content:start;gap:var(--desk-gap,var(--space-4));overscroll-behavior:contain;grid-auto-rows:max-content;min-width:0;min-height:0;display:grid;overflow-y:auto}.ui-deskPanel__body>*{min-width:0}.ui-deskPanel__foot{display:grid}.ui-deskPanel--empty{border:1.5px dashed var(--hairline-strong);border-radius:var(--radius-l);grid-template-rows:minmax(0,1fr);place-items:center}.ui-deskPanel__empty{padding:var(--space-4);font-size:var(--text-sm);text-align:center;color:var(--ink-muted);margin:0}@media (min-width:1024px){::-webkit-scrollbar{background:0 0;width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-button{width:0;height:0;display:none}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ink) 22%, transparent);border-radius:var(--radius-pill);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background-color:color-mix(in srgb, var(--ink) 38%, transparent)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink) 22%, transparent) transparent}}}.ui-header{z-index:10;align-items:center;gap:var(--space-2);min-height:56px;padding:var(--space-2) var(--space-3);padding-top:calc(var(--space-2) + env(safe-area-inset-top,0px));color:var(--ink);background:color-mix(in srgb, var(--surface) 92%, transparent);border-bottom:1px solid var(--hairline);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:1fr minmax(0,auto) 1fr;display:grid;position:sticky;top:0}.ui-header__back{justify-self:start;align-items:center;gap:var(--space-1);min-height:var(--tap-desk);padding-inline:var(--space-2) var(--space-3);border-radius:var(--radius-pill);font:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--ink-soft);cursor:pointer;background:0 0;border:0;display:inline-flex}.ui-header__back .ui-icon{font-size:1.3em}.ui-header__spacer{width:var(--tap-desk)}.ui-header__titles{text-align:center;min-width:0;display:grid}.ui-header__crest{justify-self:start;display:grid}.ui-header__subtitle{color:var(--ink-muted);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:12.5px;overflow:hidden}.ui-header__title{min-width:0;font-size:1.0625rem;font-weight:var(--weight-bold);text-align:center;text-overflow:ellipsis;white-space:nowrap;margin:0;overflow:hidden}.ui-header__trailing{justify-content:flex-end;gap:var(--space-2);display:flex}.ui-header--school .ui-header__title{text-overflow:clip;white-space:normal;overflow-wrap:anywhere;text-wrap:balance;font-size:.9375rem;line-height:1.35;overflow:visible}@media (max-width:359px){.ui-header--school .ui-header__title{font-size:.875rem}}.ui-daymark{--daymark:12px;width:var(--daymark);height:var(--daymark);border-radius:var(--radius-pill);flex-shrink:0;place-items:center;display:inline-grid}.ui-daymark--done{color:var(--present-dot-ink);background:var(--present-dot);font-size:calc(var(--daymark) * .8)}.ui-daymark--pending{border:2px solid var(--amber)}.ui-month{container-type:inline-size}.ui-month__top{align-items:center;gap:10px;margin-bottom:10px;display:flex}.ui-month__title{flex:auto;gap:4px;min-width:0;display:grid}.ui-month__title strong{font-size:17px;font-weight:var(--weight-bold);line-height:1.3}.ui-month__counts{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-soft);align-items:center;gap:14px;display:flex}.ui-month__counts>span{align-items:center;gap:6px;display:inline-flex}.ui-iconButton.ui-month__nav{width:36px;height:36px;color:var(--ink-soft);background:color-mix(in srgb, var(--brand) 5%, var(--surface));border:1px solid var(--hairline);font-size:1rem}.ui-iconButton.ui-month__nav:disabled{opacity:.4;cursor:not-allowed}.ui-month__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.ui-month__weekday{font-size:11px;font-weight:var(--weight-bold);text-align:center;white-space:nowrap;color:var(--ink-muted);padding:2px 0 4px;line-height:1.3}@container (max-width:340px){.ui-month__weekday{letter-spacing:-.02em;font-size:10px}}.ui-month__blank{visibility:hidden}.ui-month__day{height:var(--month-cell,50px);min-width:0;font-family:var(--font-latin);font-variant-numeric:tabular-nums;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:flex;position:relative}.ui-month__day:disabled{cursor:default}.ui-month__number{font-size:14px;font-weight:var(--weight-semibold);line-height:1}.ui-month__mark{justify-content:center;align-items:center;height:12px;display:flex}.ui-month__day--none .ui-month__number{font-weight:var(--weight-regular);color:var(--ink-faint)}.ui-month__day--work .ui-month__number{color:var(--ink)}.ui-month__day--attendance{background:color-mix(in srgb, var(--brand) 5%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 8%, var(--hairline))}.ui-month__day--in{background:color-mix(in srgb, var(--brand) 13%, var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--brand) 26%, transparent)}.ui-month__day--in.ui-month__day--none{background:color-mix(in srgb, var(--brand) 6%, var(--surface));box-shadow:none}.ui-month__day--end,.ui-month__day--end.ui-month__day--in{background:var(--brand);box-shadow:0 6px 14px -8px color-mix(in srgb, var(--brand) 80%, transparent)}.ui-month__day--end .ui-month__number{font-weight:var(--weight-bold);color:var(--on-brand)}.ui-month__day--end .ui-daymark--done{color:var(--brand);background:var(--on-brand)}.ui-month__day--end .ui-daymark--pending{border-color:var(--on-brand)}.ui-month__day--today:not(.ui-month__day--end) .ui-month__number{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:2px;-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand)}.ui-month__day:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}@media (min-width:700px){.ui-days{grid-template-columns:repeat(7,minmax(0,1fr))}}.ui-day{border:1px solid var(--hairline-strong);border-radius:var(--radius-m);min-width:0;height:52px;font:inherit;font-size:var(--text-md);font-weight:var(--weight-bold);white-space:nowrap;color:var(--ink);background:var(--surface-raised);cursor:pointer;transition:background-color var(--t-enter) var(--ease-out), transform var(--t-exit) var(--ease-out);justify-content:center;align-items:center;gap:5px;padding:0 6px;display:inline-flex}.ui-day .ui-icon{font-size:.95em}.ui-day:active:not(:disabled){transform:scale(.97)}.ui-day.is-chosen{color:var(--on-brand);background:var(--brand);border-color:var(--brand);box-shadow:0 8px 16px -10px color-mix(in srgb, var(--brand) 70%, transparent)}.ui-day.is-closed{color:var(--ink-faint);cursor:not-allowed;background:0 0;border-style:dashed}.ui-day:focus-visible{box-shadow:var(--focus-ring);outline:none}@media (max-width:339px){.ui-days{gap:6px}.ui-day{font-size:var(--text-sm);padding:0 3px}}.ui-chips{align-items:center;gap:8px;display:flex}.ui-chip{border:1px solid var(--hairline-strong);border-radius:var(--radius-s);min-width:0;height:48px;font-family:var(--font-latin);font-size:1.0625rem;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;color:var(--ink);background:var(--surface-raised);cursor:pointer;flex:1 1 0;place-items:center;display:grid;position:relative}.ui-chip.is-chosen{color:var(--on-brand);background:var(--brand);border-color:var(--brand)}.ui-chip__input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.ui-chip:has(.ui-chip__input:focus-visible){box-shadow:var(--focus-ring)}.ui-chips__unit{font-size:var(--text-sm);color:var(--ink-muted);flex:none}.ui-option{align-items:center;gap:var(--space-3);padding:14px var(--space-4);border:1px solid var(--hairline-strong);border-radius:var(--radius-card);background:color-mix(in srgb, var(--tone) var(--wash-option), var(--surface));cursor:pointer;grid-template-columns:auto auto minmax(0,1fr);display:grid;position:relative}.ui-option.is-chosen{background:color-mix(in srgb, var(--brand) var(--wash-option-chosen), var(--surface));border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.ui-option__input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.ui-option:has(.ui-option__input:focus-visible){box-shadow:var(--focus-ring)}.ui-option__radio{border:2px solid var(--hairline-strong);border-radius:var(--radius-pill);place-items:center;width:22px;height:22px;display:grid}.ui-option.is-chosen .ui-option__radio{border-color:var(--brand)}.ui-option.is-chosen .ui-option__radio:after{content:"";border-radius:var(--radius-pill);background:var(--brand);width:10px;height:10px}.ui-option__mark{border-radius:var(--radius-pill);width:34px;height:34px;color:var(--tone);background:color-mix(in srgb, var(--tone) 14%, transparent);place-items:center;font-size:18px;display:grid}.ui-option__text{gap:2px;min-width:0;display:grid}.ui-option__title{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.ui-option__detail{font-size:var(--text-xs);color:var(--ink-muted)}.ui-row--check{cursor:pointer}.ui-row__check{border:2px solid var(--hairline-strong);width:24px;height:24px;color:var(--on-brand);background:var(--surface);border-radius:7px;flex:none;place-items:center;font-size:15px;display:grid}.ui-row--check.is-checked{background:color-mix(in srgb, var(--brand) var(--wash-strength), var(--surface));border-color:color-mix(in srgb, var(--brand) var(--wash-strength-strong), var(--hairline))}.ui-row--check.is-checked .ui-row__check{border-color:var(--brand);background:var(--brand)}.ui-row--check:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-week{max-width:100%;overflow-x:auto}.ui-week:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-week__table{border-collapse:separate;border-spacing:4px;width:100%;font-size:var(--text-xs)}.ui-week__table th{font-weight:var(--weight-bold);white-space:nowrap;color:var(--ink-muted);padding:2px 4px 4px}.ui-week__label{text-align:start;font-size:var(--text-xs)}.ui-week__cell{text-align:center;white-space:nowrap;background:var(--surface-sunken);border-radius:8px;padding:5px 4px}.ui-week__cell span{font-weight:var(--weight-bold);line-height:1.35;display:block}.ui-week__cell.is-off{box-shadow:inset 0 0 0 1px var(--hairline);background:0 0}.ui-week--down .ui-week__cell{white-space:normal}.ui-week--down .ui-week__cell span{white-space:nowrap;display:inline}.ui-week--down .ui-week__cell span+span:before{content:" — ";font-weight:var(--weight-regular);color:var(--ink-muted)}.ui-week--down .ui-week__label{white-space:nowrap}.ui-steps{margin:0;padding:0;list-style:none;display:flex}.ui-steps__step{flex:1 1 0;min-width:0;position:relative}.ui-steps__step:not(:first-child):before{content:"";top:15px;background:var(--hairline-strong);width:100%;height:2px;position:absolute;inset-inline-end:50%}.ui-steps__step.is-done+.ui-steps__step:before{background:var(--brand)}.ui-steps__go{z-index:1;width:100%;font:inherit;color:inherit;background:0 0;border:0;flex-direction:column;align-items:center;gap:6px;padding:0;display:flex;position:relative}button.ui-steps__go{cursor:pointer}button.ui-steps__go:focus-visible{outline:none}button.ui-steps__go:focus-visible .ui-steps__dot{box-shadow:var(--focus-ring)}.ui-steps__dot{border:2px solid var(--hairline-strong);border-radius:var(--radius-pill);width:32px;height:32px;font-family:var(--font-latin);font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--ink-muted);background:var(--surface);place-items:center;display:grid}.is-done .ui-steps__dot{color:var(--on-brand);background:var(--brand);border-color:var(--brand);font-size:16px}.is-current .ui-steps__dot{color:var(--on-brand);background:var(--brand);border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 20%, transparent)}.ui-steps__words{justify-items:center;gap:2px;min-width:0;display:grid}.ui-steps__label{font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;color:var(--ink-muted)}.is-current .ui-steps__label{font-weight:var(--weight-bold);color:var(--ink)}.ui-steps__summary{font-size:var(--text-xs);color:var(--ink-muted)}.ui-steps--vertical{flex-direction:column}.ui-steps--vertical .ui-steps__step{flex:none;padding-bottom:22px}.ui-steps--vertical .ui-steps__step:last-child{padding-bottom:0}.ui-steps--vertical .ui-steps__step:not(:first-child):before{display:none}.ui-steps--vertical .ui-steps__step:not(:last-child):after{content:"";top:32px;bottom:0;background:var(--hairline-strong);width:2px;position:absolute;inset-inline-start:15px}.ui-steps--vertical .ui-steps__step.is-done:after{background:var(--brand)}.ui-steps--vertical .ui-steps__go{text-align:start;flex-direction:row;align-items:flex-start;gap:12px}.ui-steps--vertical .ui-steps__words{justify-items:start;padding-top:5px}.ui-steps--vertical .ui-steps__label{font-size:var(--text-sm)}.ui-timebox{border:1px solid var(--hairline-strong);border-radius:var(--radius-m);background:var(--surface-raised);align-items:center;gap:4px;min-width:0;height:58px;padding:0 12px;display:flex}.ui-timebox:focus-within{border-color:var(--brand);box-shadow:var(--focus-ring)}.ui-timebox__input{width:3.1em;min-width:2.9em;font-family:var(--font-latin);font-size:1.25rem;font-weight:var(--weight-bold);font-variant-numeric:tabular-nums;text-align:right;color:var(--ink);background:0 0;border:0;flex:none;padding:0}.ui-timebox__input:focus{outline:none}.ui-timebox__input::placeholder{color:var(--ink-faint);font-weight:var(--weight-regular)}.ui-timebox__period{min-width:26px;min-height:34px;font:inherit;font-size:1.0625rem;font-weight:var(--weight-bold);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 4px}.ui-timebox__period:hover{background:var(--surface-sunken)}.ui-timebox__period:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-timebox__mark{color:var(--ink-muted);margin-inline-start:auto;font-size:16px;display:grid}@media (max-width:339px){.ui-timebox{padding:0 10px}.ui-timebox__input{font-size:1.125rem}.ui-timebox__mark{display:none}}.ui-timebox.is-invalid{border-color:var(--absent);box-shadow:inset 0 0 0 1px var(--absent)}.ui-timebox.is-invalid .ui-timebox__input,.ui-timebox.is-invalid .ui-timebox__period{color:var(--absent)}.ui-frame{min-height:100dvh}.ui-frame__main{min-width:0}.ui-frame--tabs .ui-frame__main{padding-bottom:calc(80px + var(--safe-bottom))}.ui-rail{display:none}.ui-tabbar{inset-inline:0;z-index:20;padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb, var(--surface) 84%, transparent);border-top:1px solid var(--hairline);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);grid-template-columns:repeat(4,minmax(0,1fr));display:grid;position:fixed;bottom:0}.ui-tabbar__place{min-height:60px;color:var(--ink-muted);font-size:12.5px;font-weight:var(--weight-semibold);-webkit-tap-highlight-color:transparent;align-content:center;justify-items:center;gap:3px;text-decoration:none;display:grid}.ui-tabbar__placeIcon{border-radius:var(--radius-pill);width:54px;height:30px;transition:background-color var(--t-enter) var(--ease-out);place-items:center;font-size:21px;display:grid}.ui-tabbar__place.is-current{color:var(--brand);font-weight:var(--weight-bold)}.ui-tabbar__place.is-current .ui-tabbar__placeIcon{background:color-mix(in srgb, var(--brand) 15%, transparent)}.ui-tabbar__place:focus-visible{outline:none}.ui-tabbar__place:focus-visible .ui-tabbar__placeIcon{box-shadow:var(--focus-ring)}@media (min-width:1024px){.ui-frame{grid-template-columns:256px minmax(0,1fr);display:grid}.ui-frame--tabs .ui-frame__main{padding-bottom:0}.ui-tabbar{display:none}.ui-rail{gap:var(--space-5);height:100dvh;padding:var(--space-5) var(--space-3);background:color-mix(in srgb, var(--brand) var(--wash-panel), var(--surface));border-inline-end:1px solid var(--hairline);flex-direction:column;display:flex;position:sticky;top:0}.ui-header--root .ui-header__crest{visibility:hidden}}.ui-rail__school{align-items:center;gap:var(--space-3);padding:0 var(--space-2);display:flex}.ui-rail__schoolName{font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1.4}.ui-rail__places{gap:4px;display:grid}.ui-rail__place{align-items:center;gap:var(--space-3);min-height:44px;padding:0 var(--space-3);color:var(--ink-soft);font-size:var(--text-md);font-weight:var(--weight-semibold);border:1px solid #0000;border-radius:12px;text-decoration:none;display:flex}.ui-rail__placeIcon{font-size:20px;display:grid}.ui-rail__place:hover{background:color-mix(in srgb, var(--brand) 6%, transparent)}.ui-rail__place.is-current{color:var(--brand);font-weight:var(--weight-bold);background:color-mix(in srgb, var(--brand) 14%, var(--surface))}.ui-rail__place--scan{margin-top:var(--space-3);color:var(--brand);border-color:color-mix(in srgb, var(--brand) 32%, var(--hairline))}.ui-rail__place:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-rail__person{align-items:center;gap:var(--space-3);padding:var(--space-3);background:color-mix(in srgb, var(--brand) var(--wash-panel), var(--surface));border:1px solid var(--hairline);border-radius:var(--radius-m);margin-top:auto;display:flex}.ui-rail__avatar{border-radius:var(--radius-pill);width:36px;height:36px;color:var(--ink-soft);background:var(--surface-sunken);flex-shrink:0;place-items:center;font-size:18px;display:grid}.ui-rail__who{flex:auto;min-width:0;line-height:1.35;display:grid}.ui-rail__who strong{font-size:var(--text-sm);overflow-wrap:anywhere}.ui-rail__who small{font-size:var(--text-xs);color:var(--ink-muted)}.ui-rail__logout{width:36px;height:36px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;flex-shrink:0;place-items:center;padding:0;font-size:18px;display:grid}.ui-rail__logout:hover{background:var(--surface-sunken)}.ui-rail__notices{display:none}.ui-standingNotice{border-radius:var(--radius-s);min-width:0}.ui-standingNotice__action{align-items:center;gap:var(--space-2);width:100%;min-width:0;min-height:64px;padding:var(--space-3);border:1px solid var(--hairline);border-radius:var(--radius-s);font:inherit;text-align:start;color:var(--ink);background:var(--surface-sunken);cursor:pointer;text-decoration:none;display:flex}.ui-standingNotice__action:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-standingNotice__action:hover{border-color:var(--hairline-strong)}.ui-standingNotice__action:disabled{cursor:default}.ui-standingNotice__mark{color:var(--ink-muted);flex:none;font-size:18px;display:grid}.ui-standingNotice__text{gap:var(--space-1);flex:auto;min-width:0;display:grid}.ui-standingNotice__text strong,.ui-standingNotice__text>span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ui-standingNotice__text strong{font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1.4}.ui-standingNotice__text>span{font-size:var(--text-xs);color:var(--ink-soft);line-height:1.4}.ui-standingNotice__go{color:var(--ink-muted);flex:none;font-size:14px;display:grid}.ui-standingNotice--reminder .ui-standingNotice__action{border-color:var(--tone);background:color-mix(in srgb, var(--tone) var(--wash-panel), var(--surface))}.ui-standingNotice--reminder .ui-standingNotice__mark,.ui-standingNotice--reminder .ui-standingNotice__text strong,.ui-standingNotice--reminder .ui-standingNotice__go{color:var(--tone)}.ui-standingNotice>.reminder__failed{padding:var(--space-2);overflow-wrap:anywhere;display:block}.ui-standingNotice[class*=ui-standingNotice--trial-] .ui-standingNotice__text>span{white-space:normal}.ui-standingNotice--trial-ending .ui-standingNotice__action,.ui-standingNotice--trial-grace .ui-standingNotice__action{border-color:var(--tone);background:color-mix(in srgb, var(--tone) var(--wash-panel), var(--surface))}.ui-standingNotice--trial-ending .ui-standingNotice__mark,.ui-standingNotice--trial-ending .ui-standingNotice__text strong,.ui-standingNotice--trial-grace .ui-standingNotice__mark,.ui-standingNotice--trial-grace .ui-standingNotice__text strong{color:var(--tone)}@media (min-width:1024px){.ui-rail__notices:has(.ui-standingNotice){gap:var(--space-2);flex-direction:column;min-height:0;display:flex;overflow:hidden}.ui-rail__notices h2{padding-inline:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-muted);flex:none;margin:0}.ui-rail__noticeItems{gap:var(--space-2);overscroll-behavior:contain;min-height:0;padding:var(--space-1);scrollbar-width:thin;display:grid;overflow-y:auto}.ui-rail:has(.ui-standingNotice)>:not(.ui-rail__notices){flex-shrink:0}.ui-standingNotice__action{padding:var(--space-2)}}.ui-crest{width:40px;height:40px;color:var(--ink-soft);background:var(--surface-sunken);border:1px solid var(--hairline);border-radius:12px;place-items:center;font-size:20px;display:grid}.ui-crest--sm{width:34px;height:34px;font-size:17px}.ui-crest--lg{width:48px;height:48px;font-size:24px}.ui-logo{flex-shrink:0;display:inline-flex}.ui-logo img{width:auto;height:44px;display:block}.ui-logo--en img{height:15px}.ui-logo .ui-logo__dark,:root[data-theme=dark] .ui-logo__light{display:none}:root[data-theme=dark] .ui-logo__dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .ui-logo__light{display:none}:root:not([data-theme=light]) .ui-logo__dark{display:block}}.ui-fieldBox{gap:6px;min-width:0;display:grid}.ui-fieldBox__label{font-size:13px;font-weight:var(--weight-semibold);color:var(--ink-soft);transition:color var(--t-enter) var(--ease-out)}.ui-fieldBox:focus-within .ui-fieldBox__label{color:var(--brand)}.ui-fieldBox__box{align-items:center;gap:var(--space-2);background:var(--field-bg);border:1px solid var(--field-edge);border-radius:var(--radius-m);min-height:54px;box-shadow:var(--field-inset);transition:border-color var(--t-enter) var(--ease-out), box-shadow var(--t-enter) var(--ease-out);padding-inline:10px 8px;display:flex}.ui-fieldBox:focus-within .ui-fieldBox__box{border-color:var(--brand);box-shadow:var(--field-inset), 0 0 0 4px color-mix(in srgb, var(--brand) 16%, transparent)}.ui-fieldBox__icon{width:34px;height:34px;color:var(--brand);background:color-mix(in srgb, var(--brand) 11%, var(--surface));box-shadow:inset 0 1px 0 var(--card-highlight);border-radius:10px;flex-shrink:0;place-items:center;font-size:17px;display:grid}.ui-fieldBox__input{width:0;min-width:0;height:52px;padding:0 var(--space-1);color:var(--ink);font:inherit;font-size:var(--text-md);font-weight:var(--weight-semibold);background:0 0;border:0;outline:none;flex:1}.ui-fieldBox__input::placeholder{color:var(--ink-faint);font-weight:var(--weight-regular)}.ui-fieldBox__input[data-latin=true]{text-align:left;font-family:var(--font-latin);direction:ltr}.ui-fieldBox__eye{width:38px;height:38px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;flex-shrink:0;place-items:center;padding:0;font-size:18px;display:grid}.ui-fieldBox.is-invalid .ui-fieldBox__box{border-color:var(--absent)}.ui-fieldBox.is-invalid .ui-fieldBox__icon{color:var(--absent);background:color-mix(in srgb, var(--absent) 12%, var(--surface))}.ui-fieldBox.is-invalid .ui-fieldBox__label{color:var(--absent)}.ui-fieldBox__error{font-size:13px;font-weight:var(--weight-semibold);color:var(--absent)}.ui-fieldBox__hint{font-size:var(--text-xs);color:var(--ink-muted)}.ui-rules{gap:6px var(--space-4);color:var(--ink-muted);flex-wrap:wrap;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.ui-rules li{align-items:center;gap:6px;display:inline-flex}.ui-rules__mark{border:1.5px solid var(--hairline-strong);border-radius:var(--radius-pill);place-items:center;width:18px;height:18px;font-size:12px;display:grid}.ui-rules li.is-met{color:var(--present);font-weight:var(--weight-semibold)}.ui-rules li.is-met .ui-rules__mark{color:var(--present-dot-ink);background:var(--present-dot);border-color:var(--present-dot)}.ui-passwordCard{gap:var(--space-4);padding:var(--space-5) var(--space-4);display:grid}.ui-passwordCard__head{gap:4px;display:grid}.ui-passwordCard__head strong{font-size:17px;font-weight:var(--weight-bold)}.ui-passwordCard__head span{color:var(--ink-muted);font-size:13px}.ui-codeBox{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1.5px solid var(--brand);border-radius:var(--radius-m);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 12%, transparent);flex-wrap:wrap;display:flex}.ui-codeBox__value{font-family:var(--font-latin);font-size:23px;font-weight:var(--weight-bold);letter-spacing:.12em;color:var(--ink);direction:ltr}.ui-codeBox__copy{min-height:40px;padding:0 var(--space-3);border:1px solid var(--hairline);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--brand);background:var(--surface);cursor:pointer;border-radius:10px;align-items:center;gap:6px;display:inline-flex}.ui-codeInput{align-items:center;gap:var(--space-2);min-height:66px;padding:0 var(--space-4);background:var(--field-bg);border:1.5px solid var(--field-edge);border-radius:var(--radius-m);box-shadow:var(--field-inset);display:flex}.ui-codeInput:focus-within{border-color:var(--brand);box-shadow:var(--field-inset), 0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent)}.ui-codeInput.is-invalid{border-color:var(--absent)}.ui-codeInput__field{text-align:center;text-transform:uppercase;width:0;min-width:0;font-family:var(--font-latin);font-size:24px;font-weight:var(--weight-bold);letter-spacing:.22em;color:var(--ink);direction:ltr;background:0 0;border:0;outline:none;flex:1}.ui-codeInput__tick{border-radius:var(--radius-pill);flex-shrink:0;place-items:center;width:26px;height:26px;font-size:15px;display:grid}.ui-codeInput.is-ok .ui-codeInput__tick{color:var(--present-dot-ink);background:var(--present-dot)}.ui-digits{gap:var(--space-2);direction:ltr;grid-template-columns:repeat(6,minmax(0,1fr));display:grid}.ui-digits__box{text-align:center;min-width:0;height:58px;font-family:var(--font-latin);font-size:24px;font-weight:var(--weight-bold);color:var(--ink);background:var(--field-bg);border:1px solid var(--field-edge);box-shadow:var(--field-inset);border-radius:12px;padding:0}.ui-digits__box:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb, var(--brand) 14%, transparent);outline:none}.ui-callout{align-items:flex-start;gap:var(--space-3);padding:14px var(--space-4);background:color-mix(in srgb, var(--tone) var(--wash-strength), var(--surface));border:1px solid color-mix(in srgb, var(--tone) 30%, var(--hairline));border-radius:var(--radius-m);display:flex}.ui-callout__mark{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--tone);background:color-mix(in srgb, var(--tone) 16%, var(--surface));flex-shrink:0;place-items:center;font-size:20px;display:grid}.ui-callout__text{align-self:center;gap:2px;min-width:0;display:grid}.ui-callout__eyebrow{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--tone)}.ui-callout__title{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--ink);line-height:1.4}.ui-callout__detail{color:var(--ink-soft);font-size:13px;line-height:1.5}.ui-rowCard{padding:4px 0;display:grid;overflow:hidden}.ui-rowCard__head{padding:12px var(--space-4) 4px;gap:2px;display:grid}.ui-rowCard__head strong{font-size:var(--text-md);font-weight:var(--weight-bold)}.ui-rowCard__head span{color:var(--ink-muted);font-size:12.5px}.ui-rowCard__rows{display:grid}.ui-navRow{align-items:center;gap:var(--space-3);width:100%;min-height:64px;padding:10px var(--space-4);color:var(--ink);text-align:start;font:inherit;background:0 0;border:0;text-decoration:none;display:flex}.ui-rowCard__head+.ui-rowCard__rows>.ui-navRow:first-child,.ui-navRow+.ui-navRow{border-top:1px solid var(--hairline)}a.ui-navRow,button.ui-navRow{cursor:pointer;transition:background-color var(--t-enter) var(--ease-out)}a.ui-navRow:hover,button.ui-navRow:hover{background:color-mix(in srgb, var(--brand) 4%, transparent)}a.ui-navRow:focus-visible,button.ui-navRow:focus-visible{box-shadow:inset var(--focus-ring);outline:none}.ui-navRow__badge{width:40px;height:40px;color:var(--tone);background:color-mix(in srgb, var(--tone) 12%, var(--surface));box-shadow:inset 0 1px 0 var(--card-highlight);border-radius:12px;flex-shrink:0;place-items:center;font-size:20px;display:grid;position:relative}.ui-navRow__number{top:-6px;border-radius:var(--radius-pill);min-width:19px;height:19px;font-family:var(--font-latin);font-size:11px;font-weight:var(--weight-bold);color:var(--on-fill);background:var(--tone-fill);box-shadow:0 0 0 2px var(--surface);place-items:center;padding:0 4px;display:grid;position:absolute;inset-inline-end:-6px}.ui-navRow__text{flex:auto;gap:2px;min-width:0;display:grid}.ui-navRow__title{font-size:var(--text-md);font-weight:var(--weight-bold);overflow-wrap:anywhere;line-height:1.35}.ui-navRow__detail{color:var(--ink-muted);overflow-wrap:anywhere;font-size:13px;line-height:1.45}.ui-navRow__end{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.ui-navRow__chevron{color:var(--ink-faint);flex-shrink:0;font-size:17px;display:grid}.ui-dashedAdd{align-content:center;justify-items:center;gap:var(--space-2);width:100%;min-height:150px;padding:var(--space-6) var(--space-5);color:var(--ink);text-align:center;background:color-mix(in srgb, var(--brand) 3%, transparent);border:2px dashed color-mix(in srgb, var(--brand) 35%, var(--hairline));border-radius:var(--radius-l);font:inherit;cursor:pointer;text-decoration:none;display:grid}.ui-dashedAdd__plus{border-radius:var(--radius-pill);width:56px;height:56px;color:var(--ink);background:color-mix(in srgb, var(--brand) 10%, var(--surface));box-shadow:inset 0 1px 0 var(--card-highlight);place-items:center;font-size:26px;display:grid}.ui-dashedAdd__title{font-size:17px;font-weight:var(--weight-bold)}.ui-dashedAdd__detail{color:var(--ink-muted);font-size:13px}.ui-todayCard{--role:var(--tone);color:var(--ink);-webkit-tap-highlight-color:transparent;transition:transform var(--t-enter) var(--ease-out);flex-direction:column;gap:16px;padding:18px;text-decoration:none;display:flex}.ui-todayCard:active{transform:scale(.99)}.ui-todayCard:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-todayCard__head{align-items:center;gap:10px;min-width:0;display:flex}.ui-todayCard__icon{width:40px;height:40px;color:var(--role);background:color-mix(in srgb, var(--role) 13%, var(--surface));box-shadow:inset 0 1px 0 var(--card-highlight);border-radius:12px;flex-shrink:0;place-items:center;font-size:20px;display:grid}.ui-todayCard__what{flex:auto;min-width:0;display:grid}.ui-todayCard__name{font-size:16px;font-weight:var(--weight-bold);color:var(--role);align-items:center;gap:4px;line-height:1.3;display:flex}.ui-todayCard__go{color:var(--ink-faint);font-size:14px;display:grid}.ui-todayCard__unit{font-size:13px;font-weight:var(--weight-semibold);color:var(--ink-muted);line-height:1.4}.ui-todayCard__figure{font-family:var(--font-latin);font-variant-numeric:tabular-nums;letter-spacing:-.02em;flex-shrink:0;align-items:baseline;line-height:.9;display:flex}.ui-todayCard__figure b{font-size:50px;font-weight:var(--weight-bold);color:var(--ink)}.ui-todayCard__figure small{font-size:22px;font-weight:var(--weight-semibold);letter-spacing:0;color:var(--ink-muted);margin-left:3px}.ui-todayCard__bar{gap:3px;height:10px;display:flex}.ui-todayCard__part{border-radius:var(--radius-pill);min-width:6px;display:block}.ui-todayCard__part--done{background:var(--role)}.ui-todayCard__part--part{background:color-mix(in srgb, var(--role) 42%, var(--surface))}.ui-todayCard__part--late{background:var(--amber)}.ui-todayCard__part--absent{background:var(--absent)}.ui-todayCard__part--leave{background:var(--repeat)}.ui-todayCard__part--rest{background:color-mix(in srgb, var(--role) 13%, var(--surface))}.ui-todayCard__tiles{gap:8px;display:grid}.ui-todayCard__tiles--1{grid-template-columns:minmax(0,1fr)}.ui-todayCard__tiles--2{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-todayCard__tiles--3{grid-template-columns:repeat(3,minmax(0,1fr))}.ui-statTile{background:color-mix(in srgb, var(--tone) 7%, var(--surface));border:1px solid color-mix(in srgb, var(--tone) 20%, var(--hairline));border-radius:12px;align-items:center;gap:6px;min-width:0;height:42px;padding:0 10px;display:flex}.ui-statTile__mark{border-radius:var(--radius-pill);width:20px;height:20px;color:var(--tone);background:color-mix(in srgb, var(--tone) 12%, var(--surface));flex-shrink:0;place-items:center;font-size:12px;display:grid}.ui-statTile b{font-family:var(--font-latin);font-size:17px;font-weight:var(--weight-bold);color:var(--tone);line-height:1}.ui-statTile__word{min-width:0;font-size:13px;font-weight:var(--weight-semibold);color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ui-statTile--late,.ui-statTile--due{--tone:var(--amber-ink)}.ui-statTile--late{background:color-mix(in srgb, var(--amber) 10%, var(--surface));border-color:color-mix(in srgb, var(--amber) 28%, var(--hairline))}.ui-statTile--due{background:var(--amber-wash);border-color:var(--amber-edge)}.ui-statTile--due .ui-statTile__mark{color:var(--amber);background:0 0}.ui-statTile.is-zero{background:color-mix(in srgb, var(--role,var(--brand)) 4%, var(--surface));border-color:color-mix(in srgb, var(--role,var(--brand)) 10%, var(--hairline))}.ui-statTile.is-zero b,.ui-statTile.is-zero .ui-statTile__mark{color:var(--ink-faint);background:0 0}.ui-statTile.is-zero .ui-statTile__word{color:var(--ink-muted)}.ui-statTile--none .ui-statTile__word{white-space:normal}@media (max-width:359px){.ui-todayCard{padding:16px}.ui-todayCard__figure b{font-size:44px}.ui-statTile{gap:5px;padding:0 8px}.ui-statTile__mark{width:16px;height:16px;font-size:10px}.ui-statTile b{font-size:16px}.ui-statTile__word{font-size:12px}}.ui-filters{margin-inline:calc(-1 * var(--gutter));padding-inline:var(--gutter);scrollbar-width:none;flex-wrap:nowrap;gap:6px;display:flex;overflow-x:auto}.ui-filters::-webkit-scrollbar{display:none}.ui-filter{border-radius:var(--radius-pill);height:34px;font:inherit;font-size:13.5px;font-weight:var(--weight-semibold);white-space:nowrap;color:var(--ink-soft);background:var(--surface);border:1px solid var(--hairline-strong);cursor:pointer;flex-shrink:0;align-items:center;gap:5px;padding:0 10px;display:inline-flex}.ui-filter b{border-radius:var(--radius-pill);min-width:20px;height:20px;font-family:var(--font-latin);font-size:12px;font-weight:var(--weight-bold);background:var(--surface-sunken);place-items:center;padding:0 6px;display:inline-grid}.ui-filter.is-on{color:var(--brand);background:var(--brand-wash);border-color:var(--brand)}.ui-filter--due b{color:var(--amber-ink);background:color-mix(in srgb, var(--amber) 22%, var(--surface))}.ui-filter:focus-visible{box-shadow:var(--focus-ring);outline:none}.ui-summary{align-items:center;gap:12px;min-width:0;padding:2px 4px;display:flex}.ui-summary__ring{--ring-value:var(--tone);--ring-track:color-mix(in srgb, var(--tone) 13%, transparent);flex-shrink:0;font-size:50px;display:grid;position:relative}.ui-summary__ring .ui-ring circle{stroke-width:2.6px}.ui-summary__count{font-family:var(--font-latin);place-content:center;justify-items:center;line-height:1;display:grid;position:absolute;inset:0}.ui-summary__count b{font-size:17px;font-weight:var(--weight-bold)}.ui-summary__count small{font-size:10px;font-weight:var(--weight-semibold);color:var(--ink-muted);margin-top:2px}.ui-summary__mark{border-radius:var(--radius-pill);flex-shrink:0;place-items:center;width:46px;height:46px;font-size:22px;display:grid}.ui-summary__mark--done{color:var(--on-fill);background:var(--present-fill)}.ui-summary__mark--due{color:var(--amber);background:var(--amber-wash);border:1px solid var(--amber-edge)}.ui-summary__text{min-width:0;display:grid}.ui-summary__text strong{font-size:16px;font-weight:var(--weight-bold)}.ui-summary__text span{color:var(--ink-muted);font-size:12.5px;line-height:1.5}.ui-row__line{align-items:center;gap:8px;min-width:0;margin-top:1px;display:flex}.ui-row__line .ui-row__subtitle{flex:auto;min-width:0;font-size:12.5px;line-height:1.45}.ui-row__line .ui-badge{min-height:26px;margin-inline-start:auto;padding-block:0;font-size:12px}.ui-row__chevron{color:var(--ink-faint);flex-shrink:0;font-size:17px;display:grid}.ui-row__subtitle .ui-count{font-weight:inherit}.ui-row--card{min-height:64px;padding:10px 14px 10px 12px}.ui-row--card .ui-row__title{font-size:15px;line-height:1.4}.ui-rowCard__rows>.ui-row{background:0 0;border:0;border-radius:0}.ui-rowCard__rows>.ui-row+.ui-row,.ui-rowCard__head+.ui-rowCard__rows>.ui-row:first-child{border-top:1px solid var(--hairline)}.ui-rowCard__rows>.ui-row--toned{background:color-mix(in srgb, var(--amber) 5%, transparent)}.ui-rowCard__rows>a.ui-row:hover,.ui-rowCard__rows>button.ui-row:hover{background:color-mix(in srgb, var(--brand) 4%, transparent)}.ui-rowCard__rows>.ui-row:focus-visible{box-shadow:inset var(--focus-ring);outline:none}.ui-rowCard__rows>.ui-row--desk{min-height:50px;padding:7px 12px 7px 10px}.ui-row--desk .ui-row__title{font-size:13.5px}.ui-row--desk .ui-row__line .ui-row__subtitle{font-size:11.5px}.ui-row--desk .ui-row__line .ui-badge{gap:4px;min-height:22px;padding-inline:.4em .6em;font-size:11px}.ui-sheet__foot{gap:var(--space-2);padding:var(--space-3) var(--space-4) calc(var(--space-4) + var(--safe-bottom));border-top:1px solid var(--hairline);flex-shrink:0;display:flex}.ui-sheet__foot>.ui-button--block{flex:auto}.ui-sheet__foot+.ui-sheet__body{padding-bottom:var(--space-4)}.ui-sheet__body:has(+.ui-sheet__foot){padding-bottom:var(--space-4)}@media (min-width:1024px){.ui-sheet--side{justify-content:stretch;align-items:flex-end}.ui-sheet--side .ui-sheet__veil{display:none}.ui-sheet--side .ui-sheet__panel{border-inline-start:1px solid var(--hairline);width:420px;height:100dvh;max-height:none;box-shadow:var(--shadow-3);animation:sv-fade-in var(--t-enter) var(--ease-out) both;border-radius:0;margin:0;margin-inline-start:auto}.ui-sheet--side .ui-sheet__grabber{visibility:hidden}.ui-sheet--side .ui-sheet__foot{flex-direction:row-reverse;justify-content:flex-start}.ui-sheet--side .ui-sheet__foot>.ui-button--block{width:auto;min-height:var(--tap-desk);font-size:var(--text-sm);flex:none}}.ui-row--hit{position:relative}.ui-row__hit{border-radius:inherit;cursor:pointer;background:0 0;border:0;padding:0;position:absolute;inset:0}.ui-row__hit:focus-visible{box-shadow:inset var(--focus-ring);outline:none}.ui-rowCard__rows>.ui-row--hit:hover{background:color-mix(in srgb, var(--brand) 4%, transparent)}.ui-row--hit .ui-row__main{pointer-events:none}.ui-row--hit .ui-row__main button{z-index:1;pointer-events:auto;position:relative}.ui-rowCard__rows>.ui-row.is-picked{background:var(--brand-wash);border-inline-start:3px solid var(--brand)}.ui-row__edited{font:inherit;font-size:12px;font-weight:var(--weight-semibold);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;justify-self:start;align-items:center;gap:4px;margin-top:4px;padding:2px 0;display:inline-flex}.ui-row__edited .ui-icon{font-size:13px}.ui-row__edited:hover{color:var(--brand)}.ui-row__edited:focus-visible{box-shadow:var(--focus-ring);border-radius:6px;outline:none}.ui-personCard{padding:0;display:grid;overflow:hidden}.ui-personCard__band{min-height:48px;color:var(--on-fill);background:var(--tone-fill);background-image:linear-gradient(160deg, color-mix(in srgb, var(--on-fill) 16%, transparent), transparent 60%);align-items:center;gap:8px;padding:0 14px;display:flex}.ui-personCard__tile{background:color-mix(in srgb, var(--on-fill) 18%, transparent);border-radius:8px;place-items:center;width:28px;height:28px;font-size:15px;display:grid}.ui-personCard__role{font-size:14px;font-weight:var(--weight-bold)}.ui-personCard__chip{border:1px solid color-mix(in srgb, var(--on-fill) 30%, transparent);border-radius:var(--radius-pill);font-size:11.5px;font-weight:var(--weight-semibold);background:color-mix(in srgb, var(--on-fill) 16%, transparent);padding:3px 9px}.ui-personCard__end{margin-inline-start:auto}.ui-personCard__code{font-family:var(--font-latin);font-size:18px;font-weight:var(--weight-bold);letter-spacing:.12em}.ui-personCard__body{gap:2px;padding:14px 16px 16px;display:grid}.ui-personCard__name{font-size:21px;font-weight:var(--weight-bold);overflow-wrap:anywhere;line-height:1.35}.ui-personCard__detail{color:var(--ink-muted);font-size:13.5px}.ui-personCard__facts{gap:var(--space-2);margin:var(--space-3) 0 0;grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.ui-personCard__fact{min-width:0;padding:var(--space-2) var(--space-3);border:1px solid color-mix(in srgb, var(--card-tone) 16%, var(--hairline));border-radius:var(--radius-s);background:color-mix(in srgb, var(--card-tone) 7%, var(--surface));align-content:start;gap:2px;display:grid}.ui-personCard__fact dt{font-size:var(--text-xs);color:var(--ink-muted)}.ui-personCard__fact dd{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--ink);overflow-wrap:anywhere;margin:0}.queueNotes{gap:var(--space-2);display:grid}.queueNotes__line{align-items:center;gap:var(--space-2);display:flex}.queueNotes__line .ui-notice{flex:1;min-width:0}
.screen{min-height:100dvh}.scan{--chrome-top:calc(16px + env(safe-area-inset-top,0px));--chrome-inset:16px;--chrome-row:44px;--offline-line:38px;--column-top:calc(var(--chrome-top) + var(--chrome-row) + 12px + var(--offline-line) + 12px);--dock-bottom:calc(28px + var(--safe-bottom));--dock-button:52px;--dock-icon:22px;--dock-space:44px;--dock-pad:20px;--dock-height:calc(var(--dock-button) + 18px);--card-to-dock:14px;--window-to-card:52px;--window-share:.81795;--window-aspect:1.08136;--window-align:flex-end;--corner:40px;--corner-radius:22px;--card-width:min(342px, calc(100% * 342 / 390));--card-head:46px;--card-body:124px;--status-col:clamp(92px, calc(100vw * 112 / 390), 112px);--card-pad:clamp(16px, calc((100vw - 360px) * 4 / 30 + 16px), 20px);--name-size:23px;--refused-size:22px;--name-floor:16px;--role-size:var(--text-sm);--detail-size:var(--text-sm);--word-size:var(--text-md);--time-size:var(--text-xs);--mark-size:44px;--photo-size:64px;width:100%;max-width:100vw;height:100dvh;color:var(--chrome-ink);background:var(--camera-bg);position:fixed;inset:0;overflow:clip}@media (min-width:628px) and (min-height:600px){.scan--staff{--chrome-top:calc(20px + env(safe-area-inset-top,0px));--chrome-inset:24px;--chrome-row:50px}.scan{--dock-button:56px;--dock-icon:24px;--dock-space:48px;--dock-pad:22px;--window-to-card:62px;--card-width:min(580px, calc(100% - 48px));--card-head:52px;--card-body:132px;--status-col:150px;--card-pad:26px;--name-size:30px;--refused-size:30px;--name-floor:20px;--role-size:var(--text-base);--detail-size:var(--text-base);--word-size:1.125rem;--time-size:var(--text-md);--mark-size:52px;--photo-size:92px}}@media (orientation:landscape) and (min-width:900px) and (min-height:600px){.scan{--chrome-top:calc(20px + env(safe-area-inset-top,0px));--chrome-inset:24px;--column-top:calc(var(--chrome-top) + var(--chrome-row) + 10px);--window-align:flex-start;--corner:44px;--corner-radius:24px}.scan__offlineLine{top:calc(var(--chrome-top) + (var(--chrome-row) - var(--offline-line)) / 2)}.scan__chromeStart{max-width:calc(50% - 146px)}}.scan__camera{background:var(--camera-bg);position:absolute;inset:0;overflow:hidden}.scan__video{object-fit:cover;width:100%;height:100%;display:block}.scan__video[data-mirrored=true]{transform:scaleX(-1)}.scan__stage{z-index:10;row-gap:var(--window-to-card);padding-top:var(--column-top);padding-bottom:calc(var(--dock-bottom) + var(--dock-height) + var(--card-to-dock));pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:0}.scan__windowArea{align-items:var(--window-align);flex:1 1 0;justify-content:center;min-height:0;display:flex;container-type:size}.scan__reticle{--bracket-colour:var(--bracket);height:min(calc(100vw * var(--window-share) / var(--window-aspect)), 40dvh);height:min(calc(100cqw * var(--window-share) / var(--window-aspect)), 100cqh);aspect-ratio:var(--window-aspect);border-radius:var(--corner-radius,22px);box-shadow:0 0 0 100vmax var(--camera-dim);flex:none;position:relative}.scan__reticle[data-state=read]{--bracket-colour:var(--bracket-read)}.scan__reticle[data-state=refused]{--bracket-colour:var(--bracket-refused)}.scan[data-finished] .scan__reticle{box-shadow:0 0 0 100vmax var(--camera-veil)}.scan__corner{width:var(--corner,40px);height:var(--corner,40px);border:0 solid var(--bracket-colour);position:absolute}.scan__corner--tl{border-top-left-radius:var(--corner-radius,22px);border-top-width:3px;border-left-width:3px;top:-2px;left:-2px}.scan__corner--tr{border-top-right-radius:var(--corner-radius,22px);border-top-width:3px;border-right-width:3px;top:-2px;right:-2px}.scan__corner--bl{border-bottom-left-radius:var(--corner-radius,22px);border-bottom-width:3px;border-left-width:3px;bottom:-2px;left:-2px}.scan__corner--br{border-bottom-right-radius:var(--corner-radius,22px);border-bottom-width:3px;border-right-width:3px;bottom:-2px;right:-2px}.scan__reticle[data-state=read] .scan__corner,.scan__reticle[data-state=refused] .scan__corner{filter:drop-shadow(0 0 7px color-mix(in srgb, var(--bracket-colour) 75%, transparent));animation:sv-snap var(--t-rise) var(--ease-rise) both}.scan__sweep{inset-inline:18px;background:linear-gradient(90deg, transparent, var(--sweep), transparent);border-radius:2px;height:2px;animation:2.6s ease-in-out infinite sv-sweep;position:absolute;top:0}.scan__cardPlace{min-height:calc(var(--card-head) + var(--card-body));flex-direction:column;flex:none;justify-content:flex-end;align-items:center;display:flex;position:relative}.scan__cameraFallback{z-index:8;padding:var(--space-5);text-align:center;color:var(--camera-ink);background:var(--camera-fallback);place-content:center;gap:6px;display:grid;position:absolute;inset:0}.scan__glass{color:var(--chrome-ink);background:var(--chrome-fill);border:1px solid var(--chrome-edge);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.scan__chrome{z-index:20;top:var(--chrome-top);inset-inline:var(--chrome-inset);pointer-events:none;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex;position:absolute;container-type:inline-size}.scan--staff .scan__chrome{gap:var(--space-3)}.scan__chrome>*{pointer-events:auto}.scan__chromeStart{align-items:center;gap:inherit;min-width:0;display:flex}.scan__toClasses{min-width:var(--chrome-row);height:var(--chrome-row);border-radius:var(--radius-pill);font:inherit;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0;display:flex}.scan__toClasses .ui-icon{font-size:20px}.scan__toClassesWord{display:none}@container (min-width:420px){.scan__toClasses{padding-inline:14px 16px}.scan__toClassesWord{display:inline}}@container (max-width:379px){.scan__chrome--withClasses .scan__staffDot,.scan__chrome--withClasses .scan__staffClock{display:none}}@container (max-width:300px){.scan__chrome--withClasses .scan__progressRing{display:none}.scan__chrome--withClasses .scan__classButton{padding-inline:14px}}.scan__classButton{min-width:0;height:var(--chrome-row);border-radius:var(--radius-pill);font:inherit;cursor:pointer;align-items:center;gap:10px;padding:0;padding-inline:8px 16px;display:flex}.scan__progressRing{--ring-track:var(--chrome-track);--ring-value:var(--chrome-ring);font-size:28px}.scan__classText{--fit-size:var(--text-md);--fit-floor:13px;min-width:0;font-size:var(--fit,var(--fit-size));font-weight:var(--weight-semibold);white-space:nowrap;line-height:1.2}.scan__classText[data-fit=wrap]{white-space:normal;overflow-wrap:anywhere}.scan__classCount{font-size:var(--text-md);color:var(--chrome-ink-muted);flex-shrink:0;animation:.36s ease-out both sv-tick}.scan__classCount.is-complete{color:var(--chrome-ring)}.scan__staffLabel{align-items:center;gap:var(--space-3);min-width:0;height:var(--chrome-row);padding-inline:var(--space-5);border-radius:var(--radius-pill);font-size:1.0625rem;font-weight:var(--weight-semibold);white-space:nowrap;display:flex}.scan__staffDot{border-radius:var(--radius-pill);background:var(--chrome-ink-muted);width:4px;height:4px}.scan__staffClock{font-family:var(--font-latin);color:var(--chrome-ink-muted)}.scan__upload{height:38px;padding-inline:var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex-shrink:0;align-items:center;gap:6px;display:flex}.scan__upload .ui-icon{font-size:16px}.scan__uploadCount{font-family:var(--font-latin);font-variant-numeric:tabular-nums}.scan--staff .scan__upload{height:42px;font-size:var(--text-md);padding-inline:14px}.scan--staff .scan__upload .ui-icon{font-size:17px}.scan__offlineLine{z-index:20;top:calc(var(--chrome-top) + var(--chrome-row) + 12px);align-items:center;gap:var(--space-2);width:max-content;max-width:calc(100vw - 2 * var(--space-4));min-height:var(--offline-line);font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:19px;padding:6px 14px;line-height:1.35;display:flex;position:absolute;left:50%;transform:translate(-50%)}.scan__offlineLine .ui-icon{font-size:16px}.scan__queueNotes{z-index:20;top:calc(var(--chrome-top) + var(--chrome-row) + 12px + var(--offline-line) + 8px);max-width:calc(100vw - 2 * var(--space-4));position:absolute;left:50%;transform:translate(-50%)}.queueNotes--compact{justify-items:center;gap:6px;display:grid}.queueNotes__pill{align-items:center;gap:var(--space-2);width:max-content;max-width:100%;min-height:var(--offline-line);font-size:var(--text-xs);font-weight:var(--weight-semibold);border-radius:19px;padding:6px 14px;line-height:1.35;display:flex}.queueNotes__who{min-width:0;font-weight:var(--weight-medium);opacity:.85}.queueNotes__pill .queueNotes__dismiss{border-radius:var(--radius-pill);min-height:28px;color:inherit;font:inherit;background:0 0;border:1px solid;flex-shrink:0;padding:0 10px}.scan__offlineDot{border-radius:var(--radius-pill);background:var(--offline-mark);flex-shrink:0;width:8px;height:8px}.scan__controls{z-index:24;bottom:var(--dock-bottom);gap:var(--dock-space);padding:8px var(--dock-pad);border-radius:var(--radius-pill);display:flex;position:absolute;left:50%;transform:translate(-50%)}.scan__control{width:var(--dock-button);height:var(--dock-button);border-radius:var(--radius-pill);font-size:var(--dock-icon);color:var(--chrome-ink);background:var(--chrome-control);cursor:pointer;border:0;place-items:center;padding:0;display:grid}.scan__control.is-on{color:var(--on-brand);background:var(--brand)}.scan__control:disabled{opacity:.42;cursor:not-allowed}.result{z-index:1;inset-inline:0;width:var(--card-width);color:var(--ink);background:var(--surface);border-radius:var(--radius-card);box-shadow:var(--shadow-float);pointer-events:auto;animation:sv-rise var(--t-rise) var(--ease-rise) both;flex-direction:column;margin-inline:auto;display:flex;position:absolute;bottom:0;overflow:hidden}.result[data-motion=plain]{animation:sv-fade-in var(--t-rise) ease-out both}.result__head{height:var(--card-head);color:var(--on-fill);flex-shrink:0;display:flex}.result__head--student{background:var(--student-fill)}.result__head--teacher{background:var(--teacher-fill)}.result__head--employee{background:var(--employee-fill)}.result__head--repeat{background:var(--repeat-fill)}.result__head--absent{background:var(--absent-fill)}.result__role{min-width:0;padding-inline:var(--card-pad);font-size:var(--role-size);font-weight:var(--weight-semibold);flex:auto;align-items:center;display:flex}.result__code{width:var(--status-col);font-family:var(--font-latin);font-size:var(--role-size);font-weight:var(--weight-semibold);letter-spacing:.02em;flex-shrink:0;place-items:center;display:grid}.result__body{height:var(--card-body);display:flex}.result__who{min-width:0;padding-inline:var(--card-pad);flex-direction:column;flex:auto;justify-content:center;gap:6px;display:flex}.result__title{--fit-size:var(--name-size);--fit-floor:var(--name-floor);font-size:var(--fit,var(--fit-size));font-weight:var(--weight-bold);line-height:var(--leading-tight);white-space:nowrap}.result[data-status=refused] .result__title{--fit-size:var(--refused-size)}.result__title[data-fit=wrap]{white-space:normal;overflow-wrap:anywhere}.result__detail{font-size:var(--detail-size);line-height:var(--leading-normal);color:var(--ink-muted)}.result__timing{align-self:flex-start}.result__photo{width:var(--photo-size);height:var(--photo-size);object-fit:cover;border-radius:var(--radius-m);background:var(--surface-sunken);flex-shrink:0;align-self:center;margin-inline-end:var(--space-4)}.result__status{width:var(--status-col);background:color-mix(in srgb, var(--tone) var(--wash-strength), var(--surface));border-inline-start:1px solid color-mix(in srgb, var(--tone) var(--wash-strength-strong), transparent);flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:5px;display:flex}.result__mark{--mark:var(--mark-size)}.result[data-motion=rise] .result__mark{animation:sv-pop var(--t-pop) var(--ease-rise) .24s both}.result[data-status=refused] .result__mark{animation:.48s ease-out .32s both sv-nudge}.result__word{font-size:var(--word-size);font-weight:var(--weight-bold);color:var(--tone);white-space:nowrap;margin-top:2px}.result__time{font-size:var(--time-size);font-weight:var(--weight-semibold);color:var(--ink-soft)}.scan__complete{--ring:56px;--complete-top:16px;--complete-bottom:14px;--complete-gap:4px;--complete-title:4px;--complete-count:0px;--complete-rule:8px 0 0;align-items:center;gap:var(--complete-gap);width:min(322px, calc(100% - 2 * var(--space-4)));padding:var(--complete-top) 24px var(--complete-bottom);color:var(--ink);text-align:center;background:var(--surface);border-radius:var(--radius-sheet);box-shadow:var(--shadow-float-strong);pointer-events:auto;animation:sv-lift var(--t-rise) var(--ease-rise) both;flex-direction:column;display:flex}.scan__complete[data-covered]{visibility:hidden}@media (min-height:760px){.scan__complete{--ring:76px;--complete-top:22px;--complete-bottom:20px;--complete-gap:6px;--complete-title:6px;--complete-count:2px;--complete-rule:10px 0 2px}}@media (min-height:1000px){.scan__complete{--ring:112px;--complete-top:30px;--complete-bottom:24px;--complete-gap:8px;--complete-title:10px;--complete-count:6px;--complete-rule:12px 0 4px}}.scan__completeMark{width:var(--ring);height:var(--ring);place-items:center;display:grid;position:relative}.scan__completeRing{width:100%;height:100%;position:absolute;inset:0}.scan__completeRing circle{fill:none;stroke-width:7px}.scan__completeTrack{stroke:color-mix(in srgb, var(--present) 14%, transparent)}.scan__completeValue{stroke:var(--present);stroke-linecap:round;stroke-dasharray:100;animation:.88s cubic-bezier(.3,.7,.2,1) .24s both sv-ring}.scan__completeCheck{--draw-delay:.96s;font-size:calc(var(--ring) * 48 / 112);color:var(--present)}.scan__completeTitle{margin-top:var(--complete-title);font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:1.3}.scan__completeClass{font-size:var(--text-md);color:var(--ink-muted)}.scan__completeCount{margin-top:var(--complete-count);font-size:var(--text-3xl);color:var(--present);line-height:1.2}.scan__completeNote{font-size:var(--text-sm);color:var(--ink-muted)}.scan__completeRule{height:1px;margin:var(--complete-rule);background:var(--hairline);align-self:stretch}.scan__completeNext{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--ink-soft);line-height:1.6}.names .ui-sheet__panel{height:calc(100dvh - 128px)}.names__counts{align-items:center;gap:var(--space-4);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-soft);flex-wrap:wrap;display:flex}.names__count{align-items:center;gap:6px;display:flex}.names__list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.names__todo{border:2px solid var(--pending-mark);border-radius:var(--radius-pill);flex-shrink:0;width:15px;height:15px}.names__done{width:17px;height:17px;color:var(--on-fill);background:var(--present-fill);border-radius:var(--radius-pill);flex-shrink:0;place-items:center;font-size:11px;display:grid}.names__meta{font-family:var(--font-latin);font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--ink-muted)}.scan__manualForm{gap:var(--space-4);display:grid}.scan__manualActions{gap:var(--space-3);display:flex}.scan__manualActions .ui-button{flex:1 1 0}.stack{grid-template-rows:auto 1fr;min-height:100dvh;display:grid}.screen__header{padding:8px var(--gutter);background:var(--surface);border-bottom:1px solid var(--hairline);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;display:grid}.screen__title{text-align:center;font-size:1.0625rem}.screen__trailing{justify-content:flex-end;display:flex}.stack__body{padding:16px var(--gutter) calc(24px + var(--safe-bottom));align-content:start;gap:12px;display:grid;overflow-y:auto}.stack__card{justify-items:start;gap:10px;padding:18px 20px;display:grid}.stack__cardTitle{font-size:1rem}.stack__note{padding:0 4px}.choices{gap:12px;margin-top:18px;display:grid}.choice{text-align:start;color:inherit;cursor:pointer;align-content:center;gap:6px;min-height:96px;padding:20px;text-decoration:none;display:grid}.choice__title{font-size:1.125rem}.choice__hint{color:var(--ink-muted)}.facts{gap:8px;width:100%;margin:0;display:grid}.facts__row{border-bottom:1px solid var(--hairline);justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.facts__row:last-child{border-bottom:0;padding-bottom:0}.facts dt{color:var(--ink-muted);font-weight:600}.facts dd{text-align:end;margin:0;font-weight:600}.calibrate__camera{--window-share:.81795;--window-aspect:1.08136;--corner:40px;--corner-radius:22px;aspect-ratio:4/3;border-radius:var(--radius-m);background:var(--camera-bg);position:relative;overflow:hidden;container-type:size}.calibrate__camera .scan__reticle{height:min(calc(100cqw * var(--window-share) / var(--window-aspect)), 80cqh);margin:auto;position:absolute;inset:0}.calibrate__armed{inset-inline:12px;text-align:center;color:var(--on-brand);background:var(--present);border-radius:var(--radius-s);padding:12px;font-weight:700;position:absolute;bottom:12px}.segmented{gap:8px;width:100%;display:flex}.segmented--wrap{flex-wrap:wrap}.segmented__option{min-height:var(--tap-min);color:var(--ink);background:var(--surface-sunken);border:1px solid var(--hairline);border-radius:var(--radius-s);cursor:pointer;flex:auto;padding:10px 14px;font-weight:600}.segmented__option.is-on{color:var(--on-brand);background:var(--brand);border-color:var(--brand)}.segmented__option:disabled{opacity:.5;cursor:not-allowed}.samples{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.samples__row{background:var(--surface-sunken);border-radius:var(--radius-s);justify-content:space-between;gap:10px;padding:8px 10px;font-weight:600;display:flex}
.classes__scan.ui-button{border-radius:var(--radius-pill);gap:6px;min-height:36px;padding:0 12px;font-size:13.5px}.classes__takenInline{display:none}.classes__body,.classSheet__body{width:100%;padding:12px var(--gutter) 24px;align-content:start;gap:12px;margin-inline:auto;display:grid}.classes__loading,.classSheet__loading{padding:var(--space-4);color:var(--ink-muted)}.classes__gate{justify-content:space-between;align-items:center;gap:var(--space-3);background:color-mix(in srgb, var(--student) 4%, var(--surface));border:1px solid var(--hairline);border-radius:14px;padding:8px 8px 8px 12px;display:flex}.classes__gateLine{min-width:0;font-size:14px;font-weight:var(--weight-semibold);color:var(--ink-soft);align-items:center;gap:8px;display:flex}.classes__gateLine .ui-icon{color:var(--student);flex-shrink:0;font-size:18px}.classes__gateButton.ui-button{flex-shrink:0}.classes__body--centred{align-content:center;min-height:calc(100dvh - 120px)}.classes__leaveGate{text-align:center;justify-items:center;gap:12px;width:min(100%,360px);margin-inline:auto;display:grid}.classes__leaveMark{border-radius:var(--radius-pill);width:64px;height:64px;color:var(--brand);background:color-mix(in srgb, var(--brand) 10%, var(--surface));place-items:center;font-size:28px;display:grid}.classes__leaveTitle{font-size:20px;font-weight:var(--weight-bold);margin:0}.classes__leaveLine{color:var(--ink-muted);margin:0}.classes__leavePin{text-align:start;width:100%}.classes__leaveMessage{min-height:1.4em;color:var(--absent);font-weight:var(--weight-semibold);margin:0}.classes__taken{font-size:13.5px;font-weight:var(--weight-bold);color:var(--ink-soft);justify-content:flex-start;align-items:center;gap:6px;margin:0 4px;display:flex}.classes__taken .ui-icon{color:var(--present);font-size:14px}.classes__grade{border-radius:20px;gap:10px;padding:12px;display:grid}.classes__gradeName{align-items:baseline;gap:6px;margin:0 4px;display:flex}.classes__gradeName strong{font-size:17px;font-weight:var(--weight-bold)}.classes__gradeName small{font-size:12px;font-weight:var(--weight-semibold);color:var(--ink-muted)}.classes__boxes{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.ui-row.classes__row{background:color-mix(in srgb, var(--student) 2%, var(--surface));border:1px solid var(--hairline);min-height:58px;animation:sv-fade-in var(--t-enter) var(--ease-out) both;border-radius:14px;padding:8px 12px 8px 10px}.classes__row .ui-row__title{font-size:15px}.classes__row .ui-row__line .ui-row__subtitle{font-size:12.5px}.classes__letter{width:40px;height:40px;font-size:18px;font-weight:var(--weight-bold);color:var(--student);background:color-mix(in srgb, var(--student) 12%, var(--surface));box-shadow:inset 0 1px 0 var(--card-highlight);border-radius:12px;place-items:center;display:grid}.ui-row.classes__row--saved{background:color-mix(in srgb, var(--present) 7%, var(--surface));border-color:color-mix(in srgb, var(--present) 22%, var(--hairline))}.classes__row--saved .classes__letter{color:var(--on-fill);background:var(--present-fill)}.classes__toast{inset-inline:0;bottom:calc(18px + var(--safe-bottom));z-index:25;width:max-content;max-width:calc(100% - 2 * var(--gutter));border-radius:var(--radius-pill);font-size:14px;font-weight:var(--weight-bold);color:var(--on-fill);background:var(--present-fill);box-shadow:var(--shadow-3);animation:sv-toast 3.2s var(--ease-out) both;align-items:center;gap:10px;margin-inline:auto;padding:12px 18px;display:flex;position:fixed}.classes__toast .ui-icon{flex-shrink:0;font-size:17px}.classes__toastLine{background:color-mix(in srgb, var(--on-fill) 35%, transparent);align-self:stretch;width:1px}.classes__toastAbsent{color:color-mix(in srgb, var(--absent-dark) 85%, var(--on-fill));white-space:nowrap}.classSheet{padding-bottom:calc(150px + var(--safe-bottom))}.classSheet__names{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.ui-row.classSheet__row{background:color-mix(in srgb, var(--present) 4%, var(--surface));border:1px solid var(--hairline);border-radius:14px;min-height:52px;padding:8px 12px 8px 10px}.classSheet__row .classSheet__name{font-size:16px;font-weight:var(--weight-bold);overflow-wrap:anywhere;line-height:1.35}.ui-row.classSheet__row.is-absent{background:color-mix(in srgb, var(--absent) 8%, var(--surface));border-color:color-mix(in srgb, var(--absent) 45%, var(--hairline))}.ui-row.classSheet__row.is-arrived{background:color-mix(in srgb, var(--present) 9%, var(--surface));cursor:default}.classSheet__state{gap:8px}.classSheet__absentWord{font-size:13px;font-weight:var(--weight-bold);color:var(--absent)}.classSheet__arrived{font-size:12.5px;font-weight:var(--weight-bold);color:var(--present);align-items:center;gap:4px;display:inline-flex}.classSheet__arrived .ui-icon{font-size:13px}.classSheet__foot{inset-inline:0;z-index:5;padding:12px var(--gutter) calc(14px + var(--safe-bottom));background:color-mix(in srgb, var(--surface) 90%, transparent);border-top:1px solid var(--hairline);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);gap:10px;display:grid;position:fixed;bottom:0}.classSheet__count{align-items:center;gap:10px;display:flex}.classSheet__countText{line-height:1.3;display:grid}.classSheet__countText strong{font-size:16px;font-weight:var(--weight-bold);color:var(--present)}.classSheet__countText small{color:var(--ink-muted);font-size:12.5px}.classSheet__count.is-marked .classSheet__countText strong{color:var(--absent);font-size:18px}.classSheet__save.ui-button{width:100%}.classSheet__askCount{font-size:14px;font-weight:var(--weight-bold);color:var(--absent)}.classSheet__ask .ui-sheet__foot{flex-direction:column}@media (min-width:700px){.classes__body,.classSheet__body{width:min(100%,980px);padding-inline:20px}.classes__boxes{grid-template-columns:repeat(3,minmax(0,1fr))}.classes__row{grid-column-start:var(--col)}.ui-row.classes__row{min-height:64px}.ui-row.classes__row .ui-row__main{gap:4px}.classSheet__names{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-row.classSheet__row{min-height:56px}.classSheet__row .classSheet__name{font-size:17px}.classSheet__foot{justify-content:space-between;align-items:center;padding-inline:max(20px,50% - 470px);display:flex}.classSheet__save.ui-button{width:300px}}@media (min-width:1024px){.classes__takenInline{display:inline}.classes__taken{display:none}.classes{grid-template-rows:auto 1fr;height:100dvh;display:grid}.classes__body{grid-auto-rows:1fr;align-content:stretch;width:min(100%,1180px);min-height:0}.classes__grade{grid-template-columns:110px minmax(0,1fr);align-items:center;gap:12px}.classes__gradeName{flex-direction:column;align-items:flex-start;gap:0}.classSheet__names{grid-template-columns:repeat(3,minmax(0,1fr))}.classSheet__body{width:min(100%,1180px)}.classSheet__foot{padding-inline:max(20px,50% - 570px)}}@media (prefers-reduced-motion:reduce){.classes__row{animation:none}.classSheet__row{transition:none}.classes__toast{animation:none}}.classes__foot{margin-top:4px}@media (min-width:1024px){.classes.classes--withFoot{grid-template-rows:auto 1fr auto}.classes__foot{margin-top:8px}}
