@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;600&family=Syne:wght@500;700;800&display=swap";:root{--bg:#0a0c10;--surface:#12151c;--surface-2:#1a1f2b;--border:#2a3144;--text:#e8ecf4;--muted:#8b95a8;--accent:#ffb020;--accent-dim:#c48412;--success:#3dd68c;--danger:#ff6b6b;--glow:#ffb02026;color:var(--text);background:var(--bg);font-family:IBM Plex Mono,ui-monospace,monospace;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(ellipse 80% 50% at 20% -10%, var(--glow), transparent), radial-gradient(ellipse 60% 40% at 90% 110%, #3dd68c14, transparent), var(--bg);min-height:100vh;margin:0}#root{min-height:100vh}h1,h2,h3{letter-spacing:-.02em;font-family:Syne,system-ui,sans-serif;font-weight:700}code{background:var(--surface-2);border-radius:4px;padding:.1em .35em;font-size:.9em}.app{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--border);background:var(--surface);flex-direction:column;gap:1rem;height:100vh;padding:1.5rem 1rem;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:.75rem;display:flex}.brand-mark{color:var(--accent);filter:drop-shadow(0 0 8px var(--glow));font-size:1.75rem}.brand strong{letter-spacing:.15em;font-family:Syne,sans-serif;font-size:1.1rem;display:block}.brand span{color:var(--muted);font-size:.7rem}.brand-tagline{color:var(--muted);margin:0;font-size:.72rem;line-height:1.4}.progress-map{flex-direction:column;flex:1;gap:.35rem;display:flex}.progress-node{color:var(--muted);border-radius:6px;align-items:center;gap:.5rem;padding:.35rem .5rem;font-size:.68rem;transition:background .2s;display:flex}.progress-node.current{background:var(--surface-2);color:var(--accent)}.progress-node.done{color:var(--success)}.progress-dot{border:1px solid var(--border);border-radius:50%;flex-shrink:0;place-items:center;width:1.4rem;height:1.4rem;font-size:.65rem;display:grid}.progress-node.done .progress-dot{border-color:var(--success);background:#3dd68c1f}.progress-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.main{max-width:900px;padding:2rem clamp(1rem,4vw,3rem)}.gate-shell{animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.gate-eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .5rem;font-size:.72rem}.gate-header h1{margin:0 0 .5rem;font-size:clamp(1.5rem,4vw,2.2rem)}.gate-subtitle{color:var(--muted);max-width:60ch;margin:0 0 1.5rem}.gate-warning{background:var(--surface-2);border-left:3px solid var(--accent);margin-bottom:1rem;padding:1rem;font-size:.85rem}.gate-body{flex-direction:column;gap:1rem;display:flex}.challenge-brief{background:var(--surface);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.field{flex-direction:column;gap:.35rem;margin-bottom:.75rem;display:flex}.field label{color:var(--muted);font-size:.82rem}.field input,.field textarea,.field select{background:var(--surface-2);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;padding:.6rem .75rem}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid var(--accent-dim);border-color:var(--accent)}.field-hint,.file-hint{color:var(--muted);font-size:.72rem}.checkbox-field label{color:var(--text);cursor:pointer;align-items:flex-start;gap:.5rem;display:flex}.honeypot{opacity:0;height:0;position:absolute;left:-9999px;overflow:hidden}.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:6px;padding:.55rem 1rem;transition:transform .15s,border-color .15s}.btn:hover{border-color:var(--accent-dim)}.btn:active{transform:scale(.98)}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-dim));color:#1a1200;border:none;font-weight:600}.btn-secondary{border-color:var(--accent-dim);color:var(--accent)}.btn-ghost{background:0 0;width:100%;font-size:.75rem}.btn-lg{padding:.85rem 1.5rem;font-size:1rem}.form-error{color:var(--danger);font-size:.85rem}.gauntlet-intro{background:var(--surface);border:1px dashed var(--border);border-radius:8px;margin:1rem 0;padding:1rem}.gauntlet-intro h3{margin:0 0 .5rem;font-size:1rem}.status-badge{letter-spacing:.06em;white-space:nowrap;border-radius:4px;padding:.25rem .5rem;font-size:.65rem;font-weight:600}.status-idle{background:var(--surface-2);color:var(--muted)}.status-running{color:var(--accent);background:#ffb02026}.status-pass{color:var(--success);background:#3dd68c26}.status-fail{color:var(--danger);background:#ff6b6b26}.gate-message.pass{color:var(--success)}.gate-message.fail{color:var(--danger)}.sandbox,.broken-demo{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.demo-label{color:var(--danger);font-size:.8rem}.sandbox-toolbar{flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;display:flex}.cart-list{margin:.5rem 0;padding-left:1.2rem;font-size:.85rem}.cart-metrics{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem;font-size:.82rem;display:flex}.virtual-viewport{border:1px solid var(--border);background:var(--surface);border-radius:8px;height:320px;overflow:auto}.virtual-row{border-bottom:1px solid var(--border);align-items:center;padding:0 .75rem;font-size:.78rem;display:flex}.virtual-controls{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.virtual-stats{color:var(--muted);margin-left:auto;font-size:.75rem}.search-box input{background:var(--surface-2);border:1px solid var(--border);width:100%;color:var(--text);font:inherit;border-radius:8px;padding:.75rem}.search-results{border:1px solid var(--border);border-radius:8px;margin:.5rem 0 0;padding:0;list-style:none;overflow:hidden}.search-results li{border-bottom:1px solid var(--border);padding:.5rem .75rem;font-size:.82rem}.request-log{background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:160px;padding:.75rem;font-size:.72rem;overflow-y:auto}.request-log h4{color:var(--muted);margin:0 0 .5rem;font-size:.75rem}.log-line{color:var(--muted)}.product-brief{background:var(--surface);border:1px solid var(--border);white-space:pre-wrap;color:var(--muted);border-radius:8px;padding:1rem;font-size:.82rem}.notif-widget{display:inline-block;position:relative}.notif-bell{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:50%;width:4rem;height:4rem;font-size:2rem;position:relative}.notif-bell.pulse{animation:2s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 #ffb02066}50%{box-shadow:0 0 0 12px #ffb02000}}.unread-badge{background:var(--danger);color:#fff;border-radius:999px;padding:.1rem .35rem;font-size:.65rem;font-weight:600;position:absolute;top:0;right:0}.notif-panel{background:var(--surface);border:1px solid var(--border);z-index:10;border-radius:8px;width:260px;padding:.75rem;font-size:.78rem;position:absolute;top:110%;right:0;box-shadow:0 8px 32px #0006}.ambiguity-workspace{flex-wrap:wrap;align-items:flex-start;gap:2rem;display:flex}.order-list{margin:0 0 1rem;padding:0;list-style:none}.order-list li{background:var(--surface);border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;margin-bottom:.35rem;padding:.5rem .75rem;font-size:.82rem;display:flex}.order-actions button{margin-left:.25rem;padding:.2rem .45rem;font-size:.75rem}.test-results{padding:0;font-size:.82rem;list-style:none}.test-results .pass{color:var(--success)}.test-results .fail{color:var(--danger)}.final-summary ul{padding:0;font-size:.85rem;list-style:none}.terminal-line{margin:.35rem 0;font-size:.85rem}.terminal-prompt{color:var(--accent)}.final-success h1{color:var(--success)}.ai-verdict{background:var(--surface);border:1px solid var(--border);border-radius:8px;margin:1rem 0;padding:1rem}.success-note{color:var(--muted);font-size:.85rem}.sr-only{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.sidebar-footer{margin-top:auto}@media (width<=768px){.app{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.progress-map{flex-flow:wrap}.progress-label{display:none}}
