:root{--bg:#f6f1ea;--surface:#fffdf9;--ink:#2b2a27;--muted:#6f6a61;--line:#e4dccf;--accent:#1f7a6d;--accent-ink:#fff;--accent-soft:#e2f1ee;--good:#23764a;--good-soft:#e3f3e9;--improve:#9a6a00;--improve-soft:#fbf0cf;--retry:#b3561b;--retry-soft:#fbe6d6;--radius:16px;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--bg);min-height:100%;margin:0}body{-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}button,input{font:inherit;color:inherit}.screen{max-width:520px;min-height:100dvh;padding:calc(16px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));flex-direction:column;gap:14px;margin:0 auto;display:flex}.screen--center{justify-content:center}.topbar{color:var(--muted);justify-content:space-between;align-items:center;min-height:32px;font-size:.9rem;display:flex}.streak{color:var(--improve);font-weight:600}.title{margin:0;font-size:1.5rem;line-height:1.25}.muted{color:var(--muted);margin:0}.center{text-align:center}.stack{flex-direction:column;gap:10px;display:flex}.row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.spacer{flex:1}.btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;min-height:48px;padding:10px 18px;font-weight:600}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--quiet{color:var(--muted);background:0 0;border-color:#0000;font-weight:500}.btn:disabled{opacity:.5;cursor:default}.link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:6px 4px;font-weight:600;text-decoration:underline}.field{flex-direction:column;gap:6px;font-weight:600;display:flex}.field input{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:48px;padding:10px 14px;font-size:1rem;font-weight:400}.notice{background:var(--improve-soft);color:var(--ink);border-radius:12px;margin:0;padding:10px 14px}.banner{z-index:2;padding:calc(8px + env(safe-area-inset-top)) 14px 8px;background:var(--improve-soft);text-align:center;margin:0;font-size:.9rem;position:sticky;top:0}.tile{text-align:left;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);cursor:pointer;align-items:center;gap:12px;width:100%;min-height:64px;padding:10px 14px;display:flex}.tile--hot{border-color:var(--accent);background:var(--accent-soft)}.tile:disabled{opacity:.55;cursor:default}.tile__icon{text-align:center;width:36px;font-size:1.6rem}.tile__body{flex-direction:column;gap:2px;display:flex}.tile__body small{color:var(--muted)}.progress{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.progress>span{background:var(--accent);height:100%;transition:width .25s;display:block}.phrase{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:22px 16px;display:flex}.phrase__tr{color:var(--muted);margin:0}.phrase__en{margin:0;font-size:1.6rem;font-weight:700;line-height:1.3}.word[data-level=good]{color:var(--good)}.word[data-level=improve]{color:var(--improve)}.word[data-level=retry]{color:var(--retry)}.card{border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);flex-direction:column;gap:8px;margin:0;padding:12px 14px;display:flex}.card--good{border-color:var(--good);background:var(--good-soft)}.card--tip{border-color:var(--improve);background:var(--improve-soft)}.card--note{border-style:dashed}.card p{margin:0}.card__title{font-weight:700}.pair{text-align:left;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:12px;align-items:center;gap:10px;width:100%;min-height:48px;padding:8px 12px;display:flex}.pair small{color:var(--muted);display:block}.mic{flex-direction:column;align-items:center;gap:6px;display:flex}.mic__btn{background:var(--accent);width:76px;height:76px;color:var(--accent-ink);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border:0;border-radius:50%;font-size:1.9rem;transition:transform .1s}.mic__btn[data-state=recording]{box-shadow:0 0 0 10px var(--accent-soft);transform:scale(1.12)}.mic__btn[data-state=starting],.mic__btn[data-state=working],.mic__btn:disabled{opacity:.55}.mic__btn--small{background:var(--surface);width:56px;height:56px;color:var(--accent);border:2px solid var(--accent);font-size:1.1rem;font-weight:700}.mic__label{color:var(--muted);text-align:center;font-size:.85rem}.mics{justify-content:center;align-items:flex-start;gap:28px;display:flex}.chat{flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.bubble{text-align:left;border:0;border-radius:18px;max-width:86%;padding:10px 14px;line-height:1.35}.bubble--character{cursor:pointer;background:#ece5d8;align-self:flex-start}.bubble--learner{background:var(--accent);color:var(--accent-ink);align-self:flex-end}.bubble small{opacity:.8;margin-top:2px;display:block}.bubble__hidden{color:var(--muted);font-style:italic}.undo{align-self:flex-end;margin-top:-6px;font-size:.85rem}.dock{padding:10px 0 calc(6px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 78%, transparent);flex-direction:column;gap:10px;display:flex;position:sticky;bottom:0}.stat{border-bottom:1px solid var(--line);justify-content:space-between;padding:10px 0;display:flex}.label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:8px 0 0;font-size:.75rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
