:root{--bg: #f6f3ec;--card: #ffffff;--ink: #1d2733;--muted: #6b7684;--line: #e6e1d6;--primary: #0f766e;--primary-ink: #ffffff;--accent: #f59e0b;--ok: #e7f5ea;--ok-ink: #1b6e35;--bad: #fdecea;--bad-ink: #a32d2d;--tutor: #eef3fb;--lesson: #fff7e6;--radius: 16px;--shadow: 0 1px 2px rgba(20, 30, 40, .06), 0 4px 16px rgba(20, 30, 40, .06)}@media(prefers-color-scheme:dark){:root{--bg: #15191f;--card: #1e242c;--ink: #eef1f4;--muted: #9aa4b1;--line: #2d3540;--primary: #2dd4bf;--primary-ink: #0b1f1c;--ok: #16351f;--ok-ink: #9be3ae;--bad: #3b1d1d;--bad-ink: #f3a5a5;--tutor: #1f2a3a;--lesson: #332a16;--shadow: 0 1px 2px rgba(0, 0, 0, .4)}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.45;-webkit-text-size-adjust:100%}button{font:inherit}a{color:var(--primary)}.shell{max-width:640px;margin:0 auto;padding:calc(12px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom));min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 12px}.brand{font-weight:700;font-size:18px}.sub{color:var(--muted);font-size:14px}h1{font-size:26px;margin:8px 0 4px}h2{font-size:18px;margin:20px 0 8px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.stack{display:grid;gap:12px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.grow{flex:1}.btn{border:0;border-radius:14px;padding:14px 18px;font-size:17px;font-weight:600;cursor:pointer;background:var(--card);color:var(--ink);box-shadow:var(--shadow);min-height:52px}.btn.primary{background:var(--primary);color:var(--primary-ink)}.btn.accent{background:var(--accent);color:#2b1d02}.btn.ghost{background:transparent;box-shadow:none;color:var(--primary)}.btn.small{padding:10px 14px;font-size:15px;min-height:40px}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:default}.btn.option{text-align:left;font-weight:500}.chat{display:grid;gap:10px;padding-bottom:12px}.msg{border-radius:var(--radius);padding:12px 14px;max-width:100%;white-space:pre-wrap;word-break:break-word}.msg.item{background:var(--card);box-shadow:var(--shadow)}.msg.item .skill{color:var(--muted);font-size:13px;margin-bottom:6px}.msg.item .prompt{font-size:18px}.msg.tutor{background:var(--tutor)}.msg.lesson{background:var(--lesson);font-size:17px}.msg.lesson .check{margin-top:10px;font-weight:600}.msg.info{color:var(--muted);font-size:15px;padding:4px 6px}.msg.feedback{font-weight:600;padding:10px 14px}.msg.feedback.ok{background:var(--ok);color:var(--ok-ink)}.msg.feedback.bad{background:var(--bad);color:var(--bad-ink)}.msg.ended{background:var(--card);box-shadow:var(--shadow);font-size:17px}.msg.user{background:var(--primary);color:var(--primary-ink);justify-self:end;max-width:80%}.options{display:grid;gap:8px;margin-top:10px}.composer{position:sticky;bottom:0;background:var(--bg);padding:10px 0 4px;display:grid;gap:8px}.composer .tools{display:flex;gap:8px;flex-wrap:wrap}.input{display:flex;gap:8px}.input input{flex:1;font:inherit;font-size:18px;padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--card);color:var(--ink);min-width:0}.typing{color:var(--muted);font-size:14px;padding:2px 6px}.tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.tab{border:0;background:transparent;color:var(--muted);padding:10px 12px;border-radius:12px;font-weight:600;cursor:pointer;white-space:nowrap}.tab.active{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}.kv{display:grid;grid-template-columns:1fr auto;gap:4px 12px;font-size:15px}.kv .k{color:var(--muted)}.bars{display:flex;gap:6px;align-items:flex-end;height:56px;margin-top:6px}.bar{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--muted)}.bar i{display:block;width:100%;border-radius:6px 6px 2px 2px;background:var(--primary);opacity:.85}.bar i.empty{background:var(--line)}.pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:13px;background:var(--line);color:var(--ink)}.pill.ok{background:var(--ok);color:var(--ok-ink)}.pill.bad{background:var(--bad);color:var(--bad-ink)}.pill.warn{background:#fff1cc;color:#6b4b00}details summary{cursor:pointer}textarea{width:100%;font:inherit;font-size:15px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);min-height:96px}input.field,select.field{font:inherit;font-size:16px;padding:10px 12px;border-radius:12px;border:1px solid var(--line);background:var(--card);color:var(--ink)}.muted{color:var(--muted)}.center{text-align:center}.err{color:var(--bad-ink);background:var(--bad);padding:10px 12px;border-radius:12px}
