:root{--bg: #07111f;--panel: #0d1b2e;--panel-2: #12263f;--text: #f4f7fb;--muted: #aab8cc;--primary: #42f58d;--secondary: #43b7ff;--warning: #ffb020;--danger: #ff5c7a;--border: rgba(255, 255, 255, .14);--radius: 14px;--radius-sm: 9px;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:radial-gradient(1200px 600px at 80% -10%,rgba(67,183,255,.12),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(66,245,141,.1),transparent 55%),var(--bg);background-repeat:no-repeat;background-attachment:fixed;color:var(--text);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:var(--secondary)}.site-footer{margin-top:auto;border-top:1px solid var(--border);padding:16px 18px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;color:var(--muted);font-size:13px}.site-footer__link{color:var(--muted);text-decoration:none}.site-footer__link:hover,.site-footer__link:focus-visible{color:var(--text);text-decoration:underline}.site-footer__dot{opacity:.5}.site-footer__version{opacity:.75;font-variant-numeric:tabular-nums;cursor:help}.prose{line-height:1.6}.prose h2{margin-top:1.5em;font-size:1.12rem}.prose ul{padding-left:1.2em}.prose li{margin:.3em 0}.prose code{background:var(--panel-2);padding:1px 6px;border-radius:6px;font-size:.9em}h1,h2,h3{line-height:1.1;margin:0 0 .4em}.app-shell{min-height:100%;display:flex;flex-direction:column}.skip-link{position:absolute;left:12px;top:12px;z-index:1000;padding:10px 14px;border-radius:var(--radius-sm);background:var(--panel);color:var(--text);border:1px solid var(--border);font-weight:700;text-decoration:none;clip:rect(0 0 0 0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.skip-link:focus,.skip-link:focus-visible{clip:auto;clip-path:none;width:auto;height:auto;overflow:visible;outline:2px solid var(--secondary);outline-offset:2px}main#main{flex:1 0 auto;outline:none}.container{width:min(1100px,92vw);margin:0 auto;padding:28px 0 64px}.brandbar{display:flex;align-items:center;gap:14px;padding:16px 0}.brandbar .logo{font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-size:14px}.brandbar .sub{color:var(--muted);font-size:13px;letter-spacing:.04em}.brand-version{margin-left:4px;padding:1px 6px;border:1px solid var(--border);border-radius:999px;font-size:11px;opacity:.7}.panel{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:0 18px 50px #00000059}.panel+.panel{margin-top:20px}.grid-2{display:grid;gap:20px;grid-template-columns:1fr 1fr}@media(max-width:800px){.grid-2{grid-template-columns:1fr}}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--secondary);font-size:12px;font-weight:700;margin-bottom:6px}.muted{color:var(--muted)}label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:600}input[type=text],input[type=number],input[type=password],textarea,select{width:100%;background:#00000047;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:12px 14px;font-size:16px;font-family:inherit}textarea{min-height:150px;resize:vertical;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:14px}select{background-color:var(--panel-2);background-image:linear-gradient(45deg,transparent 50%,var(--secondary) 50%),linear-gradient(135deg,var(--secondary) 50%,transparent 50%);background-position:calc(100% - 20px) 1.1em,calc(100% - 14px) 1.1em;background-size:6px 6px,6px 6px;background-repeat:no-repeat;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:38px;cursor:pointer}select option,select optgroup{background-color:#0a1626;color:var(--text)}select optgroup{color:var(--secondary);font-weight:700}select option{padding:8px 10px;font-weight:500}select option:checked{background-color:var(--primary);color:#042013}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px #43b7ff40}.field+.field{margin-top:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--text);font-weight:700;font-size:15px;padding:12px 18px;border-radius:var(--radius-sm);cursor:pointer;transition:transform .05s ease,filter .15s ease}.btn:hover{filter:brightness(1.12)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#042013;border-color:transparent}.btn-secondary{background:var(--secondary);color:#032034;border-color:transparent}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-ghost{background:transparent}.btn-lg{font-size:18px;padding:16px 26px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.04em;border:1px solid var(--border);color:var(--muted)}.pill.lobby{color:var(--warning);border-color:var(--warning)}.pill.active{color:var(--primary);border-color:var(--primary)}.pill.ended{color:var(--muted)}.code-display{font-size:clamp(40px,9vw,88px);font-weight:900;letter-spacing:.12em;color:var(--primary);text-align:center;font-family:ui-monospace,Cascadia Code,Consolas,monospace}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;-webkit-user-select:none;user-select:none}th[aria-sort]{position:relative}th[aria-sort=ascending]:after{content:" ▲"}th[aria-sort=descending]:after{content:" ▼"}th[aria-sort]:not([aria-sort=none]){color:var(--text)}tbody tr:hover{background:#ffffff08}.table-wrap{overflow-x:auto}.btn:focus-visible,th[tabindex]:focus-visible,a:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.countdown-num{animation:none}.btn{transition:none}}.yes{color:var(--primary);font-weight:700}.no{color:var(--muted)}.error{color:var(--danger);font-size:14px;margin-top:8px}.center{text-align:center}.stack{display:flex;flex-direction:column;gap:14px}.test-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;position:relative;background:var(--bg);padding:24px}.test-corner-cat{position:fixed;top:16px;left:18px;opacity:.6}.test-main{width:min(640px,94vw);text-align:center}.test-timer{font-size:clamp(28px,6vw,44px);font-weight:800;font-variant-numeric:tabular-nums;color:var(--secondary);letter-spacing:.04em;margin-bottom:28px}.test-timer.low{color:var(--danger)}.test-form{display:flex;flex-direction:column;align-items:center;gap:clamp(20px,3vw,30px)}.test-line{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:nowrap}.test-eq{font-size:clamp(40px,9vw,76px);font-weight:800;font-variant-numeric:tabular-nums;min-width:6em;text-align:right;white-space:nowrap}.test-line input{width:clamp(120px,26vw,200px);font-size:clamp(38px,8.5vw,68px);font-weight:800;text-align:center;padding:6px 12px;font-variant-numeric:tabular-nums}.test-submit{font-size:20px;padding:14px 30px}.test-stats{display:flex;justify-content:center;gap:40px;margin-top:44px}.test-stats>div{display:flex;flex-direction:column;gap:4px}.test-stat-label{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.test-stat-val{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}.test-stat-val.good{color:var(--primary)}.test-stat-val.bad{color:var(--danger)}.test-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px;background:#07111fdb;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10}.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;max-width:360px;margin:22px auto 0}.result-grid>div{display:flex;justify-content:space-between;border-bottom:1px solid var(--border);padding:8px 0;font-size:17px}.practice-facts{margin-top:18px;padding-top:16px;border-top:1px solid var(--border);text-align:center}.fact-chip-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:10px}.fact-chip{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;font-size:15px;white-space:nowrap}.heat-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.heat-chip{border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.heat-fact{font-size:18px;font-weight:700}.heat-meta{margin-top:4px;font-size:12px;color:var(--muted)}.auth-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-2)}.auth-avatar{border-radius:50%;object-fit:cover}.auth-btn-sm{padding:4px 12px;font-size:13px}.countdown-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:50}.countdown-num{font-size:clamp(120px,30vw,280px);font-weight:800;line-height:1;color:var(--secondary);text-shadow:0 0 40px rgba(67,183,255,.5);animation:countdown-pop .62s ease-out both}.countdown-num.go{color:var(--primary);text-shadow:0 0 48px rgba(66,245,141,.6);animation-duration:.42s}@keyframes countdown-pop{0%{transform:scale(.4);opacity:0}35%{transform:scale(1.12);opacity:1}to{transform:scale(1);opacity:1}}.board{min-height:100vh;padding:clamp(20px,3vw,44px)}.board-head{display:flex;align-items:center;gap:18px;margin-bottom:clamp(16px,2.4vw,32px)}.board-controls{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.board-updated{font-size:clamp(11px,1.3vw,15px);color:var(--muted);letter-spacing:.04em}.board.projector{--bg: #ffffff;--panel: #ffffff;--panel-2: #eef3f8;--text: #0a1422;--muted: #3a4a5e;--primary: #0a7a3f;--secondary: #0b5ea8;--warning: #a8530a;--danger: #b1213c;--border: rgba(0, 0, 0, .2);background:#fff;color:var(--text)}.board.projector .board-card{background:#fff;box-shadow:0 4px 14px #0000001a}.board.projector .board-card.highlight{background:#fff8ec;box-shadow:0 0 0 2px var(--warning)}.board-logo{font-size:clamp(28px,4.5vw,56px);font-weight:900;letter-spacing:.14em;color:var(--primary)}.board-sub{font-size:clamp(15px,2vw,24px);color:var(--muted);letter-spacing:.08em}.board-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(14px,2vw,26px)}.board-card{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:var(--radius);padding:clamp(18px,2.4vw,34px)}.board-card.span-2{grid-column:span 2}.board-card.highlight{border-color:var(--warning);box-shadow:0 0 40px #ffb0202e}@media(max-width:720px){.board-grid{grid-template-columns:1fr}.board-card.span-2{grid-column:span 1}}.board-cat-title{font-size:clamp(18px,2.6vw,30px);letter-spacing:.12em;color:var(--secondary);margin-bottom:14px}.board-empty{font-size:clamp(22px,3.4vw,40px);color:var(--muted);font-weight:700}.board-ranks{list-style:none;margin:0;padding:0}.board-ranks li{display:grid;grid-template-columns:clamp(56px,8vw,110px) clamp(70px,9vw,130px) 1fr;align-items:baseline;gap:18px;padding:clamp(6px,1vw,12px) 0;border-bottom:1px solid var(--border)}.board-ord{font-size:clamp(20px,3vw,34px);color:var(--muted);font-weight:800}.board-score{font-size:clamp(34px,5.5vw,64px);font-weight:900;color:var(--primary);font-variant-numeric:tabular-nums}.board-names{font-size:clamp(20px,3vw,38px);font-weight:700}.board-champ{text-align:center}.board-champ-names{font-size:clamp(26px,4vw,52px);font-weight:900}.board-champ-value{font-size:clamp(40px,8vw,92px);font-weight:900;color:var(--warning);font-variant-numeric:tabular-nums}.board-crown{color:var(--muted);font-style:italic;font-size:clamp(14px,1.8vw,22px)}.board-besttime{font-size:clamp(18px,2.6vw,30px);color:var(--muted);margin-bottom:10px}.board-besttime b{color:var(--warning);font-variant-numeric:tabular-nums;font-size:clamp(22px,3.2vw,38px)}.board-alltime{list-style:none;margin:0;padding:0;columns:2;column-gap:clamp(20px,4vw,60px)}@media(max-width:720px){.board-alltime{columns:1}}.board-alltime li{display:grid;grid-template-columns:clamp(28px,4vw,48px) clamp(70px,9vw,120px) 1fr;align-items:baseline;gap:14px;padding:clamp(4px,.7vw,9px) 0;border-bottom:1px solid var(--border);break-inside:avoid}.board-alltime-time{font-size:clamp(20px,3vw,34px);font-weight:900;color:var(--secondary);font-variant-numeric:tabular-nums}.board-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:clamp(12px,2vw,26px)}.board-stats>div{display:flex;flex-direction:column;gap:4px}.board-stats b{font-size:clamp(28px,4vw,52px);font-weight:900;color:var(--text);font-variant-numeric:tabular-nums}.board-stats span{font-size:clamp(13px,1.6vw,20px);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.cat-line{color:var(--secondary);font-style:italic;letter-spacing:.02em}.why-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));margin-top:18px}.why-card{background:#ffffff08;border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px}.why-card__idea{font-size:13px;margin:10px 0 8px}.why-card__built{font-size:14.5px;margin:0}.why-compare th,.why-compare td{white-space:normal;vertical-align:top;min-width:180px;cursor:default}.why-compare__us{background:#42f58d12;border-left:2px solid var(--primary);border-right:2px solid var(--primary)}th.why-compare__us{color:var(--primary)}.tiles{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:24px}.tile{text-decoration:none;color:inherit;display:block}.tile .panel{height:100%}.tile h3{color:var(--text)}.auth-box-stack{flex-direction:column;align-items:stretch}.student-login{display:flex;flex-direction:column;gap:10px;width:100%;max-width:340px}.student-login-title{margin:0;font-size:16px}.student-login-field{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.student-login-field input{width:100%}.student-login-actions{display:flex;flex-wrap:wrap;gap:8px}.student-login-error{margin:0;color:var(--danger);font-size:13px}.student-login-help{margin:0;font-size:12px}.auth-google{padding-top:8px;border-top:1px solid var(--border)}.auth-google-pending{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.auth-google-pending .btn[disabled]{opacity:.5;cursor:not-allowed}.auth-entry-panel,.auth-session-panel,.auth-secondary{width:min(620px,100%);margin-inline:auto}.auth-entry-panel,.auth-session-panel{margin-top:18px}.auth-entry-panel h1,.auth-session-panel h1{font-size:clamp(28px,4vw,40px)}.auth-entry-intro,.auth-role-copy{margin:6px 0 0}.auth-session-loading{min-height:132px;display:grid;place-items:center}.auth-session-loading p{margin:0}.auth-role-switch{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:18px;padding:4px;border:1px solid var(--border);border-radius:999px;background:#0000003d}.auth-role-option{min-height:44px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:inherit;font-weight:800;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.auth-role-option[aria-pressed=true]{background:var(--secondary);color:#032034;box-shadow:0 5px 18px #43b7ff38}.auth-role-option:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.auth-role-panel{margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.auth-role-panel h2{font-size:clamp(21px,3vw,27px)}.auth-role-panel .student-login{max-width:none;margin-top:16px}.auth-role-panel>.auth-box{margin-top:14px;padding:0;border:0;background:transparent}.auth-loading{margin:14px 0 0;font-size:13px}.auth-backup-sign-in{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.auth-backup-sign-in summary{color:var(--muted);font-size:13px;font-weight:700;cursor:pointer}.auth-backup-sign-in summary:focus-visible{outline:2px solid var(--secondary);outline-offset:4px;border-radius:4px}.auth-backup-body{margin-top:12px}.auth-backup-body>p{margin:0 0 12px;font-size:13px}.auth-secondary{margin-top:14px}.auth-secondary-label{display:block;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.auth-secondary-actions,.auth-primary-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.auth-secondary-link{display:flex;min-height:64px;flex-direction:column;justify-content:center;gap:3px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#ffffff06;color:var(--text);text-decoration:none}.auth-secondary-link:hover,.auth-secondary-link:focus-visible{border-color:var(--secondary);background:#43b7ff12}.auth-secondary-link span{color:var(--muted);font-size:12px;font-weight:500}.auth-session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.auth-session-error{margin:12px 0 0;color:var(--danger);font-size:13px}.auth-primary-actions{margin-top:22px}@media(max-width:520px){.auth-entry-panel,.auth-session-panel{padding:18px}.auth-secondary-actions,.auth-primary-actions{grid-template-columns:1fr}.auth-session-head{align-items:stretch;flex-direction:column}.auth-session-head>.btn{align-self:flex-start}}.credential-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:12px}.credential-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;background:var(--panel-2);break-inside:avoid}.credential-card-name{font-weight:700;margin-bottom:8px}.credential-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:4px}.credential-card-row code{font-size:15px;letter-spacing:.02em}.credential-card-label{font-size:12px;color:var(--muted)}.credential-card-foot{margin-top:10px;font-size:11px;color:var(--muted)}@media print{.no-print,.brandbar,.site-footer{display:none!important}.credential-issue~.panel,.panel:has(~.credential-issue){display:none!important}body,.app-shell{background:#fff!important;color:#000!important}.panel,.credential-card{background:#fff!important;color:#000!important;border-color:#999!important;box-shadow:none!important}.credential-card-label,.credential-card-foot,.muted{color:#444!important}.credential-cards{grid-template-columns:repeat(2,1fr)}}.practice-only-notice{margin:14px 0 0;padding:10px 12px;border:1px solid var(--warning, #d9a441);border-left-width:4px;border-radius:var(--radius-sm);background:#d9a4411a;font-size:14px;line-height:1.45}.teacher-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:20px;padding:16px 20px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius)}.teacher-nav-tabs{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.teacher-nav-tab{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:var(--radius-sm);font-size:14px;font-weight:700;color:var(--muted);background:transparent;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background .15s ease,color .15s ease,border-color .15s ease}.teacher-nav-tab:hover{color:var(--text);background:#ffffff0d}.teacher-nav-tab.active{color:var(--text);background:var(--panel-2);border-color:var(--border);box-shadow:0 2px 8px #0003}.teacher-nav-tab .badge{font-size:11px;padding:1px 7px;border-radius:999px;background:#ffffff1a;color:var(--text)}.teacher-nav-tab.active .badge{background:var(--primary);color:#051a10;font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-bottom:20px}.stat-card{padding:18px 20px;border-radius:var(--radius);background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);box-shadow:0 8px 24px #0003}.stat-card__label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px}.stat-card__value{font-size:2rem;font-weight:900;letter-spacing:-.02em;line-height:1.1;color:var(--text)}.stat-card__sub{font-size:12px;color:var(--muted);margin-top:6px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#040a12bf;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px}.modal-sheet{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:760px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 70px #0009;padding:24px;outline:none}.clickable-row{cursor:pointer;transition:background-color .12s ease}.clickable-row:hover{background:#43b7ff14!important}.source-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.source-badge--official{background:#43b7ff26;color:var(--secondary);border:1px solid rgba(67,183,255,.3)}.source-badge--practice{background:#42f58d26;color:var(--primary);border:1px solid rgba(66,245,141,.3)}.status-indicator{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}.status-dot{width:8px;height:8px;border-radius:50%}.status-dot--active{background:var(--primary);box-shadow:0 0 8px var(--primary)}.status-dot--idle{background:var(--muted);opacity:.5}.welcome-page{max-width:1100px}.welcome-heading{max-width:760px;margin:40px 0 28px}.welcome-heading h1{font-size:clamp(34px,4.5vw,58px);line-height:1.08;margin:12px 0 18px}.welcome-heading h1 span{color:var(--primary)}.welcome-heading p{font-size:18px;max-width:620px}.welcome-signins{display:grid;grid-template-columns:1.25fr 1fr;gap:20px}.welcome-signins h2{margin:8px 0}.welcome-student{border-color:var(--primary)}.welcome-signins .btn{margin:12px 0}.welcome-guest{margin:26px 0;text-align:center}.welcome-guest p{margin:6px;color:var(--muted);font-size:14px}.saving-note{color:var(--primary);font-weight:700}.practice-save-status{color:var(--text);font-weight:700}.student-identity{display:flex;align-items:center;gap:16px;margin:20px 0 16px}.student-identity h1{font-size:32px;margin:4px 0}.student-identity p{margin:0}.student-identity>button{margin-left:auto}.student-identity .saving-note{display:block;margin-top:5px}.student-actions,.action-row{display:flex;flex-wrap:wrap;gap:8px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin:24px 0 14px}.section-heading h2{margin:4px 0}.section-heading label,.compact-filters label{font-size:13px;color:var(--muted);display:grid;gap:5px}.section-heading select{max-width:100%}.compact-filters{display:flex;gap:12px;flex-wrap:wrap}.personal-record-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.personal-record{background:var(--panel);border:1px solid var(--border);border-top:3px solid var(--secondary);border-radius:12px;padding:20px}.personal-record--300{border-top-color:var(--warning)}.record-duration{font-size:17px;font-weight:900;letter-spacing:.04em}.personal-record p{margin:8px 0;font-size:14px}.record-number{font-size:52px;font-weight:900;line-height:1.1;margin:18px 0 12px;color:var(--primary);font-variant-numeric:tabular-nums}.record-number span{font-size:15px;display:block;color:var(--muted);font-weight:500;margin-top:5px}.record-standards{margin:16px 0}.record-standards>div{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--border);font-size:14px}.record-standards dd{margin:0;font-weight:800}.personal-record .btn{width:100%;margin-top:10px}.record-change{color:var(--secondary)}.progress-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:20px 0;margin:20px 0;border-block:1px solid var(--border);gap:14px}.progress-strip strong{display:block;font-size:26px;font-variant-numeric:tabular-nums}.progress-strip span{color:var(--muted);font-size:13px}.scope-note{font-size:13px;color:var(--muted);line-height:1.5}.more-records{margin:24px 0;border-top:1px solid var(--border);padding-top:18px}.more-records summary{cursor:pointer;font-weight:700;padding:10px 0}.personal-record-list>div{display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;border-bottom:1px solid var(--border);padding:12px 0}.record-board-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.benchmark-section{margin-top:24px}.benchmark-heading{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px}.benchmark-heading h2{margin:0;font-size:20px;letter-spacing:.05em}.benchmark-heading span{color:var(--muted);font-size:14px}.record-board{padding:16px;background:var(--panel);border:1px solid var(--border);border-radius:10px;min-width:0}.record-board h3{margin:0;font-size:17px;color:var(--primary)}.record-board--premier{border-color:var(--warning)}.record-board--premier h3,.record-first{color:var(--warning);font-weight:800}.record-board p{font-size:12px;margin:8px 0 12px}.record-board td,.record-board th{padding:9px 7px;font-size:13px}.text-button{background:none;border:0;color:var(--secondary);font:inherit;text-align:left;padding:3px 0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.empty-state{padding:15px 0;color:var(--muted)}.save-recovery{position:sticky;bottom:0;z-index:100;background:#17283a;border:2px solid var(--warning);padding:14px 20px;margin:12px auto;max-width:1100px;box-shadow:0 -8px 24px #0005}.save-recovery p{margin:6px 0 10px}.table-wrap{max-width:100%;overflow-x:auto}.table-wrap table{width:100%}.table-wrap:focus-visible{outline:3px solid var(--secondary);outline-offset:3px}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--secondary);outline-offset:3px}.grid-2>*,.container>*{min-width:0}@media(min-width:1024px){.container:has(.record-book),.container:has(.teacher-nav){max-width:1280px}}@media(max-width:1024px){.record-board-pair{grid-template-columns:1fr}.personal-record{padding:16px}.record-number{font-size:44px}}@media(max-width:650px){.welcome-signins,.personal-record-grid{grid-template-columns:1fr}.welcome-heading{margin-top:25px}.student-identity{align-items:flex-start}.student-identity h1{font-size:28px}.student-identity>svg{display:none}.student-actions .btn{flex:1 1 45%}.progress-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.record-board-pair{grid-template-columns:1fr}.section-heading label,.compact-filters{width:100%}.compact-filters label{flex:1 1 140px}.compact-filters select{width:100%}.save-recovery{margin:0;padding:12px}.container{padding-inline:16px}.record-board{padding:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}}.welcome-signins>.panel,.grid-2>.panel{margin-top:0}.student-dashboard .brandbar{margin-bottom:0}.student-identity{margin-block:12px}.student-dashboard .section-heading{margin-top:18px}.personal-record{padding:16px;display:flex;flex-direction:column}.personal-record .btn{margin-top:auto}.record-number{font-size:46px;margin:12px 0 8px}.record-standards{margin:10px 0}.student-dashboard .personal-record>p.muted{min-height:20px}.teacher-overview .section-heading{margin:16px 0 10px}.teacher-overview .section-heading p{margin:4px 0}.teacher-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.teacher-summary>div{padding:14px 16px;background:var(--panel);border:1px solid var(--border);border-radius:9px}.teacher-summary span{display:block;font-size:13px;color:var(--muted)}.teacher-summary strong{display:block;font-size:28px;margin-top:5px;font-variant-numeric:tabular-nums}.teacher-summary small{font-size:15px;color:var(--muted)}.snapshot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.snapshot-grid>div{padding:12px 16px;border-left:3px solid var(--primary);background:var(--panel)}.snapshot-grid>div:last-child{border-color:var(--warning)}.snapshot-grid strong{float:right;margin:7px 0}.snapshot-grid small{display:block;color:var(--muted);font-size:12px;clear:both}.overview-feeds{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:24px;align-items:start;margin-top:8px}.overview-feeds h3{margin:0;font-size:17px}.overview-feeds th,.overview-feeds td{padding:9px 7px;font-size:12px}.overview-feeds small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.pb-feed>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding:11px 0;font-size:13px}.pb-feed>div>div:last-child{text-align:right;flex-shrink:0}.class-diagnostics{margin-top:22px}@media(max-width:1100px){.overview-feeds{grid-template-columns:1fr}.teacher-summary>div{padding:12px}.snapshot-grid strong{float:none;display:block}}@media(max-width:650px){.teacher-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.snapshot-grid{grid-template-columns:1fr}.personal-record .btn{margin-top:12px}}.teacher-header>div{min-width:0;max-width:100%}.teacher-nav-tabs{max-width:100%}.snapshot-grid .text-button{margin-right:8px}.modal-sheet section{margin-block:0}.modal-sheet .section-heading{margin:8px 0 12px}@media(min-width:1024px){.container:has(.teacher-header){max-width:1280px;padding-top:20px}.container:has(.teacher-header)>.brandbar{margin-bottom:12px}.teacher-header{padding:10px 16px;gap:8px;margin-bottom:12px}.teacher-overview>.assigned-notice{margin:8px 0;font-size:13px}.teacher-overview>.assigned-notice .btn{padding:6px 12px;min-height:34px}.teacher-overview .section-heading{margin:12px 0 8px}.teacher-overview .section-heading h3{margin:4px 0}.teacher-summary>div{padding:10px 14px}.snapshot-grid>div{padding:10px 14px}.student-dashboard{padding-top:20px}.student-identity h1{font-size:30px}.student-dashboard .section-heading{margin-top:12px;margin-bottom:8px}.student-dashboard .personal-record>p.muted{font-size:13px}.student-dashboard .personal-record p{margin:5px 0}.student-dashboard .record-number{margin:8px 0 4px;font-size:42px}.student-dashboard .record-standards{margin:6px 0}.student-dashboard .record-standards>div{padding:6px 0}}@media(max-width:650px){.teacher-header{padding:12px}.teacher-header>div{width:100%}.teacher-nav-tabs{flex-wrap:wrap;gap:4px}.teacher-nav-tab{padding:8px}.brandbar .sub{max-width:270px}.modal-sheet{padding:16px}}[tabindex]:focus-visible{outline:3px solid var(--secondary);outline-offset:3px}.overview-feeds>section{min-width:0}@media(max-width:1100px){.overview-feeds{grid-template-columns:minmax(0,1fr)}}.student-roster-table th[aria-sort]:after{content:none}.session-setup-grid{align-items:start}.session-config-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}.session-config-fields .field{min-width:0;margin-top:8px}.session-config-fields .field:first-child{grid-column:1 / -1}.session-config-fields .field:nth-child(2){grid-column:1 / -1}.session-config-fields .field p{margin:5px 0}.teacher-overview-v2{display:flex;flex-direction:column;gap:20px;margin-top:12px}.overview-header-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding-bottom:4px}.overview-title-meta h2{margin:0;font-size:24px;letter-spacing:-.01em}.overview-class-subtitle{display:block;font-size:13px;margin-top:2px}.period-toggle-group{display:flex;gap:6px;background:var(--panel);padding:4px;border:1px solid var(--border);border-radius:var(--radius-sm)}.period-toggle-group .btn{font-size:13px;padding:5px 12px;min-height:32px;border-radius:6px}.period-toggle-group .period-active{background:var(--secondary);color:#07111f;font-weight:600}.class-pulse-band{width:100%}.class-pulse-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.pulse-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;display:flex;flex-direction:column;justify-content:space-between;min-height:110px;box-shadow:0 4px 12px #00000026;position:relative;overflow:hidden}.pulse-label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.pulse-value{font-size:32px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;margin:4px 0 2px}.pulse-value small{font-size:16px;font-weight:400;color:var(--muted)}.pulse-highlight{color:var(--primary)}.pulse-subtext{font-size:12px;color:var(--muted)}.pulse-val-row{display:flex;align-items:baseline;gap:8px}.trend-pill{font-size:12px;font-weight:700;padding:2px 7px;border-radius:12px;letter-spacing:-.01em}.trend-pill.positive{background:#42f58d26;color:var(--primary)}.trend-pill.negative{background:#ff5c7a26;color:var(--danger)}.pulse-radial-wrap{display:flex;align-items:center;gap:14px;height:100%}.pulse-radial-svg{flex-shrink:0}.radial-bg{stroke:var(--panel-2)}.radial-fill{stroke:var(--primary);transition:stroke-dashoffset .4s ease}.radial-text{fill:var(--text);font-size:15px;font-weight:700;font-family:inherit}.pulse-info{display:flex;flex-direction:column;justify-content:center}.pulse-sparkline{display:flex;align-items:flex-end;gap:4px;height:28px;margin-top:6px;padding-top:4px}.spark-bar{flex:1;background:var(--panel-2);border-radius:2px;min-height:4px;transition:height .3s ease}.spark-bar.active{background:var(--secondary)}.official-acc-badge{font-size:12px;font-weight:600;color:var(--secondary);background:#43b7ff1f;padding:2px 6px;border-radius:6px}.pulse-link-btn{background:none;border:none;color:var(--secondary);font-size:12px;font-weight:600;padding:0;cursor:pointer;text-align:left;margin-top:4px}.pulse-link-btn:hover{text-decoration:underline}.activity-trend-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px}.trend-hover-badge{font-size:13px;background:var(--panel-2);border:1px solid var(--border);padding:4px 10px;border-radius:6px;color:var(--text)}.trend-pb-tag{color:var(--warning);font-weight:600}.trend-chart-container{margin-top:14px;position:relative}.trend-svg{width:100%;height:140px;overflow:visible}.chart-grid-line{stroke:#ffffff0f;stroke-dasharray:4 4}.chart-baseline{stroke:#ffffff1f}.chart-bar-group{cursor:pointer;outline:none}.chart-bar-group:focus .chart-bar,.chart-bar-group.is-active .chart-bar{filter:brightness(1.25)}.chart-bar-group:focus .chart-hover-slot,.chart-bar-group:hover .chart-hover-slot{fill:#ffffff0a}.chart-bar{transition:height .25s ease,y .25s ease}.bar-standard{fill:var(--secondary)}.bar-has-pbs{fill:var(--primary)}.chart-x-label{fill:var(--muted);font-size:11px;font-family:inherit}.trend-chart-legend{display:flex;gap:18px;margin-top:8px;font-size:12px;color:var(--muted)}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot-practice{background:var(--secondary)}.dot-pb{background:var(--primary)}.trend-empty-card{padding:30px;text-align:center}.overview-split-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}@media(max-width:1024px){.overview-split-row{grid-template-columns:1fr}}.momentum-card-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px;display:flex;flex-direction:column}.momentum-list{display:flex;flex-direction:column;gap:12px;margin-top:10px;flex:1}.momentum-row{display:flex;flex-direction:column;gap:4px}.momentum-meta{display:flex;justify-content:space-between;align-items:baseline}.momentum-name{font-size:14px;font-weight:600;text-align:left;padding:0}.momentum-badge{font-size:12px;font-weight:700;color:var(--primary);background:#42f58d1f;padding:2px 7px;border-radius:6px}.momentum-bar-track{width:100%;height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden}.momentum-bar-fill{height:100%;background:linear-gradient(90deg,#38c872,#42f58d);border-radius:4px;transition:width .3s ease}.momentum-footer{margin-top:auto;padding-top:10px;border-top:1px solid var(--border)}.momentum-summary-text{font-size:12px;color:var(--muted)}.momentum-empty{padding:24px;text-align:center}.participation-card-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px;display:flex;flex-direction:column}.participation-counts{font-size:13px;font-weight:600}.part-count-active{color:var(--primary)}.part-count-inactive{color:var(--muted)}.participation-grid{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.part-dot{width:22px;height:22px;border-radius:50%;border:none;cursor:pointer;padding:0;position:relative;transition:transform .15s ease,filter .15s ease}.part-dot:hover,.part-dot:focus{transform:scale(1.25);outline:2px solid var(--text);outline-offset:1px}.dot-active_today{background:var(--primary);box-shadow:0 0 6px #42f58d66}.dot-active_period{background:var(--secondary)}.dot-inactive{background:var(--panel-2);border:1.5px solid rgba(255,255,255,.18)}.participation-inspector{min-height:28px;padding:6px 10px;background:var(--panel-2);border-radius:6px;border:1px solid var(--border);display:flex;align-items:center;font-size:13px}.part-hover-info{display:flex;align-items:center;gap:8px}.part-inspect-name{font-weight:600;padding:0}.part-inspect-detail{color:var(--muted)}.participation-legend{display:flex;gap:14px;margin-top:10px;font-size:12px;color:var(--muted)}.class-records-section{width:100%}.records-achievement-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:10px}@media(max-width:768px){.records-achievement-grid{grid-template-columns:1fr}}.record-achievement-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;display:flex;flex-direction:column;justify-content:space-between;min-height:160px;box-shadow:0 4px 14px #0003;position:relative}.record-badge-amber{border-left:4px solid var(--warning)}.record-badge-gold{border-left:4px solid #ffd700;background:linear-gradient(180deg,rgba(255,215,0,.04),var(--panel))}.record-header{display:flex;align-items:center;gap:8px}.record-icon{font-size:16px;line-height:1}.record-type-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);flex:1}.record-alltime-tag{font-size:10px;font-weight:700;letter-spacing:.04em;background:#ffffff14;padding:2px 6px;border-radius:4px;color:var(--muted)}.record-content{margin:12px 0 8px}.record-big-number{font-size:40px;font-weight:800;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text)}.record-holder-row{display:flex;align-items:baseline;gap:8px;margin-top:6px}.record-student-name{font-size:16px;font-weight:700;color:var(--primary);padding:0}.record-tied-badge{background:#ffffff14;border:none;font-size:12px;color:var(--muted);padding:2px 6px;border-radius:4px;cursor:pointer}.record-tied-badge:hover{color:var(--text);text-decoration:underline}.record-open-content{display:flex;flex-direction:column;justify-content:center;min-height:60px}.record-open-label{font-size:26px;font-weight:700;color:var(--muted);letter-spacing:.02em}.record-open-subtext{font-size:12px;margin-top:4px}.record-footer{border-top:1px solid rgba(255,255,255,.06);padding-top:8px}.record-scope-subtext{font-size:11px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.records-all-btn{font-size:13px;font-weight:600}.recent-activity-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px;display:flex;flex-direction:column}.recent-feed-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.recent-feed-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border-radius:6px;background:#ffffff05;border:1px solid rgba(255,255,255,.05)}.feed-col-student{display:flex;flex-direction:column;min-width:0;flex:1}.feed-student-btn{font-size:14px;font-weight:600;text-align:left;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-config-label{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feed-col-score{display:flex;flex-direction:column;align-items:flex-end;min-width:60px}.feed-fraction{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.feed-acc-pct{font-size:11px;color:var(--primary);font-weight:600}.feed-col-meta{display:flex;flex-direction:column;align-items:flex-end;min-width:70px}.feed-elapsed{font-size:12px;font-variant-numeric:tabular-nums}.feed-when{font-size:11px}.recent-feed-empty{padding:24px;text-align:center}.worth-a-look-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 20px;display:flex;flex-direction:column}.signals-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.signal-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:8px}.signal-content{flex:1;min-width:0}.signal-title-row{display:flex;align-items:center;gap:8px}.signal-count-badge{font-size:12px;font-weight:800;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.signal-badge-warning{background:#ffb02033;color:var(--warning)}.signal-badge-neutral{background:#43b7ff26;color:var(--secondary)}.signal-title{font-size:13px;font-weight:600}.signal-desc{font-size:12px;margin:2px 0 0;line-height:1.35}.signal-action{flex-shrink:0}.signal-btn{font-size:12px;font-weight:600;white-space:nowrap}.signals-empty{padding:24px;text-align:center}.diagnostics-collapsible-section{border-top:1px solid var(--border);padding-top:14px}.diagnostics-toggle-btn{background:none;border:none;color:var(--text);font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:12px;padding:6px 0}.diagnostics-toggle-btn:hover{color:var(--secondary)}.diagnostics-panel-body{margin-top:12px}.diagnostic-sort-label{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:8px}.diagnostic-sort-label select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 8px}@media(prefers-reduced-motion:reduce){.radial-fill,.spark-bar,.chart-bar,.momentum-bar-fill,.part-dot{transition:none!important}}
