*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#1a1b26;--bg-dark:#13141c;--bg-sidebar:#15161e;--bg-card:#1e2030;--bg-hover:#24263a;--bg-active:#2f3248;--fg:#c0caf5;--fg-dim:#565f89;--fg-muted:#737aa2;--green:#9ece6a;--blue:#7aa2f7;--cyan:#7dcfff;--red:#f7768e;--yellow:#e0af68;--magenta:#bb9af7;--orange:#ff9e64;--border:#292e42;--border-active:#3b4261;--mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", "Consolas", monospace;--sidebar-w:210px;--status-h:26px}html,body{height:100%;font-family:var(--mono);background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;font-size:14px;overflow:hidden}#app{width:100vw;height:100vh;display:flex}#sidebar{width:var(--sidebar-w);min-width:var(--sidebar-w);background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:16px 14px 12px}.sidebar-title{color:var(--green);letter-spacing:.5px;font-size:16px;font-weight:700}.sidebar-subtitle{color:var(--fg-dim);margin-top:3px;font-size:10px}#lesson-nav{flex:1;padding:6px 0;overflow-y:auto}#lesson-nav::-webkit-scrollbar{width:3px}#lesson-nav::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.nav-group-title{text-transform:uppercase;letter-spacing:1px;color:var(--fg-dim);padding:10px 14px 3px;font-size:10px;font-weight:600}.nav-item{color:var(--fg-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;border-left:2px solid #0000;padding:5px 14px 5px 22px;font-size:11.5px;transition:background .12s,color .12s;overflow:hidden}.nav-item:hover{background:var(--bg-hover);color:var(--fg)}.nav-item.active{background:var(--bg-active);color:var(--green);border-left-color:var(--green)}#editor-area{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}#editor-wrap{flex:1;overflow:hidden}#editor-wrap .cm-editor{height:100%;font-family:var(--mono);font-size:14px;background:var(--bg)!important}#editor-wrap .cm-editor .cm-scroller{line-height:1.65;font-family:var(--mono)!important}#editor-wrap .cm-editor .cm-content{caret-color:var(--green);padding:6px 0}#editor-wrap .cm-editor .cm-cursor{border-left-color:var(--green)!important;border-left-width:2px!important}#editor-wrap .cm-editor .cm-gutters{min-width:36px;background:var(--bg-dark)!important;border-right:1px solid var(--border)!important;color:var(--fg-dim)!important}#editor-wrap .cm-editor .cm-activeLineGutter{background:var(--bg-hover)!important;color:var(--fg)!important}#editor-wrap .cm-editor .cm-activeLine{background:#2f324859!important}#editor-wrap .cm-editor .cm-selectionBackground{background:#7aa2f733!important}#editor-wrap .cm-editor.cm-focused .cm-selectionBackground{background:#7aa2f74d!important}#editor-wrap .cm-editor .cm-matchingBracket{color:var(--yellow)!important;background:#e0af684d!important}#editor-wrap .cm-editor .cm-vim-panel{background:var(--bg-card)!important;color:var(--fg)!important;border-top:1px solid var(--border)!important;font-family:var(--mono)!important}#editor-wrap .cm-editor .cm-vim-panel input{color:var(--fg)!important;caret-color:var(--green)!important;font-family:var(--mono)!important}#editor-wrap .cm-editor .cm-vimCursorLayer .cm-cursor{border-left-color:var(--green)!important}#vim-status{height:var(--status-h);background:var(--bg-card);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:14px;padding:0 12px;font-size:11px;display:flex}#vim-mode{letter-spacing:.3px;border-radius:2px;padding:1px 7px;font-weight:700}#vim-mode.normal{background:var(--blue);color:var(--bg)}#vim-mode.insert{background:var(--green);color:var(--bg)}#vim-mode.visual{background:var(--magenta);color:var(--bg)}#vim-mode.replace{background:var(--orange);color:var(--bg)}#vim-mode.command{background:var(--yellow);color:var(--bg)}#vim-pos{color:var(--fg-dim)}#vim-info{color:var(--fg-dim);margin-left:auto}@media (width<=700px){#sidebar{display:none}}
