:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font:ui-rounded, "Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--maxw:1360px;--gutter:24px;--brand:#d946ef;--brand-dark:#a21caf;--accent:#8b5cf6;--bg:#f7f3f9;--surface:#fff;--surface-2:#faf6fc;--border:#28103417;--input-border:#28103433;--ink:#1f1a24;--ink-2:#4b4454;--muted:#6b6475;--hover-wash:#c026d30f;--brand-wash:#fae8ff;--brand-ink:#a21caf;--shadow:0 1px 2px #2810340a, 0 10px 28px #2810340d;--tip-bg:#fff;--tip-shadow:0 10px 30px #28103429;--skel-1:#efe8f3;--skel-2:#f9f5fb;--btn-bg:#c026d3;--btn-bg-hover:#a21caf;--auth-glow-1:#d946ef33;--auth-glow-2:#8b5cf629;--gridline:#eee9f1;--axis:#d3cbd9;--series-1:#c026d3;--series-1-hover:#a21caf;--series-2:#0d9488;--deemph:#b9b0c2;--ord-1:#e879f9;--ord-2:#d946ef;--ord-3:#c026d3;--ord-4:#a21caf;--ord-5:#86198f;--seq-0:#fbf6fd;--seq-1:#fae8ff;--seq-2:#f5d0fe;--seq-3:#f0abfc;--seq-4:#e879f9;--seq-5:#d946ef;--seq-6:#c026d3;--seq-7:#a21caf;--seq-8:#86198f;--seq-ink-0:#1f1a24;--seq-ink-1:#1f1a24;--seq-ink-2:#1f1a24;--seq-ink-3:#1f1a24;--seq-ink-4:#1f1a24;--seq-ink-5:#1f1a24;--seq-ink-6:#fff;--seq-ink-7:#fff;--seq-ink-8:#fff;--seq-na:#eeebf1;--seq-na-ink:#6b6475;--meter-track:#f5d0fe;--warning:#fab219;--warning-track:#fef3c7;--warning-ink:#b45309;--critical:#d03b3b;--critical-track:#fde2e2;--critical-ink:#c02d2d;--critical-bg:#fef2f2;--critical-border:#f8cdcd}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0f0b13;--surface:#1a1520;--surface-2:#211a28;--border:#ffffff14;--input-border:#ffffff2e;--ink:#f6f1f8;--ink-2:#d2c9da;--muted:#a59db0;--hover-wash:#d946ef1a;--brand-wash:#d946ef26;--brand-ink:#f0abfc;--shadow:0 1px 2px #00000059;--tip-bg:#261e2d;--tip-shadow:0 10px 30px #00000080;--skel-1:#211a28;--skel-2:#2b2334;--auth-glow-1:#d946ef29;--auth-glow-2:#8b5cf624;--gridline:#2a2331;--axis:#41384a;--series-1:#d946ef;--series-1-hover:#e879f9;--series-2:#0d9488;--deemph:#6d6278;--ord-1:#86198f;--ord-2:#a21caf;--ord-3:#c026d3;--ord-4:#e879f9;--ord-5:#f5d0fe;--seq-0:#221b29;--seq-1:#3b1d44;--seq-2:#581c64;--seq-3:#701a75;--seq-4:#86198f;--seq-5:#a21caf;--seq-6:#c026d3;--seq-7:#e879f9;--seq-8:#f5d0fe;--seq-ink-0:#f6f1f8;--seq-ink-1:#f6f1f8;--seq-ink-2:#f6f1f8;--seq-ink-3:#f6f1f8;--seq-ink-4:#f6f1f8;--seq-ink-5:#f6f1f8;--seq-ink-6:#f6f1f8;--seq-ink-7:#1f1a24;--seq-ink-8:#1f1a24;--seq-na:#2b2631;--seq-na-ink:#a59db0;--meter-track:#3b1d44;--warning:#fab219;--warning-track:#3d2e0a;--warning-ink:#fab219;--critical:#e66767;--critical-track:#3f1d1f;--critical-ink:#f08a8a;--critical-bg:#2a1417;--critical-border:#5a2429}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.45}body.no-scroll{overflow:hidden}button,input{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.5}a{color:var(--brand-ink);font-weight:700}:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}h1,h2,h3,p{margin:0}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.muted{color:var(--muted)}.small{font-size:12.5px}.nowrap{white-space:nowrap}.break{overflow-wrap:anywhere}.stack{gap:16px;min-width:0;display:grid}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.is-stale{opacity:.5;transition:opacity .2s}.btn{white-space:nowrap;border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-weight:700;transition:background-color .15s,border-color .15s;display:inline-flex}.btn-primary{background:var(--btn-bg);color:#fff}.btn-primary:not(:disabled):hover{background:var(--btn-bg-hover)}.btn-ghost{border-color:var(--border);background:var(--surface);color:var(--ink)}.btn-ghost:not(:disabled):hover{background:var(--hover-wash)}.btn-sm{border-radius:10px;min-height:34px;padding:0 12px;font-size:13px}.btn-block{width:100%;min-height:46px}.icon-btn{width:36px;height:36px;color:var(--ink-2);border:1px solid var(--border);background:var(--surface);border-radius:10px;flex:none;place-items:center;display:inline-grid}.icon-btn:not(:disabled):hover{background:var(--hover-wash)}.link-btn{color:var(--brand-ink);text-align:left;font-weight:700}.link-btn:not(:disabled):hover{text-decoration:underline}.input{border:1px solid var(--input-border);background:var(--surface);border-radius:12px;width:100%;min-height:46px;padding:0 14px;font-size:16px}.input:focus-visible{outline:2px solid var(--series-1);outline-offset:0;border-color:#0000}.chip{background:var(--brand-wash);color:var(--brand-ink);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:700;display:inline-flex}.chip-mock{padding:3px 10px}.chip-hard{background:var(--critical-bg);color:var(--critical-ink)}.chip-muted{background:var(--surface-2);color:var(--muted)}.btn-danger{color:var(--critical-ink)}.btn-danger:not(:disabled):hover{background:var(--critical-bg);border-color:var(--critical-border)}.tab-count{background:var(--series-1);color:#fff;font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:800;line-height:1;display:inline-grid;position:relative}.seg-count{font-variant-numeric:tabular-nums;opacity:.7;margin-left:5px}.msg-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.msg{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:10px;min-width:0;padding:14px 16px;display:grid}.msg-new{box-shadow:inset 4px 0 0 var(--series-1)}.msg-head{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.msg-from{min-width:0;font-weight:700}.msg-body{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink);margin:0;line-height:1.55}.msg-spam .msg-body{color:var(--muted)}.msg-actions{flex-wrap:wrap;gap:8px;display:flex}.teacher-status-verified{background:var(--surface-2);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--border)}.teacher-status-pending{background:var(--warning-track);color:var(--warning-ink)}.teacher-status-rejected{background:var(--critical-bg);color:var(--critical-ink)}.teacher-facts{grid-template-columns:minmax(0,2.2fr) repeat(3,minmax(0,1fr));gap:8px 16px;margin:0;display:grid}.teacher-facts div{min-width:0}.teacher-facts dt{color:var(--muted);font-size:11.5px;font-weight:700}.teacher-facts dd{font-variant-numeric:tabular-nums;margin:0;font-weight:700}@media (width<=640px){.teacher-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-facts div:first-child{grid-column:1/-1}}.topbar{z-index:30;background:color-mix(in srgb, var(--bg) 86%, transparent);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--border);position:sticky;top:0}.topbar-inner{max-width:var(--maxw);padding:10px var(--gutter);flex-wrap:wrap;align-items:center;gap:10px 20px;margin:0 auto;display:flex}.brand{border-radius:12px;flex:none;align-items:center;gap:9px;display:flex}.brand img{border-radius:10px;width:34px;height:34px;display:block}.brand-name{letter-spacing:-.01em;font-size:17px;font-weight:800}.brand-tag{text-transform:uppercase;letter-spacing:.06em;background:var(--brand-wash);color:var(--brand-ink);border-radius:999px;padding:2px 7px;font-size:11px;font-weight:800}.tabs{flex:auto;gap:4px;min-width:0;display:flex}.tab{color:var(--ink-2);white-space:nowrap;border-radius:10px;padding:8px 14px;font-weight:700}.tab:hover{background:var(--hover-wash)}.tab[aria-current=page]{background:var(--brand-wash);color:var(--brand-ink)}.topbar-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.period{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:3px;display:inline-flex}.period.is-hidden{visibility:hidden}.period-btn{min-width:48px;color:var(--muted);white-space:nowrap;border-radius:9px;padding:6px 10px;font-weight:700}.period-btn[aria-checked=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #28103424}.btn-logout{min-height:38px;padding:0 12px}.show-sm-inline{display:none}@media (width<=1320px){.tabs{scrollbar-width:none;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 2px;flex-basis:100%;order:3;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}}.page{max-width:var(--maxw);padding:22px var(--gutter) 56px;gap:16px;margin:0 auto;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px 16px;display:flex}.page-title{letter-spacing:-.015em;font-size:26px;font-weight:800;line-height:1.2}.page-sub{color:var(--muted);margin-top:2px}.page-meta{align-items:center;gap:10px;display:flex}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-wide-left{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.grid-wide-right{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}@media (width<=1000px){.grid-2,.grid-wide-left,.grid-wide-right{grid-template-columns:minmax(0,1fr)}}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:20px;min-width:0;padding:18px 20px 20px}.card-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.card-titles{min-width:0}.card-title{letter-spacing:-.005em;font-size:16px;font-weight:800}.card-sub{color:var(--muted);margin-top:2px;font-size:13px}.card-foot{border-top:1px solid var(--gridline);margin-top:14px;padding-top:12px}.card-skeleton,.kpi-skeleton{align-content:start;gap:10px;display:grid}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;flex:none;padding:2px;display:inline-flex}.seg button{color:var(--muted);border-radius:8px;padding:4px 10px;font-size:12px;font-weight:700}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #28103424}.notice{background:var(--brand-wash);color:var(--ink);border-radius:16px;align-items:flex-start;gap:12px;padding:14px 16px;display:flex}.notice svg{color:var(--brand-ink);flex:none}.banner{border:1px solid var(--critical-border);background:var(--critical-bg);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;display:flex}.banner>svg{color:var(--critical-ink);flex:none}.banner-body{flex:200px;gap:1px;display:grid}.card .banner{margin-bottom:14px}.empty{text-align:center;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;justify-items:center;gap:4px;padding:34px 16px;display:grid}.empty-compact{padding:18px 14px}.empty-icon{background:var(--brand-wash);width:42px;height:42px;color:var(--brand-ink);border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.empty-compact .empty-icon{width:34px;height:34px}.empty-title{font-weight:800}.empty-text{color:var(--muted);max-width:42ch;font-size:13px}.skel{background:linear-gradient(90deg, var(--skel-1) 25%, var(--skel-2) 50%, var(--skel-1) 75%);background-size:200% 100%;border-radius:8px;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);min-width:0;box-shadow:var(--shadow);border-radius:18px;align-content:start;padding:14px 16px;display:grid;position:relative}.kpi-label{color:var(--ink-2);font-size:13px;font-weight:700}.kpi-value{letter-spacing:-.02em;margin-top:2px;font-size:30px;font-weight:800;line-height:1.15}.kpi-sub{color:var(--muted);margin-top:2px;font-size:12.5px}.kpi-viz{align-items:center;min-height:40px;margin-top:10px;display:flex}@media (width>=1100px){.kpi:not(.kpi-skeleton){grid-template-columns:minmax(0,1fr) minmax(0,44%);column-gap:18px}.kpi:not(.kpi-skeleton)>:not(.kpi-viz){grid-column:1}.kpi-viz{grid-area:1/2/span 3;align-self:center;margin-top:0}}@media (width<=720px){.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{border-radius:16px;padding:12px}.kpi-value{font-size:23px}.kpi-sub{font-size:12px}}.chart{width:100%;position:relative}.chart svg,.spark svg{touch-action:pan-y;display:block;overflow:visible}.chart svg:focus-visible{outline:2px solid var(--series-1);outline-offset:4px;border-radius:6px}.gridline{stroke:var(--gridline);stroke-width:1px;shape-rendering:crispedges}.axis{stroke:var(--axis);stroke-width:1px;shape-rendering:crispedges}.tick{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.viz-label{fill:var(--ink-2);font-variant-numeric:tabular-nums;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;font-size:11.5px;font-weight:800}.col{fill:var(--series-1)}.col.is-active{fill:var(--series-1-hover)}.hover-band{fill:var(--hover-wash)}.line{fill:none;stroke:var(--series-1);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.area{fill:var(--series-1);opacity:.1}.crosshair{stroke:var(--axis);stroke-width:1px;shape-rendering:crispedges}.dot{fill:var(--series-1);stroke:var(--surface);stroke-width:2px}.spark{width:100%;position:relative}.spark-line{fill:none;stroke:var(--deemph);stroke-width:1.75px;stroke-linejoin:round;stroke-linecap:round}.chart-note{color:var(--muted);margin-top:12px;font-size:12px}.chart-note svg{vertical-align:-1px}.multiples{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;display:grid}.multiple{min-width:0;margin:0}.multiple figcaption{color:var(--ink-2);align-items:baseline;gap:8px;margin-bottom:4px;font-size:13px;font-weight:700;display:flex}.multiple figcaption strong{color:var(--ink);font-size:15px}@media (width<=760px){.multiples{grid-template-columns:minmax(0,1fr);gap:18px}}.tip{z-index:20;pointer-events:none;background:var(--tip-bg);border:1px solid var(--border);min-width:120px;box-shadow:var(--tip-shadow);white-space:nowrap;text-align:left;color:var(--ink);border-radius:10px;padding:8px 10px;font-size:12px;line-height:1.35;position:absolute}.tip-title{color:var(--muted);margin-bottom:3px;font-size:11.5px;font-weight:700}.tip-row{align-items:center;gap:6px;display:flex}.tip-row strong{font-variant-numeric:tabular-nums;font-size:13.5px;font-weight:800}.tip-row span:last-child{color:var(--ink-2)}.tip-key{border-radius:2px;flex:none;width:12px;height:3px}.tip-above{transform:translate(-50%,calc(-100% - 10px))}.tip-right{transform:translate(14px,-50%)}.tip-left{transform:translate(calc(-100% - 14px),-50%)}.barlist,.funnel{--value-w:4.5rem;gap:6px;margin:0;padding:0;list-style:none;display:grid}.bar-row{border-radius:8px;grid-template-columns:minmax(6rem,36%) minmax(0,1fr);align-items:center;gap:12px;margin:0 -6px;padding:4px 6px;display:grid}.barlist-compact .bar-row{grid-template-columns:2.8rem minmax(0,1fr);gap:8px}.bar-row.is-active,.funnel-row.is-active{background:var(--hover-wash)}.bar-row:focus-visible,.funnel-row:focus-visible{outline-offset:0}.bar-label{color:var(--ink);overflow-wrap:anywhere;font-size:13.5px}.bar-track{align-items:center;gap:8px;min-height:24px;display:flex;position:relative}.hbar{border-radius:0 4px 4px 0;flex:none;height:16px}.bar-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:800}.bar-value-sub{color:var(--muted);font-weight:600}.fill-1{background:var(--series-1)}.fill-2{background:var(--series-2)}.ord-1{background:var(--ord-1)}.ord-2{background:var(--ord-2)}.ord-3{background:var(--ord-3)}.ord-4{background:var(--ord-4)}.ord-5{background:var(--ord-5)}.funnel{gap:4px}.funnel-row{border-radius:10px;margin:0 -8px;padding:6px 8px}.funnel-head{align-items:center;gap:8px;min-width:0;margin-bottom:4px;display:flex}.funnel-step{background:var(--surface-2);border:1px solid var(--border);width:20px;height:20px;color:var(--ink-2);border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:800;display:inline-grid}.funnel-label{min-width:0;font-size:13.5px;font-weight:700}.funnel-conv{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-size:12.5px;font-weight:800;display:inline-flex}.funnel-conv svg{color:var(--muted)}.splits{gap:22px;display:grid}.split-title{color:var(--ink-2);margin-bottom:8px;font-size:13px;font-weight:700}.split-bar{gap:2px;height:20px;display:flex}.split-bar-empty{background:var(--surface-2);border-radius:4px}.split-seg{flex-basis:0;min-width:3px;height:100%;position:relative}.split-seg:first-child{border-radius:4px 0 0 4px}.split-seg:last-child{border-radius:0 4px 4px 0}.split-seg:only-child{border-radius:4px}.split-seg.is-active{filter:brightness(1.1)}.legend{flex-wrap:wrap;gap:6px 22px;margin:10px 0 0;padding:0;list-style:none;display:flex}.legend li{align-items:baseline;gap:6px;font-size:13px;display:inline-flex}.legend-swatch{border-radius:3px;flex:none;align-self:center;width:10px;height:10px}.legend-value{font-variant-numeric:tabular-nums;font-weight:800}.legend-sub{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.legend-inline{flex-wrap:wrap;gap:6px 18px;font-size:12.5px;display:flex}.heat-wrap{position:relative}.scroll-x{padding-bottom:2px;overflow-x:auto}.heat{border-radius:8px;gap:2px;display:grid}.heat:focus-visible{outline-offset:4px}.heat-col{color:var(--muted);text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;padding-bottom:4px;font-size:11px;overflow:visible}.heat-row{color:var(--ink-2);white-space:nowrap;align-items:center;padding-right:10px;font-size:12px;display:flex}.heat-cell{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;min-height:22px;font-size:12.5px;font-weight:800;display:flex}.heat-cell.is-active{box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--ink);z-index:1;position:relative}.heat-retention .heat-cell{min-width:56px;min-height:38px}.heat-hours{min-width:440px}.heat-hours .heat-col{text-align:left}.heat-hours .heat-cell{border-radius:3px;min-height:24px}@media (width>=1001px){.heat-hours .heat-cell{min-height:44px}}.cohort-label{line-height:1.2;display:grid}.cohort-label small{color:var(--muted);font-size:11px}.seq-0{background:var(--seq-0);color:var(--seq-ink-0)}.seq-1{background:var(--seq-1);color:var(--seq-ink-1)}.seq-2{background:var(--seq-2);color:var(--seq-ink-2)}.seq-3{background:var(--seq-3);color:var(--seq-ink-3)}.seq-4{background:var(--seq-4);color:var(--seq-ink-4)}.seq-5{background:var(--seq-5);color:var(--seq-ink-5)}.seq-6{background:var(--seq-6);color:var(--seq-ink-6)}.seq-7{background:var(--seq-7);color:var(--seq-ink-7)}.seq-8{background:var(--seq-8);color:var(--seq-ink-8)}.seq-na{background:var(--seq-na);color:var(--seq-na-ink);font-weight:600}.heat-scale{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:8px 16px;font-size:12px;display:flex}.heat-scale-label{color:var(--ink-2);font-weight:700}.heat-scale-group{align-items:center;gap:6px;display:inline-flex}.heat-scale-steps{gap:2px;display:inline-flex}.heat-scale-steps span{border-radius:3px;width:16px;height:12px}.heat-na-swatch{border-radius:3px;place-items:center;width:22px;height:14px;font-size:11px;display:inline-grid}.meter{background:var(--meter-track);border-radius:999px;width:100%;height:8px;display:block;position:relative;overflow:hidden}.meter-fill{background:var(--series-1);border-radius:999px;position:absolute;inset:0 auto 0 0}.meter-warning{background:var(--warning-track)}.meter-warning .meter-fill{background:var(--warning)}.meter-critical{background:var(--critical-track)}.meter-critical .meter-fill{background:var(--critical)}.acc{font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:3px;font-weight:800;display:inline-flex}.acc-warning{color:var(--warning-ink)}.acc-critical{color:var(--critical-ink)}.table-wrap{border-radius:12px;overflow-x:auto}.table-wrap-limited{border:1px solid var(--gridline);max-height:26rem;overflow-y:auto}.dtable{border-collapse:collapse;width:100%;font-size:13.5px}.dtable th{z-index:1;background:var(--surface);text-align:left;color:var(--muted);border-bottom:1px solid var(--axis);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:700;position:sticky;top:0}.dtable td{border-bottom:1px solid var(--gridline);vertical-align:middle;padding:9px 10px}.dtable tbody tr:last-child td{border-bottom:0}.dtable .num{text-align:right;font-variant-numeric:tabular-nums}.sort-btn{color:var(--muted);border-radius:6px;align-items:center;gap:3px;font-weight:700;display:inline-flex}.sort-btn.is-on{color:var(--ink)}.levels-table{min-width:560px}.levels-table tr.is-hard td{background:color-mix(in srgb, var(--critical-bg) 55%, transparent)}.level-name{flex-wrap:wrap;align-items:center;gap:4px 8px;font-weight:700;display:flex}.level-id{color:var(--muted);font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:11.5px}.acc-cell{grid-template-columns:4rem minmax(70px,1fr);align-items:center;gap:8px;max-width:260px;display:grid}.stars{align-items:center;gap:3px;font-weight:700;display:inline-flex}.star{color:#f59e0b}.hard-list{margin:0;padding:0;list-style:none;display:grid}.hard-row{border-bottom:1px solid var(--gridline);grid-template-columns:28px minmax(0,1fr) minmax(110px,34%);align-items:center;gap:12px;padding:10px 0;display:grid}.hard-row:last-child{border-bottom:0}.hard-rank{background:var(--surface-2);border:1px solid var(--border);width:26px;height:26px;color:var(--ink-2);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.hard-label{font-weight:700}.hard-meta{color:var(--muted);font-size:12.5px}.hard-meta svg{vertical-align:-1px}.hard-acc{justify-items:end;gap:5px;display:grid}.users-head{flex-wrap:wrap}.search{flex:0 320px;min-width:200px;position:relative}.search svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{min-height:40px;padding-left:36px;font-size:14px}.users-table{min-width:0}.row-link{cursor:pointer}.row-link:hover td{background:var(--hover-wash)}.cell-email{overflow-wrap:break-word;max-width:340px}.cell-email .show-sm{margin-top:2px}.show-sm{display:none}.users-skeleton{gap:16px;padding:8px 0;display:grid}.users-skeleton-row{gap:24px;display:flex}.pager{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:12px;display:flex}.pager-btns{gap:8px;display:flex}@media (width<=900px){.hide-md{display:none}}@media (width<=640px){:root{--gutter:16px}.hide-sm{display:none}.show-sm{display:block}.brand-name{display:none}.page-title{font-size:22px}.card{border-radius:18px;padding:14px 14px 16px}.card-head{flex-wrap:wrap}.search{flex-basis:100%}.tab{padding:7px 11px}.hard-row{grid-template-columns:26px minmax(0,1fr)}.hard-acc{grid-column:2;grid-template-columns:auto minmax(0,1fr);place-items:center stretch;gap:10px}.heat-retention .heat-cell,.levels-table{min-width:0}.levels-table .level-id,.levels-table .acc-cell .meter,.levels-table .stars .muted{display:none}.acc-cell{grid-template-columns:auto}.levels-table th,.levels-table td{padding-left:6px;padding-right:6px}.heat-hours{gap:1px;min-width:0}.heat-hours .heat-col{font-size:10px}.heat-hours .heat-row{padding-right:6px;font-size:11px}}.drawer-backdrop{z-index:40;background:#0f08146b;animation:.18s fade;position:fixed;inset:0}.drawer{z-index:41;overscroll-behavior:contain;background:var(--bg);width:min(580px,100vw);animation:.22s slide-in;position:fixed;top:0;bottom:0;right:0;overflow-y:auto;box-shadow:-20px 0 60px #0f081440}@keyframes fade{0%{opacity:0}}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}}@media (prefers-reduced-motion:reduce){.drawer,.drawer-backdrop,.skel,.spin,.spinner{animation:none}}.drawer-head{z-index:2;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 20px 14px;display:flex;position:sticky;top:0}.drawer-heading{min-width:0}.eyebrow{text-transform:uppercase;letter-spacing:.07em;color:var(--brand-ink);font-size:11px;font-weight:800}.drawer-title{overflow-wrap:anywhere;font-size:18px;font-weight:800}.drawer-body{gap:22px;padding:16px 20px 32px;display:grid}.drawer-h{margin-bottom:10px;font-size:14px;font-weight:800}.facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.fact{background:var(--surface);border:1px solid var(--border);border-radius:14px;min-width:0;padding:10px 12px}.fact-label{color:var(--muted);font-size:12px;font-weight:700}.fact-value{font-size:16px;font-weight:800}.fact-sub{color:var(--muted);font-size:12px}.profiles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.profile{background:var(--surface);border:1px solid var(--border);border-radius:16px;gap:10px;padding:12px 14px;display:grid}.profile-head{align-items:center;gap:10px;display:flex}.avatar{color:#fff;background:linear-gradient(135deg,#e052f5,#8b5cf6);border-radius:50%;flex:none;place-items:center;width:38px;height:38px;font-size:16px;font-weight:800;display:grid}.profile-id{justify-items:start;gap:2px;min-width:0;display:grid}.profile-name{overflow-wrap:anywhere;font-weight:800}.profile-streak{color:var(--ink-2);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:700}.profile-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;display:grid}.profile-stats div{min-width:0}.profile-stats dt{color:var(--muted);font-size:11px}.profile-stats dd{font-variant-numeric:tabular-nums;margin:0;font-weight:800}.profile-acc{grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.sess-list{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin:0;padding:0;list-style:none}.sess-row{border-bottom:1px solid var(--gridline);grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:12px;padding:9px 12px;display:grid}.sess-row:last-child{border-bottom:0}.sess-main{flex-wrap:wrap;align-items:baseline;gap:2px 8px;min-width:0;display:flex}.sess-kind{font-weight:700}.sess-level{color:var(--ink-2);font-size:13px}.sess-time{color:var(--muted);flex-basis:100%;font-size:12px}.sess-score{font-variant-numeric:tabular-nums;justify-items:end;gap:4px;display:grid}.drawer-id{color:var(--muted);font-size:12px}.drawer-id code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace}.auth{background:radial-gradient(900px 520px at 0% -10%, var(--auth-glow-1), transparent 60%), radial-gradient(800px 480px at 100% 110%, var(--auth-glow-2), transparent 60%), var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100dvh;padding:32px 16px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:28px;width:min(420px,100%);padding:28px;box-shadow:0 24px 60px #50145a1f}.auth-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.auth-brand img{border-radius:14px;display:block}.auth-name{letter-spacing:-.01em;font-size:20px;font-weight:800}.auth-tag{text-transform:uppercase;letter-spacing:.07em;color:var(--brand-ink);font-size:12px;font-weight:800}.auth-form,.auth-state{gap:14px;display:grid}.auth-title{letter-spacing:-.01em;font-size:22px;font-weight:800;line-height:1.25}.auth-text{color:var(--ink-2)}.auth-notice{background:var(--brand-wash);border-radius:12px;padding:10px 12px;font-size:13.5px}.auth-detail{color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}.auth-hint{color:var(--muted);font-size:13px}.auth-actions{flex-wrap:wrap;gap:10px;display:flex}.auth-links{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13.5px;display:flex}.auth-icon{background:var(--brand-wash);width:46px;height:46px;color:var(--brand-ink);border-radius:14px;place-items:center;display:grid}.auth-icon-warn{background:var(--critical-bg);color:var(--critical-ink)}.auth-checking{color:var(--ink-2);align-items:center;gap:10px;padding:8px 0;display:flex}.auth-foot{color:var(--muted);font-size:12px}.field{gap:6px;display:grid}.field-label{color:var(--ink-2);font-size:13px;font-weight:700}.input-code{text-align:center;letter-spacing:.4em;font-variant-numeric:tabular-nums;min-height:58px;padding-left:calc(14px + .4em);font-size:26px;font-weight:800}.input-code:disabled{opacity:.55}.form-error{background:var(--critical-bg);border:1px solid var(--critical-border);color:var(--ink);border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:13.5px;display:flex}.form-error svg{color:var(--critical-ink);flex:none;margin-top:1px}.spinner{border:2.5px solid var(--brand-wash);border-top-color:var(--series-1);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@media (width<=440px){.auth-card{border-radius:22px;padding:22px 18px}}
