:root{--bg: #121212;--panel: #1c1c1c;--panel2: #272727;--fg: #f4f1ea;--muted: #c9c2b8;--dim: #8ab4f8;--grid: rgba(138, 180, 248, .055);--scan: rgba(217, 119, 6, .028);--border: rgba(138, 180, 248, .2);--shadow: rgba(0, 0, 0, .35);--hot: #cc79a7;--cool: #8ab4f8;--warn: #facc15;--danger: #cc79a7;--font: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{font-family:var(--font);color:var(--fg);background:radial-gradient(1200px 900px at 70% -10%,rgba(217,119,6,.09),transparent 55%),radial-gradient(1000px 800px at 10% 110%,rgba(138,180,248,.08),transparent 55%),linear-gradient(180deg,#121212,#181818 44%,#101010);overflow:hidden}#root{height:100%}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}:root{--bg: #121212;--bg-elevated: #1a1a1a;--glass: rgba(28, 28, 28, .92);--glass-border: rgba(138, 180, 248, .2);--panel-border: rgba(138, 180, 248, .14);--panel-border-strong: rgba(138, 180, 248, .26);--neon-green: #56b4e9;--neon-cyan: #8ab4f8;--neon-magenta: #cc79a7;--neon-yellow: #facc15;--accent-primary: var(--neon-cyan);--accent-contrast: #101010;--text-main: #f4f1ea;--text-strong: #fffaf0;--text-soft: #c9c2b8;--text-muted: #9f988e;--text-dimmer: #777067;--panel-solid: #1c1c1c;--panel-subtle: rgba(28, 28, 28, .96);--panel-muted: rgba(39, 39, 39, .94);--panel-overlay: rgba(255, 255, 255, .035);--panel-translucent: rgba(255, 255, 255, .055);--editor-surface: #181818;--editor-header-bg: #222222;--code-surface: #181818;--code-gutter-bg: #232323;--button-primary-bg: #d97706;--button-primary-hover: #f59e0b;--button-primary-text: #17120b;--button-secondary-bg: #272727;--button-secondary-hover: #333333;--button-disabled-bg: #3a3732;--button-disabled-text: #8d877f;--button-danger-text: #17120b;--success-accent: #56b4e9;--success-bg: rgba(86, 180, 233, .12);--warning-accent: #ffe14d;--warning-bg: rgba(255, 225, 77, .14);--danger-accent: #cc79a7;--danger-bg: rgba(204, 121, 167, .14);--info-accent: #8ab4f8;--info-bg: rgba(138, 180, 248, .12);--info-strong: rgba(138, 180, 248, .18);--neutral-bg: rgba(244, 241, 234, .1);--shadow-strong: rgba(0, 0, 0, .45);--modal-overlay: rgba(0, 0, 0, .72);--modal-overlay-strong: rgba(0, 0, 0, .84);--topbar-bg: rgba(18, 18, 18, .72);--home-card-bg: rgba(28, 28, 28, .78);--grid-line: rgba(138, 180, 248, .055);--sun-glow: rgba(138, 180, 248, .08);--cool: var(--neon-cyan);--hot: var(--neon-magenta);--warn: var(--neon-yellow);--dim: var(--neon-green);--border: var(--glass-border);--grid: var(--grid-line);--font: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace;--font-code: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-display: "SFMono-Regular", Menlo, Monaco, Consolas, "Liberation Mono", monospace}:root[data-theme=light]{--bg: #f7f9fc;--bg-elevated: #ffffff;--glass: rgba(255, 255, 255, .9);--glass-border: #d5dce6;--panel-border: rgba(37, 99, 235, .12);--panel-border-strong: rgba(37, 99, 235, .24);--neon-green: #16803c;--neon-cyan: #2563eb;--neon-magenta: #0f766e;--neon-yellow: #b7791f;--accent-primary: var(--neon-cyan);--accent-contrast: #ffffff;--text-main: #17202a;--text-strong: #111827;--text-soft: #5d6b7a;--text-muted: #6b7280;--text-dimmer: #8c97a5;--panel-solid: #ffffff;--panel-subtle: rgba(255, 255, 255, .98);--panel-muted: rgba(238, 242, 247, .96);--panel-overlay: rgba(255, 255, 255, .7);--panel-translucent: rgba(238, 242, 247, .78);--editor-surface: #ffffff;--editor-header-bg: #eef2f7;--code-surface: #f7f9fc;--code-gutter-bg: #eef2f7;--button-primary-bg: #2563eb;--button-primary-hover: #1d4ed8;--button-primary-text: #ffffff;--button-secondary-bg: #eef2f7;--button-secondary-hover: #e2e8f0;--button-disabled-bg: #d8e1e6;--button-disabled-text: #7a8f98;--button-danger-text: #ffffff;--success-accent: #16803c;--success-bg: rgba(22, 128, 60, .12);--warning-accent: #b7791f;--warning-bg: rgba(183, 121, 31, .12);--danger-accent: #c2410c;--danger-bg: rgba(194, 65, 12, .12);--info-accent: #2563eb;--info-bg: rgba(37, 99, 235, .1);--info-strong: rgba(37, 99, 235, .16);--neutral-bg: rgba(93, 107, 122, .12);--shadow-strong: rgba(22, 41, 51, .16);--modal-overlay: rgba(22, 41, 51, .46);--modal-overlay-strong: rgba(22, 41, 51, .58);--topbar-bg: rgba(255, 255, 255, .72);--home-card-bg: rgba(255, 255, 255, .72);--grid-line: rgba(37, 99, 235, .055);--sun-glow: rgba(37, 99, 235, .08)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden;background:var(--bg);margin:0;padding:0}body{font-family:var(--font);color:var(--text-main);perspective:1000px;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.retro-grid{position:fixed;width:200%;height:200%;left:-50%;top:-50%;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:60px 60px;transform:rotateX(45deg);animation:grid-fly 15s linear infinite;z-index:-2;pointer-events:none}.retro-sun{position:fixed;top:10%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,var(--sun-glow) 0%,rgba(0,0,0,0) 70%);z-index:-1;pointer-events:none}@keyframes grid-fly{0%{transform:rotateX(45deg) translateY(0)}to{transform:rotateX(45deg) translateY(60px)}}.crt-overlay{position:fixed;inset:0;pointer-events:none;z-index:999;background:linear-gradient(#12101000 50%,#0000001f 50%),linear-gradient(90deg,#d9770605,#f4f1ea02,#8ab4f803);background-size:100% 3px,3px 100%;animation:flicker .15s infinite}.scanline{position:fixed;top:0;left:0;width:100%;height:72px;z-index:999;pointer-events:none;background:linear-gradient(to bottom,transparent,rgba(217,119,6,.014) 50%,transparent);animation:scanmove 5s linear infinite}@keyframes flicker{0%{opacity:.97}50%{opacity:1}to{opacity:.98}}@keyframes scanmove{0%{transform:translateY(-120px)}to{transform:translateY(100vh)}}@keyframes turn-on{0%{opacity:0;filter:brightness(3)}30%{opacity:1}60%{filter:brightness(3)}to{filter:brightness(1)}}.crt{position:relative;height:100%;padding:18px;animation:turn-on 2s ease-out both;display:flex;flex-direction:column}.shell{flex:1;border:1px solid var(--glass-border);border-radius:16px;background:var(--glass);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 0 48px #0000003d,0 0 0 1px #ffffff0a inset,0 30px 60px #0006;overflow:hidden;display:flex;flex-direction:column;position:relative;min-height:0}.hud-corner{position:absolute;width:30px;height:30px;pointer-events:none;z-index:5;opacity:.4}.hud-corner.tl{top:8px;left:8px;border-top:2px solid var(--neon-cyan);border-left:2px solid var(--neon-cyan)}.hud-corner.tr{top:8px;right:8px;border-top:2px solid var(--neon-cyan);border-right:2px solid var(--neon-cyan)}.hud-corner.bl{bottom:8px;left:8px;border-bottom:2px solid var(--neon-magenta);border-left:2px solid var(--neon-magenta)}.hud-corner.br{bottom:8px;right:8px;border-bottom:2px solid var(--neon-magenta);border-right:2px solid var(--neon-magenta)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--glass-border);background:var(--topbar-bg);font-size:15px}.appTopbar{flex:0 0 auto}.brand{display:flex;gap:12px;align-items:center;white-space:nowrap;letter-spacing:2px;font-weight:700;text-transform:uppercase;font-size:16px;position:relative;font-family:var(--font-display)}.brand:hover{animation:glitch .3s cubic-bezier(.25,.46,.45,.94) both infinite;color:var(--neon-magenta);text-shadow:2px 0 var(--neon-cyan),-2px 0 var(--neon-yellow)}@keyframes glitch{0%{transform:translate(0)}20%{transform:translate(-2px,2px)}40%{transform:translate(-2px,-2px)}60%{transform:translate(2px,2px)}80%{transform:translate(2px,-2px)}to{transform:translate(0)}}.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--neon-green);box-shadow:0 0 15px var(--neon-green);animation:blink 3s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.meta{display:flex;gap:16px;align-items:center;font-size:14px;color:var(--text-main);flex-wrap:wrap;justify-content:flex-end;flex:1;min-width:0}.topbarMenuButton{display:none;width:42px;height:42px;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:10px;background:var(--panel-translucent);color:var(--text-strong);font-family:var(--font-display);font-size:20px;cursor:pointer}.copyStatus{font-size:12px;color:var(--success-accent);letter-spacing:.6px}.copyStatus.error{color:var(--danger-accent)}.proctorModeValue{color:var(--text-soft);letter-spacing:.6px}.proctorModeValue.live{color:var(--cool)}.proctorModeValue.fallback{color:var(--neon-yellow)}.pill{border:1px solid var(--glass-border);border-radius:4px;padding:6px 14px;background:var(--panel-translucent);box-shadow:0 0 10px #0003;display:flex;gap:8px;align-items:center;white-space:nowrap}.pill span:first-child{color:var(--text-muted);font-size:12px;letter-spacing:1px}.timer{font-variant-numeric:tabular-nums;color:var(--neon-yellow);text-shadow:0 0 8px rgba(245,230,91,.4);font-weight:700}.kbd{color:var(--text-soft);border:1px solid var(--panel-border);border-bottom-color:var(--glass-border);padding:2px 6px;border-radius:6px;font-size:11px;background:#00000040}.neonLine{height:2px;background:linear-gradient(90deg,transparent,rgba(138,180,248,.36),rgba(217,119,6,.32),transparent);opacity:.5}.main{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden;position:relative;z-index:2}.sessionWorkspaceToggle{display:flex;gap:8px;padding:12px 14px 0}.sessionWorkspace{flex:1 1 0;min-height:0;display:flex;overflow:hidden}.workspacePane{width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;display:none}.workspacePane.isActive{display:flex}.workspaceToggleBtn{flex:1;min-width:0;font-family:var(--font);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-main);background:var(--panel-translucent);border:1px solid var(--glass-border);border-radius:999px;padding:10px 12px;cursor:pointer}.workspaceToggleBtn.active{color:var(--text-strong);border-color:var(--neon-cyan);box-shadow:0 0 0 1px var(--panel-border-strong);background:var(--info-bg)}.workspaceToggleBtn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.workspaceToggleBtn:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.workspacePane[data-pane=editor] .editorWrap,.workspacePane[data-pane=problem] .problem{flex:1}.workspacePane[data-pane=problem] .problem{border-bottom:none}.workspacePane[data-pane=editor] .editorWrap{padding-top:14px}.left-col{display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;height:100%;border-right:none}.problem{flex:1 1 0;padding:16px 20px;border-bottom:1px solid var(--glass-border);background:linear-gradient(90deg,rgba(138,180,248,.045),transparent);overflow:auto;min-height:0;min-width:0;display:flex;flex-direction:column;--problem-font-size: 22px;--problem-line-height: 1.45}.problem .title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.problem h2{margin:0;font-size:24px;letter-spacing:1px;text-transform:uppercase;color:var(--text-strong);text-shadow:0 0 10px rgba(255,255,255,.3);font-family:var(--font-display)}.tags{display:flex;gap:8px;flex-wrap:wrap;font-size:11px}.tag{padding:2px 8px;border-radius:2px;border:1px solid var(--glass-border);color:var(--neon-cyan);background:var(--info-bg);text-transform:uppercase}.tag.hot{border-color:var(--neon-magenta);color:var(--neon-magenta);background:var(--danger-bg)}.tag.cool{border-color:var(--neon-cyan);color:var(--neon-cyan);background:var(--info-bg)}.promptBlocks{display:flex;flex-direction:column;gap:16px;font-size:1em;line-height:inherit;color:var(--text-main);opacity:.9}.promptBlock{white-space:pre-wrap;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.problemTabs{display:flex;gap:8px;margin:12px 0 10px}.tabBtn{font-family:var(--font);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-main);background:var(--panel-translucent);border:1px solid var(--glass-border);border-radius:4px;padding:6px 10px;cursor:pointer}.tabBtn.active{color:var(--text-strong);border-color:var(--neon-cyan);box-shadow:0 0 0 1px var(--panel-border-strong);background:var(--info-bg)}.tabBtn:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.problemPanel{min-height:0;max-width:70ch;flex:1;font-size:var(--problem-font-size);line-height:var(--problem-line-height);overflow-y:auto;overflow-x:hidden;padding-right:6px}.constraintList{display:flex;flex-direction:column;gap:10px;font-size:1em;line-height:inherit;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.constraintItem{display:grid;grid-template-columns:18px 1fr;gap:10px;align-items:start;padding:8px 10px;border:1px solid var(--glass-border);border-radius:6px;background:var(--panel-overlay)}.constraintBullet{color:var(--neon-cyan);font-weight:700}.examplesList{display:flex;flex-direction:column;gap:10px;font-size:1em;line-height:inherit;overflow-wrap:normal;word-break:normal;-webkit-hyphens:none;hyphens:none}.exampleCard{border:1px solid var(--glass-border);border-radius:6px;padding:10px 12px;background:var(--panel-overlay)}.exampleNote{opacity:.85;margin-top:6px}.problemEmpty{font-size:1em;color:var(--text-soft)}.prompt code{color:var(--neon-yellow);background:#ffffff1a;padding:0 4px;border-radius:2px}.readyGate{flex:1 0 auto;min-height:220px;display:flex;flex-direction:column;justify-content:center;gap:14px;padding:24px;border:1px solid var(--glass-border);border-radius:10px;background:var(--panel-overlay);color:var(--text-main)}.readyTitle{font-size:26px;font-weight:700}.readySub{font-size:18px;opacity:.85}.editorWrap{flex:1;min-height:0;padding:20px;display:flex;flex-direction:column;gap:15px}.editorHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--text-soft)}.editorHeader .leftBits{display:flex;gap:10px;align-items:center}.statusLight{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,var(--dim));box-shadow:0 0 8px #56b4e947}.editor{position:relative;flex:1;min-height:0;border:1px solid var(--glass-border);border-radius:8px;background:var(--panel-overlay),radial-gradient(800px 260px at 50% 0%,var(--success-bg),transparent 55%);box-shadow:inset 0 0 20px var(--shadow-strong),0 0 0 1px var(--panel-border) inset;overflow:hidden;display:flex;flex-direction:column}.editor>.code-editor-panel,.editor>*{flex:1;min-height:0}.editor .cm-editor{height:100%}.editor .cm-scroller{height:100%;overflow:auto}.actions{display:flex;gap:10px;align-items:center;justify-content:flex-end}.btn{font-family:var(--font);border-radius:4px;border:1px solid var(--glass-border);padding:10px 18px;background:var(--button-secondary-bg);color:var(--text-strong);cursor:pointer;transition:all .2s ease;font-size:13px;letter-spacing:1px;text-transform:uppercase;position:relative;overflow:hidden}.btn.subtle{background:var(--panel-translucent)}.btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(138,180,248,.16),transparent);transition:left .4s}.btn:hover{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--panel-border-strong);text-shadow:none;transform:translateY(-1px)}.btn:hover:before{left:100%}.btn.primary{background:var(--button-primary-bg);border-color:var(--button-primary-bg);color:var(--button-primary-text)}.btn.danger{border-color:var(--danger-accent);color:var(--danger-accent)}.btn.danger:hover{box-shadow:0 0 0 1px var(--danger-accent);border-color:var(--danger-accent)}.right-col{display:flex;flex-direction:column;min-height:0;min-width:0;width:100%;height:100%;background:var(--panel-overlay)}.chatHeader{padding:8px 12px;border-bottom:1px solid var(--glass-border);display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--panel-overlay);min-height:44px}.left-col .chatHeader{border-top:1px solid var(--glass-border)}.proctorWrap{min-height:0;display:flex;flex-direction:column}.sessionProctorWrap{flex:0 0 clamp(230px,30vh,340px);min-height:190px;max-height:42vh;border-top:1px solid var(--glass-border);background:var(--panel-overlay);overflow:hidden}.proctorInputDock{border-top:1px solid var(--glass-border);background:var(--panel-overlay);flex:0 0 auto}.editorWrap{flex:1 1 0;min-height:0}.chatHeader .label{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-muted)}.signal{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--neon-green)}.bars{display:flex;gap:3px}.bars span{width:4px;border-radius:2px;background:#56b4e961;box-shadow:0 0 8px #56b4e924;display:block}.bars span:nth-child(1){height:6px}.bars span:nth-child(2){height:9px}.bars span:nth-child(3){height:12px}.bars span:nth-child(4){height:8px;opacity:.7}.msg{max-width:90%;font-size:14px;line-height:1.5;padding:10px 12px;border-radius:6px;border-left:2px solid transparent;animation:slideIn .3s cubic-bezier(.175,.885,.32,1.275)}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.msg .who{font-size:11px;letter-spacing:1px;margin-bottom:6px;color:var(--text-soft);display:flex;align-items:center;justify-content:space-between;gap:10px;text-transform:uppercase;opacity:.5}.msg .time{font-variant-numeric:tabular-nums;color:var(--text-dimmer)}.msg.proctor{align-self:flex-start;border-left-color:var(--neon-cyan);box-shadow:0 0 18px #8ab4f80d;background:var(--info-bg)}.msg.user{align-self:flex-end;border-left:none;border-right:2px solid var(--neon-magenta);box-shadow:0 0 18px #cc79a70d;background:var(--danger-bg);text-align:right}.msg .text{margin:0;font-size:14px;line-height:1.5;color:var(--text-main)}.msg.proctor .text,.msg.user .text{color:var(--text-strong)}.chatInput{padding:16px;border-top:0;display:flex;gap:10px;align-items:center;background:var(--panel-overlay)}.field{flex:1;border:1px solid var(--glass-border);border-radius:4px;background:var(--panel-translucent);color:var(--text-main);padding:10px 12px;font-family:var(--font);font-size:14px;outline:none}.field:focus{border-color:var(--neon-cyan);box-shadow:0 0 0 2px var(--info-strong)}.footer{padding:8px 20px;border-top:1px solid var(--glass-border);font-size:11px;color:var(--text-muted);display:flex;justify-content:space-between;gap:12px;background:var(--panel-translucent);text-transform:uppercase}.footer .pulse{color:var(--neon-cyan);text-shadow:none}.session-view{flex:1;display:flex;flex-direction:column;min-height:0}.appViewShell{width:100%;height:100%;display:flex;flex-direction:column;min-height:0}.appViewBody{flex:1;min-height:0;overflow:auto}.home-view{display:flex;align-items:center;justify-content:center;height:100%}.home-content{text-align:center;max-width:600px;padding:2rem}.home-content h1{font-size:2.5rem;margin-bottom:1rem;color:var(--cool);text-shadow:none;font-family:var(--font-display)}.home-content p{font-size:1.2rem;color:var(--text-soft);margin-bottom:2rem}.homeMetaBar{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-bottom:1.5rem}.home-actions{display:flex;flex-direction:column;gap:1rem;align-items:center}.homeHint{width:min(520px,100%);margin:-.25rem auto 0;color:var(--text-soft);font-size:.95rem}.postTutorialPicker{border:1px solid var(--panel-border);border-radius:10px;padding:20px;background:var(--panel-muted)}.postTutorialPickerHeader{margin-bottom:16px}.postTutorialPickerHeader h3{margin:0 0 8px;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.7px;font-size:.98rem}.postTutorialPickerHeader p{margin:0;color:var(--text-soft);line-height:1.6}.postTutorialChoiceGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.postTutorialChoice{min-height:112px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;border:1px solid var(--panel-border-strong);border-radius:8px;background:var(--panel-subtle);color:var(--text-strong);font:inherit;text-align:left;cursor:pointer}.postTutorialChoice.selected{border-color:var(--button-primary-bg);background:var(--success-bg);box-shadow:0 0 0 1px var(--button-primary-bg) inset}.postTutorialChoice:focus-visible{outline:2px solid var(--neon-yellow);outline-offset:2px}.postTutorialChoiceTitle{color:var(--text-strong);font-weight:800;text-transform:uppercase;letter-spacing:.8px}.postTutorialChoiceDescription{color:var(--text-soft);font-size:.88rem;line-height:1.45}.authGateView{padding:24px}.authGateCard{border:1px solid var(--panel-border-strong);border-radius:8px;background:var(--home-card-bg);box-shadow:0 18px 40px var(--shadow-strong)}.authGateEyebrow{margin-bottom:12px;color:var(--hot);text-transform:uppercase;letter-spacing:3px;font-size:.85rem;font-family:var(--font-display)}.authGateMeta{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}.authGateError{margin:0 auto 18px;max-width:480px;padding:12px 14px;border:1px solid var(--danger-accent);border-radius:8px;background:var(--danger-bg);color:var(--text-strong)}.authGateNotice{margin:0 auto 18px;max-width:480px;padding:12px 14px;border:1px solid var(--success-accent);border-radius:8px;background:var(--success-bg);color:var(--text-strong)}.authModeTabs{display:flex;gap:8px;max-width:520px;margin:0 auto 18px;padding:4px;border:1px solid var(--glass-border);border-radius:8px;background:var(--panel-translucent)}.authModeTab{flex:1;min-width:0;border:1px solid transparent;border-radius:6px;padding:10px 12px;background:transparent;color:var(--text-soft);font-family:var(--font);font-size:12px;letter-spacing:1px;text-transform:uppercase;cursor:pointer}.authModeTab.active{border-color:var(--accent-primary);background:var(--info-bg);color:var(--text-strong)}.authOAuthButton{width:min(520px,100%);margin:0 auto 14px;justify-content:center;min-height:44px;background:var(--panel-solid);border-color:var(--panel-border-strong);color:var(--text-strong)}.authForm{width:min(520px,100%);margin:0 auto;display:grid;gap:12px}.netlifyHoneypot{display:none}.authField{display:grid;gap:6px;text-align:left;color:var(--text-soft);font-size:12px;letter-spacing:1px;text-transform:uppercase}.authField input{width:100%;min-width:0;border:1px solid var(--glass-border);border-radius:6px;background:var(--panel-translucent);color:var(--text-main);padding:12px 14px;font:15px var(--font);letter-spacing:0;text-transform:none}.authField input:focus{outline:2px solid var(--accent-primary);outline-offset:2px}.authField input::placeholder{color:var(--text-muted)}.authSubmit{width:100%;justify-content:center;min-height:44px}.guestDemoCard{width:min(760px,100%)}.guestDemoView{height:100%;align-items:flex-start;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;padding:clamp(20px,5vh,48px) clamp(14px,4vw,24px);scroll-padding-block:24px}.guestDemoView .guestDemoCard{margin:0 auto;max-height:none;overflow:visible}.guestDemoDek{max-width:620px;margin-inline:auto;color:var(--text-strong);font-size:1.08rem}.guestDemoCopy{max-width:620px;margin:0 auto 22px;text-align:left;color:var(--text-soft);line-height:1.55}.guestDemoCopy a{color:var(--accent-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.guestDemoCopy a:hover,.guestDemoCopy a:focus-visible{color:var(--text-strong)}.guestDemoCopy h2{margin:20px 0 8px;color:var(--accent-primary);font-family:var(--font-display);font-size:1rem;letter-spacing:.8px}.guestDemoCopy h2 a{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.guestDemoCopy h2 a:hover,.guestDemoCopy h2 a:focus-visible{color:var(--text-strong)}.guestDemoCopy p{margin:0 0 12px}.guestDemoLead{margin-bottom:8px}.guestDemoLearningRow{display:flex;align-items:center;gap:10px;margin:0 0 12px}.guestDemoLearningLabel{color:var(--text-strong);font:800 1.05rem var(--font);line-height:1.25}.guestDemoLoopCopy{color:var(--text-soft)}.guestDemoMemeImage{display:block;width:min(520px,100%);height:auto;margin:18px auto 8px;border:1px solid var(--panel-border);border-radius:8px;background:#fff}.guestDemoMemeCaption{margin:0 auto 18px;color:var(--text-strong);font-size:.9rem;font-weight:900;text-align:center;text-transform:uppercase}.guestDemoCopy ul{display:grid;gap:7px;margin:0;padding-left:20px}.guestDemoCopy li{padding-left:2px}.guestDemoInfoButton{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;border:1px solid var(--glass-border);border-radius:50%;background:transparent;color:var(--text-soft);font:700 17px var(--font);cursor:pointer}.guestDemoInfoButton:hover,.guestDemoInfoButton:focus-visible{border-color:var(--accent-primary);color:var(--text-strong);outline:none}.guestDemoModalOverlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:#000000b8}.guestDemoModal{width:min(1120px,100%);max-height:min(760px,calc(100vh - 48px));overflow:auto;padding:24px;border:1px solid var(--panel-border-strong);border-radius:10px;background:var(--panel-solid);box-shadow:0 24px 60px var(--shadow-strong);color:var(--text-main);text-align:left}.guestDemoModalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}.guestDemoModalHeader h2{margin:0;color:var(--text-strong);font-family:var(--font-display);font-size:1.2rem;line-height:1.25}.guestDemoModalClose{display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border:1px solid var(--glass-border);border-radius:8px;background:var(--panel-translucent);color:var(--text-strong);font:700 22px var(--font);cursor:pointer}.guestDemoModal>p{margin:0 0 16px;color:var(--text-soft);line-height:1.6}.guestDemoTableWrap{overflow-x:auto;margin:18px 0;border:1px solid var(--panel-border);border-radius:8px}.guestDemoPrincipleTable{width:100%;min-width:860px;border-collapse:collapse;color:var(--text-main);font-size:.9rem;line-height:1.55}.guestDemoPrincipleTable th,.guestDemoPrincipleTable td{padding:14px;border-bottom:1px solid var(--panel-border);text-align:left;vertical-align:top}.guestDemoPrincipleTable thead th{color:var(--text-strong);font-weight:800;background:var(--panel-muted)}.guestDemoPrincipleTable tbody th{width:23%;color:var(--text-strong);font-weight:800}.guestDemoPrincipleTable td:nth-child(2){width:32%}.guestDemoPrincipleTable tr:last-child th,.guestDemoPrincipleTable tr:last-child td{border-bottom:0}.guestDemoPrincipleTable a{display:inline-flex;align-items:center;min-height:22px;margin-left:6px;padding:2px 8px;border-radius:999px;background:var(--panel-muted);color:var(--accent-primary);font-size:.72rem;font-weight:800;text-decoration:none;text-transform:uppercase}.guestDemoPrincipleTable a:hover,.guestDemoPrincipleTable a:focus-visible{color:var(--text-strong);outline:1px solid var(--accent-primary);outline-offset:2px}.guestDemoModalFooter{color:var(--text-muted);font-size:.82rem}.authDebugPanel{position:fixed;right:20px;bottom:20px;z-index:1100;width:min(360px,calc(100vw - 40px));padding:14px;border-radius:14px;border:1px solid var(--panel-border-strong);background:var(--panel-solid);box-shadow:0 14px 32px #00000059;color:var(--text-main);font-size:.88rem}.authDebugPanel pre{margin:10px 0 0;max-height:180px;overflow:auto;white-space:pre-wrap;word-break:break-word;color:var(--text-soft)}.authDebugTitle{margin-bottom:8px;color:var(--cool);text-transform:uppercase;letter-spacing:2px;font-family:var(--font-display)}:root[data-theme=light] .shell{box-shadow:0 0 32px #0e749014,0 0 0 1px #ffffff80 inset,0 24px 48px #1629331f}:root[data-theme=light] .crt-overlay{background:linear-gradient(#fff0 50%,#17202a03 50%),linear-gradient(90deg,#2563eb02,#ffffff01,#2563eb02);animation:none;opacity:.18}:root[data-theme=light] .scanline{display:none}:root[data-theme=light] .timer{text-shadow:none}:root[data-theme=light] .btn,:root[data-theme=light] .pill,:root[data-theme=light] .topbarMenuButton,:root[data-theme=light] .field,:root[data-theme=light] .workspaceToggleBtn,:root[data-theme=light] .tabBtn{box-shadow:none}:root[data-theme=light] .btn{background:var(--button-secondary-bg);color:var(--text-strong)}:root[data-theme=light] .btn.subtle{background:var(--button-secondary-bg)}:root[data-theme=light] .btn:hover{border-color:var(--accent-primary);box-shadow:0 0 0 1px var(--panel-border-strong);text-shadow:none}:root[data-theme=light] .btn:before{background:linear-gradient(90deg,transparent,rgba(14,116,144,.08),transparent)}:root[data-theme=light] .btn.primary{background:var(--button-primary-bg);border-color:var(--button-primary-bg);color:var(--button-primary-text)}:root[data-theme=light] .btn.primary:hover{background:var(--button-primary-hover);border-color:var(--button-primary-hover)}:root[data-theme=light] .topbar,:root[data-theme=light] .chatHeader,:root[data-theme=light] .proctorInputDock,:root[data-theme=light] .sessionProctorWrap,:root[data-theme=light] .right-col{background:#ffffff9e}:root[data-theme=light] .problem,:root[data-theme=light] .readyGate,:root[data-theme=light] .constraintItem,:root[data-theme=light] .exampleCard,:root[data-theme=light] .msg.proctor,:root[data-theme=light] .chatInput,:root[data-theme=light] .field,:root[data-theme=light] .campaignProblemRow,:root[data-theme=light] .campaignSetCard,:root[data-theme=light] .campaignEmpty,:root[data-theme=light] .campaignIntro{background:#ffffffb8}:root[data-theme=light] .msg .who,:root[data-theme=light] .msg .time,:root[data-theme=light] .signal,:root[data-theme=light] .campaignSetEyebrow,:root[data-theme=light] .campaignStatusBadge.statusNew,:root[data-theme=light] .campaignProblemStats{color:var(--text-soft)}:root[data-theme=light] .home-content h1,:root[data-theme=light] .campaignIntro h1,:root[data-theme=light] .problem h2,:root[data-theme=light] .brand{text-shadow:none}:root[data-theme=light] .home-content p,:root[data-theme=light] .promptBlocks,:root[data-theme=light] .readySub,:root[data-theme=light] .msg .text,:root[data-theme=light] .campaignSummaryStats span,:root[data-theme=light] .campaignEmpty p,:root[data-theme=light] .campaignSetTitleBlock p,:root[data-theme=light] .campaignProblemTitleRow p{color:var(--text-strong)}:root[data-theme=light] .field::placeholder{color:var(--text-muted)}:root[data-theme=light] .prompt code{background:#0e749014}:root[data-theme=light] .campaignSetCard,:root[data-theme=light] .campaignProblemRow,:root[data-theme=light] .campaignEmpty,:root[data-theme=light] .campaignIntro{border-color:#0e749029}:root[data-theme=light] .campaignStatusBadge.statusPass{color:#f8fcff;background:var(--success-accent);border-color:var(--success-accent)}:root[data-theme=light] .campaignStatusBadge.statusBorderline{color:#f8fcff;background:var(--warning-accent);border-color:var(--warning-accent)}:root[data-theme=light] .campaignStatusBadge.statusNoPass{color:#f8fcff;background:var(--danger-accent);border-color:var(--danger-accent)}.campaignView{display:flex;flex-direction:column;gap:18px;min-height:100%;padding:24px}.campaignIntro{padding:20px 22px;border:1px solid var(--panel-border);background:var(--home-card-bg);border-radius:14px}.campaignIntro h1{margin:0 0 10px;font-size:2rem;color:var(--cool);font-family:var(--font-display);text-transform:uppercase;letter-spacing:1px}.campaignIntro p{margin:0;color:var(--text-soft);max-width:760px}.campaignEmpty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:22px;border:1px solid var(--panel-border);background:var(--home-card-bg);border-radius:14px}.campaignEmpty h2,.campaignSetTitleBlock h2,.campaignProblemTitleRow h3{margin:0;font-family:var(--font-display)}.campaignEmpty p,.campaignSetTitleBlock p,.campaignProblemTitleRow p{margin:0;color:var(--text-soft)}.campaignSections{display:flex;flex-direction:column;gap:18px}.campaignSetCard{display:flex;flex-direction:column;gap:16px;padding:20px;border:1px solid var(--panel-border);border-radius:16px;background:linear-gradient(180deg,var(--panel-overlay),var(--panel-muted)),var(--panel-overlay);box-shadow:0 16px 32px #00000024}.campaignSetHeader{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.campaignSetTitleBlock{display:flex;flex-direction:column;gap:8px}.campaignSetEyebrow{color:var(--text-muted);text-transform:uppercase;letter-spacing:2px;font-size:12px}.campaignSetSummary{min-width:230px;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.campaignSummaryStats{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.campaignSummaryStats span{padding:6px 10px;border:1px solid var(--panel-border);border-radius:999px;color:var(--text-main);background:var(--panel-translucent);font-size:12px;letter-spacing:.4px;text-transform:uppercase}.campaignProblemList{display:flex;flex-direction:column;gap:12px}.campaignProblemRow{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px;border-radius:12px;border:1px solid var(--panel-border);background:var(--panel-overlay)}.campaignProblemOrder{width:40px;height:40px;display:grid;place-items:center;border-radius:10px;border:1px solid var(--panel-border-strong);background:var(--panel-translucent);color:var(--cool);font-family:var(--font-display);font-size:18px}.campaignProblemBody{display:flex;flex-direction:column;gap:10px;min-width:0}.campaignProblemTitleRow{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.campaignProblemTitleRow>div:first-child{min-width:0}.campaignProblemTitleRow h3{font-size:1.05rem}.campaignProblemTitleRow p{margin-top:6px;line-height:1.45}.campaignProblemMeta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.campaignStatusBadge{padding:6px 10px;border-radius:999px;font-size:12px;text-transform:uppercase;letter-spacing:1px;border:1px solid transparent}.campaignStatusBadge.statusNew{color:var(--text-soft);background:var(--neutral-bg);border-color:var(--panel-border)}.campaignStatusBadge.statusPass{color:var(--success-accent);background:var(--success-bg);border-color:var(--success-accent)}.campaignStatusBadge.statusBorderline{color:var(--warning-accent);background:#ffd65c29;border-color:#ffd65c3d}.campaignStatusBadge.statusNoPass{color:var(--danger-accent);background:#ff505024;border-color:#ff50503d}.campaignProblemStats{display:flex;flex-wrap:wrap;gap:10px;color:var(--text-soft);font-size:13px}.campaignProblemStats span{padding:4px 8px;border-radius:999px;background:var(--panel-translucent)}.campaignProblemActions{display:flex;align-items:center;justify-content:flex-end}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:var(--text-muted);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}.chatPanelWrap{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}@media(max-width:980px){body{overflow-x:hidden;overflow-y:auto}.crt{padding:8px;overflow-x:hidden;overflow-y:auto}.shell{height:auto;min-height:100%}.topbar{padding:10px 12px;gap:10px}.appTopbar{align-items:center;flex-direction:row;flex-wrap:wrap}.appTopbar .brand{flex:1;min-width:0;max-width:calc(100% - 54px);overflow:hidden;pointer-events:none;font-size:14px;letter-spacing:1px}.appTopbar.menuOpen{align-items:stretch}.topbarMenuButton{display:inline-flex;flex:0 0 42px;margin-left:auto;position:relative;z-index:6}.topbarMenuButton:hover{border-color:var(--neon-cyan);box-shadow:0 0 0 1px var(--panel-border-strong)}.appTopbar .meta{display:none;flex:1 0 100%;width:100%;gap:10px;justify-content:flex-start;flex-direction:column;align-items:stretch}.appTopbar .meta.menuOpen{display:flex}.appTopbar .meta>*{width:100%}.appTopbar .pill{white-space:normal;justify-content:space-between}.sessionWorkspaceToggle{display:flex;gap:8px;padding:12px 14px 0}.workspaceToggleBtn{flex:1;font-family:var(--font);font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text-main);background:var(--panel-translucent);border:1px solid var(--glass-border);border-radius:999px;padding:10px 12px;cursor:pointer}.workspaceToggleBtn.active{color:var(--text-strong);border-color:var(--neon-cyan);box-shadow:0 0 0 1px var(--panel-border-strong);background:var(--info-bg)}.sessionWorkspace{flex:1 1 0;display:flex;min-height:0;overflow:hidden}.workspacePane{display:none;width:100%;height:100%;overflow:hidden}.workspacePane.isActive{display:flex}.left-col{border-right:none;border-bottom:none}.right-col{background:transparent}.problem,.editorWrap{flex:1 1 0;min-height:0}.sessionProctorWrap{flex:0 0 clamp(210px,34vh,320px);min-height:180px;max-height:38vh}.problem{--problem-font-size: 17px;--problem-line-height: 1.42;padding:14px}.readyGate{min-height:170px;justify-content:flex-start;padding:18px}.readyTitle{font-size:22px}.readySub{font-size:15px}.problem h2{font-size:21px;line-height:1.2}.campaignView{padding:16px}.campaignSetHeader,.campaignProblemTitleRow,.campaignProblemRow{display:flex;flex-direction:column;align-items:flex-start}.campaignSetSummary,.campaignProblemMeta,.campaignProblemActions{width:100%;align-items:flex-start;justify-content:flex-start}.campaignSummaryStats{justify-content:flex-start}.campaignProblemOrder{width:36px;height:36px;font-size:16px}}@media(max-width:420px){.crt{padding:6px}.shell{border-radius:10px}.topbar{padding:8px 10px}.appTopbar .brand{font-size:13px;letter-spacing:.6px;gap:8px}.sessionWorkspaceToggle{padding:10px 10px 0}.workspaceToggleBtn,.tabBtn,.btn{letter-spacing:.5px}.problem{--problem-font-size: 16px;padding:12px}.problem .title{align-items:flex-start;flex-direction:column}.problem h2{font-size:20px}.sessionProctorWrap{flex-basis:clamp(190px,32vh,280px);min-height:170px}.chatInput{padding:10px}.field{min-width:0}}@media(max-width:640px){.crt{padding:6px}.topbar{padding:8px 10px}.brand{font-size:clamp(13px,4vw,18px);letter-spacing:.6px;white-space:normal}.sessionWorkspaceToggle{padding:10px 12px 0}.workspaceToggleBtn{font-size:11px;letter-spacing:.5px;padding:9px 10px}.problem{--problem-font-size: 16px;--problem-line-height: 1.42;padding:12px}.problem .title{align-items:flex-start}.problem h2{font-size:clamp(20px,5.6vw,24px);line-height:1.2;overflow-wrap:anywhere}.problemTabs{overflow-x:auto;padding-bottom:2px}.tabBtn{flex:0 0 auto}.sessionProctorWrap{flex-basis:clamp(190px,32vh,280px);min-height:170px;max-height:34vh}.chatHeader{min-height:38px;padding:6px 10px}.chatInput{padding:10px}.msg{max-width:100%}}
