:root{--bg: #0f1115;--panel: #171a21;--panel-2: #1e222b;--border: #2a2f3a;--text: #e6e8ec;--muted: #9aa3b2;--accent: #7c5cff;--accent-2: #4cd7a0;--danger: #ff6b6b;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{max-width:1000px;margin:0 auto;padding:32px 20px 80px}.app-header{text-align:center;margin-bottom:28px}.app-header h1{margin:0 0 6px;font-size:28px}.subtitle{color:var(--muted);margin:0}.card{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:16px}.field{display:flex;flex-direction:column;gap:6px}.field>span{font-size:13px;color:var(--muted)}.row{display:flex;gap:16px}.row .field{flex:1}input,select,textarea{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:9px;padding:11px 12px;font-size:15px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--accent)}.suggestions{display:flex;flex-wrap:wrap;gap:8px}.chip{background:var(--panel-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}.chip:hover{color:var(--text);border-color:var(--accent)}.primary{background:var(--accent);color:#fff;border:none;border-radius:9px;padding:12px 18px;font-size:15px;font-weight:600;cursor:pointer}.primary:hover{filter:brightness(1.08)}.primary:disabled{opacity:.5;cursor:not-allowed}.ghost{background:transparent;color:var(--text);border:1px solid var(--border);border-radius:9px;padding:10px 14px;font-size:14px;cursor:pointer}.ghost:hover{border-color:var(--accent)}.ghost:disabled{opacity:.4;cursor:not-allowed}.error{background:#ff6b6b1f;border:1px solid var(--danger);color:#ffd5d5;padding:12px 14px;border-radius:9px;margin-bottom:16px;font-size:14px}.course-top{display:flex;justify-content:space-between;align-items:center}.badge{color:var(--muted);font-size:13px}.course-title{margin:14px 0 4px;font-size:26px}.course-summary{color:var(--muted);margin-top:0}.layout{display:grid;grid-template-columns:240px 1fr;gap:24px;margin-top:20px}@media (max-width: 720px){.layout{grid-template-columns:1fr}}.sidebar{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px;height:fit-content}.progress{color:var(--accent-2);font-size:13px;margin-bottom:10px;font-weight:600}.sidebar ol{list-style:none;padding:0;margin:0}.module-link{width:100%;text-align:left;background:transparent;border:none;color:var(--muted);padding:9px 8px;border-radius:8px;cursor:pointer;display:flex;gap:10px;align-items:center;font-size:14px}.module-link:hover,.module-link.active{background:var(--panel-2);color:var(--text)}.module-link.done .num{background:var(--accent-2);color:#042018}.num{width:22px;height:22px;border-radius:50%;background:var(--border);color:var(--text);display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.mtitle{line-height:1.2}.content{display:flex;flex-direction:column;gap:18px}.lesson{display:flex;flex-direction:column;gap:26px}.lesson-head .step-tag{color:var(--accent);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.lesson-head h3{margin:4px 0 0}.sec-title{margin:0 0 10px;font-size:16px}.markdown{line-height:1.65;color:var(--text)}.markdown pre{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:14px;overflow:auto}.markdown code{font-family:SFMono-Regular,Consolas,monospace;font-size:13px}.markdown p code{background:var(--panel-2);padding:1px 5px;border-radius:4px}.prompt{color:var(--text);margin-top:0}.editor{display:flex;flex-direction:column;gap:10px}.code-input{font-family:SFMono-Regular,Consolas,monospace;font-size:13px;resize:vertical;min-height:120px;line-height:1.5}.editor-actions{display:flex;gap:10px;align-items:center}.hint{color:var(--muted);font-size:13px}.solution{background:var(--panel-2);border:1px solid var(--border);border-radius:9px;padding:12px;font-size:13px;overflow:auto}.tests summary{cursor:pointer;color:var(--muted);font-size:13px}.tests pre{background:var(--panel-2);padding:10px;border-radius:8px;font-size:12px}.quiz{display:flex;flex-direction:column;gap:18px}.quiz-q{display:flex;flex-direction:column;gap:8px}.q-text{font-weight:500;margin:0}.options{display:flex;flex-direction:column;gap:6px}.option{text-align:left;background:var(--panel-2);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;cursor:pointer;font-size:14px}.option.chosen{border-color:var(--accent)}.option.correct{border-color:var(--accent-2);background:#4cd7a01f}.option.wrong{border-color:var(--danger);background:#ff6b6b1f}.q-explain{color:var(--muted);font-size:13px;margin:4px 0 0}.score{color:var(--accent-2);font-weight:600}.lesson-nav{display:flex;justify-content:space-between;margin-top:8px}.rubric{background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:12px 14px;font-size:14px}.rubric ul{margin:6px 0 0;padding-left:18px;color:var(--muted)}
