:root{--bg:#F6F6F5;--surface:#fff;--border:#E4E4E2;--text:#16181D;--muted:#6B6F78;--accent:#D9342B;--accent-soft:#FDECEA;--ok:#1F8F4E;--ok-soft:#E7F6EC;--warn:#B45309;--warn-soft:#FFF4E5;
--t1:#D9342B;--t2:#E07B00;--t3:#2563EB;--t4:#7C3AED;--t5:#8A8F98}
@media (prefers-color-scheme:dark){:root{--bg:#0F1115;--surface:#181B21;--border:#2A2E36;--text:#F2F2F3;--muted:#A2A6B2;--accent:#FF5A4F;--accent-soft:#3A1A18;--ok:#4ADE80;--ok-soft:#12301F;--warn:#FBBF24;--warn-soft:#33240F;--t1:#FF6B61;--t2:#FFA040;--t3:#6EA0FF;--t4:#B18CFF;--t5:#9AA0AA}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:15px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;background:var(--surface);border-bottom:1px solid var(--border)}
.brand{display:flex;align-items:center;gap:10px;font-size:18px}
.seal{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--accent);color:#fff;font-weight:800}
nav{display:flex;gap:6px;flex-wrap:wrap}
main{max-width:1100px;margin:0 auto;padding:20px 16px 80px}
h1{font-size:24px;margin:4px 0 16px}h2{font-size:18px;margin:24px 0 10px}
.muted{color:var(--muted)}
button,.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:10px;padding:8px 14px;cursor:pointer}
button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
button.ghost{border-color:transparent;background:transparent}
button:disabled{opacity:.5;cursor:default}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 8px;width:100%}
textarea{min-height:60px;resize:vertical}
.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:14px}
.grid{display:grid;gap:10px}
.lessons{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.lesson{cursor:pointer}
.lesson:hover{border-color:var(--accent)}
.lesson .num{font-size:12px;color:var(--muted);font-weight:700;letter-spacing:.04em}
.lesson .t{font-weight:700;font-size:16px;margin:2px 0 8px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:12px;padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--muted)}
.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.chip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.chip.red{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.toolbar .spacer{flex:1}
table{width:100%;border-collapse:collapse}
th{font-size:12px;text-align:left;color:var(--muted);font-weight:600;padding:6px}
td{padding:4px 6px;vertical-align:top;border-top:1px solid var(--border)}
.py{font-size:18px;font-weight:600}
.t1{color:var(--t1)}.t2{color:var(--t2)}.t3{color:var(--t3)}.t4{color:var(--t4)}.t5{color:var(--t5)}
.line{display:grid;grid-template-columns:90px 1fr auto;gap:8px;align-items:start;padding:10px 0;border-top:1px solid var(--border)}
.line:first-of-type{border-top:0}
.tr6{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}
.tr6 label{font-size:11px;color:var(--muted)}
details>summary{cursor:pointer;color:var(--muted);font-size:13px;margin-top:4px}
.play{display:flex;gap:4px}
.play button{padding:4px 8px;font-size:13px}
pre{white-space:pre-wrap;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:13px;max-height:420px;overflow:auto}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:12px;opacity:0;transition:opacity .2s;pointer-events:none;max-width:90vw}
#toast.show{opacity:1}
.login{max-width:360px;margin:12vh auto}
.row{display:flex;gap:8px;align-items:center}
@media (max-width:700px){.line{grid-template-columns:1fr}.tr6{grid-template-columns:1fr 1fr}}
