:root{--purple:#8e63aa;--purple2:#a97ac2;--bg:#f7f5f8;--card:#fff;--text:#202124;--muted:#625d67;--line:#e3dce6;--ok:#247a45;--bad:#b23737;--soft:#f3ebf6;--focus:#392147}*{box-sizing:border-box}html{font-size:18px}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}button,input,textarea{font:inherit}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible{outline:4px solid #3f2350;outline-offset:3px}header{background:linear-gradient(135deg,var(--purple),var(--purple2));color:#fff;padding:20px 16px;position:sticky;top:0;z-index:5}.head{max-width:820px;margin:auto}.head h1{font-size:1.45rem;margin:0}.head p{margin:.15rem 0 0;opacity:.96}main{max-width:820px;margin:auto;padding:16px 14px 48px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px;margin:12px 0;box-shadow:0 2px 8px #0000000a}.hidden{display:none!important}.kicker{font-size:.84rem;text-transform:uppercase;letter-spacing:.05em;font-weight:850;color:#70458a}.muted,.note{color:var(--muted)}h2{font-size:1.35rem;margin:.25rem 0 .8rem}h3{font-size:1.1rem;margin:.2rem 0 .7rem}.bigtext{font-size:1.22rem;line-height:1.65}.question{font-size:1.28rem;font-weight:760;margin:14px 0}.grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}@media(max-width:600px){html{font-size:18px}.grid{grid-template-columns:1fr}.head h1{font-size:1.3rem}}.btn{width:100%;border:0;border-radius:14px;padding:15px 14px;min-height:56px;background:var(--purple);color:#fff;font-weight:780;cursor:pointer}.btn.secondary{background:var(--soft);color:#4d315a}.btn.light{background:#f1f1f3;color:#222}.btn.good{background:#2f7d4a}.btn.small{width:auto;min-height:48px;padding:10px 14px}.btn:disabled{opacity:.55;cursor:not-allowed}.choice{width:100%;display:block;text-align:left;border:2px solid var(--line);background:#fff;border-radius:14px;padding:14px;margin:10px 0;min-height:56px;cursor:pointer}.choice.correct{border-color:var(--ok);background:#edf8f0}.choice.wrong{border-color:var(--bad);background:#fff0f0}.feedback{font-weight:800;margin:12px 0}.feedback.ok{color:var(--ok)}.feedback.bad{color:var(--bad)}.progress{height:12px;background:#e8e5e9;border-radius:999px;overflow:hidden;margin:10px 0}.progress>div{height:100%;background:var(--purple);width:0}.toprow,.navrow,.player{display:flex;gap:10px;align-items:center}.toprow{justify-content:space-between}.navrow{margin-top:16px}.navrow>*{flex:1}.pill,.badge{display:inline-block;background:var(--soft);color:#573768;border-radius:999px;padding:6px 10px;font-weight:750;font-size:.9rem}.lesson{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);background:#fff;border-radius:18px;padding:16px;margin:10px 0;cursor:pointer}.lesson .num{width:50px;height:50px;border-radius:14px;background:var(--soft);display:grid;place-items:center;font-weight:900;color:#5c3a70}.lesson strong{font-size:1.08rem;display:block}.lesson span:last-child small{color:var(--muted);font-size:.93rem}.topic{min-height:88px;text-align:left}.topic strong{display:block;font-size:1.05rem}.topic small{display:block;font-weight:500;margin-top:4px;opacity:.94}.loginrow{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:600px){.loginrow{grid-template-columns:1fr}}label{font-weight:750}input[type=text],textarea{width:100%;border:2px solid var(--line);border-radius:13px;padding:13px;background:#fff}textarea{min-height:220px;resize:vertical}.reading{font-size:1.16rem;line-height:1.75;border-left:5px solid var(--purple);background:#faf7fb;padding:16px;border-radius:12px}.listenbox{border:2px dashed #cdbbd5;border-radius:16px;padding:16px}.player{flex-wrap:wrap}.player .btn{width:auto;flex:1;min-width:150px}.qgroup{border-top:1px solid var(--line);padding:14px 0}.qgroup:first-child{border-top:0}.qgroup .choice{font-size:1rem}.recordbox{border:2px dashed #cdbbd5;border-radius:16px;padding:16px;text-align:center}.recording{animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.6}}.checklist label{display:block;font-weight:500;padding:6px 0}.done{color:var(--ok);font-weight:800}.courseback{display:inline-block;color:#5c3a70;font-weight:800;text-decoration:none;margin-bottom:8px}footer{text-align:center;color:#777;font-size:.85rem;padding:18px}