:root{--bg:#0d1117;--panel:#161b22;--panel-2:#1c2330;--border:#2d333f;--text:#e6edf3;--muted:#8b949e;--accent:#58a6ff;--green:#3fb950;--red:#f85149;--yellow:#d29922}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:-apple-system,Segoe UI,Roboto,Helvetica Neue,sans-serif}.topbar{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.brand{color:var(--text);font-size:18px;font-weight:700;text-decoration:none}.brand-accent{color:var(--accent)}.topbar nav a{color:var(--muted);margin-left:18px;text-decoration:none}.topbar nav a:hover{color:var(--text)}.container{max-width:960px;margin:0 auto;padding:28px 20px 60px}h1{margin:0 0 8px;font-size:26px}h2{margin:26px 0 10px;font-size:19px}.muted{color:var(--muted)}.track-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:20px;display:grid}.track-card{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:18px;text-decoration:none;transition:border-color .15s}.track-card:hover{border-color:var(--accent)}.track-card h3{margin:0 0 6px;font-size:17px}.lang-badge{background:var(--panel-2);border:1px solid var(--border);color:var(--accent);text-transform:uppercase;letter-spacing:.4px;border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.progress-bar{background:var(--panel-2);border-radius:6px;height:7px;margin-top:12px;overflow:hidden}.progress-bar>div{background:var(--green);border-radius:6px;height:100%;transition:width .3s}.stats{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;gap:22px;margin-bottom:24px;padding:16px 20px;display:flex}.stat b{font-size:20px;display:block}.stat span{color:var(--muted);font-size:12px}.skill-block{background:var(--panel);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;overflow:hidden}.skill-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.skill-head h3{margin:0;font-size:16px}.mastery-pct{color:var(--green);font-size:14px;font-weight:600}.ex-row{color:var(--text);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:11px 18px;text-decoration:none;display:flex}.ex-row:last-child{border-bottom:none}.ex-row:hover{background:var(--panel-2)}.ex-type{background:var(--panel-2);color:var(--muted);text-transform:uppercase;text-align:center;border-radius:4px;min-width:74px;padding:2px 7px;font-size:10px;font-weight:700}.ex-diff{color:var(--yellow);font-size:12px}.ex-check{color:var(--green);margin-left:auto;font-weight:700}.exercise-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:22px}.ex-header{justify-content:space-between;align-items:center;display:flex}.section-label{letter-spacing:.8px;text-transform:uppercase;color:var(--accent);margin:20px 0 8px;font-size:11px;font-weight:700}.zone-label{letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin:14px 0 6px;font-size:11px;font-weight:700}.question-box{background:var(--panel-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:4px 16px}.question-box .prompt{margin-top:8px;margin-bottom:8px}.answer-box{border:1px dashed var(--border);background:#58a6ff08;border-radius:8px;padding:14px}.option-letter{border:1px solid var(--border);width:24px;height:24px;color:var(--muted);background:var(--bg);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.option.selected .option-letter{border-color:var(--accent);color:var(--accent)}.option.correct .option-letter{border-color:var(--green);color:var(--green)}.option.wrong .option-letter{border-color:var(--red);color:var(--red)}.reorder-slots.ok{border-color:var(--green);border-style:solid}.reorder-slots.bad{border-color:var(--red);border-style:solid}.blank-answer{color:var(--green);margin-left:6px;font-size:12px;font-weight:600}.chain-progress{align-items:center;gap:6px;margin-bottom:6px;display:flex}.chain-dot{border:1px solid var(--border);width:26px;height:26px;color:var(--muted);background:var(--panel-2);border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:inline-flex}.chain-dot.current{border-color:var(--accent);color:var(--accent)}.chain-dot.done{border-color:var(--green);color:var(--green);background:#3fb9501a}.gap-marker{border-bottom:2px solid var(--yellow);min-width:60px;color:var(--yellow);text-align:center;padding:0 4px;display:inline-block}.prompt{white-space:pre-wrap;margin-bottom:18px;line-height:1.65}.prompt code{background:var(--panel-2);border-radius:4px;padding:1px 5px;font-family:SF Mono,Menlo,monospace;font-size:13px}.prompt pre{background:var(--panel-2);border:1px solid var(--border);border-radius:8px;padding:14px;overflow-x:auto}.prompt pre code{background:0 0;padding:0}.option{text-align:left;background:var(--panel-2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:8px;align-items:flex-start;gap:12px;margin-bottom:10px;padding:12px 16px;font-size:15px;display:flex}.option:hover{border-color:var(--accent)}.option.selected{border-color:var(--accent);background:#58a6ff1a}.option.correct{border-color:var(--green);background:#3fb9501f}.option.wrong{border-color:var(--red);background:#f851491f}.btn{background:var(--accent);color:#06121f;cursor:pointer;border:none;border-radius:8px;padding:11px 26px;font-size:15px;font-weight:700}.btn:disabled{opacity:.45;cursor:default}.btn.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}.feedback{border-radius:8px;margin-top:16px;padding:14px 16px;font-size:14px;line-height:1.5}.feedback.ok{border:1px solid var(--green);background:#3fb9501f}.feedback.bad{border:1px solid var(--red);background:#f851491a}.reorder-line{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:10px;margin-bottom:6px;padding:8px 12px;font-family:SF Mono,Menlo,monospace;font-size:13px;display:flex}.reorder-line:hover{border-color:var(--accent)}.reorder-line .idx{text-align:center;min-width:22px;color:var(--muted);font-weight:700}.reorder-line.picked{opacity:.4}.reorder-slots{border:1px dashed var(--border);border-radius:8px;min-height:60px;margin-bottom:14px;padding:10px}.fill-code{background:var(--panel-2);border:1px solid var(--border);white-space:pre-wrap;border-radius:8px;padding:16px;font-family:SF Mono,Menlo,monospace;font-size:13.5px;line-height:1.9}.blank-input{background:var(--bg);border:1px solid var(--accent);color:var(--text);font-family:inherit;font-size:inherit;border-radius:4px;width:110px;margin:0 2px;padding:1px 6px}.test-row{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;margin-bottom:6px;padding:8px 10px;font-family:SF Mono,Menlo,monospace;font-size:12.5px}.test-row.pass{border-color:var(--green)}.test-row.fail{border-color:var(--red)}.actions{gap:12px;margin-top:18px;display:flex}.back-link{color:var(--muted);font-size:14px;text-decoration:none}.back-link:hover{color:var(--text)}.login-box{background:var(--panel);border:1px solid var(--border);text-align:center;border-radius:12px;max-width:440px;margin:80px auto;padding:32px}.user-code{letter-spacing:3px;background:var(--panel-2);border:1px solid var(--accent);border-radius:8px;margin:14px 0;padding:12px;font-family:SF Mono,Menlo,monospace;font-size:26px;font-weight:700}.login-box a{color:var(--accent)}.demo-timer{border:1px solid var(--accent);background:var(--panel);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px 14px;font-size:14px;display:flex}.demo-timer strong{color:var(--accent);font-variant-numeric:tabular-nums}.signout-button{background:var(--panel-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:7px;margin-left:18px;padding:5px 10px;font-size:12px;font-weight:700;display:inline-flex}.signout-button:hover{border-color:var(--accent)}.signout-button .gh-icon{width:15px;height:15px;color:var(--text)}.game-hud{align-items:center;gap:12px;margin:16px 0;display:flex}.game-hud .game-timer{flex:1;margin-top:0}.game-hud .game-timer>div{transition:width .1s linear}.game-hud .game-timer>div.low{background:var(--red)}.hud-chip{background:var(--panel-2);border:1px solid var(--border);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;padding:4px 10px;font-size:13px;font-weight:700}.gen-btn{background:var(--panel-2);border:1px solid var(--border);color:var(--accent);cursor:pointer;white-space:nowrap;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700}.gen-btn:disabled{opacity:.5;cursor:default}.gen-btn:hover:not(:disabled){border-color:var(--accent)}.gen-note{color:var(--green);font-size:12px}.gen-note.bad{color:var(--red)}.quiz-progress{margin:10px 0 0;font-size:13px}.quiz-skill-row{margin-bottom:14px}.verdict{text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;border-radius:12px;padding:2px 9px;font-size:11px;font-weight:700}.verdict.strong{color:var(--green);border:1px solid var(--green)}.verdict.shaky{color:var(--yellow);border:1px solid var(--yellow)}.verdict.start_here{color:var(--red);border:1px solid var(--red)}.verdict.not_assessed{color:var(--muted);border:1px solid var(--border)}.rec-badge{color:var(--accent);border:1px solid var(--accent);white-space:nowrap;border-radius:12px;margin-left:8px;padding:2px 9px;font-size:11px}
