:root,[data-theme=dark]{--bg: #0a0a14;--bg-elevated: #15152a;--bg-card: #1b1a2c;--border: rgba(128, 138, 213, .2);--border-strong: rgba(129, 140, 248, .45);--fg: #f4f4fb;--fg-muted: #a0a0c0;--accent: #818cf8;--accent-strong: #4f46e5;--ok: #34d399;--warn: #fbbf24;--user-bubble: #262448}[data-theme=light]{--bg: #f7f7fb;--bg-elevated: #ffffff;--bg-card: #ffffff;--border: rgba(82, 88, 132, .18);--border-strong: rgba(79, 70, 229, .4);--fg: #15152a;--fg-muted: #5a5a78;--accent: #4f46e5;--accent-strong: #4338ca;--ok: #059669;--warn: #d97706;--user-bubble: #ececfb}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:Geist Sans,ui-sans-serif,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%;max-width:920px;margin:0 auto}.header{padding:16px 20px 12px;border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:10px}.brand .logo{color:var(--accent);font-size:18px}.brand h1{font-size:16px;font-weight:800;letter-spacing:-.02em;margin:0}.pill{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:999px;border:1px solid var(--border-strong);color:var(--accent)}.status-row{display:flex;flex-wrap:wrap;gap:18px;margin-top:12px}.stat{display:flex;flex-direction:column;gap:2px;min-width:0}.stat-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted)}.stat-value{font-family:Geist Mono,ui-monospace,monospace;font-size:12px;font-variant-numeric:tabular-nums}.stat.ok .stat-value{color:var(--ok)}.stat.warn .stat-value{color:var(--warn)}.stat.muted .stat-value{color:var(--fg-muted)}.thread{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:14px}.empty{margin:auto;text-align:center;max-width:420px;color:var(--fg-muted)}.empty-glyph{font-size:40px;color:var(--accent);opacity:.5}.empty h2{margin:12px 0 6px;font-size:18px;font-weight:700;color:var(--fg)}.empty p{font-size:13px;line-height:1.6;margin:0}.bubble{display:flex;flex-direction:column;gap:4px;max-width:78%}.bubble.user{align-self:flex-end;align-items:flex-end}.bubble-role{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-muted)}.bubble-content{padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.bubble.assistant .bubble-content{background:var(--bg-card);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble.user .bubble-content{background:var(--user-bubble);border-bottom-right-radius:4px}.caret{display:inline-block;width:7px;height:14px;margin-left:2px;background:var(--accent);vertical-align:text-bottom;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.composer{display:flex;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border);align-items:flex-end}.composer textarea{flex:1;resize:none;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;color:var(--fg);padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;outline:none}.composer textarea:focus{border-color:var(--border-strong)}.composer button{height:40px;padding:0 18px;border-radius:10px;border:none;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease,opacity .15s ease}.composer .send{background:var(--accent-strong);color:#fff}.composer .send:disabled{opacity:.4;cursor:not-allowed}.composer .stop{background:transparent;border:1px solid var(--border-strong);color:var(--fg)}
