@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Inter:wght@400;700;900&display=swap";:root{--bg-app:#050505;--bg-side:#0a0a0a;--bg-panel:#0d0d0d;--accent:#00a2ff;--accent-glow:#00a2ff4d;--text:#e0e6ed;--dim:#636e7b;--border:#1a1f26;--success:#00ff95;--error:#ff4d4d;--warning:#fc0;--panel-shadow:0 4px 20px #000c}*{box-sizing:border-box}body{background:var(--bg-app);color:var(--text);height:100vh;margin:0;font-family:Inter,sans-serif;overflow:hidden}.app-container{flex-direction:column;height:100vh;display:flex}.main-layout{flex:1;height:calc(100vh - 54px);display:flex;overflow:hidden}.app-header{background:var(--bg-side);border-bottom:1px solid var(--border);z-index:200;flex-shrink:0;justify-content:space-between;align-items:center;height:54px;padding:0 20px;display:flex;box-shadow:0 2px 10px #00000080}.header-left{align-items:center;gap:12px;display:flex}.header-left h1{letter-spacing:2px;text-transform:uppercase;background:linear-gradient(90deg, #fff, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin:0;font-size:.85rem;font-weight:900}.header-domain{opacity:.5}.header-right{align-items:center;gap:12px;display:flex}.mobile-menu-btn{color:var(--dim);cursor:pointer;background:0 0;border:none;padding:4px;display:none}.icon-btn{border:1px solid var(--border);color:var(--dim);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:34px;height:34px;transition:all .2s;display:flex}.icon-btn:hover{color:#fff;border-color:var(--dim)}.icon-btn.active{color:var(--accent);border-color:var(--accent);background:#00a2ff14}.streak-badge{color:#ff6b35;background:#ff6b351a;border:1px solid #ff6b354d;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:900;animation:3s infinite streak-glow;display:flex}@keyframes streak-glow{0%,to{box-shadow:0 0 6px #ff6b3533}50%{box-shadow:0 0 14px #ff6b3566}}.system-status-indicator{border:1px solid var(--border);background:#0000004d;border-radius:4px;align-items:center;gap:8px;padding:4px 12px;display:flex}.pulse-dot{background:var(--success);width:6px;height:6px;box-shadow:0 0 8px var(--success);border-radius:50%;animation:2s infinite pulse-glow}.status-text{letter-spacing:1px;color:var(--dim);font-size:.6rem;font-weight:900}@keyframes pulse-glow{0%{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1.1)}to{opacity:.4;transform:scale(.9)}}.xp-container{flex-direction:column;gap:3px;width:110px;display:flex}.xp-bar-bg{background:#111;border:1px solid #222;border-radius:2px;height:4px;overflow:hidden}.xp-bar-fill{background:var(--accent);height:100%;box-shadow:0 0 10px var(--accent);transition:width .4s ease-out}.xp-text{color:var(--dim);text-align:right;letter-spacing:1px;font-size:.55rem;font-weight:900}.user-badge{border:1px solid var(--border);cursor:pointer;background:#111;border-radius:4px;align-items:center;gap:8px;padding:5px 12px;font-size:.7rem;font-weight:800;transition:all .2s;display:flex}.user-badge:hover{border-color:var(--dim)}.stats-box{color:var(--warning);background:#ffcc000d;border:1px solid #ffcc001a;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:.7rem;font-weight:800;display:flex}.badge-popup{z-index:1000;box-shadow:0 0 30px #ffcc0026, var(--panel-shadow);background:#0d0d0d;border:1px solid #fc06;border-radius:8px;align-items:center;gap:16px;max-width:320px;padding:16px 20px;animation:.4s cubic-bezier(.175,.885,.32,1.275) badgeSlide;display:flex;position:fixed;top:70px;right:20px}@keyframes badgeSlide{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}.badge-popup-icon{flex-shrink:0;font-size:2rem}.badge-popup-title{color:var(--warning);letter-spacing:2px;margin-bottom:4px;font-size:.55rem;font-weight:900}.badge-popup-name{color:#fff;font-size:.85rem;font-weight:900}.badge-popup-desc{color:var(--dim);margin-top:3px;font-size:.7rem}.badge-close{color:var(--dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px}.badge-close:hover{color:var(--error)}.dashboard-overlay{z-index:150;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000c;justify-content:center;align-items:flex-start;padding:30px 20px;display:flex;position:fixed;inset:54px 0 0;overflow-y:auto}.dashboard-panel{background:var(--bg-side);border:1px solid var(--border);border-radius:12px;width:100%;max-width:800px;padding:30px;animation:.3s ease-out fadeIn}.dashboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;display:flex}.dashboard-header h2{letter-spacing:2px;color:var(--accent);align-items:center;gap:10px;margin:0;font-size:1rem;font-weight:900;display:flex}.dash-stats-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px;display:grid}.dash-stat{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;display:flex}.dash-stat-val{color:#fff;font-size:1.8rem;font-weight:900;line-height:1}.dash-stat-label{color:var(--dim);letter-spacing:1.5px;text-align:center;font-size:.6rem;font-weight:900}.dash-section-title{color:var(--dim);letter-spacing:2px;text-transform:uppercase;margin:25px 0 15px;font-size:.6rem;font-weight:900}.dash-progress-bars{flex-direction:column;gap:12px;display:flex}.dash-progress-row{align-items:center;gap:16px;display:flex}.dash-level-name{flex-shrink:0;width:100px;font-size:.75rem;font-weight:900}.dash-bar-bg{background:#111;border-radius:4px;flex:1;height:8px;overflow:hidden}.dash-bar-fill{border-radius:4px;height:100%;transition:width .6s ease-out;box-shadow:0 0 8px}.dash-bar-pct{width:40px;color:var(--dim);text-align:right;flex-shrink:0;font-size:.65rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.badge-card{background:var(--bg-panel);border:1px solid var(--border);text-align:center;border-radius:8px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;transition:all .2s;display:flex}.badge-card.earned{background:#ffcc0008;border-color:#ffcc004d}.badge-card.locked{opacity:.4}.badge-card.earned:hover{transform:translateY(-2px);box-shadow:0 4px 20px #ffcc001a}.badge-icon{font-size:1.8rem}.badge-name{color:#fff;letter-spacing:.5px;font-size:.6rem;font-weight:900}.badge-desc{color:var(--dim);font-size:.6rem;line-height:1.3}.sidebar{background:var(--bg-side);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:270px;height:100%;transition:transform .3s;display:flex;overflow-y:auto}.sidebar-divider{color:var(--dim);letter-spacing:2px;text-transform:uppercase;padding:20px 20px 8px;font-size:.6rem;font-weight:900}.sidebar-search{border-bottom:1px solid var(--border);color:var(--dim);align-items:center;gap:8px;padding:12px 15px;display:flex}.search-input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:Inter,sans-serif;font-size:.75rem}.search-input::placeholder{color:var(--dim)}.search-clear{color:var(--dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.search-clear:hover{color:var(--error)}.sidebar-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.sidebar-tab{letter-spacing:1px;color:var(--dim);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 0;font-size:.6rem;font-weight:900;transition:all .2s}.sidebar-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sidebar-tab:hover:not(.active){color:#fff}.leaderboard-panel{flex-direction:column;display:flex}.lb-loading,.lb-empty{color:var(--dim);text-align:center;padding:20px;font-size:.75rem;line-height:1.5}.lb-entry{border-bottom:1px solid #0f0f0f;align-items:center;gap:10px;padding:10px 15px;font-size:.72rem;transition:background .15s;display:flex}.lb-entry:hover{background:#0e0e0e}.lb-entry.lb-self{border-left:2px solid var(--accent);background:#00a2ff0d}.lb-rank{width:30px;color:var(--warning);flex-shrink:0;font-size:.7rem;font-weight:900}.lb-handle{color:#fff;text-overflow:ellipsis;white-space:nowrap;flex:1;font-weight:700;overflow:hidden}.lb-xp{color:var(--accent);font-size:.65rem;font-weight:700}.lb-completed{color:var(--success);text-align:right;width:28px;font-size:.6rem}.level-heading{color:var(--accent);letter-spacing:1px;padding:12px 20px 6px;font-size:.7rem;font-weight:800}.lesson-grid{flex-direction:column;gap:5px;padding:0 12px 12px;display:flex}.lesson-card{background:var(--bg-panel);border:1px solid var(--border);cursor:pointer;border-radius:4px;padding:10px 14px;transition:all .2s cubic-bezier(.4,0,.2,1)}.lesson-card:hover{border-color:var(--dim);background:#141414}.lesson-card.active{border-color:var(--accent);box-shadow:inset 0 0 10px var(--accent-glow);background:#00a2ff0d}.lesson-card strong{color:#fff;margin-top:4px;font-size:.78rem;display:block}.card-top{align-items:center;gap:8px;display:flex}.l-badge{color:#000;text-transform:uppercase;border-radius:2px;padding:2px 6px;font-size:.55rem;font-weight:900}.l-badge.beginner{background:var(--success)}.l-badge.intermediate{background:var(--accent)}.l-badge.advanced{background:#9c27b0}.l-badge.pro{background:var(--error)}.done-check{color:var(--success);margin-left:auto}.playground-btn{border:1px solid var(--border);cursor:pointer;color:var(--dim);background:#111;border-radius:4px;align-items:center;gap:10px;margin:8px 12px;padding:10px 14px;font-size:.72rem;font-weight:700;transition:all .2s;display:flex}.playground-btn:hover{color:#fff;border-color:var(--dim)}.playground-btn.active{border-color:var(--accent);background:var(--accent);color:#fff;box-shadow:0 0 15px var(--accent-glow)}.main-workspace{background:var(--bg-app);flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex;position:relative;overflow-y:auto}.learning-center{border-bottom:1px solid var(--border);background:linear-gradient(#0a0a0a 0%,#050505 100%);flex-shrink:0;padding:28px 36px}.hero-content{max-width:960px}.hero-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;display:flex}.hero-head h2{color:#fff;text-shadow:0 0 20px #ffffff1a;margin:0;font-size:1.4rem;font-weight:900}.l-tag{color:var(--accent);border:1px solid var(--accent-glow);background:#00a2ff26;border-radius:4px;padding:3px 10px;font-size:.6rem;font-weight:800}.complete-tag{color:var(--success);background:#00ff951a;border:1px solid #00ff9533;border-radius:4px;align-items:center;gap:5px;padding:3px 10px;font-size:.6rem;font-weight:800;display:flex}.desc{color:var(--dim);max-width:800px;margin:0 0 20px;font-size:.9rem;line-height:1.6}.walkthrough{border:1px solid var(--border);background:#0d0d0d;border-radius:8px;margin-bottom:16px;padding:18px;box-shadow:inset 0 0 20px #00000080}.walkthrough h3{color:var(--accent);letter-spacing:1.5px;text-transform:uppercase;align-items:center;gap:10px;margin:0 0 12px;font-size:.68rem;font-weight:900;display:flex}.walkthrough ul{margin:0 0 0 10px;padding:0;list-style:none}.walkthrough li{color:#999;align-items:flex-start;gap:8px;margin-bottom:7px;font-size:.83rem;line-height:1.4;display:flex}.walkthrough li svg{color:var(--accent);flex-shrink:0;margin-top:3px}.task-box{border-left:4px solid var(--success);color:var(--success);background:#00ff950d;border-radius:0 4px 4px 0;margin-bottom:14px;padding:14px 18px;font-size:.83rem}.help-box{border:1px dashed var(--accent-glow);color:#fff;background:#00a2ff0d;border-radius:4px;align-items:flex-start;gap:10px;padding:12px 16px;font-size:.78rem;line-height:1.5;display:flex}.help-box strong{color:var(--accent);flex-shrink:0}.hint-section{margin-top:14px}.hint-btn{color:var(--warning);letter-spacing:1px;cursor:pointer;background:#ffcc000f;border:1px solid #fc03;border-radius:4px;align-items:center;gap:8px;padding:8px 16px;font-size:.68rem;font-weight:900;transition:all .2s;display:flex}.hint-btn:hover:not(:disabled){background:#ffcc001f;border-color:#fc06}.hint-btn:disabled{opacity:.6;cursor:wait}.hint-btn.loading{animation:1s infinite pulse}.hint-panel{background:#ffcc000a;border:1px solid #ffcc0026;border-radius:6px;margin-top:12px;padding:16px;animation:.3s ease-out fadeIn}.hint-header{color:var(--warning);letter-spacing:1.5px;align-items:center;gap:6px;margin-bottom:10px;font-size:.6rem;font-weight:900;display:flex}.hint-panel p{color:#ccc;margin:0 0 12px;font-size:.83rem;line-height:1.6}.hint-dismiss{color:var(--dim);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.65rem;display:flex}.hint-dismiss:hover{color:var(--error)}.editor-grid{border-bottom:1px solid var(--border);background:#000;flex-shrink:0;height:580px;display:flex}.code-panel{border-right:1px solid var(--border);flex-direction:column;flex:1.2;min-width:0;height:100%;display:flex}.monaco-box{flex:1;min-height:0}.panel-bar{border-bottom:1px solid var(--border);height:40px;color:var(--dim);letter-spacing:1px;background:#0f0f0f;flex-shrink:0;justify-content:space-between;align-items:center;padding:0 16px;font-size:.65rem;font-weight:800;display:flex}.bar-actions{align-items:center;gap:6px;display:flex}.b-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:4px;align-items:center;gap:6px;padding:5px 12px;font-size:.62rem;font-weight:800;transition:all .2s;display:flex}.b-btn:hover{background:#222;border-color:#444}.b-btn.run{background:var(--accent);border-color:var(--accent);box-shadow:0 0 10px var(--accent-glow)}.b-btn.run:hover{filter:brightness(1.1)}.b-btn:disabled{opacity:.5;cursor:not-allowed}.symbol-keyboard{border-bottom:1px solid var(--border);background:#080808;flex-shrink:0;gap:5px;padding:5px 12px;display:flex;overflow-x:auto}.kb-icon{color:var(--dim);flex-shrink:0;align-items:center;padding-right:6px;display:flex}.sym-btn{border:1px solid var(--border);color:#666;cursor:pointer;background:#111;border-radius:3px;flex-shrink:0;padding:3px 9px;font-family:JetBrains Mono,monospace;font-size:.73rem;transition:all .15s}.sym-btn:hover{color:#fff;border-color:var(--accent);background:#1a1a1a}.output-panel{background:#020202;flex-direction:column;flex:.8;min-width:0;height:100%;display:flex}.tabs-bar{border-bottom:1px solid var(--border);background:#0a0a0a;flex-shrink:0;height:40px;padding:0 8px;display:flex}.tab{color:var(--dim);letter-spacing:1px;cursor:pointer;white-space:nowrap;background:0 0;border:none;padding:0 16px;font-size:.62rem;font-weight:900;position:relative}.tab.active{color:var(--accent)}.tab.active:after{content:"";background:var(--accent);height:2px;box-shadow:0 0 10px var(--accent);position:absolute;bottom:0;left:0;right:0}.output-content{background:#000;flex:1;padding:16px;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.5;overflow-y:auto}.test-results{flex-direction:column;gap:7px;margin-bottom:16px;display:flex}.test-row{border-radius:4px;padding:7px 12px;font-size:.72rem;font-weight:700}.test-row.pass{color:var(--success);background:#00ff950d;border:1px solid #00ff951a}.test-row.fail{color:var(--error);background:#ff4d4d0d;border:1px solid #ff4d4d1a}.terminal-log{border-top:1px solid #111;padding-top:12px}.log-line{color:#fff;white-space:pre-wrap;word-break:break-all;margin-bottom:4px;font-size:.78rem}.log-line.stderr{color:var(--error)}.log-line.stdout{color:#ccc}.memory-monitor h3{color:var(--accent);letter-spacing:1px;align-items:center;gap:8px;margin-bottom:14px;font-size:.7rem;display:flex}.var-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.var-card{border:1px solid var(--border);background:#080808;border-radius:4px;flex-direction:column;gap:4px;padding:10px;display:flex;position:relative;overflow:hidden}.var-card:before{content:"";background:var(--accent);width:2px;height:100%;position:absolute;top:0;left:0}.var-type{color:var(--dim);text-transform:uppercase;font-size:.55rem;font-weight:800}.var-name{color:#fff;font-family:JetBrains Mono,monospace;font-size:.83rem;font-weight:700}.var-val{color:var(--success);word-break:break-all;background:#0000004d;border-radius:2px;padding:3px;font-size:.72rem}.chat-sidebar{background:var(--bg-side);border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex}.chat-head{border-bottom:1px solid var(--border);letter-spacing:1px;color:var(--dim);align-items:center;gap:8px;padding:10px 14px;font-size:.7rem;font-weight:900;display:flex}.chat-close-btn{color:var(--dim);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;margin-left:auto;padding:2px;display:flex}.chat-close-btn:hover{color:var(--text);background:#222}.chat-body{flex-direction:column;flex:1;gap:6px;padding:10px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:#444;padding:20px;font-size:.72rem}.chat-msg{border:1px solid var(--border);background:#0d0d0d;border-radius:6px;padding:7px 10px}.chat-msg.sys{background:#ffcc0008;border-color:#ffcc001a}.chat-msg.own{background:#007acc14;border-color:#007acc33}.chat-meta{flex-wrap:wrap;align-items:center;gap:5px;margin-bottom:3px;font-size:.65rem;font-weight:800;display:flex}.chat-role{color:var(--dim);font-size:.58rem;font-weight:400}.chat-time{color:#444;margin-left:auto;font-size:.58rem;font-weight:400}.chat-text{color:#ccc;word-break:break-word;font-size:.76rem;line-height:1.45}.chat-form{border-top:1px solid var(--border);gap:6px;padding:8px;display:flex}.chat-form input{border:1px solid var(--border);color:#fff;background:#111;border-radius:4px;outline:none;flex:1;padding:7px 10px;font-family:inherit;font-size:.76rem}.chat-form input:focus{border-color:var(--accent)}.chat-form button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;transition:filter .15s;display:flex}.chat-form button:hover:not(:disabled){filter:brightness(1.15)}.chat-form button:disabled{cursor:not-allowed;background:#222}.auth-brand{letter-spacing:1px;color:#fff;align-items:center;gap:10px;margin-bottom:6px;font-size:1.1rem;font-weight:900;display:flex}.auth-tagline{color:var(--dim);margin:0 0 24px;font-size:.75rem}.auth-tabs{border:1px solid var(--border);border-radius:6px;margin-bottom:24px;display:flex;overflow:hidden}.auth-tab{letter-spacing:1.5px;color:var(--dim);cursor:pointer;background:0 0;border:none;flex:1;padding:10px 0;font-size:.65rem;font-weight:900;transition:all .2s}.auth-tab.active{background:var(--accent);color:#fff}.auth-tab:not(.active):hover{color:#fff;background:#111}.auth-error{color:var(--error);background:#ff4d4d14;border:1px solid #ff4d4d4d;border-radius:4px;margin-top:12px;padding:10px 14px;font-size:.75rem;line-height:1.4}.logout-btn{color:var(--dim)}.logout-btn:hover{color:var(--error)!important;border-color:var(--error)!important}.modal-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.auth-modal{background:var(--bg-side);border:1px solid var(--border);border-radius:12px;width:360px;padding:36px;animation:.3s ease-out fadeIn;box-shadow:0 0 60px #000c}.auth-modal h2{letter-spacing:2px;color:var(--accent);text-transform:uppercase;margin:0 0 24px;font-size:.9rem;font-weight:900}.field-label{color:var(--dim);letter-spacing:1.5px;margin-top:16px;margin-bottom:6px;font-size:.6rem;font-weight:900;display:block}.auth-input{border:1px solid var(--border);color:#fff;box-sizing:border-box;background:#111;border-radius:4px;outline:none;width:100%;padding:10px 14px;font-size:.82rem}.auth-input:focus{border-color:var(--accent)}.color-picker{gap:10px;margin-top:6px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;transition:all .2s}.color-swatch.active{border-color:#fff;transform:scale(1.1);box-shadow:0 0 10px}.auth-btn{background:var(--accent);color:#fff;letter-spacing:1.5px;cursor:pointer;border:none;border-radius:4px;width:100%;margin-top:20px;padding:12px;font-size:.75rem;font-weight:900;transition:all .2s}.auth-btn:hover{filter:brightness(1.1)}.auth-btn.secondary{border:1px solid var(--border);background:#1a1a1a;margin-top:8px}.blueprint-complete-banner{color:var(--warning);letter-spacing:.5px;background:#ffcc000d;border:1px solid #fc03;border-radius:6px;align-items:center;gap:14px;margin-top:16px;padding:14px 18px;font-size:.78rem;font-weight:800;animation:.4s cubic-bezier(.175,.885,.32,1.275) slideIn;display:flex}.typing-trainer{border:1px solid var(--border);background:#111;border-radius:12px;flex-direction:column;gap:20px;margin:20px;padding:20px;animation:.3s ease-out fadeIn;display:flex}.trainer-header{border-bottom:1px solid #222;justify-content:space-between;align-items:center;padding-bottom:14px;display:flex}.header-info{align-items:center;gap:12px;display:flex}.header-info h3{letter-spacing:1.5px;color:var(--accent);text-transform:uppercase;margin:0;font-size:.85rem;font-weight:800}.trainer-stats{align-items:center;gap:12px;display:flex}.stat{color:#888;background:#1a1a1a;border:1px solid #222;border-radius:4px;align-items:center;gap:7px;padding:5px 10px;font-size:.68rem;display:flex}.stat strong{color:var(--accent);font-weight:900}.close-btn{color:#555;cursor:pointer;background:0 0;border:none;align-items:center;padding:4px;transition:all .2s;display:flex}.close-btn:hover{color:var(--error);transform:scale(1.1)}.drill-area{cursor:text;background:#050505;border:1px solid #222;border-radius:8px;justify-content:center;align-items:center;min-height:160px;padding:36px;display:flex;position:relative;box-shadow:inset 0 0 40px #000c}.text-display{white-space:pre-wrap;-webkit-user-select:none;user-select:none;text-align:left;width:100%;font-family:JetBrains Mono,monospace;font-size:1.3rem;line-height:1.7}.hidden-input{opacity:0;cursor:text;resize:none;width:100%;height:100%;position:absolute;top:0;left:0}.trainer-actions{justify-content:space-between;align-items:center;padding-top:10px;display:flex}.success-banner{color:var(--success);letter-spacing:.5px;align-items:center;gap:14px;font-size:.78rem;font-weight:900;display:flex}.action-btn{color:#ccc;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:#222;border:1px solid #333;border-radius:6px;align-items:center;gap:8px;padding:9px 18px;font-size:.68rem;font-weight:800;transition:all .2s;display:flex}.action-btn:hover{border-color:var(--accent);color:#fff;background:#333}.action-btn.next{background:var(--accent);color:#fff;border:none}.hint-text{color:#444;text-transform:uppercase;letter-spacing:1px;margin:0;font-size:.62rem;font-weight:600}.icon-pulse{color:var(--accent);animation:2s infinite pulse}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#1a1f26;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.daily-challenge-banner{cursor:pointer;background:linear-gradient(135deg,#ffcc0012,#ff6b3512);border:1px solid #ffcc0040;border-radius:6px;align-items:center;gap:12px;margin:10px 12px 0;padding:12px 14px;transition:all .2s;display:flex}.daily-challenge-banner:hover{background:#ffcc001a;border-color:#ffcc0080}.daily-label{color:var(--warning);letter-spacing:2px;margin-bottom:3px;font-size:.55rem;font-weight:900}.daily-title{color:#fff;font-size:.75rem;font-weight:700}.daily-xp{color:var(--warning);white-space:nowrap;margin-left:auto;font-size:.65rem;font-weight:900}.lesson-card.daily{border-color:#fc03}.daily-dot{color:var(--warning);margin-left:auto;font-size:.75rem}.daily-tag{color:var(--warning);background:#ffcc001a;border:1px solid #ffcc0040;border-radius:4px;align-items:center;gap:5px;padding:3px 10px;font-size:.58rem;font-weight:900;display:flex}.l-tag.level-beginner{color:var(--success);background:#00ff951a;border-color:#00ff9533}.l-tag.level-intermediate{color:var(--accent);background:#00a2ff1a;border-color:#00a2ff33}.l-tag.level-advanced{color:#c86dd7;background:#9c27b01a;border-color:#9c27b033}.l-tag.level-pro{color:var(--error);background:#ff4d4d1a;border-color:#ff4d4d33}.hints-section{flex-direction:column;gap:8px;margin-top:14px;display:flex}.hint-item{border-radius:4px;align-items:flex-start;gap:10px;padding:10px 14px;font-size:.82rem;line-height:1.5;animation:.3s ease-out fadeIn;display:flex}.hint-level-1{color:#ccc;background:#00a2ff0d;border-left:3px solid #00a2ff66}.hint-level-2{color:#ccc;background:#ffcc000d;border-left:3px solid #fc06}.hint-level-3{color:#ccc;background:#00ff950d;border-left:3px solid #00ff9566}.hint-label{letter-spacing:1.5px;flex-shrink:0;margin-top:3px;font-size:.55rem;font-weight:900}.hint-level-1 .hint-label{color:var(--accent)}.hint-level-2 .hint-label{color:var(--warning)}.hint-level-3 .hint-label{color:var(--success)}.reveal-hint-btn{border:1px dashed var(--border);color:var(--dim);cursor:pointer;letter-spacing:.5px;background:0 0;border-radius:4px;align-self:flex-start;padding:7px 14px;font-size:.68rem;font-weight:700;transition:all .2s}.reveal-hint-btn:hover{border-color:var(--accent);color:var(--accent)}.lesson-nav{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.nav-btn{border:1px solid var(--border);color:var(--dim);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#111;border-radius:4px;align-items:center;gap:7px;max-width:240px;padding:8px 16px;font-size:.68rem;font-weight:700;transition:all .2s;display:flex;overflow:hidden}.nav-btn:hover:not(:disabled){border-color:var(--dim);color:#fff}.nav-btn:disabled{opacity:.3;cursor:not-allowed}.nav-btn.next{margin-left:auto}.nav-btn.next:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.celebration-overlay{z-index:900;pointer-events:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.celebration-box{border:2px solid var(--success);background:#0d0d0d;border-radius:16px;flex-direction:column;align-items:center;gap:10px;padding:40px 60px;animation:2.8s ease-out forwards celebrateAnim;display:flex;box-shadow:0 0 60px #00ff9533,0 0 120px #00ff9514}@keyframes celebrateAnim{0%{opacity:0;transform:scale(.7)}15%{opacity:1;transform:scale(1.05)}25%{transform:scale(1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)translateY(-20px)}}.celebration-icon{font-size:3rem}.celebration-title{color:var(--success);letter-spacing:3px;font-size:1.1rem;font-weight:900}.celebration-xp{color:#fff;font-size:2rem;font-weight:900}.celebration-bonus{color:var(--warning);letter-spacing:1px;font-size:.7rem;font-weight:700}.cheatsheet-overlay{z-index:140;justify-content:flex-end;display:flex;position:fixed;top:54px;bottom:0;right:0}.cheatsheet-panel{background:var(--bg-side);border-left:1px solid var(--border);flex-direction:column;width:380px;animation:.3s ease-out slideFromRight;display:flex;box-shadow:-4px 0 20px #00000080}@keyframes slideFromRight{0%{transform:translate(100%)}to{transform:translate(0)}}.cheatsheet-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:20px;display:flex}.cs-title{color:var(--accent);letter-spacing:2px;margin-bottom:4px;font-size:.75rem;font-weight:900}.cs-sub{color:var(--dim);font-size:.65rem}.cheatsheet-body{flex:1;padding:12px;overflow-y:auto}.cs-section{margin-bottom:4px}.cs-section-header{color:#aaa;letter-spacing:.5px;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:4px;align-items:center;gap:8px;width:100%;padding:9px 10px;font-size:.7rem;font-weight:900;transition:all .15s;display:flex}.cs-section-header:hover{color:#fff;background:#111}.cs-chevron{color:var(--dim);flex-shrink:0;transition:transform .2s}.cs-chevron.open{transform:rotate(90deg)}.cs-items{flex-direction:column;gap:2px;padding:4px 0 4px 12px;display:flex}.cs-item{border-radius:3px;align-items:baseline;gap:10px;padding:4px 8px;transition:background .1s;display:flex}.cs-item:hover{background:#111}.cs-code{color:var(--success);white-space:nowrap;flex-shrink:0;min-width:170px;font-family:JetBrains Mono,monospace;font-size:.72rem}.cs-note{color:var(--dim);font-size:.65rem;line-height:1.4}@media (width<=1100px){.system-status-indicator{display:none}.xp-container{width:90px}}@media (width<=900px){.mobile-menu-btn{display:flex}.sidebar{z-index:100;position:fixed;top:54px;bottom:0;left:0;transform:translate(-100%);box-shadow:4px 0 20px #0009}.sidebar.mobile-open{transform:translate(0)}.streak-badge span,.user-badge span,.stats-box span,.header-domain{display:none}.dash-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=700px){.app-header{padding:0 12px}.header-right{gap:8px}.learning-center{padding:18px 16px}.hero-head h2{font-size:1.1rem}.editor-grid{flex-direction:column;height:auto}.code-panel{border-right:none;border-bottom:1px solid var(--border);height:340px}.output-panel{flex:none;height:260px}.chat-sidebar{display:none}.badge-grid,.dash-stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.hero-head h2{font-size:.95rem}.b-btn .btn-label{display:none}.dashboard-panel{padding:20px 14px}.badge-grid{grid-template-columns:1fr 1fr}}[data-theme=light]{--bg-app:#f0f2f5;--bg-side:#fff;--bg-panel:#f8f9fa;--accent:#06c;--accent-glow:#06c3;--text:#1a1d21;--dim:#6b7280;--border:#d1d5db;--success:#16a34a;--error:#dc2626;--warning:#d97706;--panel-shadow:0 4px 20px #0000001a}[data-theme=light] body{background:var(--bg-app)}[data-theme=light] .app-header{background:#fff;border-bottom-color:#e5e7eb;box-shadow:0 1px 4px #00000014}[data-theme=light] .header-left h1{background:linear-gradient(90deg, #1a1d21, var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text}[data-theme=light] .sidebar{background:#fff;border-right-color:#e5e7eb}[data-theme=light] .lesson-card{color:#1a1d21;background:#f3f4f6;border-color:#e5e7eb}[data-theme=light] .lesson-card:hover{border-color:var(--accent);background:#e8eaed}[data-theme=light] .lesson-card.active{border-color:var(--accent);background:#dbeafe}[data-theme=light] .code-panel{background:#fff;border-color:#e5e7eb}[data-theme=light] .output-panel{background:#f8f9fa;border-color:#e5e7eb}[data-theme=light] .panel-bar,[data-theme=light] .tabs-bar{background:#f3f4f6;border-bottom-color:#e5e7eb}[data-theme=light] .tab{color:#6b7280}[data-theme=light] .tab.active{color:var(--accent);border-bottom-color:var(--accent)}[data-theme=light] .terminal-log{background:#1e1e1e}[data-theme=light] .log-line{color:#d4d4d4}[data-theme=light] .log-line.stderr{color:#f48771}[data-theme=light] .daily-challenge-banner{background:#ffcc0014;border-color:#ffcc004d}[data-theme=light] .weekly-challenge-banner{background:#9c27b00d;border-color:#9c27b033}[data-theme=light] .auth-modal{background:#fff;border-color:#e5e7eb}[data-theme=light] .auth-input{color:#1a1d21;background:#f9fafb;border-color:#d1d5db}[data-theme=light] .dashboard-panel{background:#fff;border-color:#e5e7eb}[data-theme=light] .badge-card{background:#f9fafb;border-color:#e5e7eb}[data-theme=light] .badge-card.earned{border-color:var(--accent);background:#0066cc0d}[data-theme=light] .symbol-keyboard{background:#f3f4f6;border-bottom-color:#e5e7eb}[data-theme=light] .sym-btn{color:#374151;background:#fff;border-color:#d1d5db}[data-theme=light] .sym-btn:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .hero-content{color:#1a1d21}[data-theme=light] .desc{color:#4b5563}[data-theme=light] .walkthrough{background:#f9fafb;border-color:#e5e7eb}[data-theme=light] .walkthrough h3{color:var(--accent)}[data-theme=light] .help-box{border-left-color:var(--accent);background:#0066cc0d}[data-theme=light] .task-box{border-left-color:var(--accent);color:#1a1d21;background:#0066cc0d}[data-theme=light] .hint-item{color:#1a1d21;background:#f0f9ff;border-color:#bfdbfe}[data-theme=light] .var-card{background:#f3f4f6;border-color:#e5e7eb}[data-theme=light] .icon-btn{color:#6b7280;border-color:#e5e7eb}[data-theme=light] .icon-btn:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .b-btn{color:#374151;background:#f3f4f6;border-color:#d1d5db}[data-theme=light] .b-btn:hover{border-color:var(--accent)}[data-theme=light] .b-btn.run{background:var(--accent);border-color:var(--accent);color:#fff}[data-theme=light] .xp-bar-bg{background:#e5e7eb}[data-theme=light] .level-heading{color:#6b7280}[data-theme=light] .sidebar-divider{color:#9ca3af;border-bottom-color:#e5e7eb}[data-theme=light] .playground-btn{color:#6b7280;border-color:#e5e7eb}[data-theme=light] .playground-btn:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .test-row.pass{color:#15803d;background:#16a34a12}[data-theme=light] .test-row.fail{color:#dc2626;background:#dc262612}[data-theme=light] .test-error-hint{color:#b45309;background:#d9770614}[data-theme=light] .chat-sidebar{background:#fff;border-left-color:#e5e7eb}[data-theme=light] .chat-head{border-bottom-color:#e5e7eb}[data-theme=light] .chat-msg,[data-theme=light] .lb-entry{border-bottom-color:#f3f4f6}[data-theme=light] .reveal-hint-btn{color:#374151;border-color:#d1d5db}[data-theme=light] .reveal-hint-btn:hover{border-color:var(--accent);color:var(--accent)}[data-theme=light] .nav-btn{color:#6b7280;border-color:#e5e7eb}[data-theme=light] .nav-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}[data-theme=light] .cheat-panel{background:#fff;border-left-color:#e5e7eb}[data-theme=light] .cs-section{border-bottom-color:#f3f4f6}[data-theme=light] .cs-section-head{color:#1a1d21}[data-theme=light] .cs-item{color:#4b5563}[data-theme=light] .cs-code{color:#1a1d21;background:#f3f4f6}[data-theme=light] .track-selector{background:#f3f4f6;border-bottom-color:#e5e7eb}[data-theme=light] .track-btn{color:#6b7280}[data-theme=light] .track-btn.active{color:var(--accent);background:#fff;border-color:#e5e7eb}[data-theme=light] .sql-table th{color:#374151;background:#f3f4f6;border-color:#e5e7eb}[data-theme=light] .sql-table td{color:#1a1d21;border-color:#f3f4f6}[data-theme=light] .sql-table tr:hover td{background:#f0f9ff}.track-selector{border-bottom:1px solid var(--border);background:var(--bg-side);flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:4px;padding:6px 8px;display:grid}.track-btn{color:var(--dim);letter-spacing:.5px;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;gap:4px;padding:5px 4px;font-family:JetBrains Mono,monospace;font-size:.68rem;transition:all .15s;display:flex}.track-btn:hover{color:var(--text);border-color:var(--border)}.track-btn.active{background:var(--bg-panel);color:var(--accent);border-color:var(--border)}.track-btn.active.sql-track{color:#f39c12}.track-btn.active.rails-track{color:#cc342d}.weekly-challenge-banner{cursor:pointer;background:#9c27b012;border:1px solid #9c27b04d;border-radius:6px;flex-shrink:0;align-items:center;gap:10px;margin:0 10px 6px;padding:8px 12px;transition:border-color .15s;display:flex}.weekly-challenge-banner:hover{border-color:#9c27b0}.weekly-dot{color:#9c27b0;margin-left:2px;font-size:.7rem}.weekly-tag{color:#9c27b0;letter-spacing:.5px;background:#9c27b026;border:1px solid #9c27b04d;border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-family:JetBrains Mono,monospace;font-size:.65rem;display:inline-flex}.lesson-card.weekly{border-color:#9c27b059}.lesson-card.weekly:hover{border-color:#9c27b0}.sql-table-wrap{border:1px solid var(--border);border-radius:4px;margin:10px 14px;overflow:auto}.sql-table{border-collapse:collapse;width:100%;font-family:JetBrains Mono,monospace;font-size:.78rem}.sql-table th{background:var(--bg-side);color:var(--accent);text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;letter-spacing:.5px;padding:6px 10px;font-size:.72rem}.sql-table td{color:var(--text);white-space:nowrap;border-bottom:1px solid #ffffff0a;padding:5px 10px}.sql-table tr:hover td{background:#ffffff08}.sql-table tr:last-child td{border-bottom:none}.sql-row-count{color:var(--dim);border-top:1px solid var(--border);background:var(--bg-side);padding:6px 10px;font-family:JetBrains Mono,monospace;font-size:.72rem}.test-error-hint{color:#f1c40f;background:#f1c40f14;border-left:2px solid #f1c40f;border-radius:2px;margin-top:4px;padding:4px 8px;font-family:JetBrains Mono,monospace;font-size:.74rem;line-height:1.5}.cert-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cert-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:16px;width:min(750px,96vw);max-height:92vh;padding:24px;display:flex;overflow-y:auto}.cert-modal-header{letter-spacing:2px;color:var(--dim);justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:.82rem;display:flex}.cert-preview{border:1px solid var(--border);border-radius:6px;overflow:hidden}.cert-download-btn{background:var(--accent);color:#fff;letter-spacing:1px;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 20px;font-family:JetBrains Mono,monospace;font-size:.8rem;transition:opacity .15s;display:flex}.cert-download-btn:hover{opacity:.85}.cert-buttons{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.cert-btn{cursor:pointer;border:1px solid var(--border);background:var(--bg-panel);color:var(--dim);border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-family:JetBrains Mono,monospace;font-size:.76rem;transition:all .15s;display:inline-flex}.cert-btn.earned{border-color:var(--accent);color:var(--accent);cursor:pointer;background:#00a2ff12}.cert-btn.earned:hover{background:#00a2ff26}.cert-btn.earned.full{border-color:var(--warning);color:var(--warning);background:#ffcc0012}.cert-btn.earned.full:hover{background:#ffcc0024}.cert-btn.locked{opacity:.5;cursor:not-allowed}.track-btn.active.js-track{color:#f7df1e}.track-btn.active.ts-track{color:#3178c6}.track-btn.active.algo-track{color:#ff6b35}.timed-challenge-btn{width:calc(100% - 20px);color:var(--text);letter-spacing:.5px;cursor:pointer;background:#9c27b014;border:1px solid #9c27b040;border-radius:6px;flex-shrink:0;align-items:center;gap:6px;margin:0 10px 6px;padding:7px 12px;font-family:JetBrains Mono,monospace;font-size:.72rem;transition:border-color .15s;display:flex}.timed-challenge-btn:hover{border-color:#9c27b0}.timed-xp{color:#9c27b0;margin-left:auto;font-weight:700}.timed-active-banner{width:calc(100% - 20px);color:var(--error);background:#dc26261a;border:1px solid #dc26264d;border-radius:6px;flex-shrink:0;align-items:center;gap:8px;margin:0 10px 6px;padding:7px 12px;font-family:JetBrains Mono,monospace;font-size:.72rem;animation:1s ease-in-out infinite pulse-red;display:flex}.timed-lesson-name{text-overflow:ellipsis;white-space:nowrap;color:var(--dim);flex:1;overflow:hidden}.timed-stop-btn{color:var(--error);cursor:pointer;background:0 0;border:none;padding:0}@keyframes pulse-red{0%,to{border-color:#dc26264d}50%{border-color:#dc2626b3}}.review-section{border:1px solid #fc03;border-radius:6px;flex-shrink:0;margin:0 10px 6px;overflow:hidden}.review-header{letter-spacing:1px;color:var(--warning);background:#ffcc0012;align-items:center;gap:6px;padding:5px 10px;font-family:JetBrains Mono,monospace;font-size:.68rem;display:flex}.review-card{color:var(--text);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-top:1px solid #ffffff0a;padding:5px 10px;font-size:.74rem;transition:background .1s;overflow:hidden}.review-card:hover{color:var(--warning);background:#ffcc000d}.notes-panel{flex-direction:column;gap:10px;height:100%;padding:12px;display:flex}.notes-header{color:var(--dim);justify-content:space-between;align-items:center;font-family:JetBrains Mono,monospace;font-size:.75rem;display:flex}.notes-textarea{background:var(--bg-app);border:1px solid var(--border);color:var(--text);resize:none;border-radius:6px;outline:none;flex:1;padding:10px 12px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.6;transition:border-color .15s}.notes-textarea:focus{border-color:var(--accent)}.notes-textarea::placeholder{color:var(--dim)}[data-theme=light] .notes-textarea{color:#1a1d21;background:#f9fafb;border-color:#d1d5db}.discussion-panel{flex-direction:column;height:100%;display:flex}.discussion-msgs{flex:1;padding:10px 12px;overflow-y:auto}.disc-empty{text-align:center;color:var(--dim);padding:20px;font-size:.8rem}.disc-msg{border-bottom:1px solid #ffffff0a;margin-bottom:12px;padding-bottom:12px}.disc-meta{align-items:center;gap:8px;margin-bottom:4px;font-size:.74rem;display:flex}.disc-time{color:var(--dim);font-size:.68rem}.disc-text{color:var(--text);font-size:.82rem;line-height:1.5}.disc-form{border-top:1px solid var(--border);flex-shrink:0;gap:6px;padding:8px 10px;display:flex}.disc-input{background:var(--bg-app);border:1px solid var(--border);color:var(--text);border-radius:4px;outline:none;flex:1;padding:6px 10px;font-size:.8rem}.disc-input:focus{border-color:var(--accent)}[data-theme=light] .disc-msg{border-bottom-color:#f3f4f6}[data-theme=light] .disc-input{color:#1a1d21;background:#f9fafb;border-color:#d1d5db}.skill-tree-overlay{z-index:1000;background:#000000d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.skill-tree-modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:min(960px,96vw);max-height:90vh;display:flex;overflow:hidden}.skill-tree-header{border-bottom:1px solid var(--border);letter-spacing:2px;color:var(--dim);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;font-family:JetBrains Mono,monospace;font-size:.8rem;display:flex}.skill-tree-scroll{background:#070707;flex:1;padding:10px;overflow:auto}.skill-tooltip{background:var(--bg-side);border-top:1px solid var(--border);flex-shrink:0;padding:10px 16px;position:sticky;bottom:0}.skill-tooltip-title{color:var(--text);margin-bottom:2px;font-family:JetBrains Mono,monospace;font-size:.82rem}.skill-tooltip-level{margin-bottom:3px;font-family:JetBrains Mono,monospace;font-size:.72rem}.skill-tooltip-desc{color:var(--dim);font-size:.78rem}.skill-legend{border-top:1px solid var(--border);background:var(--bg-side);flex-wrap:wrap;flex-shrink:0;gap:16px;padding:10px 16px;display:flex}.skill-legend-item{color:var(--dim);align-items:center;gap:6px;font-family:JetBrains Mono,monospace;font-size:.72rem;display:flex}.skill-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.freeze-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:10px;padding:10px 0 14px;display:flex}.freeze-info{color:var(--text);align-items:center;gap:8px;font-size:.8rem;display:flex}[data-theme=light] .timed-challenge-btn{background:#9c27b00a;border-color:#9c27b026}[data-theme=light] .review-section{border-color:#d9770633}[data-theme=light] .review-header{background:#d977060f}[data-theme=light] .skill-tree-modal{background:#fff;border-color:#e5e7eb}[data-theme=light] .skill-tree-scroll{background:#f3f4f6}[data-theme=light] .skill-tree-header{border-bottom-color:#e5e7eb}[data-theme=light] .skill-tooltip,[data-theme=light] .skill-legend{background:#fff;border-top-color:#e5e7eb}[data-theme=light] .discussion-panel{background:#fff}.tt-mode-tabs{gap:6px;padding:0 4px;display:flex}.tt-tab{border:1px solid var(--border);color:#555;letter-spacing:1px;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:5px 14px;font-family:JetBrains Mono,monospace;font-size:.7rem;transition:all .15s;display:flex}.tt-tab.active{border-color:var(--accent);color:var(--accent);background:#00a2ff12}.tt-tab:hover:not(.active){color:#aaa;border-color:#444}.tt-filters{flex-direction:column;gap:6px;display:flex}.tt-filter-group{flex-wrap:wrap;gap:4px;display:flex}.tt-filter-btn{color:#555;letter-spacing:.5px;cursor:pointer;background:0 0;border:1px solid #222;border-radius:4px;padding:3px 10px;font-family:JetBrains Mono,monospace;font-size:.65rem;transition:all .15s}.tt-filter-btn.active{border-color:var(--accent);color:var(--accent);background:#00a2ff12}.tt-filter-btn:hover:not(.active){color:#aaa;border-color:#444}.drill-meta{color:#666;align-items:center;gap:10px;font-size:.75rem;display:flex}.drill-number{color:#444;font-family:JetBrains Mono,monospace}.drill-title{color:#aaa;font-weight:600}.drill-nav-mini{gap:3px;margin-left:auto;display:flex}.tt-nav-btn{color:#666;cursor:pointer;background:#111;border:1px solid #222;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;font-size:1rem;display:flex}.tt-nav-btn:hover:not(:disabled){color:#aaa;border-color:#444}.tt-nav-btn:disabled{opacity:.3;cursor:not-allowed}.tt-progress-bar{background:#1a1a1a;border-radius:2px;height:3px;overflow:hidden}.tt-progress-fill{border-radius:2px;height:100%;transition:width .15s}.stat-chip{color:#666;background:#111;border:1px solid #222;border-radius:4px;align-items:center;gap:4px;padding:3px 8px;font-family:JetBrains Mono,monospace;font-size:.72rem;display:flex}.tt-char{white-space:pre;font-family:JetBrains Mono,monospace}.tt-correct{color:#4caf50}.tt-wrong{color:#f44336;background:#f443361f;border-radius:2px}.tt-cursor{border-bottom:2px solid #00a2ff;animation:1s step-end infinite blink}@keyframes blink{50%{border-color:#0000}}.tt-error-indicator{text-align:center;color:#f44336;letter-spacing:1px;padding:4px;font-family:JetBrains Mono,monospace;font-size:.7rem}.tt-result{background:#0a0f13;border:1px solid #1a2a1a;border-radius:8px;padding:16px}.tt-new-record{text-align:center;color:#f1c40f;letter-spacing:2px;margin-bottom:10px;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:900}.result-title{text-align:center;letter-spacing:2px;color:#00ff95;margin-bottom:12px;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:900}.result-grid{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:14px;display:flex}.result-stat{background:#111;border:1px solid #222;border-radius:6px;flex-direction:column;align-items:center;gap:2px;min-width:70px;padding:10px 16px;display:flex}.rs-label{color:#555;letter-spacing:1px;font-family:JetBrains Mono,monospace;font-size:.6rem}.rs-val{font-family:JetBrains Mono,monospace;font-size:1.4rem;font-weight:900}.result-actions{justify-content:center;gap:8px;display:flex}.sprint-start-panel{text-align:center;color:#888;padding:20px;font-size:.85rem}.sprint-start-panel strong{color:#00a2ff}.sprint-result{text-align:center;background:#0a0f13;border:1px solid #1a2030;border-radius:8px;padding:20px}.action-btn.run{color:#fff;background:#007acc;border-color:#007acc}.action-btn.run:hover{background:#0091e6;border-color:#0091e6}.homepage{background:var(--bg-app);color:var(--text);z-index:9999;font-family:JetBrains Mono,monospace;position:fixed;inset:0;overflow:hidden auto}.hp-hero{text-align:center;padding:80px 40px 60px;position:relative;overflow:hidden}.hp-hero-bg{pointer-events:none;background:radial-gradient(80% 50% at 50% 0,#00a2ff14 0%,#0000 70%),radial-gradient(60% 40% at 80% 80%,#00ff950d 0%,#0000 60%);position:absolute;inset:0}.hp-hero-content{max-width:800px;margin:0 auto;position:relative}.hp-badge{color:#00ff95;letter-spacing:3px;background:#00ff950d;border:1px solid #00ff95;border-radius:20px;margin-bottom:24px;padding:4px 14px;font-size:.65rem;display:inline-block}.hp-title{color:var(--text);letter-spacing:-1px;margin:0 0 16px;font-size:clamp(2rem,5vw,3.5rem);font-weight:900;line-height:1.1}.hp-title-accent{color:#00a2ff}.hp-subtitle{color:#888;max-width:600px;margin:0 auto 32px;font-family:system-ui,sans-serif;font-size:.95rem;line-height:1.7}.hp-cta-group{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:32px;display:flex}.hp-cta-primary{color:#fff;letter-spacing:1px;cursor:pointer;background:#00a2ff;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 28px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;transition:all .2s;display:flex}.hp-cta-primary:hover{background:#0091e6;transform:translateY(-1px);box-shadow:0 8px 24px #00a2ff4d}.hp-cta-secondary{color:#aaa;cursor:pointer;background:0 0;border:1px solid #333;border-radius:8px;align-items:center;gap:8px;padding:12px 24px;font-family:JetBrains Mono,monospace;font-size:.85rem;text-decoration:none;transition:all .2s;display:flex}.hp-cta-secondary:hover{color:#ddd;border-color:#555}.hp-stats{justify-content:center;align-items:center;gap:0;display:flex}.hp-stat{text-align:center;padding:0 28px}.hp-stat strong{color:var(--text);font-size:1.6rem;display:block}.hp-stat span{color:#555;letter-spacing:1px;font-size:.7rem}.hp-stat-divider{background:#222;width:1px;height:30px}.hp-section{max-width:1100px;margin:0 auto;padding:60px 40px}.hp-section-alt{background:#080808;max-width:100%;padding:60px 0}.hp-section-alt .hp-tracks,.hp-section-alt .hp-features{max-width:1100px;margin:0 auto;padding:0 40px}.hp-section-header{text-align:center;margin-bottom:36px}.hp-section-header h2{color:var(--text);margin:0 0 8px;font-size:1.6rem;font-weight:900}.hp-section-header p{color:#666;margin:0;font-family:system-ui,sans-serif;font-size:.85rem}.hp-tracks{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.hp-track-card{cursor:pointer;background:#0d0d0d;border:1px solid #1a1a1a;border-radius:10px;flex-direction:column;gap:6px;padding:20px 16px;transition:all .2s;display:flex;position:relative}.hp-track-card:hover{border-color:#333;transform:translateY(-2px);box-shadow:0 8px 24px #0006}.hp-track-icon{font-size:1.6rem}.hp-track-name{letter-spacing:.5px;font-size:.85rem;font-weight:700}.hp-track-desc{color:#666;flex:1;font-family:system-ui,sans-serif;font-size:.72rem;line-height:1.5}.hp-track-arrow{opacity:0;margin-top:6px;transition:opacity .2s}.hp-track-card:hover .hp-track-arrow{opacity:1}.hp-features{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.hp-feature-card{background:#0d0d0d;border:1px solid #1a1a1a;border-radius:10px;gap:14px;padding:18px;display:flex}.hp-feature-icon{color:#00a2ff;flex-shrink:0;padding-top:2px}.hp-feature-title{color:var(--text);margin-bottom:4px;font-size:.8rem;font-weight:700}.hp-feature-desc{color:#666;font-family:system-ui,sans-serif;font-size:.72rem;line-height:1.5}.hp-about{grid-template-columns:1fr 1fr;align-items:center;gap:40px;display:grid}@media (width<=700px){.hp-about{grid-template-columns:1fr}}.hp-about-badge{letter-spacing:3px;color:#00ff95;background:#00ff950d;border:1px solid #00ff95;border-radius:3px;margin-bottom:14px;padding:3px 10px;font-size:.62rem;display:inline-block}.hp-about-left h2{color:var(--text);margin:0 0 14px;font-size:1.5rem;font-weight:900}.hp-about-left p{color:#888;margin:0 0 10px;font-family:system-ui,sans-serif;font-size:.82rem;line-height:1.7}.hp-links{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.hp-link{color:#aaa;border:1px solid #333;border-radius:6px;align-items:center;gap:6px;padding:7px 14px;font-size:.78rem;text-decoration:none;transition:all .2s;display:flex}.hp-link:hover{color:#ddd;border-color:#555}.hp-link-coffee{color:#f59e0b;border-color:#f59e0b}.hp-link-coffee:hover{background:#f59e0b12}.hp-terminal{background:#0a0a0a;border:1px solid #1f1f1f;border-radius:10px;overflow:hidden}.hp-terminal-bar{background:#111;border-bottom:1px solid #1f1f1f;align-items:center;gap:6px;padding:10px 14px;display:flex}.hp-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.hp-terminal-title{color:#555;margin-left:8px;font-size:.7rem}.hp-terminal-code{color:#00ff95;white-space:pre;margin:0;padding:20px;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1.7;overflow-x:auto}.hp-support{text-align:center;max-width:500px;margin:0 auto;padding:0 40px}.hp-coffee-icon{color:#f59e0b;margin-bottom:16px}.hp-support h2{color:var(--text);margin:0 0 10px;font-size:1.4rem;font-weight:900}.hp-support p{color:#888;margin:0 0 20px;font-family:system-ui,sans-serif;font-size:.82rem;line-height:1.7}.hp-cta-coffee{color:#000;letter-spacing:.5px;cursor:pointer;background:#f59e0b;border:none;border-radius:8px;align-items:center;gap:8px;padding:12px 28px;font-family:JetBrains Mono,monospace;font-size:.85rem;font-weight:700;text-decoration:none;transition:all .2s;display:inline-flex}.hp-cta-coffee:hover{background:#fbbf24;transform:translateY(-1px);box-shadow:0 8px 20px #f59e0b4d}.hp-footer{border-top:1px solid #111;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:24px 40px;font-size:.72rem;display:flex}.hp-footer-brand{color:#00a2ff;letter-spacing:2px;margin-right:14px;font-weight:700}.hp-footer-copy{color:#444}.hp-footer-links{gap:16px;display:flex}.hp-footer-links a{color:#555;align-items:center;gap:5px;text-decoration:none;transition:color .15s;display:flex}.hp-footer-links a:hover{color:#aaa}[data-theme=light] .hp-track-card,[data-theme=light] .hp-feature-card{background:#f9fafb;border-color:#e5e7eb}[data-theme=light] .hp-terminal{background:#1a1a2e}[data-theme=light] .hp-terminal-bar{background:#16213e;border-bottom-color:#0f3460}[data-theme=light] .hp-section-alt{background:#f3f4f6}
