@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";.theme-switcher{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-mono)}.theme-switcher--toggle{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;padding:8px;transition:all var(--transition-fast)}.theme-switcher--toggle:hover{background:var(--bg-elevated);border-color:var(--terminal-green-dim);color:var(--terminal-green)}.theme-switcher--toggle:focus{outline:none;border-color:var(--terminal-green);box-shadow:0 0 0 2px var(--terminal-green-glow)}.theme-switcher--toggle:active{transform:scale(.95)}.theme-switcher__icon-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:18px;height:18px}.theme-switcher__icon{position:absolute;transition:transform .3s ease,opacity .3s ease}[data-theme=dark] .theme-switcher__icon--sun{transform:rotate(-90deg) scale(0);opacity:0}[data-theme=dark] .theme-switcher__icon--moon,[data-theme=light] .theme-switcher__icon--sun{transform:rotate(0) scale(1);opacity:1}[data-theme=light] .theme-switcher__icon--moon{transform:rotate(90deg) scale(0);opacity:0}.theme-switcher--dropdown{position:relative}.theme-switcher__label{display:flex;align-items:center;gap:6px;color:var(--text-muted);font-size:.85rem;margin-right:8px}.theme-switcher__select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-mono);font-size:.85rem;padding:6px 28px 6px 12px;cursor:pointer;transition:all var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b949e' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.theme-switcher__select:hover{background-color:var(--bg-elevated);border-color:var(--terminal-green-dim)}.theme-switcher__select:focus{outline:none;border-color:var(--terminal-green);box-shadow:0 0 0 2px var(--terminal-green-glow)}.theme-switcher__select option{background:var(--bg-secondary);color:var(--text-primary)}.theme-switcher__text{font-size:.85rem;color:var(--text-secondary)}.theme-switcher--sm{font-size:.75rem}.theme-switcher--sm.theme-switcher--toggle{padding:6px}.theme-switcher--sm .theme-switcher__icon-wrapper{width:14px;height:14px}.theme-switcher--sm .theme-switcher__icon svg{width:14px;height:14px}.theme-switcher--lg{font-size:1rem}.theme-switcher--lg.theme-switcher--toggle{padding:10px 14px}.theme-switcher--lg .theme-switcher__icon-wrapper{width:22px;height:22px}.theme-switcher--lg .theme-switcher__icon svg{width:22px;height:22px}@media(prefers-reduced-motion:reduce){.theme-switcher__icon{transition:none}.theme-switcher--toggle:active{transform:none}}.navbar{position:sticky;top:0;z-index:var(--z-sticky, 100);background:var(--bg-primary);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(var(--bg-primary-rgb, 13, 17, 23),.9)}[data-theme=light] .navbar{background:#ffffffe6}.navbar-container{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto;padding:.75rem 1.5rem;gap:1.5rem}.navbar-logo{display:flex;align-items:center;gap:.5rem;text-decoration:none;font-family:var(--font-mono);font-weight:700;color:var(--terminal-green);font-size:1.1rem;letter-spacing:.05em}.navbar-logo:hover{color:var(--terminal-green-bright)}.logo-icon{font-size:1rem;opacity:.8}.logo-text{letter-spacing:.1em}.navbar-links{display:flex;align-items:center;gap:.25rem;flex:1;margin-left:1rem}.navbar-link{padding:.5rem 1rem;color:var(--text-secondary);text-decoration:none;font-family:var(--font-sans);font-size:.9rem;font-weight:500;border-radius:6px;transition:all .15s ease}.navbar-link:hover{color:var(--text-primary);background:var(--bg-tertiary)}.navbar-right{display:flex;align-items:center;gap:1rem}.navbar-signin{padding:.5rem 1rem;background:var(--terminal-green);color:var(--bg-primary);text-decoration:none;font-family:var(--font-mono);font-size:.85rem;font-weight:600;border-radius:6px;transition:all .15s ease;text-transform:uppercase;letter-spacing:.05em}.navbar-signin:hover{background:var(--terminal-green-bright);transform:translateY(-1px)}.navbar-avatar{width:32px;height:32px}@media(max-width:640px){.navbar-container{padding:.5rem 1rem}.navbar-links,.logo-text{display:none}}.landing-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.landing-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:var(--bg-primary);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(var(--bg-primary-rgb, 13, 17, 23),.85)}[data-theme=light] .landing-header{background:#ffffffd9}.landing-nav{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:.75rem 2rem}.nav-logo{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--terminal-green);letter-spacing:.1em}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;padding:6rem 2rem 4rem;text-align:center}.hero-content{max-width:800px;display:flex;flex-direction:column;align-items:center;gap:2rem}.hero-title{font-family:var(--font-mono);font-size:clamp(2rem,5vw,3.5rem);font-weight:700;line-height:1.1;margin:0;color:var(--text-primary);letter-spacing:-.02em}.hero-title-accent{display:block;color:var(--terminal-green);text-shadow:0 0 30px var(--terminal-green-glow)}.hero-subtitle{font-family:var(--font-sans);font-size:1.25rem;color:var(--text-muted);margin:0;max-width:500px}.terminal-window{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;width:100%;max-width:500px;overflow:hidden;box-shadow:0 25px 50px -12px #00000080}.terminal-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.terminal-buttons{display:flex;gap:.5rem}.terminal-btn{width:12px;height:12px;border-radius:50%;background:var(--bg-elevated)}.terminal-btn.close{background:#ff5f56}.terminal-btn.minimize{background:#ffbd2e}.terminal-btn.maximize{background:#27c93f}.terminal-title{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);flex:1;text-align:center;padding-right:3rem}.terminal-body{padding:1.25rem;min-height:60px}.terminal-line{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.9rem;line-height:1.6}.terminal-prompt{color:var(--terminal-green);-webkit-user-select:none;user-select:none}.terminal-command,.terminal-text{color:var(--text-primary)}.terminal-cursor{display:inline-block;width:8px;height:1.2em;background:var(--terminal-green);animation:blink 1s step-end infinite;vertical-align:text-bottom}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.cta-button{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;background:transparent;color:var(--terminal-green);border:2px solid var(--terminal-green);border-radius:4px;font-family:var(--font-mono);font-size:1rem;font-weight:600;text-decoration:none;transition:all var(--transition-normal);cursor:pointer}.cta-button:hover{background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.cta-arrow{transition:transform var(--transition-normal)}.cta-button:hover .cta-arrow{transform:translate(4px)}.features{padding:6rem 2rem;background:var(--bg-secondary)}.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1200px;margin:0 auto}@media(max-width:1024px){.features-grid{grid-template-columns:repeat(2,1fr)}}.feature-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;padding:2rem;transition:all var(--transition-normal)}.feature-card:hover{border-color:var(--terminal-green-dim);transform:translateY(-2px)}.feature-icon{width:48px;height:48px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;color:var(--terminal-green);padding:10px}.feature-icon svg{width:100%;height:100%}.feature-title{font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--text-primary);margin:0 0 .75rem;letter-spacing:.05em}.feature-subtitle{font-family:var(--font-mono);font-size:.85rem;color:var(--terminal-green);margin:0 0 .5rem}.feature-description{font-family:var(--font-sans);font-size:.9rem;color:var(--text-muted);margin:0}.demo-section{padding:6rem 2rem;display:flex;flex-direction:column;align-items:center}.terminal-demo{max-width:600px;width:100%;display:flex;flex-direction:column;align-items:center;gap:2rem}.terminal-window.demo{max-width:100%}.terminal-window.demo .terminal-body{min-height:120px}.demo-tagline{font-family:var(--font-mono);font-size:1.25rem;color:var(--terminal-green);margin:0;text-shadow:0 0 20px var(--terminal-green-glow)}.landing-footer{padding:3rem 2rem;text-align:center;border-top:1px solid var(--border-color)}.landing-footer p{font-family:var(--font-mono);font-size:.85rem;color:var(--text-dim);margin:0}.auth-page{min-height:100vh;background:var(--bg-primary);color:var(--text-primary);display:flex;flex-direction:column}.auth-header{position:fixed;top:0;left:0;right:0;z-index:var(--z-sticky);background:var(--bg-primary);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:rgba(var(--bg-primary-rgb, 13, 17, 23),.85)}[data-theme=light] .auth-header{background:#ffffffd9}.auth-nav{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:.75rem 2rem}.auth-nav .nav-logo{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--terminal-green);letter-spacing:.1em;text-decoration:none}.auth-main{flex:1;display:flex;align-items:center;justify-content:center;padding:6rem 2rem 4rem}.clerk-container{width:100%;max-width:440px}.auth-page-footer{padding:1.5rem;text-align:center;border-top:1px solid var(--border-color)}.auth-page-footer a{color:var(--text-muted);text-decoration:none;font-size:.875rem}.auth-page-footer a:hover{color:var(--terminal-green)}.lab-controls{background:var(--bg-secondary);border-radius:8px;padding:1.25rem;border:1px solid var(--border-color)}.lab-controls-active{border-color:var(--terminal-green-dim)}.lab-controls-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.lab-controls-title{margin:0;font-family:var(--font-mono);font-size:1rem;color:var(--text-primary)}.lab-controls-body{display:flex;flex-direction:column;gap:.75rem}.lab-controls-info{color:var(--text-muted);font-size:.9rem;margin:0 0 1rem}.lab-controls-info-row{display:flex;align-items:center;gap:.5rem;font-size:.85rem}.lab-info-label{color:var(--text-dim)}.lab-info-value{color:var(--text-secondary);font-family:var(--font-mono)}.lab-controls-restored-notice{color:var(--terminal-green);font-family:var(--font-mono);font-size:.8rem;font-style:italic;margin-top:.25rem}.lab-controls-buttons{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.lab-control-group{display:flex;flex-direction:column;gap:.5rem}.lab-snapshot-group{display:flex;flex-direction:row;gap:.5rem;position:relative}.lab-snapshot-controls{position:relative}.lab-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.6rem 1rem;font-family:var(--font-mono);font-size:.85rem;font-weight:500;border:none;border-radius:4px;cursor:pointer;transition:all var(--transition-fast)}.lab-btn:disabled{opacity:.5;cursor:not-allowed}.lab-btn-primary{background:transparent;border:2px solid var(--terminal-green);color:var(--terminal-green)}.lab-btn-primary:hover:not(:disabled){background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.lab-btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.lab-btn-secondary:hover:not(:disabled){background:var(--bg-elevated);border-color:var(--border-light);color:var(--text-primary)}.lab-btn-warning{background:var(--terminal-amber-glow);border:1px solid var(--terminal-amber-dim);color:var(--terminal-amber)}.lab-btn-warning:hover:not(:disabled){background:#ffb00033;border-color:var(--terminal-amber)}.lab-btn-danger{background:var(--error-bg-subtle);border:1px solid var(--error-color);color:var(--error-text)}.lab-btn-danger:hover:not(:disabled){background:var(--error-bg);color:var(--error-text-light)}.lab-btn-start{padding:.75rem 1.5rem;font-size:.95rem}.lab-icon{font-size:.85em}.lab-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:lab-spin .8s linear infinite}@keyframes lab-spin{to{transform:rotate(360deg)}}.lab-controls-error{margin-top:1rem;padding:.75rem 1rem;background:var(--error-bg-subtle);border:1px solid var(--error-color);border-radius:4px;color:var(--error-text);font-size:.9rem}.lab-confirm-dialog{background:var(--bg-tertiary);border-radius:6px;padding:1rem;border:1px solid var(--border-light)}.lab-confirm-dialog p{margin:0 0 1rem;color:var(--text-secondary);font-size:.9rem}.lab-confirm-buttons{display:flex;gap:.5rem}.snapshot-menu{position:absolute;top:100%;right:0;margin-top:.5rem;min-width:220px;background:var(--bg-tertiary);border-radius:8px;border:1px solid var(--border-light);box-shadow:var(--shadow-lg);z-index:100}.snapshot-menu-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-family:var(--font-mono);font-weight:500;font-size:.85rem}.snapshot-menu-refresh,.snapshot-menu-close{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;font-size:1rem;line-height:1;transition:color var(--transition-fast)}.snapshot-menu-refresh:hover,.snapshot-menu-close:hover{color:var(--terminal-green)}.snapshot-menu-close{margin-left:auto}.snapshot-menu-content{padding:.5rem}.snapshot-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:.6rem .75rem;background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;text-align:left;font-family:var(--font-mono);font-size:.8rem;transition:all var(--transition-fast)}.snapshot-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.snapshot-item-latest{background:var(--terminal-green-glow);border:1px solid var(--terminal-green-dim)}.snapshot-item-latest:hover{background:#00ff4133}.snapshot-item-label{font-weight:500}.snapshot-item-date{color:var(--text-muted);font-size:.75rem}.snapshot-history{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-color)}.snapshot-history-label{color:var(--text-dim);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.25rem .75rem;margin-bottom:.25rem}.sandbox-status-indicator{display:inline-flex;align-items:center;gap:.5rem}.sandbox-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sandbox-status-dot.transitioning{animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.9)}}.sandbox-status-label{font-family:var(--font-mono);font-size:.8rem;font-weight:500}.sandbox-status-small .sandbox-status-dot{width:6px;height:6px}.sandbox-status-small .sandbox-status-label{font-size:.7rem}.sandbox-status-large .sandbox-status-dot{width:10px;height:10px}.sandbox-status-large .sandbox-status-label{font-size:1rem}.sandbox-status-badge{display:inline-flex;align-items:center;gap:.4rem;padding:4px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.75rem;font-weight:500}.sandbox-badge-not-created{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.sandbox-badge-creating,.sandbox-badge-running{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.sandbox-badge-snapshotting{background:var(--terminal-amber-glow);color:var(--terminal-amber);border:1px solid var(--terminal-amber-dim)}.sandbox-badge-terminated{background:var(--error-bg-subtle);color:var(--error-text);border:1px solid var(--error-color)}.sandbox-status-spinner{display:inline-block;width:10px;height:10px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:lab-spin .8s linear infinite;opacity:.7}.loading-spinner{display:inline-flex;align-items:center;gap:.5rem}.spinner-circle{display:inline-block;border-style:solid;border-color:var(--terminal-green-glow);border-top-color:var(--terminal-green);border-radius:50%;animation:spinner-rotate .8s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.loading-spinner-small .spinner-circle{width:12px;height:12px;border-width:2px}.loading-spinner-medium .spinner-circle{width:20px;height:20px;border-width:2px}.loading-spinner-large .spinner-circle{width:32px;height:32px;border-width:3px}.loading-spinner-light .spinner-circle{border-color:#ffffff4d;border-top-color:#fff}.loading-spinner-inline{gap:.4rem}.loading-spinner-inline .spinner-circle{width:14px;height:14px;border-width:2px}.spinner-label{font-family:var(--font-mono);font-size:.85rem;color:var(--text-muted);animation:none}.loading-spinner-light .spinner-label{color:#ffffffe6}.loading-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem;min-height:120px}.loading-message{font-family:var(--font-mono);font-size:.9rem;color:var(--text-muted)}.loading-status{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;font-family:var(--font-mono);font-size:.75rem;border-radius:4px;animation:status-fade-in .2s ease-out}@keyframes status-fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.loading-status-loading,.loading-status-saving{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.loading-status-error{background:var(--error-bg-subtle);color:var(--error-text);border:1px solid var(--error-color)}.loading-status-success{background:var(--success-bg-subtle);color:var(--success-text-light);border:1px solid var(--success-color);animation:status-fade-in .2s ease-out,status-fade-out 2s ease-out 1s forwards}@keyframes status-fade-out{0%{opacity:1}to{opacity:0}}.status-text{font-weight:500}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}.terminal-wrapper{display:flex;flex-direction:column;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;height:100%;min-height:200px;width:100%;max-width:100%}.terminal-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-shrink:0}.terminal-title{font-family:var(--font-mono);font-size:.8rem;color:var(--text-muted);font-weight:500}.terminal-status{display:flex;align-items:center;gap:.5rem}.status-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-disconnected{background:var(--text-dim)}.status-connecting{background:var(--terminal-amber);animation:pulse 1s infinite}.status-connected{background:var(--terminal-green);box-shadow:0 0 8px var(--terminal-green-glow)}.status-error{background:var(--error-color)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.status-text{font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.reconnect-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .5rem;font-family:var(--font-mono);font-size:.7rem;background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all var(--transition-fast)}.reconnect-btn:hover{background:var(--bg-elevated);border-color:var(--terminal-green-dim);color:var(--terminal-green)}.terminal-container{flex:1;overflow:hidden;min-width:0;min-height:0;position:relative;background:var(--bg-primary)}.terminal-xterm{width:100%;height:100%;padding:8px}.terminal-connecting-overlay,.terminal-reconnect-overlay{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0d1117f2;z-index:10}.terminal-reconnect-overlay{background:#0d1117d9}.reconnect-message{color:var(--text-muted);font-family:var(--font-mono);font-size:.9rem;text-align:center;padding:1rem}.reconnect-icon{font-size:.9em}.terminal-xterm .xterm{height:100%}.terminal-xterm .xterm-viewport{overflow-y:auto!important}.terminal-xterm .xterm-viewport::-webkit-scrollbar{width:10px}.terminal-xterm .xterm-viewport::-webkit-scrollbar-track{background:var(--bg-primary)}.terminal-xterm .xterm-viewport::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:5px}.terminal-xterm .xterm-viewport::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.terminal-xterm .xterm .xterm-selection div{background:var(--terminal-green-glow)!important}.terminal-tabs{display:flex;flex-direction:column;height:100%}.terminal-tabs-header{display:flex;align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:0 .5rem;gap:.25rem;flex-shrink:0}.terminal-tab{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;transition:all var(--transition-fast)}.terminal-tab:hover{color:var(--text-secondary);background:var(--bg-tertiary)}.terminal-tab.active{color:var(--terminal-green);border-bottom-color:var(--terminal-green)}.terminal-tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;background:transparent;border:none;color:var(--text-muted);border-radius:3px;cursor:pointer;font-size:14px;line-height:1;transition:all var(--transition-fast)}.terminal-tab-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.add-terminal-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin-left:.25rem;padding:0;background:transparent;border:1px solid transparent;color:var(--text-muted);border-radius:4px;cursor:pointer;font-size:18px;line-height:1;transition:all var(--transition-fast)}.add-terminal-btn:hover{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--terminal-green)}.terminal-tabs-content{flex:1;overflow:hidden}.terminal-pane{display:none;height:100%}.terminal-pane.active{display:block}.file-tree{display:flex;flex-direction:column;height:100%;background:var(--bg-secondary);border-right:1px solid var(--border-color);font-family:var(--font-mono);font-size:13px;-webkit-user-select:none;user-select:none}.file-tree-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);flex-shrink:0}.file-tree-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.refresh-btn{padding:2px 6px;background:transparent;border:none;cursor:pointer;opacity:.7;transition:all var(--transition-fast);font-size:12px;color:var(--text-muted)}.refresh-btn:hover{opacity:1;color:var(--terminal-green)}.refresh-btn:disabled{opacity:.3;cursor:not-allowed}.file-tree-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 0}.file-tree-loading,.file-tree-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;color:var(--text-muted);text-align:center;font-size:12px;min-height:80px}.dir-spinner .spinner-circle{width:10px;height:10px;border-width:1.5px}.tree-node{width:100%}.tree-item{display:flex;align-items:center;gap:4px;padding:4px 8px;cursor:pointer;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:all var(--transition-fast)}.tree-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tree-item.selected{background:var(--bg-elevated);color:var(--terminal-green)}.tree-item.selected:hover{background:var(--bg-elevated)}.tree-item:focus{outline:none;background:var(--bg-tertiary)}.expand-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:8px;color:var(--text-dim);transition:transform var(--transition-fast);flex-shrink:0}.expand-icon.expanded{transform:rotate(90deg)}.file-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center;color:var(--terminal-green)}.file-name{overflow:hidden;text-overflow:ellipsis}.tree-item.directory .file-name{font-weight:500;color:var(--terminal-amber)}.tree-children{width:100%}.file-tree-content::-webkit-scrollbar{width:10px}.file-tree-content::-webkit-scrollbar-track{background:var(--bg-secondary)}.file-tree-content::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:5px}.file-tree-content::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.editor-tabs{display:flex;align-items:center;justify-content:space-between;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);height:36px;flex-shrink:0}.editor-tabs-list{display:flex;align-items:center;overflow-x:auto;flex:1;height:100%}.editor-tabs-list::-webkit-scrollbar{height:3px}.editor-tabs-list::-webkit-scrollbar-track{background:var(--bg-secondary)}.editor-tabs-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:2px}.editor-tab{display:flex;align-items:center;gap:6px;padding:0 12px;height:100%;background:transparent;border:none;border-right:1px solid var(--border-color);color:var(--text-muted);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;white-space:nowrap;transition:all var(--transition-fast)}.editor-tab:hover{background:var(--bg-tertiary);color:var(--text-secondary)}.editor-tab.active{background:var(--bg-primary);color:var(--terminal-green);border-bottom:2px solid var(--terminal-green);margin-bottom:-1px}.editor-tab:focus{outline:none;background:var(--bg-tertiary)}.tab-name{display:flex;align-items:center;gap:4px}.dirty-indicator{color:var(--terminal-amber);font-size:10px}.editor-tab.dirty .tab-name{font-style:italic}.tab-close{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:transparent;border:none;color:var(--text-muted);border-radius:3px;cursor:pointer;font-size:16px;line-height:1;opacity:0;transition:all var(--transition-fast)}.editor-tab:hover .tab-close,.editor-tab.active .tab-close{opacity:1}.tab-close:hover{background:var(--bg-elevated);color:var(--text-primary)}.save-btn{padding:4px 12px;margin-right:8px;background:transparent;border:1px solid var(--terminal-green);color:var(--terminal-green);border-radius:4px;font-family:var(--font-mono);font-size:.75rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.save-btn:hover{background:var(--terminal-green);color:var(--bg-primary)}.save-btn:active{background:var(--terminal-green-dim)}.code-editor{height:100%;width:100%;background:var(--bg-primary);min-width:0;min-height:0;overflow:hidden}.code-editor-empty{display:flex;align-items:center;justify-content:center;height:100%;width:100%;background:var(--bg-primary);color:var(--text-muted)}.code-editor-empty-content{text-align:center}.code-editor-empty-icon{font-size:48px;display:block;margin-bottom:16px;opacity:.5;color:var(--terminal-green)}.code-editor-empty-content p{margin:0;font-family:var(--font-mono);font-size:.9rem}.file-editor-panel{display:flex;height:100%;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;overflow:hidden;max-width:100%;min-width:0}.file-editor-sidebar{width:220px;min-width:180px;max-width:400px;flex-shrink:0;overflow:hidden;resize:horizontal}.file-editor-main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;overflow:hidden}.file-editor-content{flex:1;overflow:hidden}.editor-status{position:absolute;bottom:8px;right:8px;padding:4px 12px;border-radius:4px;font-family:var(--font-mono);font-size:.75rem;animation:fade-in .2s ease-in;z-index:10}.editor-status.saving{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.editor-status.error{background:var(--error-bg-subtle);color:var(--error-text);border:1px solid var(--error-color)}.editor-loading-status{position:absolute;bottom:8px;right:8px;z-index:10}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.file-editor-sidebar{width:180px;min-width:150px}}.attempt-history{background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.attempt-history-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.attempt-history-title{margin:0;font-size:1rem;font-family:var(--font-mono);color:var(--text-primary);font-weight:500}.attempt-count{font-size:.85rem;font-family:var(--font-mono);color:var(--text-muted);padding:2px 8px;background:var(--bg-elevated);border-radius:10px}.attempt-history-loading,.attempt-history-error,.attempt-history-empty{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--text-muted);font-family:var(--font-mono);background:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.attempt-history-error{color:var(--error-text);background:var(--error-bg-subtle);border-color:var(--error-color)}.error-icon,.empty-icon{font-size:1.25rem}.retry-btn{padding:4px 12px;font-size:.85rem;font-family:var(--font-mono);color:var(--terminal-green);background:transparent;border:1px solid var(--terminal-green-dim);border-radius:4px;cursor:pointer;margin-left:.5rem;transition:all var(--transition-fast)}.retry-btn:hover{background:var(--terminal-green-glow);border-color:var(--terminal-green)}.attempt-list{max-height:400px;overflow-y:auto}.attempt-item{border-bottom:1px solid var(--border-color)}.attempt-item:last-child{border-bottom:none}.attempt-item-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.25rem;background:var(--bg-secondary);transition:background var(--transition-fast)}.attempt-item-header[role=button]{cursor:pointer}.attempt-item-header[role=button]:hover{background:var(--bg-tertiary)}.attempt-item-main{display:flex;align-items:center;gap:.75rem}.attempt-number{font-family:var(--font-mono);font-size:.9rem;color:var(--text-muted);min-width:2.5rem}.attempt-item-meta{display:flex;align-items:center;gap:.75rem}.attempt-timestamp{font-size:.8rem;font-family:var(--font-mono);color:var(--text-dim)}.expand-icon{font-size:.7rem;color:var(--text-dim);transition:transform var(--transition-fast)}.expand-icon.expanded{transform:rotate(180deg)}.attempt-item-pass{border-left:3px solid var(--terminal-green)}.attempt-item-pass_with_warning{border-left:3px solid var(--terminal-amber)}.attempt-item-fail,.attempt-item-grader_error,.attempt-item-error{border-left:3px solid var(--error-color)}.attempt-item-pending,.attempt-item-running{border-left:3px solid var(--terminal-green-dim)}.attempt-item-details{padding:1rem 1.25rem;background:var(--bg-primary);border-top:1px solid var(--border-color)}.detail-label{margin:0 0 .5rem;font-size:.85rem;font-family:var(--font-mono);color:var(--text-muted);font-weight:500}.attempt-metrics-section,.attempt-comparisons-section{margin-bottom:1rem}.attempt-metrics-section:last-child,.attempt-comparisons-section:last-child{margin-bottom:0}.attempt-metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.metric-item{display:flex;flex-direction:column;padding:.5rem .75rem;background:var(--bg-tertiary);border-radius:4px;border:1px solid var(--border-color)}.metric-item .metric-name{font-size:.75rem;font-family:var(--font-mono);color:var(--text-muted);margin-bottom:.25rem}.metric-item .metric-value{font-size:.9rem;color:var(--terminal-green);font-family:var(--font-mono)}.comparisons-mini-table{width:100%;border-collapse:collapse;font-size:.85rem;font-family:var(--font-mono)}.comparisons-mini-table th,.comparisons-mini-table td{padding:.4rem .6rem;text-align:left;border-bottom:1px solid var(--border-color)}.comparisons-mini-table th{color:var(--text-muted);font-weight:500;font-size:.8rem}.comparisons-mini-table .value-cell{font-family:var(--font-mono);color:var(--text-secondary)}.comparisons-mini-table .change-cell{font-family:var(--font-mono)}.comparisons-mini-table .change-cell.positive{color:var(--terminal-green)}.comparisons-mini-table .change-cell.negative{color:var(--error-text)}.comparisons-mini-table .status-icon{margin-left:.5rem;font-weight:700}.comparisons-mini-table .comparison-passed{background:var(--terminal-green-glow)}.comparisons-mini-table .comparison-failed{background:var(--error-bg-subtle)}.attempt-actions{margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color)}.view-details-btn{padding:.4rem .75rem;font-size:.85rem;font-family:var(--font-mono);color:var(--terminal-green);background:transparent;border:1px solid var(--terminal-green-dim);border-radius:4px;cursor:pointer;transition:all var(--transition-fast)}.view-details-btn:hover{background:var(--terminal-green-glow);border-color:var(--terminal-green)}.show-more-btn,.show-less-btn{display:block;width:100%;padding:.75rem;font-size:.85rem;font-family:var(--font-mono);color:var(--terminal-green);background:var(--bg-tertiary);border:none;border-top:1px solid var(--border-color);cursor:pointer;transition:background var(--transition-fast)}.show-more-btn:hover,.show-less-btn:hover{background:var(--bg-elevated)}.attempt-list::-webkit-scrollbar{width:6px}.attempt-list::-webkit-scrollbar-track{background:var(--bg-secondary)}.attempt-list::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:3px}.attempt-list::-webkit-scrollbar-thumb:hover{background:var(--border-light)}.mission-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;border-left:4px solid var(--border-light)}.mission-panel-header{margin-bottom:1rem}.mission-panel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.mission-panel-title{margin:0;font-family:var(--font-mono);font-size:1.25rem;color:var(--text-primary);flex:1}.mission-panel-badges{display:flex;align-items:center;gap:.75rem}.mission-honors-indicator{color:var(--terminal-amber);font-size:.9rem;margin-top:.5rem}.mission-panel-description{color:var(--text-secondary);margin-bottom:1.5rem}.mission-prerequisites-list{margin:1rem 0;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:4px;border-left:3px solid var(--border-light)}.mission-prerequisites-list.prereqs-satisfied{border-left-color:var(--terminal-green);background:var(--terminal-green-glow)}.mission-prerequisites-list.prereqs-partial{border-left-color:var(--terminal-amber);background:var(--terminal-amber-glow)}.mission-prerequisites-list.prereqs-unsatisfied{border-left-color:var(--error-color);background:var(--error-bg-subtle)}.mission-prerequisites-list h4{margin:0 0 .5rem;font-family:var(--font-mono);font-size:.9rem;color:var(--text-muted);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.prereqs-summary{font-size:.75rem;font-weight:400;padding:2px 8px;border-radius:4px;font-family:var(--font-mono)}.prereqs-summary.all-complete{background:var(--terminal-green);color:var(--bg-primary)}.prereqs-summary.incomplete{background:var(--bg-elevated);color:var(--text-secondary)}.mission-prerequisites-list ul{margin:0;padding:0;list-style:none}.prereq-item{display:flex;align-items:center;gap:.5rem;margin:.35rem 0;padding:.25rem 0}.prereq-item.prereq-completed{color:var(--terminal-green)}.prereq-item.prereq-attempted{color:var(--terminal-amber)}.prereq-item.prereq-pending{color:var(--text-muted)}.prereq-status-icon{font-size:.9rem;width:1.2em;text-align:center;flex-shrink:0}.prereq-item.prereq-completed .prereq-status-icon{color:var(--terminal-green)}.prereq-item.prereq-attempted .prereq-status-icon{color:var(--terminal-amber)}.prereq-item.prereq-pending .prereq-status-icon{color:var(--text-dim)}.prereq-link{color:var(--terminal-green);text-decoration:none;transition:color var(--transition-fast)}.prereq-link:hover{color:var(--terminal-green-dim)}.prereq-item.prereq-completed .prereq-link{color:var(--terminal-green)}.prereq-description{color:var(--text-muted);flex:1}.prereq-status-label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim);margin-left:auto}.prereqs-warning{margin-top:.75rem;padding:.5rem .75rem;background:var(--error-bg-subtle);border-radius:4px;color:var(--error-text);font-size:.85rem}.mission-panel-instructions{margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--border-color)}.mission-panel-instructions h4{margin:0 0 1rem;font-family:var(--font-mono);color:var(--text-primary)}.mission-status-badge{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:.8rem;padding:4px 12px;border-radius:4px;font-weight:500}.mission-status-pending{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.mission-status-running{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.mission-status-passed{background:var(--success-bg-subtle);color:var(--success-text-light);border:1px solid var(--success-color)}.mission-status-failed{background:var(--error-bg-subtle);color:var(--error-text);border:1px solid var(--error-color)}.status-icon{font-size:.9em}.status-spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--terminal-green-dim);border-top-color:var(--terminal-green);border-radius:50%;animation:spin .8s linear infinite}.mission-panel-grader{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border-color)}.grader-controls{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.run-grader-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-mono);font-size:.95rem;font-weight:500;color:var(--terminal-green);background:transparent;border:2px solid var(--terminal-green);border-radius:4px;cursor:pointer;transition:all var(--transition-normal)}.run-grader-btn:hover:not(:disabled){background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.run-grader-btn:disabled{background:var(--bg-tertiary);border-color:var(--border-color);color:var(--text-dim);cursor:not-allowed}.run-icon{font-size:.85em}.warmup-note{color:var(--text-muted);font-size:.85rem;font-style:italic}.grader-error{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;background:var(--error-bg-subtle);border:1px solid var(--error-color);border-radius:4px;color:var(--error-text);margin-bottom:1rem}.error-icon{flex-shrink:0}.grader-result{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:1.25rem;margin-top:1rem}.grader-result-pass{border-left:4px solid var(--terminal-green)}.grader-result-pass_with_warning{border-left:4px solid var(--terminal-amber)}.grader-result-fail,.grader-result-grader_error,.grader-result-error{border-left:4px solid var(--error-color)}.grader-result-running{border-left:4px solid var(--terminal-green)}.grader-result-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.grader-result-title{margin:0;font-family:var(--font-mono);font-size:1rem;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.grader-result-badges{display:flex;align-items:center;gap:.75rem}.grader-status{display:inline-block;padding:4px 10px;border-radius:4px;font-family:var(--font-mono);font-size:.8rem;font-weight:500}.grader-status-pass{background:var(--terminal-green);color:var(--bg-primary)}.grader-status-warning{background:var(--terminal-amber);color:var(--bg-primary)}.grader-status-fail{background:var(--error-color);color:var(--text-primary)}.grader-status-error{background:var(--error-bg);color:var(--error-text)}.honors-badge{font-family:var(--font-mono);font-size:.8rem;padding:4px 10px;border-radius:4px}.honors-earned{background:var(--terminal-amber-glow);color:var(--terminal-amber);border:1px solid var(--terminal-amber-dim)}.honors-missed{background:var(--bg-elevated);color:var(--text-muted);border:1px solid var(--border-color)}.grader-failure-section{background:var(--error-bg-subtle);border-radius:4px;padding:1rem;margin-bottom:1rem}.failure-condition-label{margin:0 0 .5rem;color:var(--error-text);font-family:var(--font-mono);font-size:.9rem}.failure-guidance{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.5}.grader-flags{display:flex;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.flag-item{display:inline-flex;align-items:center;gap:.5rem;padding:.25rem .75rem;border-radius:4px;font-family:var(--font-mono);font-size:.8rem}.flag-passed{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.flag-failed{background:var(--error-bg-subtle);color:var(--error-text);border:1px solid var(--error-color)}.flag-icon{font-weight:700}.grader-metrics-section,.grader-comparisons-section,.grader-notes-section{margin-top:1rem}.metrics-label,.comparisons-label,.notes-label{margin:0 0 .75rem;color:var(--text-muted);font-family:var(--font-mono);font-size:.85rem;font-weight:500}.metrics-table,.comparisons-table{width:100%;border-collapse:collapse;font-size:.85rem}.metrics-table th,.metrics-table td,.comparisons-table th,.comparisons-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid var(--border-color)}.metrics-table th,.comparisons-table th{color:var(--text-muted);font-family:var(--font-mono);font-weight:500}.metric-name{color:var(--text-secondary)}.metric-value{color:var(--terminal-green);font-family:var(--font-mono)}.improvement{font-family:var(--font-mono)}.improvement.positive{color:var(--terminal-green)}.improvement.negative{color:var(--error-text)}.direction-hint{color:var(--text-dim);font-size:.8em;margin-left:.25rem}.comparison-passed{background:var(--terminal-green-glow)}.comparison-failed{background:var(--error-bg-subtle)}.notes-list{margin:0;padding-left:1.5rem;color:var(--text-secondary)}.notes-list li{margin:.25rem 0}.grader-result-footer{display:flex;justify-content:space-between;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-color);font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim)}.grader-running-message,.grader-error-message{color:var(--text-muted);margin:0}.standalone-mission-panel{position:relative;max-width:800px;margin:0 auto}.close-panel-btn{position:absolute;top:0;right:0;width:36px;height:36px;border:1px solid var(--border-color);background:var(--bg-tertiary);color:var(--text-muted);border-radius:4px;font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.close-panel-btn:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:var(--border-light)}.mission-chapter-context{color:var(--text-muted);font-family:var(--font-mono);font-size:.85rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color)}.failure-guidance-panel{background:var(--error-bg);border:2px solid var(--error-color);border-radius:8px;padding:1.5rem;margin-top:1rem}.failure-guidance-header{display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid rgba(218,54,51,.3)}.failure-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--error-color);border-radius:50%;font-size:1.25rem;color:var(--text-primary);flex-shrink:0}.failure-header-content{flex:1}.failure-condition-title{margin:0 0 .5rem;font-family:var(--font-mono);font-size:1.1rem;color:var(--error-text-light);font-weight:600}.failure-guidance-text{margin:0;color:var(--text-secondary);font-size:1rem;line-height:1.5}.failure-section-label{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-family:var(--font-mono);font-size:.9rem;color:var(--text-secondary);font-weight:500}.section-icon{font-size:1rem}.failure-metrics-section{margin-bottom:1.25rem}.failed-comparisons-table{width:100%;border-collapse:collapse;font-size:.85rem;background:#0003;border-radius:4px;overflow:hidden}.failed-comparisons-table th,.failed-comparisons-table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid rgba(255,255,255,.1)}.failed-comparisons-table th{color:var(--text-muted);font-family:var(--font-mono);font-weight:500;background:#0003}.failed-comparison-row{background:var(--error-bg-subtle)}.failed-comparison-row .metric-value.current{color:var(--error-text-light);font-weight:500}.required-direction{color:var(--terminal-green);font-family:var(--font-mono);font-size:.8rem}.failure-actions-section{margin-bottom:1.25rem}.failure-suggestions-list{margin:0;padding:0 0 0 1.5rem;list-style:disc}.failure-suggestion-item{margin:.35rem 0;color:var(--text-secondary);line-height:1.5}.failure-resources-section{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.25rem}.failure-resource-link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--terminal-green-glow);border:1px solid var(--terminal-green-dim);border-radius:4px;color:var(--terminal-green);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast);text-decoration:none}.failure-resource-link:hover{background:#00ff4133;border-color:var(--terminal-green)}.resource-icon{font-size:1rem}.failure-try-again-section{padding-top:1rem;border-top:1px solid rgba(255,255,255,.1)}.try-again-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-mono);font-size:.95rem;font-weight:500;color:var(--text-primary);background:var(--error-color);border:none;border-radius:4px;cursor:pointer;transition:all var(--transition-fast)}.try-again-btn:hover:not(:disabled){background:var(--error-hover)}.try-again-btn:disabled{background:var(--error-bg);color:var(--text-muted);cursor:not-allowed}.try-again-icon{font-size:1.1rem}.mission-attempt-history-section{margin-top:1.5rem}.lab-environment{display:flex;flex-direction:column;height:100vh;background:var(--bg-primary);color:var(--text-primary);overflow:hidden;max-width:100vw}.lab-environment--loading,.lab-environment--error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;padding:2rem}.lab-environment--error h2{color:var(--error-color)}.lab-environment--error a{color:var(--terminal-green)}.lab-environment__header{display:flex;flex-direction:column;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.lab-environment__nav{display:flex;gap:1rem;margin-bottom:.5rem}.lab-nav-link{color:var(--terminal-green);text-decoration:none;font-family:var(--font-mono);font-size:.85rem;transition:color var(--transition-fast)}.lab-nav-link:hover{color:var(--terminal-green-dim)}.lab-environment__title{margin:0;font-family:var(--font-mono);font-size:1.25rem;font-weight:600;color:var(--text-primary)}.lab-environment__body{display:flex;flex:1;overflow:hidden}.lab-environment__sidebar{width:var(--sidebar-width);min-width:var(--sidebar-min-width);max-width:320px;display:flex;flex-direction:column;background:var(--bg-secondary);border-right:1px solid var(--border-color);overflow-y:auto;flex-shrink:0}.lab-environment__missions{flex:1;padding:1rem;overflow-y:auto}.lab-environment__missions h3{margin:0 0 .75rem;font-family:var(--font-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.mission-list{list-style:none;margin:0;padding:0}.mission-list__item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;background:transparent;border:none;border-radius:4px;color:var(--text-primary);font-size:.875rem;text-align:left;cursor:pointer;transition:background var(--transition-fast)}.mission-list__item:hover{background:var(--bg-tertiary)}.mission-list__item--active{background:var(--bg-elevated);border-left:2px solid var(--terminal-green)}.mission-type-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mission-type-indicator--warmup{background:var(--terminal-green)}.mission-type-indicator--standard{background:var(--terminal-amber)}.mission-type-indicator--baseline{background:var(--success-color)}.mission-type-indicator--stretch{background:var(--warning-color)}.mission-list__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lab-environment__main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.lab-environment__tabs{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.lab-tab{padding:.75rem 1.5rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted);font-family:var(--font-mono);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.lab-tab:hover{color:var(--text-primary)}.lab-tab--active{color:var(--terminal-green);border-bottom-color:var(--terminal-green)}.lab-environment__panel{flex:1;overflow:hidden;position:relative}.lab-environment__start-prompt{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1rem;color:var(--text-muted)}.start-lab-btn{padding:.75rem 1.5rem;background:transparent;border:2px solid var(--terminal-green);border-radius:4px;color:var(--terminal-green);font-family:var(--font-mono);font-size:1rem;cursor:pointer;transition:all var(--transition-normal)}.start-lab-btn:hover:not(:disabled){background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.start-lab-btn:disabled{opacity:.5;cursor:not-allowed}.lab-environment__terminal,.lab-environment__editor{height:100%}.lab-environment__mission-preview{padding:1.5rem;overflow-y:auto;max-height:100%}.lab-environment__mission-preview h2{margin:0 0 1rem;font-family:var(--font-mono);color:var(--text-primary)}.lab-environment__mission-preview .mission-description{color:var(--text-muted);line-height:1.6}.lab-environment__mission-preview .start-lab-notice{margin-top:1.5rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--terminal-green-dim);border-radius:4px;color:var(--terminal-green);font-family:var(--font-mono);font-size:.9rem}.lab-environment__no-mission{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-family:var(--font-mono)}.mission-progress-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em}.mission-progress-badge--not_started{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.mission-progress-badge--attempted{background:var(--terminal-amber-glow);color:var(--terminal-amber);border:1px solid var(--terminal-amber-dim)}.mission-progress-badge--passed{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.honors-badge{display:inline-block;margin-left:4px;font-size:14px}.honors-badge--earned{filter:none}.honors-badge--not-earned{filter:grayscale(50%);opacity:.5}.progress-bar-container{display:flex;align-items:center;gap:12px;width:100%}.progress-bar{flex:1;height:8px;background:var(--bg-tertiary);border-radius:4px;overflow:hidden;position:relative}.progress-bar__completed{position:absolute;left:0;top:0;height:100%;background:var(--terminal-green);border-radius:4px 0 0 4px;transition:width .3s ease}.progress-bar__attempted{position:absolute;top:0;height:100%;background:var(--terminal-amber);transition:width .3s ease,left .3s ease}.progress-bar__label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);white-space:nowrap;min-width:80px;text-align:right}.mission-list-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:var(--bg-secondary);border-radius:6px;margin-bottom:8px;border-left:3px solid transparent;transition:all var(--transition-fast)}.mission-list-item[role=button]{cursor:pointer}.mission-list-item[role=button]:hover{background:var(--bg-tertiary)}.mission-list-item--not_started{border-left-color:var(--border-color)}.mission-list-item--attempted{border-left-color:var(--terminal-amber)}.mission-list-item--passed{border-left-color:var(--terminal-green)}.mission-list-item__info{display:flex;flex-direction:column;gap:4px}.mission-list-item__title{font-size:.9rem;font-weight:500;color:var(--text-primary)}.mission-list-item__type{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.mission-list-item__status{display:flex;align-items:center;gap:8px}.mission-list-item__attempts{font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim)}.chapter-progress-summary{display:flex;flex-direction:column;gap:8px;flex:1}.chapter-progress-summary__header{display:flex;align-items:baseline;gap:8px}.chapter-progress-summary__number{font-family:var(--font-mono);font-size:.9rem;font-weight:600;color:var(--terminal-green)}.chapter-progress-summary__title{font-size:.9rem;color:var(--text-primary)}.chapter-progress{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;margin-bottom:12px;overflow:hidden}.chapter-progress__header{display:flex;align-items:center;padding:16px;gap:12px}.chapter-progress__header[role=button]{cursor:pointer}.chapter-progress__header[role=button]:hover{background:var(--bg-tertiary)}.chapter-progress__toggle{font-size:.75rem;color:var(--text-dim);transition:transform var(--transition-fast)}.chapter-progress__toggle.expanded{transform:rotate(0)}.chapter-progress__missions{padding:0 16px 16px;border-top:1px solid var(--border-color)}.progress-dashboard{padding:20px;color:var(--text-primary)}.progress-dashboard__overall{margin-bottom:32px}.progress-dashboard__overall h2{margin:0 0 16px;font-family:var(--font-mono);font-size:1.25rem;font-weight:600}.progress-dashboard__stats{display:flex;gap:24px;margin-bottom:16px}.progress-dashboard__stat{display:flex;flex-direction:column;align-items:center}.progress-dashboard__stat-value{font-family:var(--font-mono);font-size:2rem;font-weight:700;color:var(--terminal-green)}.progress-dashboard__stat--percentage .progress-dashboard__stat-value{color:var(--terminal-green)}.progress-dashboard__stat-label{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.progress-dashboard__chapters h3{margin:0 0 16px;font-family:var(--font-mono);font-size:1rem;font-weight:600;color:var(--text-primary)}.user-progress{min-height:100vh;background:var(--bg-primary);color:var(--text-primary)}.user-progress--loading,.user-progress--error,.user-progress--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;gap:1rem;padding:2rem}.user-progress--error h2{color:var(--error-color)}.user-progress--error a,.user-progress--empty a{color:var(--terminal-green)}.start-course-link{display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.75rem 1.5rem;background:transparent;border:2px solid var(--terminal-green);border-radius:4px;color:var(--terminal-green);text-decoration:none;font-family:var(--font-mono);transition:all var(--transition-normal)}.start-course-link:hover{background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.user-progress__header{padding:1.5rem 2rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.user-progress__nav{display:flex;gap:1rem;margin-bottom:1rem}.user-progress__nav .nav-link{color:var(--terminal-green);text-decoration:none;font-family:var(--font-mono);font-size:.875rem;transition:color var(--transition-fast)}.user-progress__nav .nav-link:hover{color:var(--terminal-green-dim)}.user-progress__title{margin:0;font-family:var(--font-mono);font-size:1.75rem;font-weight:600;color:var(--text-primary)}.user-progress__content{max-width:900px;margin:0 auto;padding:2rem}.user-progress__actions{margin-top:2rem;text-align:center}.action-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:4px;text-decoration:none;font-family:var(--font-mono);font-size:1rem;transition:all var(--transition-normal)}.action-btn--primary{background:transparent;border:2px solid var(--terminal-green);color:var(--terminal-green)}.action-btn--primary:hover{background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.course-overview{max-width:1000px;margin:0 auto;padding:2rem;overflow-x:hidden;box-sizing:border-box}.course-loading,.course-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center}.course-header{margin-bottom:3rem;text-align:center}.course-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.course-header .back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--terminal-green);text-decoration:none;font-family:var(--font-mono);font-size:.9rem;transition:color var(--transition-fast)}.course-header .back-link:hover{color:var(--terminal-green-dim)}.course-header h1{font-family:var(--font-mono);font-size:2.5rem;margin:0 0 1rem;color:var(--text-primary);letter-spacing:-.02em}.course-description{color:var(--text-muted);font-size:1.1rem;max-width:600px;margin:0 auto}.course-parts{display:flex;flex-direction:column;gap:3rem}.course-part{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:2rem}.part-header{margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.part-title{margin:0 0 .5rem;font-family:var(--font-mono);font-size:1.25rem;color:var(--text-primary);letter-spacing:.05em}.part-description{margin:0;color:var(--text-muted)}.part-chapters{display:flex;flex-direction:column;gap:1rem}.chapter-card{display:flex;align-items:flex-start;gap:1.5rem;padding:1.25rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;text-decoration:none;color:inherit;transition:all var(--transition-normal)}.chapter-card:hover{background:var(--bg-elevated);border-color:var(--terminal-green-dim);transform:translate(4px)}.chapter-number{flex-shrink:0;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border:1px solid var(--border-color);border-radius:8px;font-family:var(--font-mono);font-weight:700;font-size:.85rem;color:var(--terminal-green)}.chapter-info{flex:1;min-width:0}.chapter-card-title{margin:0 0 .5rem;font-size:1.1rem;color:var(--text-primary)}.chapter-card-description{margin:0 0 .75rem;color:var(--text-muted);font-size:.95rem;line-height:1.5}.chapter-meta{display:flex;gap:1rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-dim)}.mission-count{color:var(--terminal-green)}.tools-preview{color:var(--text-muted)}.lesson-viewer{max-width:900px;margin:0 auto;padding:2rem;line-height:1.7;overflow-x:hidden;box-sizing:border-box}.lesson-loading,.lesson-error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:50vh;text-align:center}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--terminal-green);border-radius:50%;animation:spin .8s linear infinite}.chapter-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}.chapter-title{font-family:var(--font-mono);font-size:2rem;margin:0 0 .5rem;color:var(--text-primary)}.chapter-description{color:var(--text-muted);margin:0;font-size:1.1rem}.chapter-actions{margin-top:1rem}.start-lab-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:transparent;border:2px solid var(--terminal-green);color:var(--terminal-green);text-decoration:none;border-radius:4px;font-family:var(--font-mono);font-weight:500;transition:all var(--transition-normal)}.start-lab-link:hover{background:var(--terminal-green);color:var(--bg-primary);box-shadow:var(--accent-glow)}.chapter-meta{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1rem 1.5rem;margin-bottom:2rem}.required-tools{margin-bottom:.5rem}.tool-name{background:var(--bg-tertiary);padding:2px 8px;border-radius:4px;font-family:var(--font-mono);font-size:.85em;color:var(--terminal-green)}.baseline-programs{margin-top:1rem}.baseline-list{margin:.5rem 0 0;padding-left:1.5rem}.baseline-list li{margin:.25rem 0}.baseline-list code{color:var(--terminal-green);font-family:var(--font-mono)}.chapter-navigation{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;margin:1rem 0;border-top:1px solid var(--border-color);border-bottom:1px solid var(--border-color)}.nav-link{color:var(--terminal-green);text-decoration:none;padding:.5rem 1rem;border-radius:4px;font-family:var(--font-mono);font-size:.9rem;transition:all var(--transition-fast)}.nav-link:hover{background:var(--bg-secondary)}.nav-toc{font-weight:500}.nav-placeholder{width:150px}.chapter-intro{margin-bottom:3rem}.mission-toc{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:1.5rem;margin-bottom:3rem}.mission-toc h3{margin:0 0 1rem;font-family:var(--font-mono);font-size:1.1rem;color:var(--text-primary);letter-spacing:.05em}.mission-toc-list{margin:0;padding-left:1.5rem}.mission-toc-list li{margin:.5rem 0}.mission-toc-list a{color:var(--terminal-green);text-decoration:none;display:flex;align-items:center;gap:.75rem;transition:color var(--transition-fast)}.mission-toc-list a:hover{color:var(--terminal-green-dim)}.mission-type-badge,.mission-type{font-family:var(--font-mono);font-size:.7rem;padding:2px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.mission-type-warmup{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim)}.mission-type-standard{background:var(--terminal-amber-glow);color:var(--terminal-amber);border:1px solid var(--terminal-amber-dim)}.mission-type-baseline{background:var(--success-bg-subtle);color:var(--success-text-light);border:1px solid var(--success-color)}.mission-type-stretch{background:var(--warning-bg-subtle);color:var(--warning-text);border:1px solid var(--warning-color)}.mission-section{margin-bottom:3rem;padding:1.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;border-left:4px solid var(--border-light)}.mission-section:target{border-left-color:var(--terminal-green)}.mission-header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.mission-title{margin:0;font-family:var(--font-mono);font-size:1.25rem;color:var(--text-primary);flex:1}.mission-honors-badge{color:var(--terminal-amber);font-size:1.25rem}.mission-description{color:var(--text-secondary);margin-bottom:1rem}.mission-prerequisites{margin:1rem 0;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:4px;font-size:.9rem}.mission-prerequisites a{color:var(--terminal-green)}.mission-instructions{margin:1.5rem 0;padding-top:1rem;border-top:1px solid var(--border-color)}.hint-list{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.hint-list-title{margin:0 0 .25rem;font-family:var(--font-mono);font-size:.95rem;color:var(--text-primary)}.hint-list-description{color:var(--text-muted);font-size:.875rem;margin:0 0 1rem}.hint-items{display:flex;flex-direction:column;gap:.5rem}.hint-item{border-radius:4px}.hint-unlock-btn,.hint-toggle-btn{width:100%;text-align:left;padding:.75rem 1rem;border:none;border-radius:4px;cursor:pointer;font-family:var(--font-mono);font-size:.9rem;transition:all var(--transition-fast)}.hint-unlock-btn{background:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color)}.hint-unlock-btn:hover{background:var(--bg-elevated);color:var(--text-secondary);border-color:var(--border-light)}.hint-toggle-btn{background:var(--terminal-green-glow);color:var(--terminal-green);border:1px solid var(--terminal-green-dim);display:flex;align-items:center;gap:.5rem}.hint-toggle-btn:hover{background:#00ff4133}.hint-toggle-icon{font-size:.75rem;width:1rem}.hint-content{padding:1rem;background:var(--bg-tertiary);border:1px solid var(--border-color);border-top:none;border-radius:0 0 4px 4px;margin-top:-4px}.markdown-content{color:var(--text-secondary)}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{font-family:var(--font-mono);color:var(--text-primary);margin-top:1.5em;margin-bottom:.5em}.markdown-content h1{font-size:1.75rem}.markdown-content h2{font-size:1.5rem}.markdown-content h3{font-size:1.25rem}.markdown-content h4{font-size:1.1rem}.markdown-content p{margin:1em 0}.markdown-content ul,.markdown-content ol{margin:1em 0;padding-left:2rem}.markdown-content li{margin:.5em 0}.markdown-content blockquote{margin:1em 0;padding:.5em 1em;border-left:4px solid var(--terminal-green);background:var(--bg-secondary);border-radius:0 4px 4px 0}.markdown-content blockquote p{margin:0}.code-block{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;padding:1rem;overflow-x:auto;margin:1em 0;font-size:.9rem}.code-block code{background:transparent;padding:0;font-family:var(--font-mono)}.inline-code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-family:var(--font-mono);font-size:.9em;color:var(--terminal-green)}.hljs{color:var(--text-secondary);background:transparent}.hljs-keyword,.hljs-selector-tag,.hljs-built_in{color:var(--terminal-amber)}.hljs-string,.hljs-addition{color:var(--terminal-green)}.hljs-number,.hljs-literal{color:#79c0ff}.hljs-comment,.hljs-quote{color:var(--text-dim)}.hljs-function,.hljs-title{color:#d2a8ff}.hljs-variable,.hljs-template-variable{color:var(--terminal-amber)}.hljs-type,.hljs-class{color:var(--terminal-green)}.hljs-deletion{color:var(--error-text-light);background:var(--error-bg-subtle)}.table-wrapper{overflow-x:auto;margin:1em 0}.markdown-content table{border-collapse:collapse;width:100%}.markdown-content th,.markdown-content td{border:1px solid var(--border-color);padding:.75rem;text-align:left}.markdown-content th{background:var(--bg-secondary);font-family:var(--font-mono);font-weight:600;font-size:.9rem}.markdown-content tr:nth-child(2n){background:var(--bg-secondary)}.markdown-image{max-width:100%;height:auto;border-radius:8px;margin:1em 0;border:1px solid var(--border-color)}.missions-container{margin-top:2rem}:root{--min-viewport-width: 1024px;--sidebar-width: 280px;--sidebar-min-width: 220px;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Consolas", "Liberation Mono", monospace;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", sans-serif;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-full: 50%;--radius-pill: 12px;--font-xs: .75rem;--font-sm: .85rem;--font-md: 1rem;--font-lg: 1.1rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-tooltip: 400}:root,[data-theme=dark]{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-tertiary: #21262d;--bg-elevated: #30363d;--text-primary: #e6edf3;--text-secondary: #c9d1d9;--text-muted: #8b949e;--text-dim: #6e7681;--terminal-green: #00ff41;--terminal-green-dim: #00cc33;--terminal-green-glow: rgba(0, 255, 65, .15);--terminal-amber: #ffb000;--terminal-amber-dim: #cc8c00;--terminal-amber-glow: rgba(255, 176, 0, .15);--accent-color: #00ff41;--accent-hover: #00cc33;--accent-light: rgba(0, 255, 65, .1);--accent-border: rgba(0, 255, 65, .3);--accent-glow: 0 0 20px rgba(0, 255, 65, .3);--accent-alt: #ffb000;--accent-alt-hover: #cc8c00;--accent-alt-light: rgba(255, 176, 0, .1);--success-color: #238636;--success-hover: #2ea043;--success-bg: #2d4a2d;--success-bg-subtle: rgba(35, 134, 54, .1);--success-text: #8fbc8f;--success-text-light: #a8d5a8;--error-color: #da3633;--error-hover: #f05050;--error-bg: #4a2d2d;--error-bg-subtle: rgba(218, 54, 51, .1);--error-text: #da7e7e;--error-text-light: #ff8b8b;--warning-color: #d29922;--warning-hover: #e6ac2f;--warning-bg: #3a3a20;--warning-bg-subtle: #2a2515;--warning-text: #ffd700;--warning-text-muted: #aaa57a;--info-color: #58a6ff;--info-bg: #2d3a4a;--info-text: #7eb8da;--border-color: #30363d;--border-light: #484f58;--border-subtle: rgba(255, 255, 255, .08);--code-bg: #161b22;--code-text: #e6edf3;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .5);--theme-icon-display-sun: none;--theme-icon-display-moon: block}[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f6f8fa;--bg-tertiary: #eef1f4;--bg-elevated: #ffffff;--text-primary: #1f2328;--text-secondary: #424a53;--text-muted: #656d76;--text-dim: #8b949e;--terminal-green: #008f2a;--terminal-green-dim: #006d20;--terminal-green-glow: rgba(0, 143, 42, .12);--terminal-amber: #bf8700;--terminal-amber-dim: #9a6c00;--terminal-amber-glow: rgba(191, 135, 0, .12);--accent-color: #008f2a;--accent-hover: #006d20;--accent-light: rgba(0, 143, 42, .08);--accent-border: rgba(0, 143, 42, .3);--accent-glow: 0 0 12px rgba(0, 143, 42, .2);--accent-alt: #bf8700;--accent-alt-hover: #9a6c00;--accent-alt-light: rgba(191, 135, 0, .08);--success-color: #1a7f37;--success-hover: #218844;--success-bg: #dafbe1;--success-bg-subtle: rgba(26, 127, 55, .08);--success-text: #116329;--success-text-light: #1a7f37;--error-color: #cf222e;--error-hover: #a40e26;--error-bg: #ffebe9;--error-bg-subtle: rgba(207, 34, 46, .08);--error-text: #a40e26;--error-text-light: #cf222e;--warning-color: #bf8700;--warning-hover: #9a6c00;--warning-bg: #fff8c5;--warning-bg-subtle: rgba(191, 135, 0, .1);--warning-text: #7d4e00;--warning-text-muted: #9a6c00;--info-color: #0969da;--info-bg: #ddf4ff;--info-text: #0550ae;--border-color: #d0d7de;--border-light: #afb8c1;--border-subtle: rgba(31, 35, 40, .08);--code-bg: #f6f8fa;--code-text: #1f2328;--shadow-sm: 0 1px 2px rgba(31, 35, 40, .08);--shadow-md: 0 4px 8px rgba(31, 35, 40, .1);--shadow-lg: 0 8px 24px rgba(31, 35, 40, .12);--theme-icon-display-sun: block;--theme-icon-display-moon: none}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-success{color:var(--success-text)}.text-error{color:var(--error-text)}.text-warning{color:var(--warning-text)}.text-accent{color:var(--accent-color)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.bg-success{background-color:var(--success-bg)}.bg-error{background-color:var(--error-bg)}.bg-warning{background-color:var(--warning-bg)}.border-default{border-color:var(--border-color)}.border-light{border-color:var(--border-light)}.border-success{border-color:var(--success-color)}.border-error{border-color:var(--error-color)}.border-warning{border-color:var(--warning-color)}*,*:before,*:after{transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-fast),box-shadow var(--transition-fast)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important}}*{box-sizing:border-box}html{overflow-x:hidden}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);min-width:var(--min-viewport-width);overflow-x:auto}#root{min-height:100vh;overflow-x:hidden;max-width:100vw}a{color:var(--accent-color);transition:color var(--transition-fast)}a:hover{color:var(--accent-hover)}.loading-spinner{width:40px;height:40px;border:3px solid #333;border-top-color:#58a6ff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
