:root{--bg:#f5f6f8;--surface:#fff;--border:#d9dce1;--text:#1c1f24;--text-muted:#6b7280;--accent:#2f6feb;--accent-contrast:#fff;--error-bg:#fdeceb;--error-border:#e5534b;--error-text:#8a1f16;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;--cursor-bg:#1c1f24;--cursor-text:#f5f6f8;--selection-bg:#2f6feb40;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--sans)}:root[data-theme=dark]{--bg:#14161a;--surface:#1b1e24;--border:#2e333c;--text:#e6e8eb;--text-muted:#9aa1ac;--accent:#5b9dff;--accent-contrast:#0b1220;--error-bg:#3a1c1c;--error-border:#e5534b;--error-text:#ffb4ac;--cursor-bg:#e6e8eb;--cursor-text:#14161a;--selection-bg:#5b9dff40;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1,h2,h3{color:var(--text)}code{font-family:var(--mono)}.site-header{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 20px;display:flex}.site-header__brand{color:var(--accent);white-space:nowrap;font-size:15px;font-weight:700;text-decoration:none}.site-header__brand:hover{text-decoration:underline}.site-header__divider{color:var(--text-muted);font-weight:400}.site-header__title{color:var(--text-muted);white-space:nowrap;font-size:15px;font-weight:600}.toolbar-spacer{flex:1}.btn,.toggle-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font-size:13px}.btn:hover,.toggle-btn:hover{border-color:var(--accent)}.btn--accent{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}.icon-btn{padding:6px 10px}.app{flex-direction:column;max-width:880px;min-height:100svh;margin:0 auto;display:flex}.app-header{text-align:center;padding:24px 20px 8px}.app-header h1{margin:0 0 8px;font-size:32px}.app-header p{color:var(--text-muted);margin:0}.tab-bar{border-bottom:1px solid var(--border);gap:4px;padding:16px 20px 0;display:flex}.tab-bar__tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:14px;font-weight:600}.tab-bar__tab:hover{color:var(--text)}.tab-bar__tab--active{color:var(--accent);border-bottom-color:var(--accent)}.app-main{flex:1;padding:20px}.card-list{flex-direction:column;gap:10px;display:flex}.card-list__item{text-align:left;background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--text);border-radius:8px;padding:14px 16px}.card-list__item:hover{border-color:var(--accent)}.card-list__title{align-items:center;gap:8px;margin-bottom:4px;font-weight:600;display:flex}.card-list__summary{color:var(--text-muted);font-size:13px}.badge{background:var(--border);color:var(--text-muted);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.badge--done{background:var(--accent);color:var(--accent-contrast)}.lesson-view__header{align-items:center;gap:12px;margin-bottom:12px;display:flex}.lesson-view__header h2{flex:1;margin:0;font-size:18px}.lesson-view__steps{color:var(--text-muted);font-size:13px}.lesson-view__instruction{margin-bottom:12px;font-size:15px}.lesson-view__actions{align-items:center;gap:8px;margin-top:12px;display:flex}.lesson-view__hint{color:var(--text-muted);margin-top:10px;font-size:13px}.lesson-view__success{color:var(--accent);margin-top:10px;font-weight:600}.challenge-target{margin:0 0 12px;font-size:14px}.results-panel{border:1px solid var(--border);background:var(--surface);border-radius:8px;margin-top:16px;padding:14px 16px}.results-panel__best{color:var(--text-muted);margin:4px 0 12px;font-size:13px}.vim-buffer{font-family:var(--mono);background:var(--surface);border:1px solid var(--border);cursor:text;border-radius:8px 8px 0 0;outline:none;min-height:3.2em;padding:12px 0;font-size:16px;line-height:1.6}.vim-buffer:focus{border-color:var(--accent)}.vim-buffer__line{white-space:pre;padding:0 12px;display:flex}.vim-buffer__gutter{color:var(--text-muted);text-align:right;-webkit-user-select:none;user-select:none;flex-shrink:0;width:2em;margin-right:12px}.vim-buffer__content{white-space:pre}.vim-buffer__char{position:relative}.vim-buffer__char--cursor{background:var(--cursor-bg);color:var(--cursor-text);border-radius:2px}.vim-buffer__char--selected{background:var(--selection-bg)}.vim-buffer__caret{background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.status-bar{font-family:var(--mono);background:var(--text);color:var(--bg);border-radius:0 0 8px 8px;align-items:center;gap:12px;min-height:1.4em;padding:6px 12px;font-size:13px;display:flex}.status-bar__mode{white-space:pre;font-weight:700}.status-bar__pending{opacity:.8}.status-bar__stats{opacity:.8;white-space:nowrap}.cheat-sheet__search{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);border-radius:6px;margin-bottom:16px;padding:10px 12px;font-size:14px}.cheat-sheet__category h3{margin:20px 0 8px;font-size:15px}.cheat-sheet__table{border-collapse:collapse;width:100%}.cheat-sheet__table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:6px 8px;font-size:14px}.cheat-sheet__table td:first-child{white-space:nowrap;width:1%}.cheat-sheet__practiceable{text-align:right}@media (width<=600px){.cheat-sheet__table td:first-child{white-space:normal}}
