:root{--ink: #101828;--soft: #667085;--ground: #f6f7fb;--card: #ffffff;--line: #e4e7ec;--accent: #2563eb;--user: #e8efff;--robot: #ffffff;--live: #16a34a;--busy: #d97706;--bad: #dc2626;color-scheme:light}@media(prefers-color-scheme:dark){:root{--ink: #f2f4f7;--soft: #98a2b3;--ground: #0d1117;--card: #161b22;--line: #2a313c;--accent: #7aa5ff;--user: #1d2a44;--robot: #161b22;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--ground);color:var(--ink);font:16px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}#root{height:100%}a{color:var(--accent)}.chat{max-width:44rem;height:100%;margin:0 auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;text-transform:capitalize;color:#fff;background:var(--soft)}.pill[data-phase=listening]{background:var(--live)}.pill[data-phase=speaking],.pill[data-phase=thinking]{background:var(--accent)}.pill[data-phase=connecting],.pill[data-phase=reconnecting]{background:var(--busy)}.pill[data-phase=error]{background:var(--bad)}.status{color:var(--soft);flex:1;min-width:10rem}.meter{width:100%;height:4px;border-radius:2px;background:var(--line);overflow:hidden}.meter__bar{height:100%;background:var(--live);transform-origin:left;transform:scaleX(0);transition:transform 80ms linear}.transcript{flex:1;min-height:0;overflow-y:auto;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.line{max-width:85%;padding:8px 12px;border-radius:14px;border:1px solid var(--line);overflow-wrap:anywhere}.line--user{align-self:flex-end;background:var(--user)}.line--robot{align-self:flex-start;background:var(--robot)}.compose{display:flex;gap:8px}.compose input{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit}button{padding:10px 14px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--ink);font:inherit;cursor:pointer}button[type=submit]{background:var(--accent);border-color:var(--accent);color:#fff}.controls{display:flex;gap:8px;flex-wrap:wrap}.settings{color:var(--soft)}.settings summary{cursor:pointer}.settings label{display:block;margin-top:8px;color:var(--ink)}.settings select{margin-left:8px;font:inherit}.settings small{color:var(--soft)}.unblock{padding:18px;font-size:18px;font-weight:600;background:var(--accent);border-color:var(--accent);color:#fff}.unblock[hidden]{display:none}
