:root,[data-theme=light],.idsheet{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--canvas:#eef2f8;--surface:#fff;--surface-2:#f6f8fc;--surface-3:#eaeff7;--glass:#ffffffb8;--glass-strong:#ffffffe6;--line:#dfe5ef;--line-soft:#ebeff6;--line-strong:#c6d0df;--ink:#0a1020;--ink-soft:#3b465b;--ink-muted:#5f6b82;--ink-faint:#a1abbd;--on-accent:#fff;--accent:#2b5bff;--accent-strong:#1c45d8;--accent-ink:#1b44d4;--accent-bg:#ecf1ff;--accent-line:#c3d2ff;--accent-2:#00b3d6;--ok:#12a150;--ok-strong:#0f7f40;--ok-ink:#0f7a3e;--ok-bg:#e6f7ed;--ok-line:#bbe5cb;--warn:#e08a00;--warn-strong:#b86b00;--warn-ink:#9a5a00;--warn-bg:#fff4e0;--warn-line:#f3d699;--danger:#e0303a;--danger-strong:#bb1f29;--danger-ink:#b81f2a;--danger-bg:#fdecee;--danger-line:#f4c1c5;--glow:0 0 0 1px #2b5bff1a, 0 8px 24px -8px #2b5bff59;--shadow:0 1px 2px #0a10200a, 0 4px 14px -6px #0a102014;--shadow-lg:0 18px 48px -12px #0a102038;--backdrop:radial-gradient(1100px 520px at 100% -10%, #2b5bff1a, transparent 60%), radial-gradient(900px 480px at -10% 110%, #00b3d614, transparent 60%);--grid-line:#0a102009}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#1e1f22;--surface:#26272b;--surface-2:#2c2d32;--surface-3:#34363b;--glass:#26272bc7;--glass-strong:#26272bf0;--line:#393b41;--line-soft:#303237;--line-strong:#4a4d54;--ink:#ebebed;--ink-soft:#c0c2c7;--ink-muted:#989ba2;--ink-faint:#6b6e75;--accent:#5585d6;--accent-strong:#6f9ae2;--accent-ink:#a3bfec;--accent-bg:#4a7fd624;--accent-line:#6a96e05c;--accent-2:#5585d6;--ok:#2ea56a;--ok-strong:#40b97c;--ok-ink:#63c992;--ok-bg:#2ea56a21;--ok-line:#2ea56a57;--warn:#d49a2e;--warn-strong:#e2ae4c;--warn-ink:#e4b45a;--warn-bg:#d49a2e21;--warn-line:#d49a2e57;--danger:#d9534f;--danger-strong:#e4706c;--danger-ink:#ee8f8b;--danger-bg:#d9534f24;--danger-line:#d9534f5c;--glow:0 0 0 1px var(--accent-line);--shadow:0 1px 0 #ffffff08 inset, 0 8px 24px -12px #000000b3;--shadow-lg:0 24px 64px -16px #000c;--backdrop:none;--grid-line:#ffffff0b}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#1e1f22;--surface:#26272b;--surface-2:#2c2d32;--surface-3:#34363b;--glass:#26272bc7;--glass-strong:#26272bf0;--line:#393b41;--line-soft:#303237;--line-strong:#4a4d54;--ink:#ebebed;--ink-soft:#c0c2c7;--ink-muted:#989ba2;--ink-faint:#6b6e75;--accent:#5585d6;--accent-strong:#6f9ae2;--accent-ink:#a3bfec;--accent-bg:#4a7fd624;--accent-line:#6a96e05c;--accent-2:#5585d6;--ok:#2ea56a;--ok-strong:#40b97c;--ok-ink:#63c992;--ok-bg:#2ea56a21;--ok-line:#2ea56a57;--warn:#d49a2e;--warn-strong:#e2ae4c;--warn-ink:#e4b45a;--warn-bg:#d49a2e21;--warn-line:#d49a2e57;--danger:#d9534f;--danger-strong:#e4706c;--danger-ink:#ee8f8b;--danger-bg:#d9534f24;--danger-line:#d9534f5c;--glow:0 0 0 1px var(--accent-line);--shadow:0 1px 0 #ffffff08 inset, 0 8px 24px -12px #000000b3;--shadow-lg:0 24px 64px -16px #000c;--backdrop:none;--grid-line:#ffffff0b}}:root{--canvas-in:var(--surface-3);--slate-900:var(--accent-strong);--slate-800:var(--accent-strong);--slate-700:var(--accent);--slate-600:var(--ink-soft);--indigo-100:var(--accent-bg);--indigo-200:var(--accent-line);--indigo-600:var(--accent);--indigo-tint:var(--accent-bg);--present:var(--ok);--present-bg:var(--ok-bg);--absent:var(--danger);--absent-bg:var(--danger-bg);--unmarked-bg:var(--surface-3);--risk-red:var(--danger);--risk-red-bg:var(--danger-bg);--risk-amber:var(--warn-ink);--risk-amber-bg:var(--warn-bg);--radius:14px;--radius-sm:9px;--radius-pill:999px;--font:"Inter", "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--font-display:"Segoe UI Variable Display", "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Cascadia Mono", "SF Mono", ui-monospace, Consolas, monospace;--ease:cubic-bezier(.2, .8, .2, 1);--nav-h:62px;--sidenav-w:248px}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button{color:inherit;font-family:inherit}input{font-family:inherit}.shell{background:var(--canvas);min-height:100%;display:flex}.app{background:var(--canvas);flex-direction:column;width:100%;min-width:0;min-height:100%;margin:0 auto;display:flex;position:relative;overflow-x:clip}.app__scroll{width:100%;max-width:1240px;padding:16px 16px calc(var(--nav-h) + 24px);flex:1;margin:0 auto}.screen-title{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700}.class-row{border:none;border-bottom:1px solid var(--line-soft);cursor:pointer;text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 2px;display:flex}.class-row[aria-current=true]{background:var(--indigo-tint);border-radius:var(--radius-sm)}.class-row__name{color:var(--ink);font-size:14.5px;font-weight:700;display:block}.class-row__meta{color:var(--ink-muted);margin-top:1px;font-size:12px;display:block}.class-row__tick{color:var(--indigo-600);font-weight:800}.field-group{border:1px solid var(--line);border-radius:var(--radius);background:var(--canvas);margin:0 0 14px;padding:12px 14px 2px}.field-group legend{margin-bottom:0;margin-left:-6px;padding:0 6px}.field-group__hint{color:var(--ink-muted);margin:0 0 10px;font-size:12px;line-height:1.45}.field-row{gap:10px;display:flex}.field-row .field{flex:1;min-width:0}.linkbtn--inline{font-size:inherit;padding:0;font-weight:700}.roll-row--stack{flex-direction:column;align-items:stretch;gap:8px}.roll-row__main{align-items:center;gap:11px;display:flex}.roll-row__card{align-items:center;gap:6px;display:flex}.roll-row__card .field__input{flex:1;min-width:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:15;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:sticky;top:0}.topbar__crumbs{align-items:center;gap:10px;min-width:0;display:flex}.topbar__crumbs .screen-title{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:600;overflow:hidden}.topbar__logo{background:var(--slate-700);width:28px;height:28px;color:var(--on-accent);border-radius:7px;flex:none;place-items:center;display:grid}.crumbs{align-items:center;min-width:0;margin:0;padding:0;list-style:none;display:flex}.crumbs__item{align-items:center;min-width:0;display:flex}.crumbs__item:not(:last-child){flex:none}.crumbs__link{color:var(--ink-muted);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:3px;padding:3px 6px;font-size:15px;font-weight:500;display:inline-flex}.crumbs__link:hover{background:var(--canvas-in);color:var(--ink)}.crumbs__item--picker .crumbs__link{border-color:var(--line)}.crumbs__sep{color:var(--ink-faint);flex:none;margin:0 4px}.topbar__up{color:var(--indigo-600);cursor:pointer;background:0 0;border:none;flex:none;align-items:center;gap:2px;padding:4px 4px 4px 0;font-size:14px;font-weight:500;display:none}.topbar__crumbs--deep .topbar__up{display:inline-flex}.topbar__up-back{display:none}@media (width<=899px){.topbar__crumbs--deep .topbar__logo,.topbar__crumbs--deep .crumbs__item:not(:last-child){display:none}.topbar__crumbs--deep .topbar__up:after{content:"";background:var(--line);width:1px;height:18px;margin-left:8px}}@media (width>=900px){.topbar__crumbs--deep .topbar__up{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--ink);margin-right:10px;padding:5px 12px 5px 8px;font-weight:600}.topbar__crumbs--deep .topbar__up:hover{background:var(--canvas-in)}.topbar__crumbs--deep .topbar__logo,.topbar__up-parent{display:none}.topbar__up-back{display:inline}}.topbar__up:focus-visible{outline:2px solid var(--indigo-600);outline-offset:2px}.topbar__right{align-items:center;gap:10px;display:flex}.avatar-btn{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);width:36px;height:36px;color:var(--ink-soft);cursor:pointer;flex:none;place-items:center;display:grid}.avatar-btn:hover{background:var(--canvas-in)}.status-chip{color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot--present{background:var(--present)}.dot--absent{background:var(--absent)}.dot--warn{background:var(--warn)}.avatar{border-radius:var(--radius-pill);background:var(--indigo-100);color:var(--slate-700);letter-spacing:.01em;text-transform:uppercase;-webkit-user-select:none;user-select:none;flex:none;place-items:center;font-weight:700;display:grid}.avatar--sm{width:34px;height:34px;font-size:12px}.avatar--md{width:42px;height:42px;font-size:13px}.avatar--lg{width:54px;height:54px;font-size:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;padding:16px}.card__title{margin:0 0 2px;font-size:15px;font-weight:800}.card__hint{color:var(--ink-muted);margin:0 0 12px;font-size:12.5px}.section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin:22px 0 10px;font-size:12px;font-weight:800}.btn{border-radius:var(--radius-sm);cursor:pointer;background:var(--slate-700);width:100%;min-height:46px;color:var(--on-accent);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:600;transition:background .12s,border-color .12s;display:inline-flex}.btn:hover:not(:disabled){background:var(--slate-800)}.btn:active:not(:disabled){background:var(--slate-900)}.btn:disabled{background:var(--line-strong);cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--indigo-600);outline-offset:2px}.btn--secondary{background:var(--indigo-100);color:var(--slate-800)}.btn--secondary:hover:not(:disabled){background:var(--indigo-200)}.btn--ghost,.btn--outline{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn--ghost:hover:not(:disabled),.btn--outline:hover:not(:disabled){background:var(--canvas-in)}.btn--outline:disabled{background:var(--surface);color:var(--ink-muted)}.btn--sm{width:auto;min-height:38px;padding:0 14px;font-size:13.5px}.linkbtn{color:var(--indigo-600);cursor:pointer;background:0 0;border:none;padding:6px;font-size:13px;font-weight:700}.linkbtn:disabled{color:var(--ink-muted);cursor:not-allowed}.linkbtn--muted{color:var(--ink-muted)}.roster-x{border:1px solid var(--line);width:30px;height:30px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:999px;flex:none;font-size:19px;line-height:1}.roster-x:hover:not(:disabled){border-color:var(--absent);color:var(--absent)}.roster-confirm{flex:none;align-items:center;gap:2px;display:inline-flex}.roster-confirm .linkbtn:first-child{color:var(--absent)}.btn--danger{background:var(--absent)}.btn--danger:hover:not(:disabled){background:var(--danger-strong)}.form-grid{grid-template-columns:1fr;gap:0 14px;display:grid}.form-actions{justify-content:flex-end;display:flex}.field__opt{color:var(--ink-muted);font-weight:400}.bulkbar{color:var(--ink-soft);align-items:center;gap:10px;font-size:13.5px;display:flex}.roster-table .col-select{text-align:center;width:44px}.check--select{width:17px;height:17px;accent-color:var(--slate-700)}.table tr.row--selected{background:var(--indigo-tint)}.mono{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px}.student-cell--muted{opacity:.7}.notice{border-radius:var(--radius-sm);border:1px solid #0000;margin-bottom:12px;padding:10px 13px;font-size:13px;line-height:1.45}.notice--ok{background:var(--present-bg);color:var(--ok-ink);border-color:var(--ok-line)}.notice--warn{background:var(--warn-bg);color:var(--warn-ink);border-color:var(--warn-line)}.notice--err{background:var(--absent-bg);color:var(--danger-ink);border-color:var(--danger-line)}.notice--info{background:var(--indigo-tint);color:var(--accent-ink);border-color:var(--indigo-200)}.pill{border-radius:var(--radius-pill);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;padding:3px 9px;font-size:11px;font-weight:800}.pill--present{background:var(--present-bg);color:var(--present)}.pill--absent{background:var(--absent-bg);color:var(--absent)}.pill--warn{background:var(--warn-bg);color:var(--warn)}.pill--unmarked{background:var(--unmarked-bg);color:var(--ink-muted)}.pill--excused{background:var(--indigo-100);color:var(--slate-600)}.pill--risk-red{background:var(--risk-red);color:var(--on-accent)}.pill--risk-amber{background:var(--risk-amber-bg);color:var(--risk-amber)}.empty{text-align:center;color:var(--ink-muted);padding:40px 16px;font-size:13.5px;line-height:1.5}.centered{min-height:100vh;color:var(--slate-700);justify-content:center;align-items:center;font-size:15px;display:flex}.auth{background:var(--canvas);justify-content:center;align-items:center;min-height:100%;padding:24px 18px;display:flex}.auth__card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow-lg);border-radius:20px;padding:28px 22px}.auth__card--wide{max-width:440px}.auth__logo{background:var(--indigo-100);width:46px;height:46px;color:var(--slate-700);border-radius:13px;place-items:center;margin:0 auto 14px;display:grid}.auth__brand{text-align:center;color:var(--ink);margin:0;font-size:21px;font-weight:800}.auth__tagline{text-align:center;color:var(--ink-muted);margin:4px 0 22px;font-size:13.5px}.auth__legend{margin:0 0 4px;font-size:15px;font-weight:800}.auth__help{color:var(--ink-muted);margin:0 0 16px;font-size:13px;line-height:1.5}.auth__divider{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:12px;margin:16px 0;font-size:12px;font-weight:700;display:flex}.auth__divider:before,.auth__divider:after{content:"";background:var(--line);flex:1;height:1px}.auth__foot{flex-wrap:wrap;justify-content:center;gap:6px 18px;margin-top:16px;display:flex}.auth__switch{text-align:center;color:var(--ink-muted);margin-top:14px;font-size:13px}.auth.auth--split{align-items:stretch;padding:0}.auth__aside{display:none}.auth__main{flex:1;justify-content:center;align-items:center;padding:32px 18px;display:flex}.auth--split .auth__card{max-width:400px;box-shadow:none;background:0 0;border:none;padding:0}.auth--split .auth__logo{background:var(--slate-700);color:var(--on-accent);margin:0 0 18px}.auth--split .auth__brand,.auth--split .auth__tagline{text-align:left}.auth--split .auth__brand{letter-spacing:-.015em;font-size:24px;font-weight:700}.auth--split .auth__tagline{margin-bottom:24px}.auth--split .field__label{color:var(--ink);font-weight:600}.auth--split .auth__switch{text-align:left}.auth__offline{border-top:1px solid var(--line);color:var(--ink-muted);align-items:flex-start;gap:8px;margin:18px 0 0;padding-top:16px;font-size:12.5px;line-height:1.5;display:flex}.auth__offline svg{flex:none;margin-top:2px}.auth--split .auth__card.auth__card--wide{max-width:560px}select.field__input{color:var(--ink);font-family:inherit;font-size:16px}.auth__back{color:var(--ink-muted);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin:0 0 14px -4px;padding:4px;font-size:13px;font-weight:600;display:inline-flex}.auth__back:hover{color:var(--ink)}.auth__register{border:1px solid var(--indigo-200);border-radius:var(--radius);background:var(--indigo-tint);grid-template-columns:auto 1fr;align-items:center;gap:4px 12px;margin-top:18px;padding:14px;display:grid}.auth__register-icon{background:var(--surface);width:38px;height:38px;color:var(--indigo-600);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.auth__register-text{color:var(--ink-soft);flex-direction:column;font-size:12.5px;line-height:1.4;display:flex}.auth__register-text b{color:var(--ink);font-size:14px}.auth__register .btn{grid-column:1/-1;gap:6px;width:100%;margin-top:10px}@media (width<=480px){.auth__card--wide .field-row{flex-direction:column;gap:0}}.auth--split .role-picker{flex-direction:column}.auth__aside-brand{align-items:center;gap:10px;font-size:17px;font-weight:700;display:flex}.auth__aside-logo{background:#ffffff29;border-radius:9px;place-items:center;width:34px;height:34px;display:grid}.auth__aside-title{letter-spacing:-.02em;max-width:420px;margin:0 0 28px;font-size:30px;font-weight:700;line-height:1.2}.auth__features{flex-direction:column;gap:20px;max-width:420px;margin:0;padding:0;list-style:none;display:flex}.auth__features li{gap:14px;display:flex}.auth__features b{margin-bottom:2px;font-size:15px;display:block}.auth__features li>span:last-child>span{color:#bfdbfe;font-size:14px;line-height:1.5}.auth__feature-icon{background:#ffffff1f;border-radius:9px;flex:none;place-items:center;width:36px;height:36px;display:grid}.auth__aside-foot{color:#93c5fd;margin:0;font-size:12.5px}@media (width>=900px){.auth__aside{color:#fff;background:linear-gradient(160deg,#1d4ed8,#1e3a8a);flex-direction:column;justify-content:space-between;width:44%;max-width:560px;min-height:100vh;padding:40px 48px;display:flex}.auth__main{padding:48px}}.field{margin-bottom:12px}.field__label{color:var(--ink-soft);margin-bottom:6px;font-size:12.5px;font-weight:700;display:block}.field__wrap{align-items:center;display:flex;position:relative}.field__icon{color:var(--ink-muted);pointer-events:none;display:inline-flex;position:absolute;left:12px}.field__reveal{width:36px;height:36px;color:var(--ink-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;display:grid;position:absolute;right:6px}.field__reveal:hover{color:var(--ink-soft);background:var(--canvas-in)}.field__input{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:44px;color:var(--ink);padding:10px 12px;font-size:16px}.field__wrap .field__input{padding-left:40px}.field__wrap .field__input--reveal{padding-right:44px}.field__input::placeholder{color:var(--ink-muted)}.field__input:focus{border-color:var(--indigo-600);outline:none;box-shadow:0 0 0 3px #5b63b729}.field__input:disabled{background:var(--canvas-in);color:var(--ink-muted)}.field__input--pin{text-align:center;letter-spacing:.5em;text-indent:.5em;font-variant-numeric:tabular-nums;min-height:60px;font-size:28px}.field__input--pin.field__input{padding-left:12px}.field__hint{color:var(--ink-muted);text-align:center;margin-top:6px;font-size:11.5px;display:block}.devnote{border-radius:var(--radius-sm);background:var(--canvas-in);border:1px dashed var(--line);color:var(--ink-muted);margin-top:16px;padding:10px 12px;font-size:11.5px;line-height:1.5}.progress{border-radius:var(--radius-pill);background:var(--line);height:6px;overflow:hidden}.progress__fill{border-radius:var(--radius-pill);background:var(--present);height:100%;transition:width .25s}.roll{flex-direction:column;gap:8px;display:flex}.roll-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:11px;padding:11px 12px;display:flex}.roll-row__who{text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;min-width:0;padding:0;display:flex}.roll-row__name{white-space:nowrap;text-overflow:ellipsis;font-size:14.5px;font-weight:600;overflow:hidden}.roll-row__id{color:var(--ink-muted);margin-top:1px;font-size:12px}.check{cursor:pointer;vertical-align:middle;width:20px;height:20px;margin:0}.check--present{accent-color:var(--present)}.check:disabled{cursor:default}.register-table tr.row--absent{box-shadow:inset 3px 0 0 var(--absent);background:var(--danger-bg)}.register-table tr.row--absent:hover{background:var(--danger-bg)}.register-table .col-check{text-align:center;width:52px}.register-table .col-num{width:36px;color:var(--ink-muted);font-variant-numeric:tabular-nums}.register-table .col-state{width:300px}.state-cell{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.state-note{color:var(--ink-muted);white-space:nowrap;font-size:12px}.reason-select{border:1px solid var(--danger-line);border-radius:var(--radius-sm);background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 8px center;appearance:none;height:30px;font:inherit;color:var(--ink);cursor:pointer;padding:0 26px 0 10px;font-size:13px}.reason-select:focus{border-color:var(--indigo-600);outline:none;box-shadow:0 0 0 3px #2563eb26}.gate-banner,.conflict-note{align-items:center;gap:12px;display:flex}.gate-banner>span,.conflict-note>div{flex:1;min-width:0}.gate-banner .btn,.conflict-note .btn{flex:none}.savebar{bottom:calc(var(--nav-h) + 8px + env(safe-area-inset-bottom,0px));z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:12px 14px;display:flex;position:sticky;box-shadow:0 -4px 18px #0f172a14}.savebar__meta{min-width:0;color:var(--ink-muted);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.savebar__meta svg{flex:none}.savebar__actions{flex:none;gap:8px;margin-left:auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0 16px;display:flex}.page-head__title{letter-spacing:-.015em;margin:0;font-size:22px;font-weight:700}.page-head__sub{color:var(--ink-muted);margin:3px 0 0;font-size:13.5px}.page-head__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;overflow:hidden}.panel--pad{padding:16px 18px;overflow:visible}.panel__head{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.panel__head--pad{padding:16px 18px 0}.panel__title{margin:0;font-size:15px;font-weight:700}.panel__sub{color:var(--ink-muted);margin:2px 0 0;font-size:12.5px}.panel__toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.footnote{color:var(--ink-muted);margin:4px 2px 0;font-size:12.5px;line-height:1.5}.callout{border-radius:var(--radius);background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);align-items:center;gap:10px;margin-bottom:16px;padding:11px 14px;font-size:13.5px;font-weight:500;display:flex}.callout span{flex:1}.callout .linkbtn{color:var(--warn-ink);text-decoration:underline}.kpis{grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:16px;display:grid}.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:4px;min-width:0;padding:14px 16px;display:flex}.kpi__label{color:var(--ink-muted);align-items:center;gap:7px;font-size:12.5px;font-weight:500;display:inline-flex}.kpi__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:700}.kpi__sub{color:var(--ink-muted);font-size:12px}.kpi--danger .kpi__value{color:var(--absent)}.kpi--warn .kpi__value{color:var(--risk-amber)}.search{max-width:340px;color:var(--ink-muted);flex:240px;align-items:center;display:flex;position:relative}.search svg{pointer-events:none;position:absolute;left:10px}.search input{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;height:38px;color:var(--ink);background:var(--surface);padding:0 12px 0 34px;font-size:14px}.search input:focus,.date-input input:focus{border-color:var(--indigo-600);outline:none;box-shadow:0 0 0 3px #2563eb26}.date-input input{border:1px solid var(--line);border-radius:var(--radius-sm);height:38px;color:var(--ink);background:var(--surface);padding:0 10px;font-size:14px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);height:32px;color:var(--ink-soft);cursor:pointer;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover{background:var(--canvas-in)}.chip[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--on-accent)}.chip__count{border-radius:var(--radius-pill);background:var(--canvas-in);color:var(--ink-soft);font-variant-numeric:tabular-nums;padding:1px 6px;font-size:11.5px;font-weight:600}.chip[aria-selected=true] .chip__count{color:var(--on-accent);background:#fff3}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--ink-muted);background:var(--canvas);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:10px 14px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover{background:var(--surface-2)}.table__empty{text-align:center;color:var(--ink-muted);padding:28px 14px!important}.table .cell-wrap{color:var(--ink-soft);min-width:200px;font-size:13px;line-height:1.45}.table .cell-action{text-align:right;white-space:nowrap;width:1%}.row--link{cursor:pointer}.student-cell{text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:10px;min-width:0;padding:0;display:flex}.student-cell--static{cursor:inherit}.student-cell__text{flex-direction:column;min-width:0;display:flex}.student-cell__name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}button.student-cell:hover .student-cell__name{color:var(--indigo-600);text-decoration:underline}.student-cell__sub{color:var(--ink-muted);flex-wrap:wrap;gap:4px 10px;font-size:12px;display:inline-flex}.inline-link{color:var(--indigo-600);align-items:center;gap:3px;font-weight:500;text-decoration:none;display:inline-flex}.badge{border-radius:var(--radius-pill);background:var(--canvas-in);color:var(--ink-muted);white-space:nowrap;align-items:center;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.badge--ok{background:var(--present-bg);color:var(--ok-ink)}.badge--warn{background:var(--warn-bg);color:var(--warn-ink)}.badge--danger{background:var(--absent);color:var(--on-accent)}.badge--danger-soft{background:var(--absent-bg);color:var(--danger-ink)}.meter{align-items:center;gap:8px;min-width:120px;display:flex}.meter__value{font-variant-numeric:tabular-nums;width:38px;font-weight:700}.meter__track{border-radius:var(--radius-pill);background:var(--line);flex:1;height:6px;overflow:hidden}.meter__fill{border-radius:var(--radius-pill);height:100%;display:block}.risk-level{color:var(--ink);align-items:center;gap:7px;font-weight:500;display:inline-flex}.followup{color:var(--ink-muted);white-space:nowrap;font-size:13px}.followup--done{color:var(--ok-ink)}.risk-table .row--link:focus-visible{outline:2px solid var(--indigo-600);outline-offset:-2px}.risk-table .row--link:hover .student-cell__name{color:var(--indigo-600)}.cell-chevron{width:32px;color:var(--ink-faint);text-align:right}.row--link:hover .cell-chevron{color:var(--ink-muted)}.mini-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.mini-list li{border-top:1px solid var(--line-soft);padding:8px 0}.mini-list li:first-child{border-top:none}.empty--sm{padding:18px 16px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.dash-grid{grid-template-columns:minmax(0,1fr);gap:0 16px;display:grid}.ratechart__plot{margin-left:34px;position:relative}.ratechart__grid{border-top:1px dashed var(--line);position:absolute;left:0;right:0}.ratechart__grid span{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;top:-8px;left:-34px}.ratechart__bars{border-bottom:1px solid var(--line);align-items:flex-end;gap:2px;display:flex;position:absolute;inset:0}.ratechart__col{outline:none;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.ratechart__bar{background:var(--slate-700);border-radius:4px 4px 0 0;width:min(60%,34px)}.ratechart__tip{z-index:5;background:var(--ink);color:#fff;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;flex-direction:column;gap:2px;padding:8px 10px;font-size:12px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.ratechart__tip span{color:#cbd5e1}.ratechart__axis{gap:2px;margin:6px 0 0 34px;display:flex}.ratechart__axis span{text-align:center;color:var(--ink-muted);white-space:nowrap;flex:1;font-size:10.5px;overflow:hidden}.nav-count{border-radius:var(--radius-pill);background:var(--absent);min-width:18px;height:18px;color:var(--on-accent);place-items:center;margin-left:auto;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}@media (width<=640px){.register-table .col-adm,.register-table .col-num{display:none}.register-table .col-state{width:auto}.register-table .state-note,.savebar__sync{display:none}.register-table td,.register-table th{padding-left:10px;padding-right:10px}.col-hide-sm{display:none}.search{max-width:none}.page-head__title{font-size:19px}.kpis>.kpi:last-child:nth-child(odd){grid-column:span 2}.status-chip{display:none}.ratechart__axis span:nth-child(2n){visibility:hidden}.report-table__name{text-overflow:ellipsis;max-width:110px;overflow:hidden}.table--stack thead{display:none}.table--stack tr{border-bottom:1px solid var(--line);padding:12px 14px;display:block}.table--stack td{border:none;justify-content:space-between;align-items:center;gap:12px;padding:5px 0;display:flex}.table--stack td[data-label]:before{content:attr(data-label);color:var(--ink-muted);font-size:12px}.table--stack td[data-label=Student]:before{content:none}.table--stack .cell-wrap{min-width:0;display:block}.table--stack .cell-wrap:before{margin-bottom:2px;display:block}.table--stack .cell-action{justify-content:flex-end;width:auto;padding-top:8px}.table--stack .cell-chevron{display:none}}.select{appearance:none;border:1px solid var(--line);background:var(--surface);border-radius:var(--radius-sm);height:38px;color:var(--ink);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding:0 34px 0 12px;font-size:14px;font-weight:500}.segmented{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--canvas-in);padding:3px;display:inline-flex}.segmented button{height:30px;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:0 14px;font-size:13px;font-weight:500}.segmented button[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0f172a1a}.stat-strip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(2,1fr);margin-bottom:16px;display:grid}.stat-strip>div{border-bottom:1px solid var(--line-soft);padding:12px 16px}.stat-strip__label{color:var(--ink-muted);font-size:12px;display:block}.stat-strip__value{color:var(--ink);font-variant-numeric:tabular-nums;margin-top:2px;font-size:18px;font-weight:600;display:block}.stat-strip__value small{color:var(--ink-muted);font-size:12.5px;font-weight:400}.period-nav,.day-nav{align-items:center;gap:6px;display:flex}.reg-table__daybtn{border-radius:var(--radius-sm);width:100%;color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:2px 0;display:block}.reg-table__daybtn:hover{background:var(--canvas)}.reg-table__daybtn:focus-visible{outline:2px solid var(--indigo-600);outline-offset:1px}.period-nav__label{text-align:center;min-width:150px;font-size:14px;font-weight:600}.icon-btn{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:32px;height:32px;color:var(--ink-soft);cursor:pointer;place-items:center;display:grid}.icon-btn:hover:not(:disabled){background:var(--canvas-in)}.icon-btn:disabled{opacity:.4;cursor:default}.reg-legend{color:var(--ink-muted);flex-wrap:wrap;gap:6px 16px;font-size:12.5px;display:flex}.reg-legend>span{align-items:center;gap:6px;display:inline-flex}.reg-table{font-size:13px}.reg-table th,.reg-table td{border-right:1px solid var(--line-soft)}.reg-table th:last-child,.reg-table td:last-child{border-right:none}.reg-table tbody tr:hover{background:var(--surface-2)}.reg-table__name{z-index:1;background:var(--surface);min-width:170px;box-shadow:inset -1px 0 0 var(--line);position:sticky;left:0}.reg-table thead .reg-table__name{background:var(--canvas)}.reg-table tbody tr:hover .reg-table__name{background:var(--surface-2)}.reg-table__student{color:var(--ink);white-space:nowrap;font-weight:600;display:block}.reg-table__adm{color:var(--ink-muted);font-size:11.5px;display:block}.reg-table th.reg-table__day{text-align:center;padding:6px 4px;line-height:1.2}.reg-table th.reg-table__day span{text-transform:uppercase;font-size:10.5px;font-weight:500;display:block}.reg-table th.reg-table__day b{color:var(--ink);font-size:12.5px;font-weight:600;display:block}.reg-table td.reg-table__day{text-align:center;padding:8px 4px}.reg-table .is-today{background:var(--accent-bg)}.reg-table--week .reg-table__day{width:72px}.reg-table--month .reg-table__day{width:34px;min-width:34px}.reg-table__num{text-align:center;font-variant-numeric:tabular-nums;width:44px;color:var(--ink-soft)}.reg-table td.reg-table__num.is-absent{color:var(--danger-ink);font-weight:600}.reg-table__rate{width:150px}.reg-code{font-variant-numeric:tabular-nums;border-radius:4px;place-items:center;width:22px;height:22px;font-size:12px;font-weight:600;display:inline-grid}.reg-code--present{color:var(--ink-muted)}.reg-code--absent{color:var(--danger-ink);background:var(--danger-bg);box-shadow:inset 0 0 0 1px var(--danger-line)}.reg-code--upcoming{color:var(--ink-faint)}.reg-rate{align-items:center;gap:8px;display:flex}.reg-rate__value{text-align:right;font-variant-numeric:tabular-nums;width:38px;color:var(--ink);font-weight:600}.reg-rate__track{background:var(--line);border-radius:999px;flex:1;height:4px;overflow:hidden}.reg-rate__fill{background:var(--ink-muted);border-radius:999px;height:100%;display:block}.reg-rate--low .reg-rate__value{color:var(--danger-ink)}.reg-rate--low .reg-rate__fill{background:var(--danger)}.rate--low{color:var(--danger-ink)}@media (width>=641px){.stat-strip{grid-template-columns:repeat(5,1fr)}.stat-strip>div{border-bottom:none;border-right:1px solid var(--line-soft)}.stat-strip>div:last-child{border-right:none}}@media (width<=640px){.reg-table__name{min-width:130px}.reg-table__adm{display:none}.reg-table__rate{width:70px}.reg-rate__track{display:none}.period-nav__label{min-width:0}}.alert-card{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink-muted);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;padding:14px}.alert-card--red{border-left-color:var(--risk-red)}.alert-card--amber{border-left-color:var(--risk-amber)}.alert-card__head{align-items:center;gap:10px;display:flex}.alert-card__id{flex:1;min-width:0}.alert-card__name{font-size:14.5px;font-weight:800}.alert-card__meta{color:var(--ink-muted);margin-top:1px;font-size:11.5px}.alert-card__body{color:var(--ink-soft);margin:10px 0 12px;font-size:13px;line-height:1.5}.alert-card__contact{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.alert-card__contact a{color:var(--indigo-600);align-items:center;gap:5px;font-size:12px;font-weight:700;text-decoration:none;display:inline-flex}.alert-card__foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.alert-card__risk{color:var(--ink-soft);align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.alert-card__risk b{color:var(--ink)}.profile-head{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:16px;display:flex}.profile-head__id{flex:1;min-width:200px}.profile-head__name{letter-spacing:-.01em;margin:0;font-size:20px;font-weight:700}.profile-head__meta{color:var(--ink-muted);flex-wrap:wrap;gap:4px 18px;margin:4px 0 0;font-size:13px;display:flex}.profile-head__meta b{color:var(--ink-soft);font-weight:600}.profile-head__status{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.profile-head__followup{color:var(--ink-muted);font-size:12px}.risk-tag{border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink);background:var(--surface);align-items:center;gap:7px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-flex}.stat-strip--6,.stat-strip--5{grid-template-columns:repeat(2,1fr)}.profile-grid{grid-template-columns:minmax(0,1fr);gap:0 16px;display:grid}.profile-grid__main,.profile-grid__side{min-width:0}.risk-score{align-items:baseline;gap:10px;margin-top:10px;display:flex}.risk-score__value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:32px;font-weight:700}.risk-score__label{color:var(--ink-muted);font-size:12.5px}.risk-score__track{margin-top:8px;display:block}.risk-score__takeaway{color:var(--ink-soft);margin:10px 0 0;font-size:13.5px}.panel__subtitle{color:var(--ink);margin:18px 0 8px;font-size:13px;font-weight:600}.trend-chart{width:100%;height:170px;display:block}.trend-axis{fill:var(--ink-muted);font-size:11px}.reason-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.reason-list__item{color:var(--ink-soft);border-left:2px solid var(--line);padding-left:10px;font-size:13px;line-height:1.5}.reason-list__item--red{border-left-color:var(--danger-line)}.reason-list__item--amber{border-left-color:var(--warn-line)}.att-cal__grid{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%}.att-cal__grid th{color:var(--ink-muted);text-align:center;padding:2px 0 4px;font-size:11.5px;font-weight:500}.att-cal__grid td{vertical-align:top;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface);height:54px;padding:6px}.att-cal__grid td:empty{background:0 0;border-color:#0000}.att-cal__grid td.is-today{border-color:var(--indigo-200);background:var(--accent-bg)}.att-cal__grid td.is-future{background:var(--canvas)}.att-cal__day{color:var(--ink-muted);margin-bottom:2px;font-size:11.5px;display:block}.att-cal__grid .reg-code{width:24px;height:22px}.profile-grid__side .card{border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.profile-grid__side .card__title{margin-bottom:10px;font-size:15px;font-weight:700}.profile-grid__side .field-row{flex-direction:column;gap:0}@media (width>=641px){.stat-strip--6{grid-template-columns:repeat(6,1fr)}.stat-strip--5{grid-template-columns:repeat(5,1fr)}}@media (width>=1100px){.profile-grid{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr)}}.bottom-nav{width:100%;height:calc(var(--nav-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--line);z-index:20;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav__item{color:var(--ink-muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-size:10.5px;font-weight:700;display:flex}.bottom-nav__pill{border-radius:var(--radius-pill);place-items:center;width:44px;height:26px;transition:background .15s;display:grid}.bottom-nav__item[aria-current=page] .bottom-nav__pill{background:var(--indigo-100)}.sheet-backdrop{z-index:40;background:#14182866;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:480px;padding:10px 18px calc(20px + env(safe-area-inset-bottom,0px));box-shadow:var(--shadow-lg);border-radius:20px 20px 0 0}.sheet__grip{background:var(--line);border-radius:999px;width:40px;height:4px;margin:4px auto 14px}.sheet__name{font-size:16px;font-weight:800}.sheet__sub{color:var(--ink-muted);margin:2px 0 14px;font-size:12.5px}.account-head{align-items:center;gap:12px;margin-bottom:16px;display:flex}.account-head__id{flex:1;min-width:0}.account-head__name{font-size:16px;font-weight:800}.account-head__role{color:var(--ink-muted);margin-top:1px;font-size:12px}.status-dot{border-radius:var(--radius-pill);flex:none;width:10px;height:10px}.status-dot--online{background:var(--present)}.status-dot--offline{background:var(--warn)}.account-list{border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin-bottom:14px}.account-row{width:100%;color:var(--ink);text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:12px 2px;font-size:13.5px;display:flex}.account-row+.account-row{border-top:1px solid var(--line-soft)}.account-row--action{cursor:pointer}.account-row--action:hover{background:var(--canvas-in)}.account-row__icon{color:var(--ink-muted);flex:none;display:inline-flex}.account-row__label{flex:1;min-width:0}.account-row__go{color:var(--indigo-600);font-size:12.5px;font-weight:700}.account-row__btn{cursor:pointer;background:0 0;border:none;flex:none;padding:4px 0;font-family:inherit}.account-row__btn:disabled{opacity:.5;cursor:default}.account-row__error{color:var(--risk-red);margin-top:4px;font-size:12px;display:block}.account-row__google{--pub-line:#d0d4d9;--pub-line-soft:#e3e5e8;--pub-ink:#1f2328;--pub-ink-2:var(--ink-soft);--pub-ink-3:var(--line-strong);--pub-blue:#0b5cd5;--pub-blue-hover:#0a4fb8;--pub-red:#c62828;margin-top:10px;display:block}.account-signout{width:100%;color:var(--absent);border-color:var(--absent-bg)}.account-signout:hover{background:var(--absent-bg)}.account-username{text-align:center;color:var(--ink-muted);margin:10px 0 0;font-size:11.5px}.sheet__row{border-top:1px solid var(--line-soft);justify-content:space-between;align-items:center;gap:10px;padding:12px 0;font-size:13.5px;display:flex}@media (width<=360px){.avatar--md{width:38px;height:38px}}.cardlist-sheet{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.cardlist-sheet__head h1{margin:0;font-size:16px;font-weight:800}.cardlist-sheet__head p{color:var(--ink-muted);margin:2px 0 14px;font-size:12px}.cardlist-table{border-collapse:collapse;width:100%;font-size:13px}.cardlist-table th,.cardlist-table td{text-align:left;border-bottom:1px solid var(--line-soft);padding:8px 6px}.cardlist-table th{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);font-size:11px}.cardlist-table__uid{letter-spacing:.05em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-weight:700}.role-picker{gap:8px;display:flex}.role-picker__opt{text-align:left;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;flex-direction:column;flex:1;gap:2px;padding:10px 12px;display:flex}.role-picker__opt strong{font-size:13.5px}.role-picker__opt span{color:var(--ink-muted);font-size:11.5px;line-height:1.35}.role-picker__opt--active{border-color:var(--indigo-600);background:var(--indigo-tint)}.guardian-contact{background:var(--canvas-in);border-radius:var(--radius-sm);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;font-size:13px;display:flex}.guardian-contact__link{color:var(--indigo-600);align-items:center;gap:5px;font-weight:700;text-decoration:none;display:inline-flex}.guardian-contact__missing{color:var(--ink-muted)}.guardian-contact--edit{flex-direction:column;align-items:stretch}.guardian-contact__actions{align-items:center;gap:10px;display:flex}.followup-form{flex-direction:column;gap:10px;display:flex}.followup-history{flex-direction:column;gap:10px;margin-top:14px;display:flex}.followup-history__row{gap:9px;font-size:12.5px;display:flex}.followup-history__icon{color:var(--present);flex:none;margin-top:1px}.followup-history__method{color:var(--ink);font-weight:700}.followup-history__note{color:var(--ink-soft);margin-top:1px}.followup-history__when{color:var(--ink-muted);margin-top:1px;font-size:11px}.followup-badge{white-space:nowrap;font-size:11px;font-weight:700}.followup-badge--done{color:var(--present)}.followup-badge--needed{color:var(--risk-red)}div.followup-badge{border-radius:var(--radius-pill);background:var(--canvas-in);padding:4px 10px;display:inline-block}.section-heading{margin:22px 0 10px;font-size:15px;font-weight:800}.admin-stats{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.stat-card__value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.stat-card__label{color:var(--ink-muted);margin-top:2px;font-size:11.5px}.stat-card--risk .stat-card__value{color:var(--risk-red)}.admin-table{flex-direction:column;gap:8px;display:flex}.admin-table__row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;width:100%;color:var(--ink-muted);align-items:center;gap:12px;padding:12px 14px;display:flex}.admin-table__row:hover{border-color:var(--indigo-200);background:var(--indigo-tint)}.admin-table__name{min-width:0;color:var(--ink);flex:1;font-size:14px;font-weight:700}.admin-table__meta{white-space:nowrap;font-size:12px}.admin-grid{flex-direction:column;display:flex}.ad-page{flex-direction:column;gap:14px;padding-bottom:96px;display:flex}.ad-page .page-head{margin-bottom:0}.ad-hint{color:var(--ink-muted);margin:0;font-size:13px}.ad-totals{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ad-total{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:2px;padding:14px;display:flex}.ad-total--hero{color:#fff;background:linear-gradient(135deg,#1e3a8a,#2563eb);border:none;grid-column:1/-1}.ad-total__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.1}.ad-total__value small{opacity:.7;font-size:16px;font-weight:700}.ad-total__label{color:var(--ink-muted);font-size:12.5px}.ad-total--ok .ad-total__value{color:var(--present)}.ad-total--bad .ad-total__value{color:var(--absent)}.ad-total--warn .ad-total__value{color:var(--warn)}.ad-meter{background:var(--canvas-in);border-radius:999px;height:6px;margin-top:8px;display:block;overflow:hidden}.ad-meter>span{border-radius:inherit;background:var(--present);height:100%;transition:width .3s;display:block}.ad-total--hero .ad-meter{background:#ffffff38}.ad-total--hero .ad-meter>span{background:#fff}.ad-filters{margin-top:4px}.ad-board{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.ad-tile{text-align:left;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);cursor:pointer;border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;transition:box-shadow .15s,transform .15s;display:flex}.ad-tile:hover{transform:translateY(-1px);box-shadow:0 6px 20px #0f172a14}.ad-tile:focus-visible{outline:2px solid var(--indigo-600);outline-offset:2px}.ad-tile--done{border-left-color:var(--present)}.ad-tile--partial{border-left-color:var(--warn)}.ad-tile--missing{border-left-color:var(--absent);background:var(--danger-bg)}.ad-tile--empty{border-left-color:var(--line);opacity:.8}.ad-tile__head{justify-content:space-between;align-items:center;gap:10px;display:flex}.ad-tile__name{letter-spacing:-.01em;font-size:16px;font-weight:800}.ad-tile__teacher{color:var(--ink-soft);font-size:13px}.ad-tile__counts{color:var(--ink-muted);flex-wrap:wrap;gap:4px 12px;font-size:12.5px;display:flex}.ad-tile__absent{color:var(--absent);font-weight:600}.ad-tile__go{color:var(--indigo-600);align-items:center;gap:4px;margin-top:2px;font-size:13px;font-weight:700;display:inline-flex}.ad-status{white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:11.5px;font-weight:700;display:inline-flex}.ad-status--done{background:var(--present-bg);color:var(--ok-ink)}.ad-status--partial{background:var(--warn-bg);color:var(--warn-ink)}.ad-status--missing{background:var(--absent-bg);color:var(--danger-ink)}.ad-status--empty{background:var(--canvas-in);color:var(--ink-muted)}.ad-empty{text-align:center;background:var(--surface);border:1px dashed var(--line-strong);border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:36px 20px;display:flex}.ad-empty__icon{background:var(--indigo-tint);width:48px;height:48px;color:var(--indigo-600);border-radius:14px;justify-content:center;align-items:center;display:inline-flex}.ad-empty__title{margin:0;font-size:15px;font-weight:800}.ad-empty__text{color:var(--ink-muted);margin:0 0 8px;font-size:13.5px}.ad-list{flex-direction:column;gap:8px;display:flex}.ad-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:10px 10px 10px 16px;display:flex}.ad-row__main{text-align:left;min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:2px 0;display:flex}.ad-row__name{font-size:15px;font-weight:700}.ad-row__meta{color:var(--ink-muted);font-size:12.5px}.ad-row__teacher,.ad-teacher-pick{border:1px solid var(--line);background:var(--canvas);min-height:38px;color:var(--ink-muted);border-radius:10px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.ad-row__teacher select,.ad-teacher-pick select{max-width:180px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;font-size:13.5px;font-weight:600}.ad-row__teacher select:focus,.ad-teacher-pick select:focus{outline:none}.ad-row__teacher:focus-within,.ad-teacher-pick:focus-within{border-color:var(--indigo-600);box-shadow:0 0 0 3px var(--indigo-100)}.ad-row__go{width:36px;height:36px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex}.ad-row__go:hover{background:var(--canvas-in);color:var(--ink)}.ad-register-summary{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ad-chip{border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:700}.ad-chip--present{background:var(--present-bg);color:var(--ok-ink)}.ad-chip--absent{background:var(--absent-bg);color:var(--danger-ink)}.ad-chip--unmarked{background:var(--canvas-in);color:var(--ink-muted)}.ad-register-summary .btn{gap:6px;margin-left:auto}.ad-register{margin:0;padding:0;list-style:none}.ad-mark{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 14px;padding:10px 14px;display:flex}.ad-mark--absent{box-shadow:inset 3px 0 0 var(--absent)}.ad-mark--none{background:var(--warn-bg)}.ad-mark--edited{background:var(--indigo-tint);box-shadow:inset 3px 0 0 var(--indigo-600)}.ad-mark .student-cell{flex:140px;min-width:0}.ad-mark__controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.ad-src{margin-left:8px;font-size:11.5px;font-weight:600}.ad-src--gate{color:var(--accent-ink)}.ad-src--teacher{color:var(--ink-muted)}.ad-src--admin{color:var(--accent-ink)}.ad-src--edited{color:var(--indigo-600)}.ad-src--none{color:var(--warn-ink)}.ad-seg{background:var(--canvas-in);border-radius:10px;gap:2px;padding:3px;display:inline-flex}.ad-seg__btn{min-width:40px;min-height:34px;font:inherit;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:0 12px;font-size:13px;font-weight:700}.ad-seg__btn:hover{color:var(--ink);background:#fff9}.ad-seg__btn:focus-visible{outline:2px solid var(--indigo-600);outline-offset:1px}.ad-seg__btn--present[aria-pressed=true]{background:var(--present);color:var(--on-accent)}.ad-seg__btn--absent[aria-pressed=true]{background:var(--absent);color:var(--on-accent)}.ad-seg__short{display:none}.ad-reasons{border:0;flex-direction:column;gap:6px;margin:0 0 12px;padding:0;display:flex}.ad-reasons legend{margin-bottom:8px}.ad-reason{border:1px solid var(--line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;display:flex}.ad-reason:hover{background:var(--canvas)}.ad-reason--on{border-color:var(--indigo-600);background:var(--indigo-tint)}.ad-reason input{accent-color:var(--indigo-600)}.ad-dialog-row{margin-bottom:12px}.sa-field__input--line{resize:none;min-height:44px}.ad-people{grid-template-columns:minmax(0,1fr);gap:10px;display:grid}.ad-person{background:var(--surface);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:10px;padding:16px;display:flex}.ad-person--off{opacity:.6}.ad-person__head{align-items:center;gap:12px;display:flex}.ad-person__id{flex-direction:column;flex:1;min-width:0;display:flex}.ad-person__name{font-size:15px;font-weight:800}.ad-person__meta{color:var(--ink-muted);font-size:12.5px}.ad-person__contact{flex-wrap:wrap;gap:4px 14px;font-size:13px;display:flex}.ad-person__contact a{color:var(--indigo-600);overflow-wrap:anywhere;align-items:center;gap:4px;text-decoration:none;display:inline-flex}.ad-person__contact span{color:var(--ink-muted);overflow-wrap:anywhere}.ad-person__classes{flex-wrap:wrap;gap:6px;display:flex}.ad-person__none{color:var(--ink-muted);font-size:13px}.ad-class-chip{border:1px solid var(--indigo-200);background:var(--indigo-tint);font:inherit;color:var(--indigo-600);cursor:pointer;border-radius:999px;padding:5px 11px;font-size:12.5px;font-weight:700}.ad-class-chip:hover{background:var(--indigo-100)}.ad-code{border:2px dashed var(--indigo-200);background:var(--indigo-tint);text-align:center;letter-spacing:.12em;color:var(--ink);-webkit-user-select:all;user-select:all;border-radius:14px;margin:4px 0 14px;padding:16px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:30px;font-weight:800}.ad-share{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:14px;display:grid}.ad-share__btn{border:1px solid var(--line);background:var(--surface);min-height:42px;font:inherit;color:var(--ink);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;padding:0 12px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.ad-share__btn:hover{background:var(--canvas-in)}.ad-share__btn--wa{color:#fff;background:#25d366;border-color:#25d366}.ad-share__btn--wa:hover{background:#1ebe5b}.ad-person__actions{border-top:1px solid var(--line-soft);flex-wrap:wrap;gap:8px;padding-top:10px;display:flex}.ad-person__actions .btn{gap:6px}.ad-danger-text{color:var(--absent)}.join-code{text-align:center;letter-spacing:.14em;text-transform:uppercase;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:24px;font-weight:800}.ad-noclass{text-align:center;max-width:440px}.ad-noclass .auth__logo{margin:0 auto 14px}.ad-noclass__actions{flex-direction:column;gap:8px;margin-top:18px;display:flex}.sheet__hint{color:var(--ink-muted);text-align:center;margin:12px 0 0;font-size:12.5px}@media (width<=520px){.ad-seg__long{display:none}.ad-seg__short{display:inline}.ad-row{flex-wrap:wrap}.ad-row__teacher{order:3;width:100%}.ad-row__teacher select{flex:1;max-width:none}}@media (width>=641px){.ad-totals{grid-template-columns:1.6fr repeat(4,minmax(0,1fr))}.ad-total--hero{grid-column:auto}.ad-board,.ad-people{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.ad-board{grid-template-columns:repeat(3,minmax(0,1fr))}}.sa,.ap,.sa-dialog-backdrop{--sa-bg:var(--canvas);--sa-card:var(--surface);--sa-border:var(--line);--sa-ring:var(--accent-line);--sa-shadow:var(--shadow);--sa-shadow-hover:var(--shadow-lg);--sa-pending:var(--warn);--sa-pending-bg:var(--warn-bg);--sa-pending-line:var(--warn-line);--sa-active:var(--ok);--sa-active-bg:var(--ok-bg);--sa-active-line:var(--ok-line);--sa-inactive:var(--danger);--sa-inactive-bg:var(--danger-bg);--sa-inactive-line:var(--danger-line);--sa-rejected:var(--ink-muted);--sa-rejected-bg:var(--surface-3);--sa-rejected-line:var(--line)}.sa{background:radial-gradient(1200px 400px at 85% -120px, #2563eb14, transparent 70%), var(--sa-bg);min-height:100%}.sa-visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sa-header{z-index:20;-webkit-backdrop-filter:saturate(1.6)blur(12px);border-bottom:1px solid var(--sa-border);background:#ffffffd9;position:sticky;top:0}.sa-header__inner{justify-content:space-between;align-items:center;gap:12px;max-width:1200px;margin:0 auto;padding:10px 16px;display:flex}.sa-brand{align-items:center;gap:10px;min-width:0;display:flex}.sa-brand__logo{width:34px;height:34px;color:var(--on-accent);background:linear-gradient(135deg, var(--accent), var(--accent-strong));border-radius:10px;flex:none;justify-content:center;align-items:center;display:inline-flex;box-shadow:0 4px 12px #2563eb4d}.sa-brand__name{letter-spacing:-.02em;font-size:16px;font-weight:800}.sa-brand__tag{border-radius:var(--radius-pill);background:var(--ink);color:var(--on-accent);letter-spacing:.02em;white-space:nowrap;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;display:inline-flex}.sa-header__right{align-items:center;gap:10px;display:flex}.sa-net{color:var(--ink-muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:none}.sa-net__dot{background:var(--sa-active);width:8px;height:8px;box-shadow:0 0 0 3px var(--sa-active-bg);border-radius:50%}.sa-net--off .sa-net__dot{background:var(--sa-pending);box-shadow:0 0 0 3px var(--sa-pending-bg)}.sa-user{border:1px solid var(--sa-border);border-radius:var(--radius-pill);background:var(--surface);align-items:center;gap:8px;max-width:220px;padding:4px 12px 4px 4px;display:none}.sa-user__avatar{background:var(--indigo-100);width:26px;height:26px;color:var(--indigo-600);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.sa-user__name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.sa-main{max-width:1200px;margin:0 auto;padding:20px 16px 48px}.sa-hero{flex-direction:column;gap:14px;margin-bottom:20px;display:flex}.sa-hero__eyebrow{color:var(--indigo-600);margin:0 0 4px;font-size:13px;font-weight:700}.sa-hero__title{letter-spacing:-.03em;margin:0;font-size:26px;font-weight:800;line-height:1.15}.sa-hero__text{max-width:560px;color:var(--ink-muted);margin:6px 0 0;font-size:14.5px;line-height:1.5}.sa-hero>.sa-btn{align-self:flex-start}.sa-btn{cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:42px;padding:0 16px;font-size:14px;font-weight:700;transition:background-color .15s,border-color .15s,box-shadow .15s,transform 50ms,color .15s;display:inline-flex}.sa-btn:active:not(:disabled){transform:translateY(1px)}.sa-btn:focus-visible{box-shadow:0 0 0 4px var(--sa-ring);outline:none}.sa-btn:disabled{opacity:.55;cursor:not-allowed}.sa-btn--sm{border-radius:9px;min-height:36px;padding:0 13px;font-size:13px}.sa-btn--primary{background:var(--indigo-600);color:var(--on-accent)}.sa-btn--primary:hover:not(:disabled){background:var(--accent-strong)}.sa-btn--success{background:var(--sa-active);color:var(--on-accent);box-shadow:0 1px 2px #0596694d}.sa-btn--success:hover:not(:disabled){background:var(--ok-strong)}.sa-btn--danger{background:var(--sa-inactive);color:var(--on-accent);box-shadow:0 1px 2px #dc26264d}.sa-btn--danger:hover:not(:disabled){background:var(--danger-strong)}.sa-btn--danger:focus-visible{box-shadow:0 0 0 4px #dc262638}.sa-btn--danger-outline{background:var(--surface);color:var(--sa-inactive);border-color:var(--sa-inactive-line)}.sa-btn--danger-outline:hover:not(:disabled){background:var(--sa-inactive-bg);border-color:var(--sa-inactive)}.sa-btn--ghost{background:var(--surface);color:var(--ink);border-color:var(--sa-border)}.sa-btn--ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.sa-link{color:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;margin-left:auto;padding:0;font-size:13.5px;font-weight:700;text-decoration:underline;display:inline-flex}.sa-spin{animation:.9s linear infinite sa-spin}@keyframes sa-spin{to{transform:rotate(360deg)}}.sa-alert{border:1px solid;border-radius:12px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;font-size:14px;display:flex}.sa-alert>svg{flex:none}.sa-alert--error{background:var(--sa-inactive-bg);border-color:var(--sa-inactive-line);color:var(--danger-ink)}.sa-alert--attention{background:var(--sa-pending-bg);border-color:var(--sa-pending-line);color:var(--warn-ink)}.sa-alert--compact{margin:0 0 14px;padding:10px 12px;font-size:13px}.sa-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.sa-stat{text-align:left;min-height:96px;font:inherit;color:inherit;background:var(--sa-card);border:1px solid var(--sa-border);box-shadow:var(--sa-shadow);cursor:pointer;border-radius:16px;align-items:flex-start;gap:12px;padding:16px;transition:box-shadow .18s,border-color .18s,transform .18s;display:flex}.sa-stat:hover{box-shadow:var(--sa-shadow-hover);transform:translateY(-1px)}.sa-stat:focus-visible{box-shadow:0 0 0 4px var(--sa-ring);outline:none}.sa-stat__icon{border-radius:12px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:inline-flex}.sa-stat__body{flex-direction:column;min-width:0;display:flex}.sa-stat__value{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.05}.sa-stat__label{margin-top:4px;font-size:13px;font-weight:700}.sa-stat__hint{color:var(--ink-muted);font-size:12px}.sa-stat--pending .sa-stat__icon{background:var(--sa-pending-bg);color:var(--sa-pending)}.sa-stat--active .sa-stat__icon{background:var(--sa-active-bg);color:var(--sa-active)}.sa-stat--inactive .sa-stat__icon{background:var(--sa-inactive-bg);color:var(--sa-inactive)}.sa-stat--rejected .sa-stat__icon{background:var(--sa-rejected-bg);color:var(--sa-rejected)}.sa-stat--pending[aria-pressed=true]{border-color:var(--sa-pending);box-shadow:0 0 0 3px var(--sa-pending-bg)}.sa-stat--active[aria-pressed=true]{border-color:var(--sa-active);box-shadow:0 0 0 3px var(--sa-active-bg)}.sa-stat--inactive[aria-pressed=true]{border-color:var(--sa-inactive);box-shadow:0 0 0 3px var(--sa-inactive-bg)}.sa-stat--rejected[aria-pressed=true]{border-color:var(--sa-rejected);box-shadow:0 0 0 3px var(--sa-rejected-bg)}.sa-toolbar{flex-direction:column;gap:12px;margin:24px 0 16px;display:flex}.sa-tabs{background:var(--surface-2);scrollbar-width:none;border-radius:12px;gap:2px;padding:4px;display:flex;overflow-x:auto}.sa-tabs::-webkit-scrollbar{display:none}.sa-tab{min-height:36px;color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;flex:1 0 auto;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:13.5px;font-weight:700;display:inline-flex}.sa-tab:hover{color:var(--ink)}.sa-tab:focus-visible{box-shadow:0 0 0 3px var(--sa-ring);outline:none}.sa-tab[aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0f172a1f}.sa-tab__count{border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;background:#0f172a12;min-width:22px;padding:1px 7px;font-size:11.5px}.sa-tab[aria-selected=true] .sa-tab__count{background:var(--indigo-100);color:var(--indigo-600)}.sa-search{color:var(--ink-muted);align-items:center;display:flex;position:relative}.sa-search svg{pointer-events:none;position:absolute;left:13px}.sa-search input{border:1px solid var(--sa-border);background:var(--surface);width:100%;min-height:44px;font:inherit;color:var(--ink);box-shadow:var(--sa-shadow);border-radius:12px;padding:0 14px 0 38px;font-size:14px}.sa-search input:focus{border-color:var(--indigo-600);box-shadow:0 0 0 4px var(--sa-ring);outline:none}.sa-grid{grid-template-columns:minmax(0,1fr);gap:14px;display:grid}.sa-grid--loading{margin-top:24px}.sa-card{background:var(--sa-card);border:1px solid var(--sa-border);box-shadow:var(--sa-shadow);border-radius:16px;flex-direction:column;gap:14px;padding:18px;transition:box-shadow .18s,transform .18s;display:flex;position:relative;overflow:hidden}.sa-card:before{content:"";background:var(--sa-rejected-line);height:4px;position:absolute;inset:0 0 auto}.sa-card--pending:before{background:linear-gradient(90deg, var(--warn), var(--warn))}.sa-card--active:before{background:linear-gradient(90deg, var(--ok), var(--ok))}.sa-card--inactive:before{background:linear-gradient(90deg, var(--danger), var(--danger))}.sa-card:hover{box-shadow:var(--sa-shadow-hover)}.sa-card--rejected{background:var(--surface-2)}.sa-card__head{align-items:flex-start;gap:12px;display:flex}.sa-card__avatar{letter-spacing:.02em;background:var(--sa-rejected-bg);width:44px;height:44px;color:var(--sa-rejected);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:inline-flex}.sa-card--pending .sa-card__avatar{background:var(--sa-pending-bg);color:var(--sa-pending)}.sa-card--active .sa-card__avatar{background:var(--sa-active-bg);color:var(--sa-active)}.sa-card--inactive .sa-card__avatar{background:var(--sa-inactive-bg);color:var(--sa-inactive)}.sa-card__id{flex:1;min-width:0}.sa-card__name{letter-spacing:-.015em;overflow-wrap:anywhere;margin:0;font-size:16px;font-weight:800;line-height:1.3}.sa-card__place{color:var(--ink-muted);align-items:center;gap:4px;margin:3px 0 0;font-size:13px;display:flex}.sa-badge{border-radius:var(--radius-pill);white-space:nowrap;background:var(--sa-rejected-bg);color:var(--sa-rejected);flex:none;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.sa-badge__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.sa-badge--pending{background:var(--sa-pending-bg);color:var(--warn-ink)}.sa-badge--active{background:var(--sa-active-bg);color:var(--ok-ink)}.sa-badge--inactive{background:var(--sa-inactive-bg);color:var(--danger-ink)}.sa-badge--pending .sa-badge__dot{animation:1.8s ease-in-out infinite sa-pulse}@keyframes sa-pulse{50%{opacity:.35}}.sa-card__facts{background:var(--surface-2);border-radius:12px;grid-template-columns:minmax(0,1fr);gap:10px;margin:0;padding:14px;display:grid}.sa-card__facts>div{align-items:baseline;gap:10px;min-width:0;display:flex}.sa-card__facts dt{width:96px;color:var(--ink-muted);flex:none;align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.sa-card__facts dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:13.5px;font-weight:600}.sa-card__facts a{color:var(--indigo-600);text-decoration:none}.sa-card__facts a:hover{text-decoration:underline}.sa-card__waiting{color:var(--warn-ink);font-weight:700}.sa-card__code{background:var(--surface);border:1px solid var(--sa-border);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12.5px}.sa-card__note{border-left:3px solid var(--sa-rejected);background:var(--sa-rejected-bg);color:var(--ink-soft);border-radius:10px;margin:0;padding:10px 12px;font-size:13px;line-height:1.45}.sa-card__note--inactive{border-left-color:var(--sa-inactive);background:var(--sa-inactive-bg)}.sa-card__foot{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:auto;padding-top:14px;display:flex}.sa-card__meta{color:var(--ink-muted);font-size:12px}.sa-card__actions{gap:8px;margin-left:auto;display:flex}.sa-empty{text-align:center;background:var(--sa-card);border:1px dashed var(--line-strong);border-radius:16px;flex-direction:column;align-items:center;padding:48px 20px;display:flex}.sa-empty__icon{background:var(--indigo-tint);width:56px;height:56px;color:var(--indigo-600);border-radius:16px;justify-content:center;align-items:center;margin-bottom:14px;display:inline-flex}.sa-empty__title{margin:0;font-size:16px;font-weight:800}.sa-empty__text{color:var(--ink-muted);margin:6px 0 0;font-size:14px}.sa-skeleton{cursor:default;background:linear-gradient(90deg, var(--surface-2) 0%, var(--surface-2) 50%, var(--surface-2) 100%);box-shadow:none;background-size:200% 100%;border-color:#0000;animation:1.3s ease-in-out infinite sa-shimmer}.sa-skeleton:hover{box-shadow:none;transform:none}.sa-skeleton--card{min-height:230px}.sa-skeleton--card:before{display:none}@keyframes sa-shimmer{to{background-position:-200% 0}}.sa-dialog-backdrop{z-index:60;-webkit-backdrop-filter:blur(3px);background:#0f172a73;justify-content:center;align-items:flex-end;animation:.15s ease-out sa-fade;display:flex;position:fixed;inset:0}.sa-dialog{width:100%;max-width:460px;padding:24px 20px calc(20px + env(safe-area-inset-bottom,0px));background:var(--surface);border-radius:20px 20px 0 0;animation:.2s ease-out sa-rise;box-shadow:0 24px 60px #0f172a40}.sa-dialog__icon{border-radius:14px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:14px;display:inline-flex}.sa-dialog__icon--danger{background:var(--sa-inactive-bg);color:var(--sa-inactive)}.sa-dialog__icon--success{background:var(--sa-active-bg);color:var(--sa-active)}.sa-dialog__icon--primary{background:var(--indigo-100);color:var(--indigo-600)}.sa-dialog__title{letter-spacing:-.02em;margin:0;font-size:18px;font-weight:800;line-height:1.3}.sa-dialog__body{color:var(--ink-muted);margin:8px 0 18px;font-size:14px;line-height:1.55}.sa-dialog__actions{flex-direction:column-reverse;gap:8px;margin-top:4px;display:flex}.sa-dialog__actions .sa-btn{width:100%}.sa-field{margin-bottom:16px}.sa-field__label{color:var(--ink);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.sa-field__input{border:1px solid var(--sa-border);width:100%;min-height:88px;font:inherit;color:var(--ink);resize:vertical;border-radius:10px;padding:10px 12px;font-size:14px}.sa-field__input:focus{border-color:var(--indigo-600);box-shadow:0 0 0 4px var(--sa-ring);outline:none}@keyframes sa-fade{0%{opacity:0}}@keyframes sa-rise{0%{opacity:0;transform:translateY(16px)}}@media (width>=641px){.sa-header__inner{padding:12px 24px}.sa-main{padding:32px 24px 64px}.sa-net,.sa-user{display:inline-flex}.sa-hero{flex-direction:row;justify-content:space-between;align-items:flex-end}.sa-hero>.sa-btn{align-self:auto}.sa-hero__title{font-size:30px}.sa-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.sa-toolbar{flex-direction:row;justify-content:space-between;align-items:center}.sa-tabs,.sa-tab{flex:none}.sa-search{width:300px}.sa-dialog-backdrop{align-items:center;padding:24px}.sa-dialog{border-radius:20px;padding:28px}.sa-dialog__actions{flex-direction:row;justify-content:flex-end}.sa-dialog__actions .sa-btn{width:auto}}@media (width<=420px){.sa-hide-sm,.sa-brand__name{display:none}}@media (width>=960px){.sa-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}@media (prefers-reduced-motion:reduce){.sa *,.sa-dialog-backdrop,.sa-dialog{transition:none!important;animation:none!important}}.ap{background:radial-gradient(900px 360px at 50% -140px, #2563eb1a, transparent 70%), var(--sa-bg);flex-direction:column;min-height:100%;display:flex}.ap-header{justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:760px;margin:0 auto;padding:14px 16px;display:flex}.ap-main{flex:1;justify-content:center;padding:8px 16px 48px;display:flex}.ap-card{background:var(--surface);border:1px solid var(--sa-border);width:100%;max-width:560px;box-shadow:var(--sa-shadow-hover);border-radius:20px;align-self:flex-start;padding:28px 20px 20px;position:relative;overflow:hidden}.ap-card:before{content:"";height:5px;position:absolute;inset:0 0 auto}.ap-card--pending:before{background:linear-gradient(90deg, var(--warn), var(--warn))}.ap-card--approved:before{background:linear-gradient(90deg, var(--ok), var(--ok))}.ap-card--rejected:before{background:linear-gradient(90deg, var(--danger), var(--danger))}.ap-hero{text-align:center;flex-direction:column;align-items:center;display:flex}.ap-hero__icon{border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:14px;display:inline-flex}.ap-card--pending .ap-hero__icon{background:var(--sa-pending-bg);color:var(--sa-pending)}.ap-card--approved .ap-hero__icon{background:var(--sa-active-bg);color:var(--sa-active);animation:.45s ease-out ap-pop}.ap-card--rejected .ap-hero__icon{background:var(--sa-inactive-bg);color:var(--sa-inactive)}@keyframes ap-pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}}.ap-badge{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:4px 11px;font-size:12px;font-weight:700;display:inline-flex}.ap-badge__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.ap-badge--pending{background:var(--sa-pending-bg);color:var(--warn-ink)}.ap-badge--approved{background:var(--sa-active-bg);color:var(--ok-ink)}.ap-badge--rejected{background:var(--sa-inactive-bg);color:var(--danger-ink)}.ap-badge--pending .ap-badge__dot{animation:1.8s ease-in-out infinite sa-pulse}.ap-hero__title{letter-spacing:-.025em;margin:12px 0 0;font-size:22px;font-weight:800;line-height:1.25}.ap-hero__text{max-width:440px;color:var(--ink-muted);margin:8px 0 0;font-size:14px;line-height:1.55}.ap-school{background:var(--surface-2);border:1px solid var(--line-soft);border-radius:14px;align-items:center;gap:12px;margin:22px 0 6px;padding:12px 14px;display:flex}.ap-school__icon{background:var(--surface);width:40px;height:40px;color:var(--indigo-600);border:1px solid var(--sa-border);border-radius:12px;flex:none;justify-content:center;align-items:center;display:inline-flex}.ap-school__text{flex-direction:column;gap:2px;min-width:0;display:flex}.ap-school__text b{overflow-wrap:anywhere;font-size:15px}.ap-school__text>span{color:var(--ink-muted);flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12.5px;display:flex}.ap-school__code{background:var(--surface);border:1px solid var(--sa-border);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:12px}.ap-steps{margin:18px 0 8px;padding:0;list-style:none}.ap-step{gap:14px;padding-bottom:18px;display:flex;position:relative}.ap-step:last-child{padding-bottom:4px}.ap-step:not(:last-child):after{content:"";background:var(--sa-border);width:2px;position:absolute;top:32px;bottom:2px;left:14px}.ap-step--done:not(:last-child):after{background:var(--sa-active-line)}.ap-step__marker{border:2px solid var(--sa-border);background:var(--surface);width:30px;height:30px;color:var(--ink-muted);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.ap-step--done .ap-step__marker{border-color:var(--sa-active);background:var(--sa-active);color:var(--on-accent)}.ap-step--current .ap-step__marker{border-color:var(--sa-pending);background:var(--sa-pending-bg);color:var(--sa-pending);box-shadow:0 0 0 5px #f59e0b26}.ap-step--failed .ap-step__marker{border-color:var(--sa-inactive);background:var(--sa-inactive);color:var(--on-accent)}.ap-step__body{flex-direction:column;gap:3px;min-width:0;padding-top:4px;display:flex}.ap-step__label{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:14.5px;font-weight:700;display:flex}.ap-step--todo .ap-step__label{color:var(--ink-muted);font-weight:600}.ap-step__date{color:var(--ink-muted);font-size:12px;font-weight:600}.ap-step__detail{color:var(--ink-soft);overflow-wrap:anywhere;font-size:13px;line-height:1.45}.ap-step--failed .ap-step__detail{border-left:3px solid var(--sa-inactive);background:var(--sa-inactive-bg);border-radius:10px;margin-top:4px;padding:8px 10px}.ap-card .sa-alert--compact{margin:10px 0 0}.ap-footer{border-top:1px solid var(--line-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding-top:16px;display:flex}.ap-footer__meta{color:var(--ink-muted);font-size:12px}@media (width>=641px){.ap-header{padding:18px 24px}.ap-main{padding-top:24px}.ap-card{padding:36px 36px 24px}.ap-hero__title{font-size:25px}}.side-nav{width:var(--sidenav-w);border-right:1px solid var(--line);background:var(--surface);flex-direction:column;flex:none;align-self:flex-start;height:100vh;padding:18px 14px 14px;display:none;position:sticky;top:0;overflow-y:auto}.side-nav__brand{color:var(--ink);align-items:center;gap:10px;padding:2px 8px 18px;font-size:16px;font-weight:700;display:flex}.side-nav__logo{background:var(--slate-700);width:32px;height:32px;color:var(--on-accent);border-radius:8px;place-items:center;display:grid}.side-nav__class{text-align:left;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;color:var(--ink-muted);justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;padding:8px 12px;display:flex}.side-nav__class:hover{background:var(--canvas-in)}.side-nav__class-label{color:var(--ink-muted);font-size:11px;font-weight:500;display:block}.side-nav__class-name{color:var(--ink);font-size:14px;font-weight:600;display:block}.side-nav__section{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);padding:16px 10px 6px;font-size:11px;font-weight:600}.side-nav__items{flex-direction:column;flex:1;gap:2px;display:flex}.side-nav__group{flex-direction:column;display:flex}.side-nav__item{border-radius:var(--radius-sm);color:var(--ink-soft);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:11px;padding:9px 10px;font-size:14px;font-weight:500;display:flex}.side-nav__item[aria-current=page]{background:var(--indigo-tint);color:var(--slate-800);font-weight:600}.side-nav__user{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;text-align:left;align-items:center;gap:10px;margin-top:12px;padding:10px;display:flex}.side-nav__user:hover{background:var(--canvas-in)}.side-nav__user-text{flex-direction:column;min-width:0;display:flex}.side-nav__user-name{white-space:nowrap;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.side-nav__user-role{color:var(--ink-muted);font-size:11.5px}.side-nav__user-meta{color:var(--ink-muted);align-items:center;gap:5px;font-size:11.5px;display:inline-flex}@media (width>=641px){.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}}@media (width>=900px){.bottom-nav{display:none}.side-nav{display:flex}.topbar{padding:14px 32px}.topbar__logo{display:none}.app__scroll{padding:24px 32px 40px}.savebar{bottom:16px}.dash-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.form-grid{grid-template-columns:repeat(2,1fr)}.admin-stats{grid-template-columns:repeat(5,1fr)}.admin-grid{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.sheet-backdrop{align-items:center}.sheet{border-radius:16px;max-width:420px}.auth{padding:40px}}@media print{body{background:#fff}.no-print,.topbar,.bottom-nav,.side-nav{display:none!important}.app__scroll{padding:0}.cardlist-sheet{border:none;padding:0}.cardlist-table th,.cardlist-table td{border-bottom:1px solid #ccc}}.toaster{right:16px;bottom:calc(var(--nav-h) + 16px + env(safe-area-inset-bottom,0px));z-index:60;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;left:16px}.toast{border-radius:var(--radius-sm);background:var(--ink);color:#fff;max-width:420px;box-shadow:var(--shadow-lg);align-items:center;gap:9px;padding:11px 14px;font-size:13.5px;animation:.18s ease-out toast-in;display:flex}.toast svg{color:#4ade80;flex:none}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.nav-flag{border-radius:var(--radius-pill);margin-left:auto;padding:1px 8px;font-size:11px;font-weight:600}.nav-flag--due{background:var(--warn-bg);color:var(--warn-ink)}.nav-flag--done{background:var(--present-bg);color:var(--ok-ink)}.bottom-nav__pill{position:relative}.nav-dot{background:var(--warn);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:2px;right:8px}.sheet .card{box-shadow:none;border:none;margin-bottom:0;padding:0}@media (width>=900px){.toaster{align-items:flex-end;bottom:24px;left:auto;right:24px}.sheet__grip{display:none}.sheet{padding-top:20px}}.sys,.ad,.ad-console,.idsheet,.camscan{--sys-bg:var(--canvas);--sys-line:var(--line);--sys-line-strong:var(--line-strong);--sys-ink:var(--ink);--sys-ink-2:var(--ink-soft);--sys-ink-3:var(--ink-muted);--sys-blue:var(--accent);--sys-blue-hover:var(--accent-strong);--sys-red:var(--danger)}.sys{background:var(--sys-bg);min-height:100%;color:var(--sys-ink);font-family:var(--font);font-size:14px;line-height:1.45}.sys-muted{color:var(--sys-ink-3)}.sys-nowrap{white-space:nowrap}.sys-top{z-index:20;color:#e6e8eb;background:#1f2328;justify-content:space-between;align-items:center;gap:12px;height:48px;padding:0 20px;display:flex;position:sticky;top:0}.sys-top__brand{color:#fff;font-size:15px;font-weight:600}.sys-top__product{color:#b4bbc4;border-left:1px solid #454c55;margin-left:10px;padding-left:10px;font-weight:400}.sys-top__right{align-items:center;gap:16px;font-size:13px;display:flex}.sys-top__user{color:#c9cfd6;text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.sys-top__signout{color:#e6e8eb;cursor:pointer;background:0 0;border:1px solid #454c55;border-radius:4px;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:13px;display:inline-flex}.sys-top__signout:hover{background:#2d333b}.sys-main{max-width:1240px;margin:0 auto;padding:24px 20px 48px}.sys-pagehead{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:16px;display:flex}.sys-pagehead__title{letter-spacing:0;margin:0;font-size:22px;font-weight:600}.sys-pagehead__sub{color:var(--sys-ink-2);margin:4px 0 0;font-size:13px}.sys-pagehead__sub b{color:var(--warn-ink);font-weight:600}.sys-banner{border:1px solid;border-radius:4px;margin-bottom:16px;padding:10px 14px;font-size:13px}.sys-banner--error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.sys-linkbtn{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600;text-decoration:underline}.sys-btn{height:32px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:500;display:inline-flex}.sys-btn:focus-visible{outline:2px solid var(--sys-blue);outline-offset:1px}.sys-btn:disabled{opacity:.55;cursor:default}.sys-btn--sm{height:28px;padding:0 10px}.sys-btn--primary{background:var(--sys-blue);color:var(--on-accent)}.sys-btn--primary:hover:not(:disabled){background:var(--sys-blue-hover)}.sys-btn--secondary{background:var(--surface);color:var(--sys-ink);border-color:var(--sys-line-strong)}.sys-btn--secondary:hover:not(:disabled){background:var(--surface-2)}.sys-btn--danger{background:var(--surface);color:var(--sys-red);border-color:var(--sys-line-strong)}.sys-btn--danger:hover:not(:disabled){background:var(--danger-bg);border-color:var(--danger-line)}.sys-tabs{border-bottom:1px solid var(--sys-line);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.sys-tab{color:var(--sys-ink-2);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 12px;font-size:14px;display:inline-flex}.sys-tab:hover:not(:disabled){color:var(--sys-ink)}.sys-tab[aria-selected=true]{color:var(--sys-ink);border-bottom-color:var(--sys-blue);font-weight:600}.sys-tab__count{background:var(--surface-2);min-width:20px;color:var(--sys-ink-2);text-align:center;border-radius:10px;padding:0 6px;font-size:12px;font-weight:500}.sys-panel{background:var(--surface);border:1px solid var(--sys-line);border-radius:6px;margin-top:16px;overflow:hidden}.sys-toolbar{border-bottom:1px solid var(--sys-line);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.sys-toolbar__count{color:var(--sys-ink-3);white-space:nowrap;font-size:13px}.sys-search{border:1px solid var(--sys-line-strong);height:32px;color:var(--sys-ink-3);border-radius:4px;flex:0 340px;align-items:center;gap:8px;padding:0 10px;display:flex}.sys-search:focus-within{border-color:var(--sys-blue);box-shadow:0 0 0 1px var(--sys-blue)}.sys-search input{min-width:0;font:inherit;color:var(--sys-ink);background:0 0;border:0;outline:0;flex:1;font-size:13px}.sys-table{border-collapse:collapse;width:100%}.sys-table th{background:var(--surface-2);border-bottom:1px solid var(--sys-line);color:var(--sys-ink-2);text-align:left;white-space:nowrap;padding:8px 12px;font-size:12px;font-weight:600}.sys-table td{border-bottom:1px solid var(--line-soft);vertical-align:top;padding:10px 12px}.sys-table tbody tr:last-child td{border-bottom:0}.sys-table tbody tr{cursor:pointer}.sys-table tbody tr:hover td{background:var(--surface-2)}.sys-table tbody tr.is-selected td{background:var(--accent-bg)}.sys-table__name{font:inherit;color:var(--sys-ink);text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.sys-table__name:hover{color:var(--sys-blue);text-decoration:underline}.sys-table__sub{color:var(--sys-ink-3);margin-top:2px;font-size:12px}.sys-table__note{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.sys-table__actions{text-align:right;white-space:nowrap;width:1%}.sys-table__actions .sys-btn+.sys-btn{margin-left:6px}.sys-table__empty{color:var(--sys-ink-2);text-align:center;cursor:default;padding:32px 12px!important}.sys-table tbody tr:has(.sys-table__empty){cursor:default}.sys-table tbody tr:has(.sys-table__empty):hover td{background:0 0}.sys-status{white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.sys-status:before{content:"";background:currentColor;border-radius:2px;width:8px;height:8px}.sys-status--pending{color:var(--warn-ink)}.sys-status--active{color:var(--ok-ink)}.sys-status--inactive{color:var(--ink-soft)}.sys-status--rejected{color:var(--sys-red)}.sys-status--unconfirmed{color:var(--sys-ink-3)}.sys-drawer-backdrop{z-index:40;background:#1f232840;position:fixed;inset:0}.sys-drawer{z-index:41;background:var(--surface);border-left:1px solid var(--sys-line);flex-direction:column;width:min(440px,100%);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #00000014}.sys-drawer__head{border-bottom:1px solid var(--sys-line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px;display:flex}.sys-drawer__title{margin:0 0 4px;font-size:17px;font-weight:600}.sys-drawer__close{width:30px;height:30px;color:var(--sys-ink-2);cursor:pointer;background:0 0;border:0;border-radius:4px;font-size:22px;line-height:1}.sys-drawer__close:hover{background:var(--surface-2)}.sys-drawer__body{flex:1;padding:4px 20px 20px;overflow-y:auto}.sys-drawer__foot{border-top:1px solid var(--sys-line);background:var(--surface-2);justify-content:flex-end;gap:8px;padding:12px 20px;display:flex}.sys-detail{margin-top:16px}.sys-detail__title{color:var(--sys-ink-3);letter-spacing:.04em;text-transform:uppercase;margin:0 0 6px;font-size:11px;font-weight:600}.sys-detail dl{margin:0}.sys-detail__row{border-bottom:1px solid var(--line-soft);grid-template-columns:150px 1fr;gap:12px;padding:7px 0;font-size:13px;display:grid}.sys-detail__row dt{color:var(--sys-ink-2)}.sys-detail__row dd{overflow-wrap:anywhere;margin:0}.sys-detail__row a{color:var(--sys-blue);text-decoration:none}.sys-detail__row a:hover{text-decoration:underline}.sys .sa-dialog{text-align:left;border-radius:6px}.sys .sa-dialog__icon{display:none}.sys .sa-dialog__title{letter-spacing:0;font-size:16px;font-weight:600}.sys .sa-dialog__body{color:var(--sys-ink-2)}.sys .sa-btn{min-height:34px;box-shadow:none;border-radius:4px;font-size:13px;font-weight:500}.sys .sa-btn--success{background:var(--sys-blue)}.sys .sa-btn--success:hover:not(:disabled){background:var(--sys-blue-hover)}.sys .sa-field__input{border-radius:4px}.sys .sa-field__label{font-weight:600}@media (width>=640px){.sys .sa-dialog__actions{flex-direction:row;justify-content:flex-end}.sys .sa-dialog__actions .sa-btn{width:auto}}@media (width<=760px){.sys-top{padding:0 14px}.sys-top__product,.sys-top__user,.sys-hide-sm{display:none}.sys-main{padding:16px 12px 40px}.sys-toolbar__count{display:none}.sys-search{flex:1}.sys-table thead{display:none}.sys-table,.sys-table tbody,.sys-table tr,.sys-table td{width:auto;display:block}.sys-table tbody tr{border-bottom:1px solid var(--sys-line);padding:12px}.sys-table tbody tr:last-child{border-bottom:0}.sys-table td{border:0;padding:2px 0}.sys-table td[data-label=Location],.sys-table td[data-label=Registered]{color:var(--sys-ink-2);font-size:13px}.sys-table td[data-label=Status]{margin-top:4px}.sys-table__actions{text-align:left;margin-top:8px}.sys-table__note{max-width:none}}.pub{--pub-bg:var(--canvas);--pub-line:var(--line-strong);--pub-line-soft:var(--line);--pub-ink:var(--ink);--pub-ink-2:var(--ink-soft);--pub-ink-3:var(--ink-muted);--pub-blue:var(--accent);--pub-blue-hover:var(--accent-strong);--pub-red:var(--danger);background:var(--pub-bg);min-height:100%;color:var(--pub-ink);font-family:var(--font);flex-direction:column;font-size:14px;line-height:1.5;display:flex}.pub-top{padding:20px 24px 0}.pub-brand{color:var(--pub-ink);letter-spacing:-.01em;font-size:18px;font-weight:700;text-decoration:none}.pub-main{flex:1;justify-content:center;align-items:flex-start;padding:40px 16px 32px;display:flex}.pub-card{background:var(--surface);border:1px solid var(--pub-line-soft);border-radius:8px;width:100%;max-width:400px;padding:28px 28px 24px;box-shadow:0 1px 2px #0000000a}.pub-card--wide{max-width:680px}.pub-card__foot{border-top:1px solid var(--pub-line-soft);background:var(--surface-2);text-align:center;color:var(--pub-ink-2);border-radius:0 0 8px 8px;margin:24px -28px -24px;padding:14px 28px}.pub-foot{text-align:center;color:var(--pub-ink-3);padding:0 16px 24px;font-size:12px}.pub-title{letter-spacing:-.01em;margin:0 0 6px;font-size:22px;font-weight:600}.pub-sub{color:var(--pub-ink-2);margin:0 0 20px}.pub-back{color:var(--pub-ink-2);margin-bottom:16px;font-size:13px;text-decoration:none;display:inline-block}.pub-back:hover{color:var(--pub-ink);text-decoration:underline}.pub-link{color:var(--pub-blue);font-weight:500;text-decoration:none}.pub-link:hover{text-decoration:underline}.pub-linkbtn{color:var(--pub-blue);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:500}.pub-linkbtn:hover{text-decoration:underline}.pub-linkbtn:disabled{color:var(--pub-ink-3);cursor:default}.pub-back.pub-linkbtn{color:var(--pub-ink-2);font-size:13px;font-weight:400}.pub-alt{color:var(--pub-ink-2);text-align:center;margin:18px 0 0;font-size:13px}.pub-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pub-row--end{justify-content:flex-end;margin:-6px 0 16px;font-size:13px}.pub-field{margin-bottom:16px}.pub-field__label{margin-bottom:6px;font-size:13px;font-weight:600;display:block}.pub-field__opt{color:var(--pub-ink-3);font-weight:400}.pub-field__hint{color:var(--pub-ink-3);margin:4px 0 0;font-size:12px}.pub-field__error{color:var(--pub-red);margin:4px 0 0;font-size:12px}.pub-input{border:1px solid var(--pub-line);background:var(--surface);width:100%;height:40px;font:inherit;color:var(--pub-ink);border-radius:6px;padding:0 12px;font-size:15px;display:block}select.pub-input{padding-right:8px}.pub-input:focus{border-color:var(--pub-blue);outline:none;box-shadow:0 0 0 3px #0b5cd526}.pub-input:disabled{background:var(--surface-2)}.pub-field--error .pub-input{border-color:var(--pub-red)}.pub-input--code{letter-spacing:.12em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.pub-password{position:relative}.pub-password .pub-input{padding-right:64px}.pub-password__toggle{height:28px;color:var(--pub-blue);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;padding:0 8px;font-size:13px;font-weight:500;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pub-password__toggle:hover{background:var(--accent-bg)}.pub-btn{height:40px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.pub-btn:focus-visible{outline:2px solid var(--pub-blue);outline-offset:2px}.pub-btn:disabled{opacity:.55;cursor:default}.pub-btn--block{width:100%}.pub-btn--primary{background:var(--pub-blue);color:var(--on-accent)}.pub-btn--primary:hover:not(:disabled){background:var(--pub-blue-hover)}.pub-btn--secondary{background:var(--surface);color:var(--pub-ink);border-color:var(--pub-line)}.pub-btn--secondary:hover:not(:disabled){background:var(--surface-2)}.pub-btn--google{background:var(--surface);color:var(--pub-ink);border-color:var(--pub-line);font-weight:500}.pub-btn--google:hover:not(:disabled){background:var(--surface-2)}.lock-overlay{z-index:1000;background:var(--canvas);position:fixed;inset:0;overflow:auto}.lock-overlay .auth{min-height:100%}.pub-google{justify-content:center;min-height:44px;display:flex}.pub-google--disabled{opacity:.5;pointer-events:none}.pub-devgoogle{border:1px dashed var(--pub-line);border-radius:6px;padding:12px}.pub-devgoogle__note{color:var(--pub-ink-3);margin:0 0 10px;font-size:12px;line-height:1.45}.pub-devgoogle__row{gap:8px;display:flex}.pub-devgoogle__row .pub-input{flex:1;min-width:0}.pub-divider{color:var(--pub-ink-3);align-items:center;gap:12px;margin:16px 0;font-size:12px;display:flex}.pub-divider:before,.pub-divider:after{content:"";background:var(--pub-line-soft);flex:1;height:1px}.pub-actions{border-top:1px solid var(--pub-line-soft);justify-content:flex-end;gap:8px;margin-top:8px;padding-top:16px;display:flex}.pub-alert{border:1px solid;border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:13px}.pub-alert--error{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.pub-alert--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.pub-alert--info{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-ink)}.pub-section{border:0;margin:0 0 8px;padding:0}.pub-section__title{margin-bottom:12px;padding:0;font-size:15px;font-weight:600}.pub-section+.pub-section{margin-top:12px}.pub-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.pub-steps{color:var(--pub-ink-2);margin:0 0 8px;padding-left:20px}.pub-steps li{margin-bottom:8px}.pub-steps b{color:var(--pub-ink);font-weight:600}.pub-outbox{margin:0;padding:0;list-style:none}.pub-outbox li{border-top:1px solid var(--pub-line-soft);padding:12px 0}.pub-outbox__meta{color:var(--pub-ink-3);font-size:12px}.pub-outbox__subject{margin:2px 0 6px;font-weight:600}.pub-outbox pre{white-space:pre-wrap;background:var(--surface-2);border-radius:4px;padding:8px;font-size:12px}@media (width<=560px){.pub-top{padding:16px 16px 0}.pub-main{padding:20px 12px 24px}.pub-card{padding:22px 18px 18px}.pub-card__foot{margin:20px -18px -18px;padding:12px 18px}.pub-grid{grid-template-columns:1fr}.pub-actions{flex-direction:column-reverse}.pub-actions .pub-btn{width:100%}}.ad-console{font-family:var(--font);color:var(--sys-ink);font-size:14px}.ad-console .sys-pagehead{align-items:flex-start}.sys-pagehead__actions,.sys-toolbar__left,.sys-toolbar__right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sys-toolbar__left{flex:1;min-width:0}.sys-toolbar__title{font-weight:600}.sys-select,.sys-input{border:1px solid var(--sys-line-strong);background:var(--surface);height:32px;font:inherit;color:var(--sys-ink);border-radius:4px;padding:0 10px;font-size:13px}.sys-select:focus,.sys-input:focus{border-color:var(--sys-blue);box-shadow:0 0 0 1px var(--sys-blue);outline:none}.sys-input{width:100%;height:36px;font-size:14px}.sys-input--date{width:auto;height:32px;font-size:13px}.sys-check{color:var(--sys-ink-2);white-space:nowrap;align-items:center;gap:6px;font-size:13px;display:inline-flex}.sys-mono{letter-spacing:.02em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.sys-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sys-table th.sys-num{text-align:right}.sys-table tbody tr.is-static{cursor:default}.sys-table tbody tr.is-static:hover td{background:0 0}.sys-banner--info{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-ink)}.sys-note{color:var(--sys-ink-2);margin:8px 0 12px;font-size:13px}.sys-problems{margin:6px 0 0;padding-left:18px}.sys-field{margin-bottom:14px}.sys-field__label{margin-bottom:5px;font-size:13px;font-weight:600;display:block}.sys-field__hint{color:var(--sys-ink-3);margin:4px 0 0;font-size:12px}.sys-field__error{color:var(--sys-red);margin:4px 0 0;font-size:12px}.sys-field--error .sys-input{border-color:var(--sys-red)}.sys-drawer__sub{color:var(--sys-ink-2);font-size:13px}.sys-drawer__body .sys-banner,.sys-drawer__body form{margin-top:16px}.sys-inline-actions{flex-wrap:wrap;gap:8px;margin:10px 0 20px;display:flex}.sys-detail__title--danger{color:var(--sys-red);margin-top:8px}.ad-stats{background:var(--surface);border:1px solid var(--sys-line);border-radius:6px;grid-template-columns:repeat(5,minmax(0,1fr));margin:0 0 20px;display:grid}.ad-stats>div{border-left:1px solid var(--sys-line);padding:12px 16px}.ad-stats>div:first-child{border-left:0}.ad-stats dt{color:var(--sys-ink-2);font-size:12px}.ad-stats dd{font-variant-numeric:tabular-nums;margin:2px 0 0;font-size:22px;font-weight:600}.ad-stats dd span{color:var(--sys-ink-3);font-size:13px;font-weight:400}.ad-console .sys-tabs{margin-bottom:0}.ad-setup{margin:0 0 20px}.ad-setup__list{margin:0;padding:0;list-style:none}.ad-setup__list li{border-top:1px solid var(--line-soft);align-items:center;gap:12px;padding:10px 12px;display:flex}.ad-setup__list li:first-child{border-top:0}.ad-setup__mark{border:1px solid var(--sys-line-strong);width:18px;height:18px;color:var(--on-accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:11px;display:inline-flex}.ad-setup__list li.is-done .ad-setup__mark{background:var(--ok);border-color:var(--ok)}.ad-setup__list li.is-done .ad-setup__label{color:var(--sys-ink-3);text-decoration:line-through}.ad-setup__label{flex:1}.scanst{padding:20px}.sys-banner--warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.scanst-wait{justify-content:space-between;align-items:center;gap:12px;margin-bottom:0;display:flex}.scanst__result{border:1px solid var(--sys-line);background:var(--surface-2);border-left-width:4px;border-radius:4px;align-items:center;gap:14px;min-height:92px;padding:18px 16px;display:flex}.scanst__result--ok{border-left-color:var(--ok);background:var(--ok-bg)}.scanst__result--info{border-left-color:var(--warn-strong);background:var(--warn-bg)}.scanst__result--error{border-left-color:var(--sys-red);background:var(--danger-bg)}.scanst__mark{color:#fff;background:#1a7f37;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;font-size:24px;font-weight:700;display:grid}.scanst__result--info .scanst__mark{background:#9a6700}.scanst__result--error .scanst__mark{background:var(--sys-red)}.scanst__name{overflow-wrap:anywhere;font-size:24px;font-weight:600;line-height:1.2}.scanst__text{color:var(--sys-ink-2)}.camscan{z-index:60;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camscan__frame{flex:1;position:relative;overflow:hidden}.camscan__video{object-fit:cover;width:100%;height:100%}.camscan__video--mirror{transform:scaleX(-1)}.camscan__top{padding:calc(12px + env(safe-area-inset-top)) 16px 12px;color:#fff;background:#1f2328;justify-content:space-between;align-items:center;gap:12px;display:flex}.camscan__title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.camscan__tools{flex:none;align-items:center;gap:8px;display:flex}.camscan__torch{color:#fff;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff59;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:600}.camscan__torch[aria-pressed=true]{color:#1f2328;background:#fff}.camscan__progress{font-variant-numeric:tabular-nums;background:#ffffff24;border-radius:999px;flex:none;padding:4px 10px;font-size:13px;font-weight:600}.camscan__target{border:3px solid #ffffffe6;border-radius:12px;width:min(78vw,340px);height:min(50vw,210px);transition:border-color .12s;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #00000059}.camscan__target--ok{border-color:#3fb950}.camscan__target--info{border-color:#e3b341}.camscan__target--error{border-color:#f85149}.camscan__live{justify-content:center;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.camscan__ready{color:#fff;background:#0009;border-radius:999px;padding:8px 14px;font-size:14px}.camscan__result{color:#fff;background:#1a7f37;border-radius:12px;align-items:center;gap:14px;width:100%;max-width:560px;padding:16px;animation:.14s ease-out camscan-in;display:flex}.camscan__result--info{background:#9a6700}.camscan__result--error{background:var(--sys-red)}.camscan__mark{color:#1a7f37;background:#fff;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;font-size:30px;font-weight:700;display:grid}.camscan__result--info .camscan__mark{color:#9a6700}.camscan__result--error .camscan__mark{color:var(--sys-red)}.camscan__words{min-width:0}.camscan__name{overflow-wrap:anywhere;font-size:24px;font-weight:700;line-height:1.2}.camscan__text{margin-top:2px;font-size:15px}@keyframes camscan-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.camscan__result{animation:none}}.camscan__msg{text-align:center;color:#fff;margin:0;position:absolute;top:40%;left:16px;right:16px}.camscan__msg--error{color:#ffd2d2}.camscan__bar{padding:12px 16px calc(12px + env(safe-area-inset-bottom));color:#e6e8eb;background:#1f2328;justify-content:space-between;align-items:center;gap:12px;font-size:14px;display:flex}.idsheet{background:var(--sys-bg,#f6f7f9);min-height:100%;font-family:var(--font);color:#1f2328}.idsheet__bar{background:#fff;border-bottom:1px solid #e3e5e8;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.idsheet__title{margin:0;font-size:18px;font-weight:600}.idsheet__sub{color:#59636e;max-width:640px;margin:4px 0 0;font-size:13px}.idsheet__actions{flex:none;gap:8px;display:flex}.idsheet__cards{flex-wrap:wrap;gap:6mm;padding:20px;display:flex}.idcard{box-sizing:border-box;background:var(--surface);border:.3mm dashed var(--line-strong);break-inside:avoid;border-radius:3mm;flex-direction:column;width:85.6mm;height:54mm;padding:3mm 3.5mm;display:flex;overflow:hidden}.idcard__head{border-bottom:.4mm solid var(--ink);justify-content:space-between;align-items:baseline;gap:2mm;padding-bottom:1.5mm;display:flex}.idcard__school{text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:3.1mm;font-weight:700;overflow:hidden}.idcard__kind{color:var(--ink-soft);white-space:nowrap;font-size:2.4mm}.idcard__body{flex:1;align-items:center;gap:2.5mm;min-height:0;display:flex}.idcard__who{flex:1;min-width:0}.idcard__name{font-size:4mm;font-weight:700;line-height:1.15}.idcard__facts{margin:1.5mm 0 0;font-size:2.7mm}.idcard__facts div{gap:1.5mm;display:flex}.idcard__facts dt{color:var(--ink-soft);min-width:13mm}.idcard__facts dd{margin:0;font-weight:600}.idcard__qr{flex:none;width:18mm;height:18mm}.idcard__foot{flex-direction:column;align-items:center;display:flex}.idcard__foot--none{color:var(--danger-ink);padding:2mm 0;font-size:2.6mm}.idcard__barcode{width:62mm;height:8mm}.idcard__number{letter-spacing:.3mm;margin-top:.5mm;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:2.6mm}@media print{@page{size:A4;margin:10mm}body{background:var(--surface)!important}.no-print{display:none!important}.idsheet{background:#fff}.idsheet__cards{gap:4mm;padding:0}.idcard{border-color:var(--line-strong)}}@media (width<=760px){.ad-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.ad-stats>div{border-left:0;border-top:1px solid var(--sys-line)}.ad-stats>div:first-child,.ad-stats>div:nth-child(2){border-top:0}.ad-console .sys-pagehead,.sys-toolbar{flex-direction:column;align-items:stretch}.sys-toolbar__left .sys-select{width:100%}.sys-num{text-align:left}.idsheet__bar{flex-direction:column}}@media (width>=900px){.ad-scan-link{display:none}}.classlist{margin:0;padding:0;list-style:none}.classlist__item{border-top:1px solid var(--line-soft);align-items:center;display:flex}.classlist__item:first-child{border-top:0}.classlist__row{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:12px;min-width:0;padding:10px 14px;display:flex}.classlist__row:hover{background:var(--canvas)}.classlist__text{flex-direction:column;min-width:0;display:flex}.classlist__name{font-weight:600}.classlist__sub{color:var(--ink-muted);font-size:13px}.classlist__call{width:40px;height:40px;color:var(--ink-soft);border-radius:50%;justify-content:center;align-items:center;margin-right:8px;display:inline-flex}.classlist__call:hover{background:var(--canvas-in)}@media (width<=760px){.sys-table td.sys-num[data-label]:before{content:attr(data-label) ": ";color:var(--sys-ink-3)}}body{font-family:var(--font);background-color:var(--canvas);background-image:var(--backdrop);transition:background-color .25s var(--ease), color .25s var(--ease);background-attachment:fixed}::selection{background:var(--accent-line);color:var(--ink)}.shell,.app,.sys,.pub,.sa,.ap,.auth{background:0 0}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}.screen-title,.page-head__title,.sys-pagehead__title,.pub-title,.sa-hero__title,.panel__title,.side-nav__brand{font-family:var(--font-display);letter-spacing:-.02em}.page-head__title,.sys-pagehead__title{font-weight:650}.kpi__value,.stat-strip__value,.ad-total__value,.stat-card__value,.sa-stat__value,.risk-score__value,.reg-table__num,.reg-rate__value,.chip__count,.nav-count,.sys-tab__count,.sys-num,.mono,.sys-mono,.join-code{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.kpi__value{font-size:28px;font-weight:600}.kpi__label,.stat-strip__label,.ad-total__label,.side-nav__section,.table th,.sys-table th,.reg-table th{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);font-size:11px;font-weight:600}.ad-total--hero .ad-total__label{color:#fffc}.panel,.kpi,.card,.sa-card,.sa-stat,.ad-tile,.ad-total,.stat-card,.pub-card,.ap-card,.alert-card,.ad-person,.savebar,.sys-drawer,.sa-dialog,.sheet,.classlist__item{background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow)}.panel,.kpi,.card,.sa-card,.ad-tile,.ad-total,.stat-card,.pub-card,.ap-card{border-radius:var(--radius)}.sheet,.sys-drawer,.sa-dialog,.savebar{background:var(--glass-strong)}.sheet,.sys-drawer,.sa-dialog{box-shadow:var(--shadow-lg)}.sheet .card,.sheet .panel{box-shadow:none;background:0 0;border:0}.sheet,.sys-drawer,.sa-dialog,.savebar{-webkit-backdrop-filter:blur(16px)saturate(150%);backdrop-filter:blur(16px)saturate(150%)}.pub-card{padding:32px 30px 26px}.panel,.kpi,.pub-card,.ad-tile,.sa-card{position:relative}.panel:after,.kpi:after,.pub-card:after{content:"";background:linear-gradient(90deg, transparent, var(--accent-line), transparent);pointer-events:none;height:1px;position:absolute;inset:0 0 auto}.kpi,.ad-tile,.sa-card,.row--link,.classlist__item{transition:transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease)}.kpi:hover,.ad-tile:hover,.sa-card:hover{border-color:var(--accent-line);box-shadow:var(--glow)}.ad-tile:hover,.sa-card:hover{transform:translateY(-2px)}.kpi{padding:16px 18px 16px 20px;overflow:hidden}.kpi:before{content:"";background:linear-gradient(var(--accent), var(--accent-2));width:3px;box-shadow:0 0 12px var(--accent);border-radius:0 3px 3px 0;position:absolute;top:14px;bottom:14px;left:0}.kpi--danger:before{background:var(--danger);box-shadow:0 0 12px var(--danger)}.kpi--warn:before{background:var(--warn);box-shadow:0 0 12px var(--warn)}.topbar,.sys-top,.bottom-nav,.side-nav{background:var(--glass);-webkit-backdrop-filter:blur(18px)saturate(160%);backdrop-filter:blur(18px)saturate(160%)}.topbar{border-bottom:1px solid var(--line)}.side-nav{border-right:1px solid var(--line)}.bottom-nav{border-top:1px solid var(--line)}.sys-top{color:var(--ink);border-bottom:1px solid var(--line);height:54px}.sys-top__brand{color:var(--ink);font-family:var(--font-display);letter-spacing:-.01em;align-items:center;display:inline-flex}.sys-top__brand:before,.pub-brand:before{content:"";background:linear-gradient(135deg, var(--accent), var(--accent-2));width:20px;height:20px;box-shadow:0 0 16px -2px var(--accent);border-radius:6px;flex:none;margin-right:10px}.sys-top__product{color:var(--ink-muted);border-left-color:var(--line-strong)}.sys-top__user{color:var(--ink-soft)}.sys-top__offline{color:var(--warn-ink)}.sys-top__signout{color:var(--ink-soft);border-color:var(--line-strong);border-radius:var(--radius-sm)}.sys-top__signout:hover{background:var(--surface-3);color:var(--ink)}.side-nav__logo,.topbar__logo{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:var(--on-accent);box-shadow:0 0 18px -2px var(--accent);place-items:center;display:inline-grid}.side-nav__brand{font-size:16px;font-weight:700}@media (width>=900px){.topbar__logo{display:none}}.side-nav__class{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--line)}.side-nav__item{border-radius:var(--radius-sm);color:var(--ink-soft);transition:background-color .15s var(--ease), color .15s var(--ease);font-weight:500;position:relative}.side-nav__item:hover{background:var(--surface-3);color:var(--ink)}.side-nav__item[aria-current=page]{background:linear-gradient(90deg, var(--accent-bg), transparent);color:var(--ink);box-shadow:inset 2px 0 0 var(--accent), -8px 0 16px -10px var(--accent);font-weight:600}.side-nav__item[aria-current=page] svg{color:var(--accent-ink)}.side-nav__user{border:0;border-top:1px solid var(--line);background:0 0;border-radius:0}.bottom-nav__item[aria-current=page]{color:var(--accent-ink)}.bottom-nav__item[aria-current=page] .bottom-nav__pill{background:var(--accent-bg);box-shadow:0 0 14px -4px var(--accent)}.sys-tab[aria-selected=true],.sys-tab[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}@keyframes fx-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--ok) 55%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.status-chip{border:1px solid var(--line);background:var(--surface-2);border-radius:var(--radius-pill)}.btn,.sys-btn,.pub-btn,.sa-btn{border-radius:var(--radius-sm);transition:transform .12s var(--ease), box-shadow .18s var(--ease), background-color .18s var(--ease), border-color .18s var(--ease);font-weight:600}.btn:not(.btn--secondary):not(.btn--ghost):not(.btn--outline):not(.btn--danger),.sys-btn--primary,.pub-btn--primary,.sa-btn--primary{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 70%, var(--accent-2)));color:var(--on-accent);box-shadow:0 1px 0 #ffffff2e inset, 0 6px 18px -8px var(--accent);border-color:#0000}.btn:active:not(:disabled),.sys-btn:active:not(:disabled),.pub-btn:active:not(:disabled),.sa-btn:active:not(:disabled){transform:translateY(1px)scale(.99)}.btn--secondary,.btn--outline,.sys-btn--secondary,.pub-btn--secondary,.pub-btn--google,.sa-btn--ghost{background:var(--surface-2);border-color:var(--line-strong);color:var(--ink)}.btn--secondary:hover:not(:disabled),.btn--outline:hover:not(:disabled),.sys-btn--secondary:hover:not(:disabled),.pub-btn--secondary:hover:not(:disabled),.pub-btn--google:hover:not(:disabled),.sa-btn--ghost:hover:not(:disabled){border-color:var(--accent-line);background:var(--accent-bg)}.btn--danger,.sys-btn--danger{box-shadow:0 6px 18px -10px var(--danger)}.field__input,.pub-input,.sys-input,.sys-select,.sa-field__input,.search input,.date-input,.reason-select,select,textarea{background-color:var(--surface-2);border-color:var(--line-strong);color:var(--ink);transition:border-color .15s var(--ease), box-shadow .15s var(--ease), background-color .15s var(--ease)}.field__input:focus,.pub-input:focus,.sys-input:focus,.sys-select:focus,.sa-field__input:focus,.search input:focus,.date-input:focus,.reason-select:focus,select:focus,textarea:focus{border-color:var(--accent);background-color:var(--surface);box-shadow:0 0 0 3px var(--accent-bg), 0 0 18px -6px var(--accent);outline:none}input::placeholder,textarea::placeholder{color:var(--ink-faint)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.chip{border-radius:var(--radius-pill);background:var(--surface-2);border-color:var(--line);color:var(--ink-soft);transition:border-color .15s var(--ease), color .15s var(--ease), background-color .15s var(--ease)}.chip:hover{border-color:var(--accent-line);color:var(--ink)}.chip[aria-selected=true]{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-ink);box-shadow:0 0 14px -6px var(--accent)}.chip[aria-selected=true] .chip__count{background:var(--surface);color:var(--accent-ink)}.badge,.sys-status,.ad-status,.ad-chip,.sa-badge,.ap-badge{border-radius:var(--radius-pill);font-weight:600}.notice,.sys-banner,.pub-alert--error,.pub-alert--warn,.pub-alert--info,.callout{border-radius:var(--radius-sm)}.table th,.sys-table th,.reg-table th{background:var(--surface-2)}.table td,.sys-table td{border-color:var(--line-soft)}.table tbody tr,.sys-table tbody tr{transition:background-color .12s var(--ease)}.table tbody tr:hover,.sys-table tbody tr:hover{background:var(--accent-bg)}.meter__fill,.reg-rate__fill,.progress__fill{background:linear-gradient(90deg, var(--accent), var(--accent-2));box-shadow:0 0 10px -2px var(--accent)}.meter__fill--red{background:var(--danger);box-shadow:0 0 10px -2px var(--danger)}.meter__fill--amber{background:var(--warn);box-shadow:0 0 10px -2px var(--warn)}.ratechart__bar{background:linear-gradient(180deg, var(--accent-2), var(--accent));box-shadow:0 0 12px -4px var(--accent)}.ratechart__bar--low{background:linear-gradient(180deg, var(--danger-strong), var(--danger));box-shadow:0 0 12px -4px var(--danger)}.ad-total--hero{background:linear-gradient(135deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--accent-2)));box-shadow:0 12px 40px -14px var(--accent);border:none}.pub-main{padding-top:56px}.pub-brand{font-family:var(--font-display);align-items:center;display:inline-flex}.pub-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.auth__aside{background:linear-gradient(160deg,#2c2d32,#232428 70%)}.toast{background:var(--glass-strong);color:var(--ink);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow-lg)}.toast svg{color:var(--ok)}.toast--error svg{color:var(--danger)}.sheet-backdrop,.sa-dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.theme-toggle{background:var(--surface-3);border:1px solid var(--line);border-radius:var(--radius-pill);gap:2px;padding:3px;display:inline-flex}.theme-toggle__btn{border-radius:var(--radius-pill);min-width:30px;height:28px;color:var(--ink-muted);cursor:pointer;transition:background-color .15s var(--ease), color .15s var(--ease), box-shadow .15s var(--ease);background:0 0;border:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12.5px;font-weight:600;display:inline-flex}.theme-toggle__btn:hover{color:var(--ink)}.theme-toggle__btn[aria-pressed=true]{background:var(--surface);color:var(--accent-ink);box-shadow:var(--shadow), 0 0 12px -6px var(--accent)}.theme-toggle--compact .theme-toggle__btn{width:28px;padding:0}.theme-toggle--compact .theme-toggle__label{display:none}.sys-top .theme-toggle,.topbar .theme-toggle{margin-right:4px}@media (width<=520px){.topbar .theme-toggle{display:none}}@keyframes fx-fade{0%{opacity:0}to{opacity:1}}@keyframes fx-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.app__scroll>*,.sys-main>*{animation:fx-fade .35s var(--ease) both}.pub-card{animation:fx-rise .4s var(--ease) both}.app__scroll>:nth-child(2),.sys-main>:nth-child(2){animation-delay:40ms}.app__scroll>:nth-child(3),.sys-main>:nth-child(3){animation-delay:80ms}.app__scroll>:nth-child(n+4),.sys-main>:nth-child(n+4){animation-delay:.12s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{body{background:#fff!important}.panel,.card,.kpi{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}}.kpi--button{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}.kpi--button[aria-pressed=true]{border-color:var(--accent);box-shadow:var(--glow)}.kpi--button[aria-pressed=true] .kpi__label{color:var(--accent-ink)}.risk-toggle,.why-toggle{border-radius:var(--radius-sm);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;align-items:center;gap:8px;margin:-6px -8px;padding:6px 8px;display:inline-flex}.risk-toggle:hover,.why-toggle:hover,.risk-toggle[aria-expanded=true]{background:var(--surface);border-color:var(--accent-line)}.why-toggle{line-height:1.45;display:inline}.why-toggle__more{color:var(--accent-ink);white-space:nowrap;font-weight:600}.risk-toggle__chev{color:var(--ink-muted);transition:transform .2s var(--ease);flex:none}[aria-expanded=true]>.risk-toggle__chev,[aria-expanded=true] .risk-toggle__chev{color:var(--accent-ink);transform:rotate(180deg)}.row--link.is-open{background:var(--accent-bg)}.row--link.is-open td{border-bottom-color:#0000}.risk-detail td{background:var(--accent-bg);padding:4px 18px 18px}.risk-detail:hover,.table tbody tr.risk-detail:hover{background:0 0}.risk-detail .risk-breakdown{animation:fx-fade .25s var(--ease) both}.risk-detail__actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.risk-detail__actions .btn{width:auto;padding:0 14px}.risk-breakdown .panel__subtitle{margin:14px 0 8px}.risk-breakdown .panel__subtitle:first-child{margin-top:6px}.signal-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:0;display:grid}.signal{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);flex-direction:column;gap:3px;padding:9px 12px;display:flex}.signal dt{color:var(--ink-muted);font-size:12px}.signal dd{font-family:var(--font-mono);font-variant-numeric:tabular-nums;margin:0;font-size:16px;font-weight:600}.signal--low{border-color:var(--danger-line)}.signal--low dd{color:var(--danger-ink)}.signal--mid{border-color:var(--warn-line)}.signal--mid dd{color:var(--warn-ink)}.risk-scale{border-radius:999px;height:8px;margin:4px 0 10px;display:flex;position:relative;overflow:visible}.risk-scale__band{height:100%}.risk-scale__band--green{background:var(--ok);opacity:.55;border-radius:999px 0 0 999px}.risk-scale__band--amber{background:var(--warn);opacity:.7}.risk-scale__band--red{background:var(--danger);opacity:.75;border-radius:0 999px 999px 0;flex:1}.risk-scale__marker{background:var(--ink);width:4px;height:16px;box-shadow:0 0 0 2px var(--surface), 0 0 10px var(--accent);border-radius:2px;margin-left:-2px;position:absolute;top:-4px}.risk-breakdown__note{color:var(--ink-soft);margin:0 0 6px;font-size:13px;line-height:1.5}.risk-breakdown__note--raised{color:var(--danger-ink);font-weight:500}.risk-score--button{border-radius:var(--radius-sm);width:calc(100% + 20px);font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color .15s var(--ease), border-color .15s var(--ease);background:0 0;border:1px solid #0000;flex-wrap:wrap;margin:8px -10px 0;padding:8px 10px}.risk-score--button:hover,.risk-score--button[aria-expanded=true]{background:var(--accent-bg);border-color:var(--accent-line)}.risk-score__more{color:var(--accent-ink);flex-basis:100%;align-items:center;gap:4px;font-size:12.5px;font-weight:600;display:inline-flex}.meter__fill--green{background:var(--ok);box-shadow:0 0 10px -2px var(--ok)}#risk-breakdown .signal-list{grid-template-columns:1fr 1fr}.att-cal__grid td{padding:0}.att-cal__cell{border-radius:inherit;width:100%;height:100%;min-height:52px;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color .15s var(--ease), box-shadow .15s var(--ease);background:0 0;border:0;padding:6px;display:block}.att-cal__cell:hover{background:var(--accent-bg)}.att-cal__cell[aria-pressed=true]{background:var(--accent-bg);box-shadow:inset 0 0 0 2px var(--accent), 0 0 14px -6px var(--accent)}.att-cal__hint{color:var(--ink-muted);margin:10px 0 0;font-size:12.5px}.att-cal__detail{border:1px solid var(--accent-line);border-radius:var(--radius-sm);background:var(--surface-2);animation:fx-fade .2s var(--ease) both;margin-top:12px;padding:14px 16px}.att-cal__detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.att-cal__detail-date{margin:0 0 6px;font-weight:600}.att-cal__detail-head .reg-code{width:auto;padding:0 8px}.att-cal__detail-none{color:var(--ink-muted);font-size:13px}.att-cal__facts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px 16px;margin:12px 0;display:grid}.att-cal__facts dt{color:var(--ink-muted);font-size:12px}.att-cal__facts dd{margin:2px 0 0;font-size:13.5px}.att-cal__detail>.btn{width:auto;padding:0 14px}@media (width<=640px){.risk-detail td{padding:4px 14px 16px;display:block}.risk-detail td:before{content:none!important}#risk-breakdown .signal-list,.signal-list{grid-template-columns:1fr 1fr}.att-cal__cell{min-height:46px;padding:4px}}.modal-backdrop{z-index:70;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fx-fade .18s var(--ease) both;background:#0408128c;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);width:100%;max-width:860px;max-height:min(88vh,900px);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-lg), 0 0 0 1px var(--accent-line);animation:modal-in .22s var(--ease) both;border-radius:18px;outline:none;flex-direction:column;display:flex}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.modal__head{border-bottom:1px solid var(--line);background:linear-gradient(180deg, var(--accent-bg), transparent);border-radius:18px 18px 0 0;align-items:center;gap:16px;padding:18px 20px;display:flex}.modal__titles{flex:1;min-width:0}.modal__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:11px;font-weight:600}.modal__title{font-family:var(--font-display);letter-spacing:-.02em;margin:2px 0 0;font-size:21px}.modal__sub{color:var(--ink-muted);margin:2px 0 0;font-size:13px}.modal__score{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;flex-direction:column;align-items:flex-end;padding:6px 12px;display:flex}.modal__score-value{font-family:var(--font-mono);font-size:26px;font-weight:600;line-height:1.1}.modal__score-label{font-size:12px;font-weight:600}.modal__score--red{border-color:var(--danger-line)}.modal__score--red .modal__score-value,.modal__score--red .modal__score-label{color:var(--danger-ink)}.modal__score--amber{border-color:var(--warn-line)}.modal__score--amber .modal__score-value,.modal__score--amber .modal__score-label{color:var(--warn-ink)}.modal__score--green .modal__score-label{color:var(--ok-ink)}.modal__close{border:1px solid var(--line);background:var(--surface-2);width:36px;height:36px;color:var(--ink-soft);cursor:pointer;border-radius:10px;flex:none;font-size:22px;line-height:1}.modal__close:hover{color:var(--ink);border-color:var(--accent-line)}.modal__body{flex:1;padding:4px 20px 16px;overflow-y:auto}.modal__foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:14px 20px;display:flex}.modal__foot .btn{width:auto;padding:0 16px}.risk-breakdown{max-width:none}.risk-breakdown__section{padding-top:6px}.risk-breakdown__section+.risk-breakdown__section{border-top:1px solid var(--line-soft);margin-top:12px}.signal-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding:0;list-style:none}.signal{border-left-width:3px;gap:4px;padding:12px 14px}.signal__top{justify-content:space-between;align-items:center;gap:8px;display:flex}.signal__title{color:var(--ink-muted);font-size:12.5px;font-weight:600}.signal__tag{background:var(--surface-3);color:var(--ink-soft);border-radius:999px;flex:none;padding:1px 8px;font-size:11px;font-weight:700}.signal__value{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);font-size:19px;font-weight:700}.signal__detail{color:var(--ink-soft);margin:0;font-size:13px;line-height:1.45}.signal--good{border-left-color:var(--ok)}.signal--good .signal__tag{background:var(--ok-bg);color:var(--ok-ink)}.signal--fair{border-color:var(--line);border-left-color:var(--warn)}.signal--fair .signal__tag{background:var(--warn-bg);color:var(--warn-ink)}.signal--low{border-color:var(--line);border-left-color:var(--danger)}.signal--low .signal__tag{background:var(--danger-bg);color:var(--danger-ink)}.signal--low .signal__value,.signal--fair .signal__value,.signal--mid .signal__value{color:var(--ink)}.risk-scale__legend{color:var(--ink-soft);flex-wrap:wrap;gap:6px 18px;margin:0 0 10px;padding:0;font-size:12px;list-style:none;display:flex}.risk-scale__legend li{align-items:center;gap:6px;display:inline-flex}.risk-scale__key{border-radius:3px;width:10px;height:10px}.risk-scale__key--green{background:var(--ok)}.risk-scale__key--amber{background:var(--warn)}.risk-scale__key--red{background:var(--danger)}.signal-list+.risk-breakdown__note{margin-top:10px}.risk-score__more{gap:6px}@media (width<=640px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:18px 18px 0 0;max-height:92vh}.modal__head{border-radius:18px 18px 0 0;flex-wrap:wrap;padding:16px}.modal__titles{flex-basis:calc(100% - 52px)}.modal__close{order:2}.modal__score{flex-direction:row;order:3;align-items:baseline;gap:8px}.modal__body{padding:4px 16px 12px}.signal-list{grid-template-columns:1fr}.modal__foot{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}.modal__foot .btn{flex:1}}.kpi--link{position:relative}.kpi__go{color:var(--accent-ink);opacity:.75;transition:opacity .15s var(--ease), gap .15s var(--ease);align-items:center;gap:4px;margin-top:4px;font-size:12px;font-weight:600;display:inline-flex}.kpi--link:hover .kpi__go,.kpi--link:focus-visible .kpi__go{opacity:1;gap:7px}.kpi--link:hover{transform:translateY(-2px)}.ratechart__col{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:6px 6px 0 0;padding:0}.ratechart__col:hover,.ratechart__col:focus-visible{background:var(--accent-bg)}.ratechart__col:hover .ratechart__bar{filter:brightness(1.12)}.ratechart__tip-hint{opacity:.8;margin-top:4px;font-size:11px;display:block}.table .risk-toggle{margin:-6px -8px}.pub--split{flex-direction:row;min-height:100vh}.pub-side{flex-direction:column;flex:1;min-width:0;display:flex}.pub--split .pub-hero{display:none}.pub-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);margin:0 0 6px;font-size:12px;font-weight:700}.pub--split .pub-title{margin-bottom:6px;font-size:28px}.pub--split .pub-card__foot p{margin:0}.pub--split .pub-card__foot p+p{margin-top:6px}@media (width>=960px){.pub--split .pub-hero{color:#b5b7bd;background:#2a2b30;flex-direction:column;flex:0 0 40%;max-width:520px;min-height:100vh;padding:28px 40px;display:flex}.pub-hero__brand{font-family:var(--font-display);letter-spacing:-.01em;color:#fff;align-items:center;gap:12px;font-size:17px;font-weight:700;display:flex}.pub-hero__logo{border-radius:8px;place-items:center;width:32px;height:32px;display:grid}.pub-hero__body{flex-direction:column;flex:1;justify-content:center;padding:32px 0;display:flex}.pub-hero__eyebrow{letter-spacing:.1em;text-transform:uppercase;color:#9cb9ea;margin:0 0 12px;font-size:12px;font-weight:700}.pub-hero__title{max-width:420px;font-family:var(--font-display);letter-spacing:-.025em;color:#fff;margin:0;font-size:32px;line-height:1.15}.pub-hero__lead{color:#b5b7bd;max-width:400px;margin:14px 0 0;font-size:15px;line-height:1.55}.pub-hero__points{background:#ffffff0a;border:1px solid #ffffff29;border-radius:12px;max-width:420px;margin:32px 0 0;padding:0;list-style:none}.pub-hero__points li{align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.pub-hero__points li+li{border-top:1px solid #ffffff1f}.pub-hero__icon{color:#9cb9ea;background:#4a7fd633;border-radius:9px;flex:none;place-items:center;width:36px;height:36px;display:grid}.pub-hero__point{color:#b5b7bd;flex-direction:column;gap:2px;font-size:13.5px;line-height:1.45;display:flex}.pub-hero__point b{color:#fff;font-size:14.5px;font-weight:600}.pub-hero__foot{color:#8b8e96;margin:0;font-size:12.5px}.pub--split .pub-side{background:var(--surface)}.pub--split .pub-top{justify-content:flex-end;padding:28px 40px 0}.pub--split .pub-top .pub-brand{display:none}.pub--split .pub-main{align-items:center;padding:24px 40px}.pub--split .pub-card{max-width:400px;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;animation:fx-rise .4s var(--ease) both;background:0 0;border:0;padding:0}.pub--split .pub-card:after{content:none}.pub--split .pub-card__foot{text-align:left;border-top:1px solid var(--line);background:0 0;border-radius:0;margin:28px 0 0;padding:18px 0 0}.pub--split .pub-foot{text-align:left;padding:0 40px 28px}.pub--split .pub-input{height:46px}.pub--split .pub-btn--primary{height:46px;font-size:15px}}.modal{max-width:560px}.modal__level{background:var(--surface-3);color:var(--ink-soft);border-radius:999px;flex:none;padding:4px 12px;font-size:13px;font-weight:700}.modal__level--red{background:var(--danger-bg);color:var(--danger-ink)}.modal__level--amber{background:var(--warn-bg);color:var(--warn-ink)}.modal__level--green{background:var(--ok-bg);color:var(--ok-ink)}.risk-note{flex-direction:column;gap:18px;padding:14px 0 6px;display:flex}.risk-note__summary{border-radius:var(--radius-sm);background:var(--surface-2);border-left:3px solid var(--line-strong);margin:0;padding:12px 14px;font-size:15px;font-weight:600;line-height:1.45}.risk-note__summary--red{border-left-color:var(--danger)}.risk-note__summary--amber{border-left-color:var(--warn)}.risk-note__summary--green{border-left-color:var(--ok)}.risk-note__heading{color:var(--ink);margin:0 0 8px;font-size:13px;font-weight:700}.risk-note__list{color:var(--ink-soft);gap:6px;margin:0;padding-left:18px;font-size:14px;line-height:1.45;display:grid}.risk-note__list--steps{list-style:decimal}.risk-note__facts{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.risk-note__facts>div{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px 12px}.risk-note__facts dt{color:var(--ink-muted);font-size:12px}.risk-note__facts dd{color:var(--ink);margin:3px 0 0;font-size:14.5px;font-weight:700}@media (width<=640px){.risk-note__facts{grid-template-columns:1fr}.modal__level{order:3}}:root,[data-theme=light],[data-theme=dark]{--glow:0 0 0 1px var(--accent-line);--backdrop:none}[data-theme=dark]{--grid-line:#ffffff06;--shadow:0 1px 2px #00000040}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--backdrop:none;--glow:0 0 0 1px var(--accent-line);--grid-line:#ffffff06;--shadow:0 1px 2px #00000040}}.kpi:before,.kpi--danger:before,.kpi--warn:before,.side-nav__logo,.topbar__logo,.sys-top__brand:before,.pub-brand:before,.side-nav__item[aria-current=page],.bottom-nav__item[aria-current=page] .bottom-nav__pill,.chip[aria-selected=true],.meter__fill,.meter__fill--red,.meter__fill--amber,.meter__fill--green,.reg-rate__fill,.progress__fill,.ratechart__bar,.ratechart__bar--low,.ad-total--hero,.theme-toggle__btn[aria-pressed=true],.kpi--button[aria-pressed=true],.att-cal__cell[aria-pressed=true],.btn--danger,.sys-btn--danger,.modal,.pub-hero__logo{box-shadow:none}.side-nav__item[aria-current=page]{background:var(--accent-bg);box-shadow:inset 2px 0 0 var(--accent)}.kpi:before{background:var(--accent)}.kpi--danger:before{background:var(--danger)}.kpi--warn:before{background:var(--warn)}.panel:after,.kpi:after,.pub-card:after{content:none}.kpi:hover,.ad-tile:hover,.sa-card:hover{box-shadow:none;border-color:var(--line-strong)}.kpi--button[aria-pressed=true]{border-color:var(--accent)}.att-cal__cell[aria-pressed=true]{box-shadow:inset 0 0 0 2px var(--accent)}.theme-toggle__btn[aria-pressed=true]{box-shadow:0 1px 2px #0000001f}.btn:not(.btn--secondary):not(.btn--ghost):not(.btn--outline):not(.btn--danger),.sys-btn--primary,.pub-btn--primary,.sa-btn--primary{background:var(--accent);box-shadow:none}.btn:not(.btn--secondary):not(.btn--ghost):not(.btn--outline):not(.btn--danger):hover:not(:disabled),.sys-btn--primary:hover:not(:disabled),.pub-btn--primary:hover:not(:disabled),.sa-btn--primary:hover:not(:disabled){background:var(--accent-strong);box-shadow:none}.meter__fill,.reg-rate__fill,.progress__fill{background:var(--accent)}.meter__fill--red{background:var(--danger)}.meter__fill--amber{background:var(--warn)}.meter__fill--green{background:var(--ok)}.ratechart__bar{background:var(--accent)}.ratechart__bar--low{background:var(--danger)}.ad-total--hero,.side-nav__logo,.topbar__logo,.sys-top__brand:before,.pub-brand:before{background:var(--accent)}.field__input:focus,.pub-input:focus,.sys-input:focus,.sys-select:focus,.sa-field__input:focus,.search input:focus,.date-input:focus,.reason-select:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px var(--accent-bg)}.dot--present,.status-dot--online{animation:none}.risk-card{cursor:pointer;transition:border-color .15s var(--ease), background-color .15s var(--ease)}.risk-card:hover{border-color:var(--accent-line);background:var(--surface-2)}.risk-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.risk-card__more{color:var(--accent-ink);align-items:center;gap:6px;margin-top:14px;font-size:13px;font-weight:600;display:inline-flex}.modal__head{background:0 0}.risk-card{transition:transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease)}.risk-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);transform:scale(1.02)}.risk-card:active{transform:scale(1.01)}@media (width>=960px){.pub--split .pub-card{max-width:360px}.pub--split .pub-title{font-size:24px}.pub--split .pub-sub{font-size:14px}.pub--split .pub-input,.pub--split .pub-btn--primary{height:40px;font-size:14px}.pub--split .pub-top{padding:20px 32px 0}.pub--split .pub-foot{padding:0 32px 20px}}.mcal__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.mcal__nav{align-items:center;gap:8px;display:flex}.mcal__month{text-align:center;min-width:130px;font-size:15px;font-weight:700}.mcal__today{font-size:13px}.mcal__grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.mcal__dow{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.06em;padding:0 2px 2px;font-size:12px;font-weight:700}.mcal__day{border:1px solid var(--line);background:var(--surface);min-width:0;min-height:74px;color:var(--ink);font:inherit;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;display:flex}button.mcal__day{cursor:pointer;transition:border-color .15s var(--ease), transform .15s var(--ease)}button.mcal__day:hover{border-color:var(--accent);transform:translateY(-1px)}.mcal__day--empty{background:0 0;border:0;min-height:0}.mcal__date{color:var(--ink-soft);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.mcal__today-tag{background:var(--accent);color:var(--on-accent);border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:700}.mcal__text{font-size:13.5px;font-weight:700;line-height:1.25}.mcal__sub{color:var(--ink-muted);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:11.5px;line-height:1.3;display:-webkit-box;overflow:hidden}.mcal__day.is-today{border-color:var(--accent)}.mcal__day.is-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.mcal__day--present,.mcal__day--good{background:var(--ok-bg);border-color:var(--ok-line)}.mcal__day--present .mcal__text,.mcal__day--good .mcal__text{color:var(--ok-ink)}.mcal__day--fair{background:var(--warn-bg);border-color:var(--warn-line)}.mcal__day--fair .mcal__text{color:var(--warn-ink)}.mcal__day--absent,.mcal__day--low{background:var(--danger-bg);border-color:var(--danger-line)}.mcal__day--absent .mcal__text,.mcal__day--low .mcal__text{color:var(--danger-ink)}.mcal__day--none .mcal__text{color:var(--ink-muted);font-weight:600}.mcal__day--holiday{background:color-mix(in srgb, #8b5cf6 12%, var(--surface));border-color:color-mix(in srgb, #8b5cf6 35%, var(--line))}.mcal__day--holiday .mcal__text{color:color-mix(in srgb, #8b5cf6 75%, var(--ink))}.mcal__day--holiday .mcal__sub{color:var(--ink-soft);font-weight:600}.mcal__day--break{background:repeating-linear-gradient(135deg, var(--surface-2) 0 6px, var(--surface-3) 6px 12px);border-style:dashed}.mcal__day--break .mcal__text{color:var(--ink-muted)}.mcal__day--future{border-style:dashed;border-color:var(--line-soft);background:0 0}.mcal__day--future .mcal__date{color:var(--ink-faint)}.mcal__legend{color:var(--ink-soft);flex-wrap:wrap;gap:6px 16px;margin:12px 0 0;padding:0;font-size:12.5px;list-style:none;display:flex}.mcal__legend li{align-items:center;gap:6px;display:inline-flex}.mcal__swatch{border-style:solid;border-width:1px;border-radius:4px;width:14px;height:14px;min-height:0;padding:0;display:inline-block}.mcal__notes{color:var(--ink-soft);margin:10px 0 0;font-size:13px}@media (width<=640px){.mcal__grid{gap:4px}.mcal__day{border-radius:8px;min-height:56px;padding:5px 6px}.mcal__text{font-size:11.5px}.mcal__sub,.mcal__today-tag{display:none}.mcal__month{min-width:0}}.mcal__swatch.mcal__day--none,.mcal__swatch.mcal__day--break{border-color:var(--line-strong)}.click-card{cursor:pointer;transition:transform .18s var(--ease), box-shadow .18s var(--ease), border-color .18s var(--ease), background-color .18s var(--ease)}.click-card:hover{box-shadow:var(--shadow-lg);border-color:var(--accent-line);background:var(--surface-2);transform:scale(1.02)}.click-card:active{transform:scale(1.01)}.click-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.click-card__more{color:var(--accent-ink);margin-top:12px;font-size:13px;font-weight:600;display:inline-flex}.fu-card__last{color:var(--ink);gap:8px;margin:10px 0 0;font-size:14px;display:flex}.fu-card__last svg{color:var(--ok);flex:none;margin-top:2px}.fu-card__note{color:var(--ink-muted);margin-top:2px;font-size:13px;display:block}.fu-card__none{color:var(--warn-ink);margin:10px 0 0;font-size:14px;font-weight:500}.fu-card__contact{color:var(--ink-muted);align-items:center;gap:6px;margin:10px 0 0;font-size:13px;display:flex}.followup-bare{flex-direction:column;gap:14px;padding:14px 0 4px;display:flex}.followup-bare .followup-form .btn{width:auto;padding:0 18px}.followup-bare .followup-history{margin-top:4px}.day-facts{grid-template-columns:repeat(2,1fr);margin-top:14px}.modal .mini-list{margin:0}.modal .risk-note__summary{margin-top:14px}.side-nav__logo,.topbar__logo,.pub-hero__logo{color:#fff;background:#2a2b30;box-shadow:inset 0 0 0 1px #ffffff2e}.sys-top__brand:before,.pub-brand:before{background:#2a2b30 url(/favicon.svg) 50%/cover no-repeat;box-shadow:inset 0 0 0 1px #ffffff2e}@media (width>=960px){.pub-hero__logo{background:#36383d}}.pub-main--aside{flex-wrap:wrap;align-items:flex-start;gap:28px;padding-top:40px}.pub-main--aside .pub-card--wide{flex:560px;max-width:720px;padding:32px 34px 28px}.apply-steps{border-radius:var(--radius);color:#ececee;background:#2a2b30;border:1px solid #ffffff29;flex:0 320px;align-self:flex-start;padding:26px 24px;position:sticky;top:24px}.apply-steps__eyebrow{letter-spacing:.08em;text-transform:uppercase;color:#9cb9ea;margin:0;font-size:11.5px;font-weight:700}.apply-steps__title{font-family:var(--font-display);letter-spacing:-.015em;color:#fff;margin:6px 0 20px;font-size:20px;line-height:1.25}.apply-steps__list{gap:0;margin:0;padding:0;list-style:none;display:grid}.apply-step{gap:14px;padding-bottom:20px;display:flex;position:relative}.apply-step:last-child{padding-bottom:0}.apply-step:not(:last-child):before{content:"";background:#ffffff2e;border-radius:1px;width:2px;position:absolute;top:32px;bottom:4px;left:14px}.apply-step--done:not(:last-child):before{background:#4a7fd6}.apply-step__num{color:#b5b7bd;background:#ffffff1a;border-radius:50%;flex:none;place-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:grid;box-shadow:inset 0 0 0 1.5px #ffffff40}.apply-step--current .apply-step__num{color:#fff;box-shadow:none;background:#4a7fd6}.apply-step--done .apply-step__num{color:#fff;box-shadow:none;background:#2ea56a}.apply-step__body{color:#b5b7bd;flex-direction:column;gap:2px;padding-top:4px;font-size:13.5px;line-height:1.45;display:flex}.apply-step__body b{color:#fff;font-size:14.5px;font-weight:600}.apply-step--todo .apply-step__body b{color:#c9d4e8}.pub-main--aside .pub-section{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface-2);margin:20px 0 0;padding:20px 20px 6px}.pub-main--aside .pub-section+.pub-section{margin-top:14px}.pub-main--aside .pub-section__title{float:left;align-items:center;gap:10px;width:100%;margin-bottom:4px;font-size:16px;font-weight:700;display:flex}.pub-main--aside .pub-section__title+*{clear:both}.pub-section__num{background:var(--accent-bg);width:26px;height:26px;color:var(--accent-ink);border-radius:8px;place-items:center;font-size:13px;font-weight:800;display:grid}.pub-section__hint{color:var(--ink-muted);margin:0 0 16px;font-size:13px}.pub-main--aside .pub-input{background:var(--surface)}.apply-submit{border-top:0;flex-wrap:wrap;align-items:center;margin-top:22px;padding-top:0}.apply-submit__note{color:var(--ink-muted);flex:220px;margin:0;font-size:13px}.apply-submit .pub-btn--primary{min-width:190px;height:44px}.apply-sent{align-items:center;gap:12px;margin-bottom:12px;display:flex}.apply-sent .pub-eyebrow{margin:0}.apply-sent__icon{background:var(--accent-bg);width:48px;height:48px;color:var(--accent-ink);border-radius:14px;place-items:center;display:grid}@media (width<=960px){.pub-main--aside{flex-direction:column-reverse;align-items:stretch;padding-top:16px}.pub-main--aside .pub-card--wide{flex-basis:auto;max-width:none;padding:22px 18px}.apply-steps{flex-basis:auto;position:static}.pub-main--aside .pub-section{padding:16px 14px 4px}}html{background:0 0}@media (width<=760px){.sys-table tbody tr{flex-wrap:wrap;align-items:center;gap:4px 14px;padding:12px 14px;display:flex}.sys-table td{padding:0}.sys-table td:first-child{flex:calc(100% - 140px);order:1;min-width:0;font-size:15px;font-weight:600}.sys-table td.sys-table__actions{flex:none;order:2;width:auto;margin:0 0 0 auto}.sys-table td:not(:first-child):not(.sys-table__actions){color:var(--ink-soft);order:3;font-size:13px}.sys-table td:not(:first-child):not(.sys-table__actions)[data-label]:before,.sys-table td.sys-num[data-label]:before{content:attr(data-label) " ";color:var(--ink-muted);font-family:var(--font)}.sys-table tbody tr:after{content:"";flex:1 0 100%;order:2;height:0;margin-top:-4px}.sys-table--log{width:100%;display:table}.sys-table--log thead{display:table-header-group}.sys-table--log tbody{display:table-row-group}.sys-table--log tr,.sys-table--log tbody tr{padding:0;display:table-row}.sys-table--log tbody tr:after{content:none}.sys-table--log th{padding:8px 12px}.sys-table--log td,.sys-table--log td:first-child,.sys-table--log td:not(:first-child):not(.sys-table__actions){color:inherit;border-bottom:1px solid var(--sys-line);padding:10px 12px;font-size:14px;font-weight:400;display:table-cell}.sys-table td[data-label=Status]{margin-top:0}.sys-table .sys-table__empty{flex:100%}.table th,.table td{padding-left:8px;padding-right:8px}.table th:first-child,.table td:first-child{padding-left:14px}}@media (width<=960px){.pub-main--aside .pub-card--wide{flex:none}}.pending-chip{border-radius:var(--radius-pill);border:1px solid var(--accent-line);background:var(--accent-bg);height:30px;color:var(--accent-ink);font:inherit;cursor:pointer;flex:none;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.pending-chip:disabled{cursor:default}.pending-chip svg{animation:2.4s linear infinite pending-spin}.pending-chip--offline{border-color:var(--warn-line);background:var(--warn-bg);color:var(--warn-ink)}.pending-chip--offline svg{animation:none}.pending-chip__n{font-variant-numeric:tabular-nums}@keyframes pending-spin{to{transform:rotate(360deg)}}@media (width<=380px){.pending-chip__label{display:none}}@media (prefers-reduced-motion:reduce){.pending-chip svg{animation:none}}.risk-why{border-top:1px solid var(--line-soft);flex-direction:column;gap:10px;margin-top:6px;padding-top:16px;display:flex}.risk-why .risk-note__heading{margin:0}.risk-why__note{color:var(--ink-soft);margin:0;font-size:13.5px;line-height:1.45}.risk-why__list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.risk-why__row{grid-template-columns:1fr auto;align-items:center;gap:4px 12px;display:grid}.risk-why__top{grid-column:1/-1;justify-content:space-between;gap:12px;font-size:14px;display:flex}.risk-why__label{color:var(--ink);font-weight:600}.risk-why__value{color:var(--ink-soft);font-variant-numeric:tabular-nums;white-space:nowrap}.risk-why__bar{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.risk-why__bar span{border-radius:inherit;height:100%;transition:width .5s;display:block}.risk-why__row--up .risk-why__bar span{background:var(--danger)}.risk-why__row--down .risk-why__bar span{background:var(--ok)}.risk-why__effect{white-space:nowrap;font-size:12px;font-weight:600}.risk-why__row--up .risk-why__effect{color:var(--danger-ink)}.risk-why__row--down .risk-why__effect{color:var(--ok-ink)}.risk-why__foot{color:var(--ink-muted);margin:0;font-size:12px}.risk-why__vs{color:var(--ink-muted)}.lp{--lp-bg:#f7f8fa;--lp-bg-tint:#eff1f4;--lp-surface:#fff;--lp-surface-2:#f3f4f6;--lp-ink:#16181d;--lp-ink-2:#474b54;--lp-ink-3:#6b7079;--lp-line:#1118271a;--lp-line-soft:#1118270f;--lp-line-strong:#1118272e;--lp-glass:#f7f8fad9;--lp-glass-strong:#fffffff5;--lp-brand:#36c;--lp-brand-2:#2a56ad;--lp-brand-ink:#2a56ad;--lp-brand-soft:#3366cc14;--lp-brand-line:#3366cc40;--lp-navy:#1e1f22;--lp-ok:#15803d;--lp-warn:#b45309;--lp-mint:#15803d17;--lp-mint-ink:#15803d;--lp-mint-line:#15803d40;--lp-amber:#b4530917;--lp-amber-ink:#b45309;--lp-red:#b91c1c14;--lp-red-ink:#b91c1c;--lp-radius:20px;--lp-shadow:none;--lp-shadow-lg:none;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;background:var(--lp-bg);min-height:100vh;color:var(--lp-ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow-x:hidden}.lp *,.lp :before,.lp :after{box-sizing:border-box}.lp h1,.lp h2,.lp h3,.lp p{margin:0}.lp-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 24px}.lp-wrap--narrow{max-width:820px}.lp-btn{height:42px;font:inherit;white-space:nowrap;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s,background .15s,box-shadow .15s,color .15s;display:inline-flex}.lp-btn:focus-visible{outline:3px solid var(--lp-brand-line);outline-offset:2px}.lp-btn--lg{height:52px;padding:0 24px;font-size:16px}.lp-btn--primary{background:var(--lp-brand);color:#fff}.lp-btn--primary:hover{background:var(--lp-brand-2);transform:translateY(-1px)}.lp-btn--ghost{color:var(--lp-ink);background:0 0}.lp-btn--ghost:hover{background:var(--lp-line-soft)}.lp-btn--soft{background:var(--lp-surface);color:var(--lp-ink);border-color:var(--lp-line)}.lp-btn--soft:hover{border-color:var(--lp-line-strong);transform:translateY(-1px)}.lp-btn--white{color:var(--lp-brand-2);background:#fff}.lp-btn--white:hover{transform:translateY(-1px)}.lp-btn--outline-white{color:#fff;background:0 0;border-color:#ffffff73}.lp-btn--outline-white:hover{background:#ffffff1a}.lp-nav{z-index:30;pointer-events:none;justify-content:center;padding:0 16px;transition:top .45s cubic-bezier(.2,.8,.2,1),transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s;display:flex;position:fixed;top:16px;left:0;right:0}.lp-nav.is-scrolled{top:10px}.lp-nav.is-hidden{opacity:0;transform:translateY(-140%)}.lp-nav__inner{pointer-events:auto;border:1px solid var(--lp-line);background:var(--lp-glass);width:100%;max-width:1140px;height:64px;box-shadow:var(--lp-shadow);border-radius:999px;align-items:center;gap:20px;padding:0 10px 0 24px;transition:max-width .5s cubic-bezier(.2,.8,.2,1),height .4s,background .3s,box-shadow .3s,border-color .3s;animation:.7s cubic-bezier(.2,.8,.2,1) both lp-drop;display:flex;position:relative;overflow:hidden}.lp-nav.is-scrolled .lp-nav__inner{background:var(--lp-glass-strong);border-color:var(--lp-line);max-width:940px;height:56px;box-shadow:var(--lp-shadow-lg)}.lp-nav__progress{transform-origin:0;background:var(--lp-brand);opacity:0;height:2px;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.lp-nav.is-scrolled .lp-nav__progress{opacity:1}.lp-brand{color:var(--lp-ink);letter-spacing:-.02em;align-items:center;gap:10px;font-size:18px;font-weight:700;text-decoration:none;display:inline-flex}.lp-brand--word{letter-spacing:-.035em;gap:0;font-size:19px;font-weight:800}.lp-brand--word span{color:var(--lp-brand)}.lp-nav__links{gap:2px;margin:0 auto;display:flex}.lp-nav__link{font:inherit;color:var(--lp-ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:8px 14px;font-size:14.5px;font-weight:500;transition:color .2s,background .2s;position:relative}.lp-nav__link:hover{color:var(--lp-ink);background:var(--lp-line-soft)}.lp-nav__link.is-active{color:var(--lp-brand-ink);background:var(--lp-brand-soft)}.lp-nav__actions{align-items:center;gap:6px;margin-left:auto;display:flex}.lp-nav__links+.lp-nav__actions{margin-left:0}.lp-nav__inner .lp-btn{height:40px}.lp-nav.is-scrolled .lp-nav__inner .lp-btn{height:38px}@keyframes lp-drop{0%{opacity:0;transform:translateY(-18px)scale(.98)}to{opacity:1;transform:none}}@keyframes lp-rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.lp-enter>*{animation:.8s cubic-bezier(.2,.8,.2,1) both lp-rise}.lp-enter>:nth-child(2){animation-delay:80ms}.lp-enter>:nth-child(3){animation-delay:.16s}.lp-enter>:nth-child(4){animation-delay:.24s}.lp-enter>:nth-child(5){animation-delay:.32s}.lp-enter--late{animation:1s cubic-bezier(.2,.8,.2,1) .25s both lp-rise}.lp-enter--late>*{animation:none}.lp-enter--late .lp-float{animation:6s ease-in-out infinite lp-float}.lp-reveal{opacity:0;transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--lp-delay,0s);transform:translateY(32px)}.lp-reveal--right{transform:translate(40px)}.lp-reveal--zoom{transform:translateY(24px)scale(.96)}.lp-reveal.is-in{opacity:1;transform:none}.lp-card.lp-reveal.is-in{transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .25s,box-shadow .2s,border-color .2s}.lp-card.lp-reveal.is-in:hover{transform:translateY(-4px)}.lp-hero{padding:112px 0 72px;position:relative}.lp-hero__glow{display:none}.lp-hero__grid{grid-template-columns:1.05fr 1fr;align-items:center;gap:56px;display:grid;position:relative}.lp-pill{background:var(--lp-surface);border:1px solid var(--lp-line);color:var(--lp-ink-2);box-shadow:var(--lp-shadow);border-radius:999px;align-items:center;gap:8px;padding:6px 14px 6px 10px;font-size:13.5px;font-weight:500;display:inline-flex}.lp-pill__dot{background:var(--lp-ok);border-radius:50%;width:8px;height:8px}.lp-h1{font-family:var(--font-display);letter-spacing:-.035em;font-size:clamp(40px,5.6vw,66px);font-weight:800;line-height:1.04;margin-top:0!important}.lp-h1__accent{color:var(--lp-brand)}.lp-lead{max-width:540px;color:var(--lp-ink-2);font-size:18.5px;line-height:1.65;margin-top:22px!important}.lp-hero__cta{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.lp-hero__cta--center{justify-content:center}.lp-checks{color:var(--lp-ink-2);flex-wrap:wrap;gap:10px 22px;margin:28px 0 0;padding:0;font-size:14.5px;font-weight:500;list-style:none;display:flex}.lp-checks li,.lp-bullets li{align-items:center;gap:8px;display:inline-flex}.lp-check{color:var(--lp-mint-ink);flex:none}.lp-hero__visual{padding:48px 28px 56px 56px;position:relative}.lp-mock{background:var(--lp-surface);border:1px solid var(--lp-line);box-shadow:var(--lp-shadow-lg);border-radius:26px;padding:22px;position:relative}.lp-mock__head{justify-content:space-between;align-items:flex-start;display:flex}.lp-mock__eyebrow{color:var(--lp-ink-3);font-size:12.5px;font-weight:500}.lp-mock__title{letter-spacing:-.02em;font-size:21px;font-weight:700}.lp-mock__progress{color:var(--lp-ink-3);white-space:nowrap;align-items:center;gap:12px;margin:16px 0 10px;font-size:12.5px;display:flex}.lp-mock__bar{background:var(--lp-brand-soft);border-radius:99px;flex:1;height:8px;overflow:hidden}.lp-mock__bar span{border-radius:inherit;background:var(--lp-brand);height:100%;display:block}.lp-mock__list{margin:0;padding:0;list-style:none}.lp-mock__list li{border-top:1px solid var(--lp-line-soft);align-items:center;gap:12px;padding:10px 0;display:flex}.lp-avatar{background:var(--lp-brand-soft);width:36px;height:36px;color:var(--lp-brand-ink);border-radius:12px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.lp-mock__list li:nth-child(2n) .lp-avatar{background:var(--lp-mint);color:var(--lp-mint-ink)}.lp-mock__list li:nth-child(3n) .lp-avatar{background:var(--lp-amber);color:var(--lp-amber-ink)}.lp-mock__name{flex-direction:column;flex:1;font-size:14.5px;font-weight:600;line-height:1.3;display:flex}.lp-mock__name small,.lp-risk__name small{color:var(--lp-ink-3);font-size:12px;font-weight:500}.lp-status{text-transform:capitalize;border-radius:99px;padding:4px 10px;font-size:12px;font-weight:600}.lp-status--present{background:var(--lp-mint);color:var(--lp-mint-ink)}.lp-status--absent{background:var(--lp-red);color:var(--lp-red-ink)}.lp-mock__foot{background:var(--lp-surface-2);color:var(--lp-ink-2);border-radius:14px;align-items:center;gap:8px;margin-top:12px;padding:10px 12px;font-size:12.5px;font-weight:500;display:flex}.lp-mock__foot svg{width:18px;height:18px;color:var(--lp-brand);flex:none}.lp-tag{border-radius:99px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;font-weight:600;display:inline-flex}.lp-tag--offline{background:var(--lp-amber);color:var(--lp-amber-ink)}.lp-tag__dot{background:currentColor;border-radius:50%;width:7px;height:7px}.lp-tag--soft{background:var(--lp-brand-soft);color:var(--lp-brand-ink)}.lp-tag--synced{background:var(--lp-mint);color:var(--lp-mint-ink)}.lp-stack{display:grid;position:relative}.lp-stack__card{cursor:pointer;-webkit-user-select:none;user-select:none;will-change:transform;grid-area:1/1;transition:transform .65s cubic-bezier(.2,.8,.2,1),box-shadow .45s,filter .45s,opacity .45s}.lp-stack__card.is-front{z-index:2;transform:translate(16px,20px)rotate(2deg)}.lp-stack__card.is-back{z-index:1;filter:saturate(.85)brightness(.985);box-shadow:var(--lp-shadow);transform:translate(-30px,-22px)rotate(-5deg)scale(.95)}.lp-stack:hover .lp-stack__card.is-front{box-shadow:var(--lp-shadow-lg);transform:translate(34px,30px)rotate(3.5deg)}.lp-stack:hover .lp-stack__card.is-back{filter:none;transform:translate(-56px,-36px)rotate(-8deg)scale(.95)}.lp-stack__card.is-front .lp-mock__list li{animation:.5s cubic-bezier(.2,.8,.2,1) both lp-row}.lp-stack__card.is-front .lp-mock__list li:nth-child(2){animation-delay:40ms}.lp-stack__card.is-front .lp-mock__list li:nth-child(3){animation-delay:80ms}.lp-stack__card.is-front .lp-mock__list li:nth-child(4){animation-delay:.12s}.lp-stack__card.is-front .lp-mock__list li:nth-child(5){animation-delay:.16s}.lp-stack__card .lp-mock__bar span{transition:width .8s cubic-bezier(.2,.8,.2,1)}@keyframes lp-row{0%{opacity:.4;transform:translate(10px)}to{opacity:1;transform:none}}.lp-float{background:var(--lp-surface-2);border:1px solid var(--lp-line);box-shadow:var(--lp-shadow);border-radius:18px;align-items:center;gap:12px;padding:12px 16px 12px 12px;font-size:13px;line-height:1.35;animation:6s ease-in-out infinite lp-float;display:flex;position:absolute}.lp-float strong{font-size:14px;display:block}.lp-float span{color:var(--lp-ink-3)}.lp-float{z-index:3}.lp-float--risk{bottom:0;left:0}.lp-float--scan{animation-delay:-3s;top:0;right:-8px}.lp-float__icon{border-radius:12px;flex:none;place-items:center;width:40px;height:40px;display:grid}.lp-float__icon--amber{background:var(--lp-amber);color:var(--lp-amber-ink)}.lp-float__icon--green{background:var(--lp-mint);color:var(--lp-mint-ink)}@keyframes lp-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lp-facts{padding:0 0 24px}.lp-facts__grid{background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius);box-shadow:var(--lp-shadow);grid-template-columns:repeat(4,1fr);gap:0;display:grid}.lp-fact{flex-direction:column;gap:4px;padding:26px 28px;display:flex}.lp-fact+.lp-fact{border-left:1px solid var(--lp-line)}.lp-fact strong{letter-spacing:-.03em;color:var(--lp-brand-ink);font-size:30px;font-weight:800}.lp-fact span{color:var(--lp-ink-2);font-size:14.5px;line-height:1.45}.lp-section{padding:104px 0;scroll-margin-top:90px}.lp-section--tint{background:var(--lp-bg-tint)}.lp-head{text-align:center;max-width:680px;margin:0 auto 56px}.lp-head--left{text-align:left;margin:0 0 28px}.lp-eyebrow{background:var(--lp-brand-soft);color:var(--lp-brand-ink);letter-spacing:.02em;border-radius:99px;padding:5px 12px;font-size:13px;font-weight:600;display:inline-block}.lp-h2{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(30px,3.6vw,44px);font-weight:800;line-height:1.12;margin-top:16px!important}.lp-sub{color:var(--lp-ink-2);font-size:17.5px;margin-top:16px!important}.lp-features{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.lp-card{background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:var(--lp-radius);padding:28px;transition:transform .2s,box-shadow .2s,border-color .2s}.lp-card:hover{box-shadow:var(--lp-shadow);border-color:var(--lp-line-strong);transform:translateY(-4px)}.lp-card__icon{background:var(--lp-brand-soft);width:48px;height:48px;color:var(--lp-brand);border-radius:14px;place-items:center;margin-bottom:20px;display:grid}.lp-card:nth-child(3n+2) .lp-card__icon{background:var(--lp-mint);color:var(--lp-mint-ink)}.lp-card:nth-child(3n) .lp-card__icon{background:var(--lp-amber);color:var(--lp-amber-ink)}.lp-card h3,.lp-step h3,.lp-role h3{letter-spacing:-.015em;font-size:19px;font-weight:700}.lp-card p,.lp-step p{color:var(--lp-ink-2);font-size:15.5px;margin-top:8px!important}.lp-steps{counter-reset:none;grid-template-columns:repeat(3,1fr);gap:20px;margin:0;padding:0;list-style:none;display:grid}.lp-step{background:var(--lp-surface);border-radius:var(--lp-radius);border:1px solid var(--lp-line);padding:32px 28px;position:relative}.lp-step__num{background:var(--lp-brand);color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;margin-bottom:20px;font-size:17px;font-weight:800;display:grid}.lp-split{grid-template-columns:1fr 1.05fr;align-items:center;gap:64px;display:grid}.lp-bullets{color:var(--lp-ink);flex-direction:column;gap:12px;margin:0;padding:0;font-weight:500;list-style:none;display:flex}.lp-chart{background:var(--lp-surface);border:1px solid var(--lp-line);box-shadow:var(--lp-shadow-lg);border-radius:24px;padding:24px}.lp-chart__head{justify-content:space-between;align-items:center;display:flex}.lp-chart__bars{border-bottom:1px dashed var(--lp-line);align-items:flex-end;gap:8px;height:140px;margin:22px 0;padding-bottom:2px;display:flex}.lp-chart__bars span{background:var(--lp-brand);opacity:.9;border-radius:8px 8px 4px 4px;flex:1}.lp-chart__bars span.is-low{background:var(--lp-warn)}.lp-chart__rows{flex-direction:column;gap:4px;display:flex}.lp-risk{align-items:center;gap:12px;padding:10px 4px;display:flex}.lp-risk+.lp-risk{border-top:1px solid var(--lp-line-soft)}.lp-risk__dot{border-radius:50%;flex:none;width:10px;height:10px}.lp-risk__dot--red{background:var(--lp-red-ink)}.lp-risk__dot--amber{background:var(--lp-warn)}.lp-risk__dot--clear{background:var(--lp-ok)}.lp-risk__name{flex-direction:column;flex:1;font-size:14.5px;font-weight:600;line-height:1.3;display:flex}.lp-risk__tag{text-transform:capitalize;border-radius:99px;padding:3px 10px;font-size:12px;font-weight:600}.lp-risk__tag--red{background:var(--lp-red);color:var(--lp-red-ink)}.lp-risk__tag--amber{background:var(--lp-amber);color:var(--lp-amber-ink)}.lp-risk__tag--clear{background:var(--lp-mint);color:var(--lp-mint-ink)}.lp-roles{grid-template-columns:1fr 1fr;gap:20px;display:grid}.lp-role{border-radius:24px;padding:36px}.lp-role--indigo,.lp-role--mint{background:var(--lp-surface);border:1px solid var(--lp-line)}.lp-role ul{flex-direction:column;gap:12px;margin:18px 0 0;padding:0;list-style:none;display:flex}.lp-role li{color:var(--lp-ink-2);padding-left:28px;font-weight:500;position:relative}.lp-role li:before{content:"";background:var(--lp-brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.4l2.6 2.6L14 7.6' fill='none' stroke='white' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;border-radius:50%;width:18px;height:18px;position:absolute;top:4px;left:0}.lp-role--mint li:before{background-color:var(--lp-mint-ink)}.lp-faq{flex-direction:column;gap:12px;display:flex}.lp-faq__item{background:var(--lp-surface);border:1px solid var(--lp-line);border-radius:16px;transition:box-shadow .2s}.lp-faq__item[data-open]{box-shadow:var(--lp-shadow)}.lp-faq__q{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--lp-ink);background:0 0;border:0;justify-content:space-between;align-items:center;gap:16px;padding:20px 22px;font-size:17px;font-weight:600;display:flex}.lp-faq__sign{background:var(--lp-brand-soft);border-radius:50%;flex:none;width:28px;height:28px;position:relative}.lp-faq__sign:before,.lp-faq__sign:after{content:"";background:var(--lp-brand);border-radius:2px;width:12px;height:2px;transition:transform .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.lp-faq__sign:after{transform:translate(-50%,-50%)rotate(90deg)}.lp-faq__item[data-open] .lp-faq__sign:after{transform:translate(-50%,-50%)rotate(0)}.lp-faq__a{color:var(--lp-ink-2);padding:0 22px 20px}.lp-cta{padding:24px 0 104px}.lp-cta__box{text-align:center;color:#fff;background:var(--lp-brand);border:0;border-radius:32px;padding:72px 32px;position:relative;overflow:hidden}.lp-cta__box h2{font-family:var(--font-display);letter-spacing:-.03em;font-size:clamp(28px,3.4vw,42px);font-weight:800;line-height:1.15}.lp-cta__box p{color:#ffffffd9;max-width:560px;font-size:17.5px;margin:14px auto 0!important}.lp-footer{border-top:1px solid var(--lp-line);color:var(--lp-ink-2);padding:40px 0 28px;font-size:14.5px}.lp-footer__inner{flex-wrap:wrap;align-items:center;gap:12px 28px;display:flex}.lp-footer__links{flex-wrap:wrap;gap:20px;margin-left:auto;display:flex}.lp-footer__links a{color:var(--lp-ink-2);font-weight:500;text-decoration:none}.lp-footer__links a:hover{color:var(--lp-brand)}.lp-footer__base{color:var(--lp-ink-3);margin-top:24px;font-size:13px}@media (width<=1020px){.lp-nav__links{display:none}.lp-hero__grid,.lp-split{grid-template-columns:1fr;gap:48px}.lp-hero{padding-top:104px}.lp-hero__visual{width:100%;max-width:520px;margin:0 auto}.lp-features,.lp-facts__grid{grid-template-columns:repeat(2,1fr)}.lp-fact:nth-child(3){border-left:0}.lp-fact:nth-child(n+3){border-top:1px solid var(--lp-line)}}@media (width<=680px){.lp-wrap{padding:0 16px}.lp-hide-sm{display:none}.lp-nav{padding:0 10px;top:10px}.lp-nav__inner,.lp-nav.is-scrolled .lp-nav__inner{height:56px;padding:0 6px 0 18px}.lp-hero{padding-top:88px}.lp-lead{font-size:17px}.lp-hero__cta .lp-btn{flex:100%}.lp-mock{padding:18px}.lp-hero__visual{padding:40px 14px 64px 22px}.lp-stack__card.is-front,.lp-stack:hover .lp-stack__card.is-front{transform:translate(8px,12px)rotate(1.5deg)}.lp-stack__card.is-back,.lp-stack:hover .lp-stack__card.is-back{transform:translate(-14px,-20px)rotate(-4deg)scale(.95)}.lp-float--scan{top:-4px;right:0}.lp-features,.lp-steps,.lp-roles{grid-template-columns:1fr}.lp-section{padding:72px 0}.lp-head{margin-bottom:36px}.lp-role{padding:28px}.lp-fact{padding:20px}.lp-fact strong{font-size:24px}.lp-cta__box{border-radius:24px;padding:52px 20px}.lp-footer__links{margin-left:0}}@media (prefers-reduced-motion:reduce){.lp-float,.lp-nav__inner,.lp-enter>*,.lp-enter--late,.lp-enter--late .lp-float{animation:none}.lp-btn,.lp-card,.lp-nav,.lp-nav__inner,.lp-stack__card{transition:none}.lp-stack__card .lp-mock__list li{animation:none}.lp-reveal{opacity:1;transition:none;transform:none}}
