:root{--bg:#0F1116;--surface:#161A22;--surface-2:#1E2430;--text:#F1F3F7;--muted:#9AA4B4;--faint:#5E6675;--border:#252B37;--blue:#5B8BF6;--blue-ink:#9CB8F9;--amber:#E0A94A;--amber-soft:#3A2E12;--red:#E86A5C;--green:#5FCB8F}*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer;border:0;background:transparent}a,button{color:inherit}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.shell{max-width:820px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column;padding:0 20px}.topbar{justify-content:space-between;padding:18px 0;border-bottom:1px solid var(--border);gap:12px}.brand,.topbar{display:flex;align-items:center}.brand{gap:10px;font-weight:700;letter-spacing:-.01em}.brand .dot{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#5B8BF6,#9CB8F9);display:grid;place-items:center;color:#0F1116;font-size:12px;font-weight:800}.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.02em}.actions{display:flex;gap:8px}.actions,.pill{align-items:center}.pill{font-size:11.5px;color:var(--muted);background:var(--surface);border:1px solid var(--border);padding:4px 10px;border-radius:99px;font-weight:500;display:inline-flex;gap:6px}.pill.on{color:var(--green);border-color:transparent;background:rgba(95,203,143,.12)}.pill.on:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--green)}.stream{flex:1 1;padding:24px 0 140px;display:flex;flex-direction:column;gap:16px}.empty{margin:auto;text-align:center;color:var(--muted);max-width:44ch;padding:40px 0}.empty h1{font-size:28px;font-weight:700;letter-spacing:-.02em;color:var(--text);margin:0 0 10px}.empty p{margin:0 0 22px}.prompts{display:flex;flex-direction:column;gap:8px;max-width:100%}.prompts button{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:12px 14px;text-align:left;font-size:14px;color:var(--text);transition:background .12s}.prompts button:hover{background:var(--surface-2)}.msg{display:flex;gap:12px}.msg .av{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;font-size:11px;font-weight:700}.msg.user .av{background:rgba(91,139,246,.16);color:var(--blue-ink)}.msg.assistant .av{background:#000;color:#fff;border:1px solid var(--border)}.msg .body{flex:1 1;min-width:0}.msg .who{font-size:12px;font-weight:600;color:var(--muted);margin-bottom:4px}.msg .bubble{white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.65}.msg .row{display:flex;gap:8px;margin-top:8px;align-items:center}.msg .icon-btn{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:transparent;color:var(--muted);border:1px solid transparent}.msg .icon-btn:hover{background:var(--surface);color:var(--text);border-color:var(--border)}.msg .icon-btn.on{color:var(--blue-ink)}.msg .icon-btn svg{width:15px;height:15px}.composer{position:fixed;left:0;right:0;bottom:0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));background:linear-gradient(to top,var(--bg) 60%,rgba(15,17,22,0));pointer-events:none}.composer .box{max-width:780px;margin:0 auto;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:8px 8px 8px 16px;display:flex;align-items:flex-end;gap:8px;pointer-events:auto;box-shadow:0 12px 40px rgba(0,0,0,.4)}.composer textarea{flex:1 1;border:0;background:transparent;color:var(--text);font:inherit;resize:none;padding:12px 0;line-height:1.5;max-height:200px;outline:none}.composer textarea::placeholder{color:var(--faint)}.composer .mic,.composer .send{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none;transition:background .12s}.composer .send{background:var(--blue);color:#fff}.composer .send:hover:not(:disabled){background:var(--blue-ink);color:#0F1116}.composer .send:disabled{opacity:.45;cursor:not-allowed}.composer .mic{background:var(--surface-2);color:var(--text)}.composer .mic:hover{background:#2A3040}.composer .mic.rec{background:rgba(232,106,92,.16);color:var(--red);animation:pulse 1.4s ease-in-out infinite}.composer .mic svg,.composer .send svg{width:17px;height:17px}.composer .hint{max-width:780px;margin:8px auto 0;font-size:11.5px;color:var(--faint);text-align:center;pointer-events:auto}.err{background:rgba(232,106,92,.12);border:1px solid rgba(232,106,92,.35);color:#F3B3AB;padding:10px 12px;border-radius:10px;font-size:13px}@keyframes pulse{0%,to{box-shadow:0 0 0 0 rgba(232,106,92,.4)}50%{box-shadow:0 0 0 8px rgba(232,106,92,0)}}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.35}}.cursor:after{content:"▍";margin-left:2px;color:var(--muted);animation:blink 1s steps(1) infinite}@media (max-width:560px){.shell{padding:0 14px}.composer{padding:12px 12px calc(12px + env(safe-area-inset-bottom))}}