:root{--bg:#faf5ee;--card:#fff;--ink:#4a3326;--muted:#8b6b4f;--line:#eadfce;--accent:#8a6bb0;--good:#3c8d5a;--warn:#c9871f;--bad:#c0262d}
@media(prefers-color-scheme:dark){:root{--bg:#1e1a17;--card:#2a2420;--ink:#f0e6da;--muted:#b9a58f;--line:#43382f;--accent:#b79ddc;--good:#6cc08a;--warn:#e0a94a;--bad:#ef6a70}}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,Segoe UI,Arial,sans-serif}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}
.logo{font-weight:700;font-size:20px;color:var(--accent)}.logo span{font-weight:400;font-size:13px;color:var(--muted);margin-left:6px}
#who{font-size:13px;color:var(--muted)}main{max-width:760px;margin:0 auto;padding:12px 16px 60px}
nav{display:flex;gap:6px;overflow-x:auto;padding:4px 0 12px}nav button{flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--ink);padding:8px 14px;border-radius:999px;font:inherit;cursor:pointer}
nav button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px;margin:0 0 12px}
h2{font-size:18px;margin:0 0 8px}h3{font-size:15px;margin:12px 0 4px;color:var(--muted)}.muted{color:var(--muted);font-size:14px}
.flag{border-left:4px solid var(--bad);background:rgba(192,38,45,.08);padding:8px 12px;border-radius:8px;margin:6px 0}
.row{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}.row:last-child{border:0}
.bar{height:10px;background:var(--line);border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;background:var(--good)}
.chip{display:inline-block;font-size:12px;padding:2px 8px;border-radius:999px;border:1px solid var(--line);margin:2px 3px 2px 0}
.chip.got_it{background:var(--good);color:#fff;border-color:var(--good)}.chip.practising,.chip.started{background:var(--warn);color:#fff;border-color:var(--warn)}.chip.needs_revision{background:var(--bad);color:#fff;border-color:var(--bad)}
button.act{border:0;background:var(--accent);color:#fff;padding:10px 16px;border-radius:10px;font:inherit;cursor:pointer;margin:4px 6px 4px 0}button.act.alt{background:transparent;color:var(--accent);border:1px solid var(--accent)}
input{font:inherit;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);width:100%;max-width:220px}
.msg{padding:6px 0;color:var(--muted)}.said b{color:var(--accent)}.err{color:var(--bad)}.ok{color:var(--good)}
.stars{font-size:26px;letter-spacing:4px}.center{text-align:center;padding:40px 0}
