*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{overscroll-behavior:none;background:#1f1f1f}button,input,select,textarea{font:inherit}:root{--retro-bg:#1f1f1f;--retro-bg-deep:#151419;--retro-panel:#29282f;--retro-panel-soft:#302e38;--retro-line:#3f3a4b;--retro-line-strong:#6d6381;--retro-text:#f7f4ff;--retro-muted:#aaa4b8;--retro-accent:#a78bfa;--retro-accent-strong:#c4b5fd;--retro-accent-deep:#2c243d;--retro-amber:#e7c66e;--retro-amber-soft:#3a2e14;--retro-blue:#88b7ff;--retro-red:#ff7373;--retro-red-soft:#3a1414;--retro-green:#4eca82;--retro-shadow:0 24px 70px #00000047;--retro-ui-font:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--retro-font:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;background-color:var(--retro-bg);color:var(--retro-text);font:16px/1.45 var(--retro-ui-font);letter-spacing:0;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(circle at 22% 12%,#a78bfa1f,#0000 28%),radial-gradient(circle at 85% 8%,#88b7ff0f,#0000 30%);min-height:100dvh}*,:before,:after{box-sizing:border-box}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.64}.retro-kicker{color:var(--retro-accent);font-family:var(--retro-font);letter-spacing:0;text-transform:uppercase;font-size:12px;font-weight:800}.retro-auth{background-color:var(--retro-bg);isolation:isolate;min-height:100dvh;padding:clamp(16px,4vw,38px);padding-top:max(clamp(16px, 4vw, 38px), env(safe-area-inset-top));background-image:radial-gradient(circle at 28% 20%,#a78bfa29,#0000 30%),radial-gradient(circle at 70% 62%,#a78bfa14,#0000 32%),linear-gradient(#202024,#19191c);flex-direction:column;display:flex;position:relative}.retro-auth:after{content:"";pointer-events:none;z-index:4;background:repeating-linear-gradient(#ffffff03 0 1px,#0000 1px 7px);position:absolute;inset:0}.pixel-starfield{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.retro-auth__brand{color:var(--retro-text);font-family:var(--retro-font);letter-spacing:0;text-transform:uppercase;z-index:2;align-items:center;gap:10px;font-size:28px;font-weight:900;display:flex;position:relative}.retro-auth__content{z-index:2;flex:1;grid-template-columns:minmax(180px,.8fr) minmax(300px,420px);justify-content:center;align-items:center;gap:clamp(18px,6vw,72px);padding:34px 0;display:grid;position:relative}.retro-auth__card-only{z-index:2;flex:1;justify-content:center;align-items:center;padding:34px 0;display:flex;position:relative}.retro-auth__card-only>.retro-login-card{width:100%;max-width:420px}.pixel-guy{cursor:pointer;opacity:.94;background:0 0;border:0;justify-self:center;width:min(30vw,168px);max-width:168px;padding:0;animation:3.6s steps(2,end) infinite pixel-idle}.pixel-guy:focus-visible{outline:2px solid var(--retro-accent);outline-offset:8px}.pixel-guy svg{filter:drop-shadow(0 18px 28px #00000052)drop-shadow(0 0 24px #a78bfa2e);width:100%;height:auto;display:block}.pixel-guy.is-startled{animation:.62s cubic-bezier(.2,.88,.24,1.16) both pixel-startle}@keyframes pixel-idle{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pixel-startle{0%{transform:translate(0)scale(1)}10%{transform:translate(-8px,-4px)scale(1.08)}20%{transform:translate(9px,3px)scale(1.18)}30%{transform:translate(-10px,5px)scale(1.24)}42%{transform:translate(8px,-6px)scale(1.26)}54%{transform:translate(-7px,4px)scale(1.2)}68%{transform:translate(5px,-3px)scale(1.13)}82%{transform:translate(-3px,2px)scale(1.06)}to{transform:translate(0)scale(1)}}@keyframes pixel-startle-reduced{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.retro-brand-lockup{color:var(--retro-text);font-family:var(--retro-font);letter-spacing:0;text-transform:uppercase;align-items:center;gap:10px;font-size:18px;font-weight:900;display:flex}.retro-logo-mark{background:linear-gradient(90deg, var(--retro-accent) 0 35%, transparent 35% 45%, var(--retro-accent) 45% 100%), linear-gradient(var(--retro-accent) 0 100%);height:18px;image-rendering:pixelated;flex-shrink:0;width:18px;display:inline-block;box-shadow:0 0 18px #a78bfa38}.retro-login-card{border:1px solid var(--retro-line);background:#232229e6;border-radius:8px;flex-direction:column;gap:14px;padding:clamp(18px,4vw,30px);display:flex;box-shadow:0 18px 48px #00000042}.retro-login-card h2{color:var(--retro-text);font-family:var(--retro-ui-font);letter-spacing:0;font-size:clamp(26px,4vw,36px);font-weight:760;line-height:1.05}.retro-field{flex-direction:column;gap:7px;display:flex}.retro-field label{color:var(--retro-muted);font-size:13px;font-weight:800}.retro-field input,.retro-field select,.retro-field textarea{border:2px solid var(--retro-line);color:var(--retro-text);background:#181818;border-radius:4px;outline:none;min-height:50px;padding:0 13px}.retro-field input:focus,.retro-field select:focus,.retro-field textarea:focus{border-color:var(--retro-accent);box-shadow:0 0 0 3px #a78bfa2e}.retro-field input[type=number]{-moz-appearance:textfield}.retro-field input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}.retro-field input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}.retro-primary-btn,.retro-secondary-btn,.retro-danger-btn{font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;min-height:48px;padding:0 16px;font-size:13px;font-weight:900;text-decoration:none;display:inline-flex}.retro-primary-btn{background:var(--retro-accent);border:1px solid var(--retro-accent);color:#14101d;box-shadow:0 12px 24px #a78bfa2e}.retro-primary-btn:active{transform:translateY(1px);box-shadow:0 6px 14px #a78bfa29}.retro-primary-btn.is-dirty,.retro-primary-btn.is-dirty:disabled{background:var(--retro-accent);border-color:var(--retro-accent);box-shadow:0 0 0 2px var(--retro-accent-deep), 0 0 14px 3px #a78bfa73;color:#14101d;opacity:1}.retro-secondary-btn{border:2px solid var(--retro-line);color:var(--retro-text);background:#1c1c1c}.retro-danger-btn{border:2px solid var(--retro-red);color:var(--retro-red);background:0 0}.retro-primary-btn.compact,.retro-secondary-btn.compact,.retro-danger-btn.compact{min-height:44px}.retro-login-links{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.retro-login-links a{color:var(--retro-accent);font-size:13px;font-weight:800;text-decoration:none}.retro-error-msg{background:var(--retro-red-soft);color:var(--retro-red);border:1px solid #ff737366;border-radius:4px;padding:10px 13px;font-size:13px;font-weight:800}.retro-success-msg{color:var(--retro-green);background:#4eca821f;border:1px solid #4eca8266;border-radius:4px;padding:10px 13px;font-size:13px;font-weight:800}.retro-step-indicator{justify-content:center;gap:8px;padding-bottom:4px;display:flex}.retro-step-indicator span{background:var(--retro-line);border-radius:999px;width:28px;height:5px;transition:background .2s}.retro-step-indicator span.is-active{background:var(--retro-accent)}.retro-step-indicator span.is-done{background:var(--retro-line-strong)}.retro-qr-wrap{background:#fff;border-radius:4px;align-self:center;padding:10px;display:inline-block}.retro-code-list{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.retro-code-list code{border:1px solid var(--retro-line);color:var(--retro-accent-strong);font-family:var(--retro-font);text-align:center;background:#181818;border-radius:4px;padding:12px;font-size:14px;font-weight:900;display:block}.retro-checkbox-row{align-items:flex-start;gap:10px;display:flex}.retro-checkbox-row input[type=checkbox]{accent-color:var(--retro-accent);width:18px;height:18px;min-height:0;margin-top:2px}.retro-checkbox-row label{color:var(--retro-muted);font-size:14px;font-weight:600;line-height:1.4}.retro-app{background:var(--retro-bg);flex-direction:column;min-height:100dvh;display:flex;position:relative}.retro-app:after{content:"";pointer-events:none;z-index:100;background:repeating-linear-gradient(#ffffff03 0 1px,#0000 1px 7px);position:fixed;inset:0}.retro-app__topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--retro-line);min-height:64px;padding:max(10px, env(safe-area-inset-top)) 18px 10px;z-index:50;background:#19181deb;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.retro-topbar-actions{align-items:center;gap:10px;display:flex}.retro-icon-btn{border:1px solid var(--retro-line);color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;background:#242424;border-radius:50%;justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;min-height:44px;font-size:12px;font-weight:800;display:inline-flex}.retro-icon-btn.gear{font-size:18px}.retro-icon-btn:hover{border-color:var(--retro-accent);color:var(--retro-accent)}.retro-account-menu-wrap{position:relative}.retro-account-menu{border:1px solid var(--retro-line);box-shadow:var(--retro-shadow);z-index:80;background:#19181d;border-radius:8px;flex-direction:column;min-width:190px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0}.retro-account-menu:before{content:"";height:10px;position:absolute;top:-10px;left:0;right:0}.retro-account-menu button{color:var(--retro-text);font-family:var(--retro-font);text-align:left;text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:6px;min-height:44px;padding:0 12px;font-size:12px;font-weight:900}.retro-account-menu button:hover,.retro-account-menu button:focus-visible{background:var(--retro-accent-deep);border-color:var(--retro-accent);outline:none}.retro-account-menu button.is-danger{color:var(--retro-red)}.retro-account-menu button.is-danger:hover,.retro-account-menu button.is-danger:focus-visible{background:var(--retro-red-soft);border-color:var(--retro-red)}.retro-status-chip,.retro-mini-state{border:1px solid var(--retro-line);color:var(--retro-accent);font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;background:#24222b;border-radius:999px;align-items:center;min-height:28px;padding:0 10px;font-size:11px;font-style:normal;font-weight:900;display:inline-flex}.retro-mini-state.state-review{color:var(--retro-amber);border-color:#e7c66e66}.retro-mini-state.state-ready,.retro-mini-state.state-printed,.retro-mini-state.state-scanned{color:var(--retro-accent)}.retro-mini-state.state-ok{color:var(--retro-green);border-color:#4eca8266}.retro-mini-state.state-failed{color:var(--retro-red);border-color:#ff737366}.retro-app__body{flex:1;grid-template-columns:184px minmax(0,1fr);display:grid}.retro-app__rail{border-right:1px solid var(--retro-line);background:#19181dd1;flex-direction:column;gap:8px;height:calc(100dvh - 64px);padding:18px 12px;display:flex;position:sticky;top:64px;overflow:auto}.retro-app__rail button{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:flex-start;align-items:center;width:100%;min-height:44px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.retro-app__rail button.is-active{background:var(--retro-accent-deep);border-color:var(--retro-accent);color:var(--retro-text);box-shadow:0 0 0 1px #a78bfa38,0 0 22px #a78bfa1f}.rail-dot{background:currentColor;flex-shrink:0;width:8px;height:8px;margin-right:8px;display:inline-block}.retro-app__content{flex-direction:column;gap:22px;padding:clamp(16px,3vw,28px);display:flex;position:relative}.retro-bottom-nav{border-top:1px solid var(--retro-line);padding:8px;padding-bottom:calc(8px + env(safe-area-inset-bottom));z-index:50;background:#19181d;gap:7px;display:none;position:sticky;bottom:0;left:0;right:0}.retro-bottom-nav button{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:44px;padding:0 6px;font-size:10px;font-weight:800;display:inline-flex}.retro-bottom-nav button.is-active{background:var(--retro-accent-deep);border-color:var(--retro-accent);color:var(--retro-text);box-shadow:0 0 0 1px #a78bfa38,0 0 22px #a78bfa1f}.retro-hero-band,.retro-page-head{border:1px solid var(--retro-line);background:linear-gradient(90deg,#a78bfa1c,#88b7ff0a),#26252c;border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;min-height:116px;padding:20px;display:flex}.retro-page-head span,.retro-class-card span,.retro-test-row span,.retro-roster-card span,.retro-stat-tile span,.retro-grade-list em{color:var(--retro-muted);font-size:13px;font-style:normal}.retro-page-head h2,.retro-hero-band h2,.retro-capture-panel h2{color:var(--retro-text);font-family:var(--retro-ui-font);letter-spacing:0;font-size:clamp(22px,3.5vw,36px);font-weight:760;line-height:1.05}.retro-form-hint{color:var(--retro-muted);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:1.45}.retro-settings-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start;gap:16px;display:grid}.retro-settings-panel{background:var(--retro-panel);border:1px solid var(--retro-line);border-radius:8px;flex-direction:column;gap:14px;padding:clamp(16px,3vw,22px);display:flex;box-shadow:0 18px 40px #0003}.retro-settings-panel__head{flex-direction:column;gap:4px;display:flex}.retro-settings-panel__head h3{color:var(--retro-text);letter-spacing:0;font-size:20px;line-height:1.15}.retro-settings-panel__head span{color:var(--retro-muted);font-size:13px}.retro-settings-form,.retro-settings-code-panel{flex-direction:column;gap:12px;display:flex}.retro-settings-subflow{border:1px solid var(--retro-line);background:#1818186b;border-radius:8px;padding:14px}.retro-passkey-list{flex-direction:column;gap:10px;display:flex}.retro-passkey-row{border:1px solid var(--retro-line);background:#1c1c1c;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:10px;display:flex}.retro-passkey-row div{flex-direction:column;gap:2px;min-width:0;display:flex}.retro-passkey-row strong{color:var(--retro-text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.retro-passkey-row span{color:var(--retro-muted);font-size:12px}.retro-section{flex-direction:column;gap:12px;display:flex}.retro-section-title{justify-content:space-between;align-items:center;gap:14px;display:flex}.retro-section-title h3{color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;font-size:16px;font-weight:900}.retro-section-title button{border:1px solid var(--retro-line);color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;background:#242424;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex}.retro-action-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.retro-empty-state{border:1px dashed var(--retro-line);color:var(--retro-muted);font-family:var(--retro-font);text-align:center;text-transform:uppercase;border-radius:8px;padding:32px 20px;font-size:13px;font-weight:800}.retro-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.retro-stat-tile{background:var(--retro-panel);border:1px solid var(--retro-line);border-radius:8px;min-height:104px;padding:16px}.retro-stat-tile strong{color:var(--retro-text);font-family:var(--retro-font);font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1;display:block}.retro-stat-tile.accent-purple{border-color:#a78bfa8a}.retro-stat-tile.accent-amber{border-color:#e7c66e7a}.retro-stat-tile.accent-blue{border-color:#88b7ff70}.retro-stat-tile.accent-green{border-color:#4eca8270}.retro-card-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.retro-class-card,.retro-test-row,.retro-roster-card,.retro-review-strip article,.retro-grade-list article{background:var(--retro-panel);border:1px solid var(--retro-line);color:var(--retro-text);border-radius:8px}.retro-class-card{cursor:pointer;flex-direction:column;gap:18px;min-height:140px;padding:16px;transition:border-color .12s;display:flex}.retro-class-card:hover{border-color:var(--retro-accent)}.retro-class-card h4,.retro-test-row h4,.retro-roster-card h4,.retro-review-strip h3{color:var(--retro-text);margin:0 0 4px;font-size:16px;font-weight:800;line-height:1.2}.retro-pixel-progress,.retro-meter{border:1px solid var(--retro-line);background:#1a1920;height:14px;padding:2px;overflow:hidden}.retro-pixel-progress span,.retro-meter span{background:linear-gradient(90deg, var(--retro-accent), var(--retro-accent-strong));height:100%;transition:width .3s ease-out;display:block}.retro-analysis-filter{margin-bottom:16px}.retro-analysis-list{gap:8px;display:grid}.retro-analysis-row{grid-template-columns:40px 1fr auto;align-items:center;gap:10px;display:grid}.retro-analysis-label{color:var(--retro-muted);font-family:var(--retro-font);text-align:right;font-size:12px}.retro-analysis-track{border:1px solid var(--retro-line);background:#1a1920;height:16px;padding:2px;overflow:hidden}.retro-analysis-fill{min-width:2px;height:100%;transition:width .3s ease-out;display:block}.retro-analysis-fill.is-green{background:var(--retro-green)}.retro-analysis-fill.is-amber{background:var(--retro-amber)}.retro-analysis-fill.is-red{background:var(--retro-red)}.retro-analysis-count{color:var(--retro-muted);white-space:nowrap;font-size:12px}.retro-test-list,.retro-grade-list{gap:10px;display:grid}.retro-test-row{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;min-height:84px;padding:14px 16px;transition:border-color .12s;display:flex}.retro-test-row:hover{border-color:var(--retro-accent)}.retro-test-row strong{color:var(--retro-accent);font-family:var(--retro-font);text-align:right;text-transform:uppercase;flex-shrink:0;font-size:12px}.retro-roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.retro-roster-card{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:76px;padding:12px;display:grid}.retro-avatar{background:var(--retro-accent-deep);border:1px solid var(--retro-accent);color:var(--retro-text);font-family:var(--retro-font);border-radius:4px;justify-content:center;align-items:center;width:44px;height:44px;font-weight:900;display:flex}.retro-class-name-input{border:1px solid var(--retro-line);color:var(--retro-text);font-family:var(--retro-font);background:#161616;border-radius:4px;width:100%;padding:8px 10px;font-size:14px;font-weight:900}.retro-class-name-input:focus{border-color:var(--retro-accent);outline:none}.retro-class-name-input:disabled{opacity:.5}.retro-roster-name-edit{flex-direction:column;gap:5px;min-width:0;display:flex}.retro-roster-name-edit input{border:1px solid var(--retro-line);color:var(--retro-text);font-family:var(--retro-font);background:#161616;border-radius:4px;width:100%;padding:5px 8px;font-size:13px;font-weight:900}.retro-roster-name-edit input:focus{border-color:var(--retro-accent);outline:none}.retro-roster-name-edit input:disabled{opacity:.5}.retro-key-panel{background:var(--retro-panel);border:1px solid var(--retro-line);border-radius:8px;outline:none;flex-direction:column;gap:16px;padding:16px;display:flex}.retro-key-panel:focus-within{border-color:#a78bfa70}.retro-key-grid{grid-auto-flow:column;grid-template-rows:repeat(var(--key-rows,10), auto);gap:8px;display:grid}.retro-key-row{border:1px solid var(--retro-line);grid-template-columns:42px repeat(var(--choice-count,4), minmax(44px, 1fr));background:#202020;border-radius:6px;align-items:center;gap:7px;padding:8px;display:grid}.retro-key-row.is-focused{border-color:var(--retro-accent);background:var(--retro-accent-deep)}.retro-key-row span{color:var(--retro-muted);font-family:var(--retro-font);font-size:12px;font-weight:900}.retro-key-row button,.retro-choice-row button{border:1px solid var(--retro-line);color:var(--retro-muted);font-family:var(--retro-font);background:#161616;border-radius:4px;justify-content:center;align-items:center;min-width:44px;height:44px;font-weight:900;display:flex}.retro-key-row button.is-selected,.retro-choice-row button.is-selected{background:var(--retro-accent);border-color:var(--retro-accent);color:#111}.retro-choice-row{gap:8px;display:flex}.retro-review-strip{grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:12px;display:grid}.retro-review-strip article{flex-direction:column;gap:12px;min-height:220px;padding:16px;display:flex}.retro-crop-preview{background:#e8ece4;border:2px solid #fff;align-items:center;gap:12px;min-height:70px;padding:12px;display:flex}.retro-crop-preview span{border:3px solid #333;border-radius:50%;width:38px;height:38px}.retro-crop-preview span.dark{background:#333}.retro-human-id{border:1px solid var(--retro-line);color:var(--retro-accent);font-family:var(--retro-font);text-align:center;background:#161616;border-radius:4px;padding:16px;font-size:24px;font-weight:900}.retro-grade-list article{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;min-height:58px;padding:12px 14px;display:grid}.retro-grade-list strong{color:var(--retro-text);font-family:var(--retro-font)}.retro-grade-list em{text-align:right;min-width:48px}.retro-inline-form{background:var(--retro-panel-soft);border:1px solid var(--retro-accent);border-radius:8px;flex-direction:column;gap:12px;padding:16px;display:flex}.retro-inline-form h4{color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;font-size:14px;font-weight:900}.retro-form-row{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.retro-form-actions{justify-content:flex-end;gap:10px;display:flex}.retro-import-summary{background:#4eca8214;border:1px solid #4eca824d;border-radius:6px;padding:12px 14px;font-size:13px}.retro-import-summary p{color:var(--retro-green);margin-bottom:4px;font-weight:800}.retro-import-summary ul{color:var(--retro-muted);margin:0;padding-left:16px}.retro-scanner-shell{background:radial-gradient(circle at 50% 18%, #2c243d80, transparent 36%), var(--retro-bg-deep);color:var(--retro-text);min-height:100svh;padding:max(16px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) calc(156px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));isolation:isolate;position:relative;overflow:hidden}.retro-scanner-shell:after{content:"";pointer-events:none;z-index:4;background:repeating-linear-gradient(#ffffff03 0 1px,#0000 1px 7px);position:absolute;inset:0}.retro-camera-feed,.retro-camera-scrim{position:fixed;inset:0}.retro-camera-feed{object-fit:cover;z-index:-3;background:#05080a;width:100%;height:100%}.retro-camera-scrim{pointer-events:none;z-index:-2;background:linear-gradient(#040708b8,#04070824 34%,#040708d1),linear-gradient(90deg,#04070870,#0000 28% 72%,#04070870)}.retro-sheet-guide{inset:calc(92px + env(safe-area-inset-top)) 24px calc(194px + env(safe-area-inset-bottom)) 24px;pointer-events:none;z-index:1;max-width:520px;margin:auto;position:fixed}.retro-sheet-guide span{border-color:var(--retro-accent);border-style:solid;width:54px;height:54px;position:absolute}.retro-sheet-guide span:first-child{border-width:3px 0 0 3px;top:0;left:0}.retro-sheet-guide span:nth-child(2){border-width:3px 3px 0 0;top:0;right:0}.retro-sheet-guide span:nth-child(3){border-width:0 0 3px 3px;bottom:0;left:0}.retro-sheet-guide span:nth-child(4){border-width:0 3px 3px 0;bottom:0;right:0}.retro-scanner-topbar{z-index:4;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.retro-back-button{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--retro-line);color:var(--retro-text);cursor:pointer;font-family:var(--retro-font);text-transform:uppercase;background:#2c243db8;border-radius:8px;min-width:44px;min-height:44px;padding:8px 14px;font-size:12px;font-weight:800}.retro-scanner-metrics{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.retro-status-pill{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--retro-line);font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;min-height:30px;color:var(--retro-text);background:#2c243db8;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:900;display:inline-flex}.retro-status-pill.ok{color:var(--retro-green);background:#4eca8226;border-color:#4eca8266}.retro-status-pill.checking{background:var(--retro-amber-soft);color:var(--retro-amber);border-color:#e7c66e66}.retro-status-pill.error{background:var(--retro-red-soft);color:var(--retro-red);border-color:#ff737366}.retro-result-badge{font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;min-height:30px;padding:4px 10px;font-size:11px;font-weight:900;display:inline-flex}.retro-result-badge.ok{color:var(--retro-green);background:#4eca8226;border-color:#4eca8266}.retro-result-badge.needs_review{background:var(--retro-amber-soft);color:var(--retro-amber);border-color:#e7c66e66}.retro-result-badge.failed{background:var(--retro-red-soft);color:var(--retro-red);border-color:#ff737366}.retro-state-chip{font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;align-items:center;min-height:28px;padding:3px 9px;font-size:11px;font-weight:900;display:inline-flex}.retro-state-chip.choice{color:var(--retro-green);background:#4eca8226;border-color:#4eca8266}.retro-state-chip.uncertain,.retro-state-chip.multiple,.retro-state-chip.blank{background:var(--retro-amber-soft);color:var(--retro-amber);border-color:#e7c66e66}.retro-state-chip.failed{background:var(--retro-red-soft);color:var(--retro-red);border-color:#ff737366}.retro-scanner-controls{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--retro-line);padding:12px max(14px, env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));z-index:6;background:#141318eb;border-radius:8px 8px 0 0;gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -18px 50px #00000042}.retro-stability-meter{background:#ffffff1f;border-radius:999px;height:6px;overflow:hidden}.retro-stability-meter span{background:linear-gradient(90deg, var(--retro-accent), var(--retro-accent-strong));transform-origin:0;width:100%;height:100%;transition:transform .12s ease-out;display:block}.retro-control-status{justify-content:space-between;align-items:center;gap:12px;display:flex}.retro-control-status strong{color:var(--retro-text);font-size:17px;display:block}.retro-control-status span{color:var(--retro-muted);font-family:var(--retro-font);font-size:12px}.retro-result-dot{border:2px solid #ffffffb8;border-radius:999px;flex:0 0 18px;width:18px;height:18px}.retro-result-dot.ok{background:var(--retro-green)}.retro-result-dot.needs_review{background:var(--retro-amber)}.retro-result-dot.failed{background:var(--retro-red)}.retro-control-row{grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:8px;display:grid}.retro-primary-button,.retro-secondary-button,.retro-ghost-button,.retro-scanner-icon-btn,.retro-capture-btn,.retro-close-button{font-family:var(--retro-font);text-transform:uppercase;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:9px 12px;font-size:12px;font-weight:900;display:inline-flex}.retro-primary-button,.retro-capture-btn{background:var(--retro-accent);border:1px solid var(--retro-accent);color:#14101d;box-shadow:0 0 18px #a78bfa38}.retro-capture-btn{min-width:92px}.retro-secondary-button{background:var(--retro-panel-soft);border:1px solid var(--retro-line);color:var(--retro-text)}.retro-ghost-button,.retro-scanner-icon-btn,.retro-close-button{border:1px solid var(--retro-line);color:var(--retro-text);background:#2c243d99}.retro-scanner-icon-btn.active{background:var(--retro-accent-deep);border-color:var(--retro-accent);color:var(--retro-accent)}.retro-floating-alert{background:var(--retro-red-soft);box-shadow:var(--retro-shadow);color:var(--retro-red);font-family:var(--retro-font);left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));text-transform:uppercase;top:calc(82px + env(safe-area-inset-top));z-index:8;border:1px solid #ff737366;border-radius:8px;padding:12px 14px;font-size:13px;font-weight:900;position:fixed}.retro-start-sheet{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);border:1px solid var(--retro-line);bottom:calc(174px + env(safe-area-inset-bottom));box-shadow:var(--retro-shadow);left:max(14px, env(safe-area-inset-left));right:max(14px, env(safe-area-inset-right));z-index:5;background:#141318db;border-radius:8px;padding:18px;position:fixed}.retro-start-sheet h2{color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;margin-bottom:14px;font-size:18px;font-weight:900}.retro-start-actions{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.retro-sheet-backdrop{z-index:14;background:#00000080;border:0;border-radius:0;min-height:0;padding:0;position:fixed;inset:0}.retro-bottom-sheet{background:var(--retro-panel);border:1px solid var(--retro-line);box-shadow:var(--retro-shadow);color:var(--retro-text);max-height:calc(88svh - env(safe-area-inset-top));padding-bottom:env(safe-area-inset-bottom);z-index:20;border-radius:8px 8px 0 0;position:fixed;bottom:0;left:0;right:0;overflow:auto}.retro-bottom-sheet.tall{max-height:calc(94svh - env(safe-area-inset-top))}.retro-sheet-header{background:var(--retro-panel);border-bottom:1px solid var(--retro-line);z-index:1;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex;position:sticky;top:0}.retro-sheet-header h2{color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;font-size:16px;font-weight:900}.retro-close-button{min-width:44px}.retro-sheet-form{gap:13px;padding:16px;display:grid}.retro-field-error{color:var(--retro-red);margin:0;font-size:13px}.retro-eyebrow{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;margin:0 0 2px;font-size:11px;font-weight:900}.retro-scan-label{color:var(--retro-muted);font-family:var(--retro-font);font-size:13px;font-weight:800}.retro-review-list{gap:12px;padding:14px;display:grid}.retro-review-item{background:var(--retro-panel-soft);border:1px solid var(--retro-line);border-radius:8px;grid-template-columns:96px minmax(0,1fr);gap:12px;padding:10px;display:grid;overflow:hidden}.retro-review-item img{object-fit:cover;background:#111;border-radius:6px;width:100%;height:100%;min-height:128px}.retro-review-body{gap:8px;min-width:0;display:grid}.retro-review-heading{justify-content:space-between;align-items:start;gap:8px;display:flex}.retro-review-heading strong{color:var(--retro-text);overflow-wrap:anywhere;min-width:0}.retro-review-body p{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;margin:0;font-size:12px;font-weight:800}.retro-review-actions{flex-wrap:wrap;gap:8px;display:flex}.retro-review-answer-list{border-top:1px solid var(--retro-line);display:grid}.retro-review-answer-row{grid-template-columns:44px minmax(78px,auto) minmax(130px,1fr);gap:8px;padding:9px 0;display:grid}.retro-review-answer-row+.retro-review-answer-row{border-top:1px solid var(--retro-line)}.retro-review-choice-buttons{grid-template-columns:repeat(6,minmax(28px,1fr));gap:5px;display:grid}.retro-review-choice-buttons button{border:1px solid var(--retro-line);color:var(--retro-muted);font-family:var(--retro-font);background:#161616;border-radius:999px;justify-content:center;align-items:center;height:34px;min-height:34px;font-weight:900;display:flex}.retro-review-choice-buttons button.selected{background:var(--retro-accent);border-color:var(--retro-accent);color:#111}.retro-result-summary{grid-template-columns:116px minmax(0,1fr);align-items:center;gap:14px;padding:16px;display:grid}.retro-result-summary .retro-eyebrow{color:var(--retro-muted)}.retro-result-summary h2{color:var(--retro-text);font-family:var(--retro-font);margin-bottom:8px;font-size:30px;font-weight:900}.retro-result-summary img{object-fit:cover;background:#111;border-radius:6px;width:100%;height:128px}.retro-flag-row{flex-wrap:wrap;gap:8px;padding:0 16px 12px;display:flex}.retro-replacement-alert{background:var(--retro-amber-soft);color:var(--retro-amber);font-family:var(--retro-font);text-transform:uppercase;border-block:1px solid #e7c66e66;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;font-size:12px;font-weight:900;display:flex}.retro-scan-warning{background:var(--retro-amber-soft);color:var(--retro-amber);font-family:var(--retro-font);border-block:1px solid #e7c66e66;padding:12px 16px;font-size:12px;font-weight:900;line-height:1.45}.retro-responses-list{border-top:1px solid var(--retro-line);display:grid}.retro-response-row{grid-template-columns:44px minmax(84px,auto) 36px minmax(86px,1fr);align-items:center;gap:8px;min-height:54px;padding:9px 16px;display:grid}.retro-response-row+.retro-response-row{border-top:1px solid var(--retro-line)}.retro-question-number,.retro-choice-cell{color:var(--retro-text);font-family:var(--retro-font);font-weight:900}.retro-ratio-bars{grid-template-columns:repeat(6,minmax(10px,1fr));gap:5px;display:grid}.retro-ratio-bars span{background:#ffffff1f;border-radius:999px;height:8px;overflow:hidden}.retro-ratio-bars i{background:var(--retro-accent);height:100%;display:block}.retro-sheet-footer{border-top:1px solid var(--retro-line);padding:14px 16px}.retro-manual-id-note{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;font-size:12px;font-weight:800}.retro-admin-card{background:var(--retro-panel);border:1px solid var(--retro-line);border-radius:8px;overflow:hidden}.retro-admin-card-header{border-bottom:1px solid var(--retro-line);background:#19181d99;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.retro-admin-card-header h3{color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;font-size:14px;font-weight:900}.retro-user-list,.retro-code-list-rows{display:grid}.retro-user-row,.retro-code-row{border-top:1px solid var(--retro-line);align-items:center;gap:10px;padding:12px 16px;display:grid}.retro-user-row:first-child,.retro-code-row:first-child{border-top:none}.retro-user-row{grid-template-columns:minmax(0,1fr) auto auto}.retro-code-row{grid-template-columns:minmax(0,1fr) auto auto auto}.retro-user-meta,.retro-code-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.retro-user-meta strong,.retro-code-meta strong{color:var(--retro-text);font-family:var(--retro-font);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:900;overflow:hidden}.retro-user-meta span,.retro-code-meta span{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;font-size:11px;font-weight:800}.retro-badge{font-family:var(--retro-font);text-transform:uppercase;white-space:nowrap;border:1px solid;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:900}.retro-badge.active{color:var(--retro-green);border-color:#4eca8280}.retro-badge.unused{color:var(--retro-accent);border-color:#a78bfa80}.retro-badge.pending{color:var(--retro-amber);border-color:#e7c66e80}.retro-badge.reserved{color:var(--retro-blue);border-color:#88b7ff80}.retro-badge.disabled,.retro-badge.revoked,.retro-badge.failed{color:var(--retro-red);border-color:#ff737366}.retro-badge.redeemed{border-color:var(--retro-line);color:var(--retro-muted)}.retro-new-code-banner{background:#a78bfa14;border:1px solid #a78bfa4d;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.retro-new-code-banner code{color:var(--retro-accent-strong);font-family:var(--retro-font);font-size:16px;font-weight:900}.retro-threshold-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:16px;display:grid}.retro-threshold-cell{border:1px solid var(--retro-line);text-align:center;background:#1a1920;border-radius:6px;padding:10px}.retro-threshold-cell span{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:900;display:block}.retro-threshold-cell strong{color:var(--retro-accent-strong);font-family:var(--retro-font);font-size:20px;font-weight:900}.retro-calibration-actions{border-top:1px solid var(--retro-line);flex-wrap:wrap;gap:10px;padding:14px 16px;display:flex}.retro-calibration-meta{border-top:1px solid var(--retro-line);flex-wrap:wrap;gap:14px;padding:12px 16px;display:flex}.retro-calibration-meta span{color:var(--retro-muted);font-family:var(--retro-font);text-transform:uppercase;font-size:12px;font-weight:800}.retro-calibration-meta strong{color:var(--retro-text)}.retro-recommendation-panel{background:#a78bfa0f;border:1px solid #a78bfa4d;border-radius:8px;margin:0 16px 16px;padding:14px}.retro-recommendation-panel h4{color:var(--retro-accent);font-family:var(--retro-font);text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:900}@media (width<=880px){.retro-auth__content{grid-template-columns:1fr;padding:24px 0 0}.pixel-guy{width:150px}.retro-app__body{grid-template-columns:1fr}.retro-app__rail{display:none}.retro-bottom-nav{display:flex}.retro-app__content{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.retro-card-list,.retro-stat-grid,.retro-review-strip{grid-template-columns:1fr}.retro-key-grid{grid-template-rows:none;grid-template-columns:1fr;grid-auto-flow:row}.retro-roster-grid{grid-template-columns:1fr}.retro-user-row,.retro-code-row{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}.retro-threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=520px){.retro-hero-band,.retro-page-head,.retro-capture-panel{flex-direction:column;align-items:stretch}.retro-topbar-actions,.retro-action-row{width:100%}.retro-topbar-actions{width:auto}.retro-action-row>button,.retro-primary-btn.compact,.retro-secondary-btn.compact,.retro-danger-btn.compact{flex:1}.retro-passkey-row{flex-direction:column;align-items:stretch}.retro-key-row{grid-template-columns:34px repeat(var(--choice-count,4), minmax(44px, 1fr));padding:6px}.retro-human-id{font-size:20px}.retro-grade-list article{grid-template-columns:1fr auto}.retro-grade-list em{text-align:left;grid-column:1/-1}.retro-threshold-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=380px){.retro-scanner-shell{padding-bottom:calc(178px + env(safe-area-inset-bottom))}.retro-sheet-guide{bottom:calc(212px + env(safe-area-inset-bottom));left:18px;right:18px}.retro-scanner-metrics{max-width:148px}.retro-start-actions,.retro-result-summary,.retro-review-item{grid-template-columns:1fr}.retro-review-item img{height:152px}.retro-response-row{grid-template-columns:42px 1fr 34px}.retro-review-answer-row{grid-template-columns:42px 1fr}.retro-review-choice-buttons,.retro-ratio-bars{grid-column:1/-1}}@media (width>=720px){.retro-scanner-controls,.retro-bottom-sheet{width:min(620px,100vw - 32px);max-width:620px;left:50%;right:auto;transform:translate(-50%)}.retro-scanner-controls{bottom:calc(16px + env(safe-area-inset-bottom));border-radius:8px}.retro-start-sheet{width:min(480px,100vw - 32px);max-width:480px;left:50%;right:auto;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.pixel-guy{animation:none}.pixel-guy.is-startled{animation:.26s ease-out both pixel-startle-reduced}}@media (display-mode:standalone){.retro-auth{padding-top:calc(env(safe-area-inset-top) + 16px)}}.retro-chip{background:var(--retro-panel);border:1px solid var(--retro-line);color:var(--retro-text);border-radius:999px;padding:8px 14px;font-size:13px}.retro-chip.is-selected{background:var(--retro-accent-deep);border-color:var(--retro-accent);color:var(--retro-accent-strong)}.retro-chip-static{background:var(--retro-accent-deep);border:1px solid var(--retro-accent);color:var(--retro-accent-strong);border-radius:999px;align-items:center;min-height:32px;padding:4px 12px;font-size:13px;display:inline-flex}.retro-gradebook-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.retro-gradebook-table{border-collapse:collapse;min-width:100%;font-size:13px}.retro-gradebook-table th,.retro-gradebook-table td{border:1px solid var(--retro-line);text-align:center;white-space:nowrap;padding:10px 12px}.retro-gradebook-table th{background:var(--retro-panel);color:var(--retro-text);font-family:var(--retro-font);text-transform:uppercase;font-size:11px}.retro-gradebook-table th.retro-gradebook-name,.retro-gradebook-table td.retro-gradebook-name{text-align:left;background:var(--retro-bg);z-index:1;position:sticky;left:0}.retro-gradebook-table th.retro-gradebook-name{background:var(--retro-panel)}.retro-gradebook-cell.is-review{color:var(--retro-accent-strong)}.retro-gradebook-cell.is-empty{color:var(--retro-muted)}.retro-gradebook-cards{gap:10px;display:grid}.retro-gradebook-card{background:var(--retro-panel);border:1px solid var(--retro-line);border-radius:8px;padding:12px 14px}.retro-gradebook-card h4{margin:0 0 8px}.retro-gradebook-card-row{border-top:1px solid var(--retro-line);justify-content:space-between;gap:12px;padding:4px 0;display:flex}.retro-gradebook-card-row:first-of-type{border-top:none}.retro-gradebook-cards{display:none}@media (width<=560px){.retro-gradebook-scroll{display:none}.retro-gradebook-cards{display:grid}}
