@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=JetBrains+Mono:wght@400;700&display=swap";:root{--primary: #ffffff;--secondary: #27272a;--accent: #00F0FF;--background: #000000;--surface: #000000;--surface-hover: #09090b;--text: #ffffff;--text-muted: #a1a1aa;--success: #39FF14;--error: #FF3333;--border-color: #27272a;--glass-bg: #000000;--glass-border: #27272a;--shadow-premium: none}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,sans-serif;background-color:var(--background);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}main{flex:1;width:100%}.font-mono,.code-label,.chart-value,.option-letter{font-family:JetBrains Mono,Fira Code,Roboto Mono,monospace}.container{max-width:1200px;margin:0 auto;padding:0 1.5rem}.glass,.glass-panel{background:var(--background);border:1px solid var(--border-color);border-radius:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}h1,h2,h3,h4{font-weight:700;letter-spacing:-.02em;color:#fff}.gradient-text{background:none;-webkit-text-fill-color:initial;color:#fff}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;border-radius:2px;font-weight:500;cursor:pointer;transition:all .2s ease;border:1px solid transparent;font-size:.9rem;text-decoration:none;gap:.5rem;text-transform:uppercase;letter-spacing:.05em}.btn-primary{background:var(--text);color:var(--background);border:1px solid var(--text)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#000;box-shadow:0 0 20px #00f0ff33}.btn-primary:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-secondary{background:transparent;color:var(--text);border:1px solid var(--border-color)}.btn-secondary:hover{border-color:var(--accent);color:var(--accent);background:#00f0ff0d}input{width:100%;padding:.75rem 1rem;background:var(--background);border:1px solid var(--border-color);border-radius:0;color:#fff;font-family:JetBrains Mono,monospace;font-size:.9rem;outline:none;transition:border-color .2s}input:focus{border-color:var(--accent)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--accent)}.flex-center{display:flex;align-items:center;justify-content:center}.mt-2{margin-top:8px}.navbar{padding:1rem 0;border-bottom:1px solid var(--border-color);background:var(--background);margin-bottom:2rem}.logo{font-weight:700;font-size:1.25rem;color:var(--text);text-decoration:none;font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.1em}.pill{border:1px solid var(--border-color);padding:.25rem .75rem;border-radius:2px;font-family:JetBrains Mono,monospace;font-size:.8rem;text-transform:uppercase}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes popIn{0%{transform:scale(.98);opacity:0}to{transform:scale(1);opacity:1}}.animate-fadeIn{animation:fadeIn .3s ease-out forwards}.animate-slideUp{animation:slideUp .4s ease-out forwards}.animate-popIn{animation:popIn .3s cubic-bezier(.16,1,.3,1) forwards}.loader{border:2px solid var(--border-color);border-left-color:var(--text);border-radius:50%;width:24px;height:24px;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-glow{0%{box-shadow:0 0 10px #00f0ff33}50%{box-shadow:0 0 20px #00f0ff66}to{box-shadow:0 0 10px #00f0ff33}}.lab-root{display:flex;flex-direction:column;min-height:100vh}.lab-screen{min-height:100vh;padding:20px}.lab-loader{text-align:center;padding:60px}.spin-ring{width:50px;height:50px;border:4px solid var(--border-color);border-top:4px solid var(--accent);border-radius:50%;margin:0 auto 24px;animation:spin 1s linear infinite}.loading-title{font-size:20px;font-weight:700;margin:0 0 8px;color:#fff;letter-spacing:.1em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.loading-subtitle{font-size:14px;color:var(--text-muted);margin:0}.error-panel{padding:40px;border:1px solid var(--border-color);border-left:4px solid var(--error);max-width:500px;text-align:center}.error-title{color:var(--error);font-size:18px;font-weight:700;margin:0 0 12px;letter-spacing:.1em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.error-subtitle{color:var(--text-muted);font-size:14px}.topbar{display:flex;justify-content:space-between;align-items:center;padding:14px 24px;border-bottom:1px solid var(--border-color);z-index:10}.topbar-left,.topbar-right{display:flex;align-items:center;gap:16px}.logo-icon{color:var(--accent);font-size:22px;font-weight:900;font-family:JetBrains Mono,monospace}.topbar-title{font-size:13px;font-weight:700;margin:0;letter-spacing:.12em;text-transform:uppercase;font-family:JetBrains Mono,monospace}.topbar-context{font-size:12px;color:var(--text-muted);padding-left:16px;border-left:1px solid var(--border-color);font-family:JetBrains Mono,monospace}.progress-text{font-size:11px;font-weight:600;color:var(--text-muted);font-family:JetBrains Mono,monospace;text-transform:uppercase;letter-spacing:.05em}.progress-track{width:140px;height:3px;background:var(--secondary);overflow:hidden}.progress-fill{height:100%;background:var(--accent);transition:width .6s cubic-bezier(.22,1,.36,1)}.lab-layout{display:flex;flex:1;overflow:hidden}.sidebar{width:250px;min-width:250px;display:flex;flex-direction:column;border-right:1px solid var(--border-color);z-index:5}.sidebar-header{padding:14px 20px;font-size:10px;font-weight:700;color:var(--text-muted);letter-spacing:.18em;text-transform:uppercase;border-bottom:1px solid var(--border-color);font-family:JetBrains Mono,monospace}.sidebar-list{flex:1;overflow-y:auto;padding:10px}.nav-btn{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;background:transparent;border:1px solid transparent;color:var(--text-muted);font-family:Inter,system-ui,sans-serif;text-align:left;cursor:pointer;transition:all .2s ease;margin-bottom:2px;border-radius:2px}.nav-btn:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-color);color:var(--text)}.nav-icon{width:26px;height:26px;display:flex;align-items:center;justify-content:center;background:var(--secondary);font-size:11px;font-weight:700;transition:all .2s ease;flex-shrink:0;font-family:JetBrains Mono,monospace;border-radius:2px}.nav-text{font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nav-btn.locked{opacity:.3;cursor:not-allowed}.nav-btn.done .nav-icon{background:#39ff1414;color:var(--success);border:1px solid rgba(57,255,20,.25)}.nav-btn.done .nav-text{color:#ffffffb3}.nav-btn.active{background:#00f0ff0a;border-color:#00f0ff26}.nav-btn.active .nav-icon{background:#00f0ff1a;color:var(--accent);border:1px solid var(--accent)}.nav-btn.active .nav-text{color:#fff}.main-content{flex:1;padding:24px 28px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.brief-panel{padding:20px 24px;border:1px solid var(--border-color)}.brief-tag{color:var(--accent);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;font-family:JetBrains Mono,monospace}.brief-title{font-size:22px;font-weight:700;margin:0 0 10px;color:#fff;letter-spacing:-.02em}.brief-desc{font-size:14px;color:var(--text-muted);line-height:1.6;white-space:pre-wrap;margin:0}.mission-box{margin-top:16px;padding:14px 18px;background:#00f0ff08;border:1px solid var(--border-color);border-left:3px solid var(--accent)}.mission-label{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px;font-family:JetBrains Mono,monospace}.mission-text{font-family:Inter,system-ui,sans-serif;font-size:14px;line-height:1.65;color:#fff;margin:0;white-space:pre-wrap}.editor-panel{border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden}.editor-tabbar{display:flex;align-items:center;background:#00000059;border-bottom:1px solid var(--border-color);min-height:36px;padding:0 8px 0 0;gap:0}.editor-tabs{display:flex;align-items:stretch;flex:1}.editor-tab{display:flex;align-items:center;gap:6px;padding:0 16px;height:36px;font-size:12px;font-family:JetBrains Mono,monospace;color:var(--text-muted);border-right:1px solid var(--border-color);cursor:default;position:relative;user-select:none}.editor-tab.active-tab{background:var(--background);color:#fff;border-bottom:1px solid var(--background);margin-bottom:-1px}.tab-icon{font-size:13px}.tab-name{font-size:12px;font-weight:500}.tab-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.7}.shortcut-hint{margin-left:auto;font-size:10px;color:#ffffff2e;font-family:JetBrains Mono,monospace;white-space:nowrap;padding-right:8px}.editor-body{display:flex;flex:1;background:var(--background);overflow:hidden;min-height:160px}.editor-gutter{padding:16px 0;min-width:48px;background:#0000002e;border-right:1px solid rgba(255,255,255,.06);overflow:hidden;user-select:none;flex-shrink:0}.gutter-line{font-family:JetBrains Mono,monospace;font-size:13px;line-height:1.6;color:#fff3;text-align:right;padding:0 12px 0 8px;height:20.8px}.code-editor{flex:1;padding:16px 20px;background:transparent;color:#e8e8f0;border:none;font-size:13px;line-height:1.6;resize:none;outline:none;caret-color:var(--accent);font-family:JetBrains Mono,monospace;min-height:160px;overflow-y:auto}.editor-statusbar{display:flex;align-items:center;gap:0;padding:0 12px;background:#0006;border-top:1px solid var(--border-color);height:40px;font-family:JetBrains Mono,monospace;font-size:11px}.statusbar-info{color:#ffffff4d;padding:0 10px;white-space:nowrap}.statusbar-sep{color:#ffffff1a}.statusbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.btn-outline{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);padding:6px 14px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;transition:all .2s;border-radius:2px}.btn-outline:hover{border-color:var(--text-muted);color:#fff}.btn-primary{background:#fff;color:#000;border:1px solid #fff;padding:7px 18px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;transition:all .2s;border-radius:2px}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:#000;box-shadow:0 0 16px #00f0ff40}.hint-box{padding:12px 18px;background:#00f0ff0a;border-top:1px solid rgba(0,240,255,.1);display:flex;gap:12px;align-items:flex-start}.hint-label{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding-top:2px}.hint-text{font-family:JetBrains Mono,monospace;color:#00f0ffbf;margin:0;font-size:12px;line-height:1.6;white-space:pre-wrap}.feedback-panel.warning{background:#ff33330a;border:1px solid rgba(255,51,51,.2);border-left:3px solid var(--error);padding:18px 20px}.feedback-title{color:var(--error);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;font-family:JetBrains Mono,monospace}.feedback-msg{color:#fff;font-size:14px;margin:0 0 6px}.feedback-sub{color:#ffffff59;font-size:12px;margin:0}.terminal-panel{border:1px solid var(--border-color);overflow:hidden;display:flex;flex-direction:column;background:#0d0d0d}.terminal-panel.term-ok{border-color:#39ff1440}.terminal-panel.term-err{border-color:#ff333340}.terminal-panel.term-wrong{border-color:#ffc80033}.terminal-panel.term-warn{border-color:#ffa0004d}.terminal-titlebar{display:flex;align-items:center;gap:12px;padding:0 16px;height:36px;background:#ffffff0a;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.window-dots{display:flex;gap:6px;flex-shrink:0}.dot{width:11px;height:11px;border-radius:50%}.dot-r{background:#ff5f57}.dot-y{background:#ffbd2e}.dot-g{background:#28c840}.terminal-name{font-size:12px;font-family:JetBrains Mono,monospace;color:#ffffff59;flex:1;text-align:center;letter-spacing:.02em}.term-status-area{display:flex;align-items:center}.status-badge{font-size:10px;font-weight:700;letter-spacing:.08em;padding:3px 10px;text-transform:uppercase;font-family:JetBrains Mono,monospace;border-radius:2px}.status-badge.ok{background:#39ff141a;color:var(--success);border:1px solid rgba(57,255,20,.3)}.status-badge.err{background:#ff33331a;color:var(--error);border:1px solid rgba(255,51,51,.3)}.status-badge.warn{background:#ffa0001a;color:#ffa000;border:1px solid rgba(255,160,0,.3)}.status-badge.run{background:#ffffff0d;color:var(--text-muted);border:1px solid var(--border-color)}.terminal-body{padding:14px 20px;display:flex;flex-direction:column;gap:0;background:#0d0d0d;flex:1}.term-row{display:flex;align-items:baseline;min-height:21.45px;line-height:1.65;white-space:pre-wrap;word-break:break-all}.term-prompt{font-size:13px;font-family:JetBrains Mono,monospace;white-space:nowrap;flex-shrink:0}.term-user{color:#28c840}.term-at{color:#fff6}.term-host{color:#5bc8f5}.term-sep{color:#ffffff4d}.term-path{color:#c9a0ff}.term-dollar{color:#ffffff80}.term-cmd{color:#ffffffa6;font-size:13px;font-family:JetBrains Mono,monospace}.term-idle,.term-idle-text{color:#fff3;font-size:13px;font-family:JetBrains Mono,monospace}.term-running-row{color:#ffffff4d}.term-out-line{color:#e2e2f0;font-size:13px;font-family:JetBrains Mono,monospace;padding-left:4px}.term-err-icon{color:#ff5f57;font-size:11px;margin-right:6px;flex-shrink:0}.term-err-line{color:#ff8080;font-size:13px;font-family:JetBrains Mono,monospace}.term-exit{margin-top:4px;flex-wrap:nowrap}.term-prompt-mini{font-size:13px;font-family:JetBrains Mono,monospace;white-space:nowrap;flex-shrink:0}.term-exit-code{font-size:12px;font-family:JetBrains Mono,monospace;margin-right:4px}.exit-ok{color:#39ff1480}.exit-err{color:#f339}.term-cursor-blink{color:var(--accent);font-size:14px;font-family:JetBrains Mono,monospace;animation:blink 1.1s step-end infinite;line-height:1}.term-cursor-after{margin-left:4px}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.btn-back{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);padding:6px 12px;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:600;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;transition:all .2s;border-radius:2px;white-space:nowrap}.btn-back:hover{border-color:var(--accent);color:var(--accent)}.selector-root{display:flex;flex-direction:column;min-height:100vh}.selector-content{flex:1;padding:48px 60px;display:flex;flex-direction:column;gap:40px;max-width:1100px;margin:0 auto;width:100%;box-sizing:border-box}.selector-header{text-align:center}.selector-eyebrow{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--accent);letter-spacing:.18em;text-transform:uppercase;margin-bottom:12px}.selector-title{font-size:36px;font-weight:700;margin:0 0 12px;letter-spacing:-.03em;color:#fff}.selector-subtitle{font-size:14px;color:var(--text-muted);max-width:540px;margin:0 auto;line-height:1.7}.labs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.lab-card{background:transparent;border:1px solid var(--border-color);padding:24px;cursor:pointer;text-align:left;color:var(--text);font-family:Inter,system-ui,sans-serif;transition:all .25s ease;display:flex;flex-direction:column;gap:14px;border-radius:2px}.lab-card:hover{border-color:#00f0ff66;background:#00f0ff08;transform:translateY(-2px);box-shadow:0 8px 32px #0000004d}.lab-card-icon{font-size:36px;line-height:1}.lab-card-header{display:flex;flex-direction:column;gap:4px}.lab-card-subtitle{font-family:JetBrains Mono,monospace;font-size:10px;color:var(--accent);letter-spacing:.14em;text-transform:uppercase}.lab-card-title{font-size:18px;font-weight:700;color:#fff;margin:0;letter-spacing:-.02em}.lab-card-desc{font-size:13px;color:var(--text-muted);line-height:1.65;margin:0;flex:1}.lab-card-footer{display:flex;align-items:center;justify-content:space-between;padding-top:14px;border-top:1px solid var(--border-color)}.lab-card-count{font-family:JetBrains Mono,monospace;font-size:11px;color:var(--text-muted)}.lab-card-arrow{font-size:16px;color:var(--accent);font-family:JetBrains Mono,monospace;transition:transform .2s ease}.lab-card:hover .lab-card-arrow{transform:translate(4px)}.code-issue-view{border-top:1px solid rgba(255,160,0,.15);background:#ffa00008;padding:14px 20px}.code-issue-label{font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;color:#ffa000;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px}.code-issue-msg{color:#fff;font-size:14px;line-height:1.55;margin:0 0 6px}.code-issue-sub{color:#ffffff4d;font-size:12px;margin:0}.term-cursor-warn{color:#ffa000}.diff-view{border-top:1px solid rgba(255,255,255,.07);background:#0003;padding:14px 20px}.diff-row{display:flex;gap:16px}.diff-col{flex:1;min-width:0}.diff-divider{width:1px;background:#ffffff12;flex-shrink:0}.diff-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px;font-family:JetBrains Mono,monospace}.diff-expected-label{color:#39ff1499}.diff-actual-label{color:#ff505099}.diff-block{padding:10px 14px;margin:0;font-size:13px;font-family:JetBrains Mono,monospace;border-radius:2px;white-space:pre-wrap;word-break:break-all}.diff-expected{background:#39ff140d;border:1px solid rgba(57,255,20,.2);color:#7fff6a}.diff-actual{background:#ff33330d;border:1px solid rgba(255,51,51,.2);color:#ff8080}.actions-bar{padding:12px 16px;background:#39ff140a;border-top:1px solid rgba(57,255,20,.1);text-align:right}.btn-success{background:var(--success);color:#000;border:1px solid var(--success);padding:9px 20px;font-family:JetBrains Mono,monospace;font-size:11px;font-weight:700;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;transition:all .2s;border-radius:2px}.btn-success kbd{font-family:JetBrains Mono,monospace;font-size:10px;background:#00000040;border-radius:2px;padding:1px 5px;margin-left:6px;letter-spacing:0}.btn-success:hover{box-shadow:0 0 20px #39ff1440}.completion-banner{margin:14px 18px 18px;padding:18px;background:#39ff140d;border:1px solid rgba(57,255,20,.2);border-left:3px solid var(--success);color:var(--success);font-size:13px;font-weight:700;text-align:center;letter-spacing:.1em;text-transform:uppercase;font-family:JetBrains Mono,monospace;animation:pulse-glow 3s infinite}
