*{box-sizing:border-box}:root{--color-canvas:#0a0d12;--color-surface:#11151d;--color-surface-2:#1a1f29;--color-border:#242b3a;--color-text:#e7eaf2;--color-text-muted:#6e7690;--color-accent:#4cf2c0;--color-accent-dim:#4cf2c024;--color-accent-strong:#4cf2c066;--color-danger:#ff6b6b;--color-danger-dim:#ff6b6b1f;--font-display:"Space Grotesk", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Courier New", monospace}html,body,#root{height:100%;margin:0}body{font-family:var(--font-body);background:var(--color-canvas);color:var(--color-text)}.layout{background:var(--color-canvas);height:100vh;display:flex}.session-list{background:var(--color-surface);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;gap:18px;width:260px;padding:20px 14px;display:flex}.brand{align-items:center;gap:9px;padding:0 6px;display:flex}.brand-dot{background:var(--color-accent);width:7px;height:7px;box-shadow:0 0 0 0 var(--color-accent-strong);border-radius:50%}@media (prefers-reduced-motion:no-preference){.brand-dot{animation:2.4s ease-in-out infinite brand-pulse}}@keyframes brand-pulse{0%,to{box-shadow:0 0 0 0 var(--color-accent-strong)}50%{box-shadow:0 0 0 5px #0000}}.brand-name{font-family:var(--font-display);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);font-size:1.05rem;font-weight:700}.new-session-btn{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;text-align:left;background:0 0;border-radius:10px;padding:10px 12px;font-size:.72rem;font-weight:500;transition:border-color .15s,color .15s,background .15s}.new-session-btn:hover{border-color:var(--color-accent);color:var(--color-accent);background:var(--color-accent-dim)}.session-items{flex-direction:column;gap:2px;display:flex;overflow-y:auto}.session-item{text-align:left;font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-left:2px solid #0000;border-radius:0 8px 8px 0;padding:9px 10px;font-size:.85rem;transition:background .15s,color .15s,border-color .15s;overflow:hidden}.session-row:hover .session-item{background:var(--color-surface-2);color:var(--color-text)}.session-row.active .session-item{background:var(--color-surface-2);border-left-color:var(--color-accent);color:var(--color-text);font-weight:500}.session-row{border-radius:0 8px 8px 0;align-items:stretch;display:flex}.session-row .session-item{flex:1;min-width:0}.session-actions{opacity:0;flex-shrink:0;transition:opacity .15s;display:flex}.session-row:hover .session-actions{opacity:1}.session-row:has(.session-rename:focus-visible) .session-actions{opacity:1}.session-row:has(.session-delete:focus-visible) .session-actions{opacity:1}.session-row:has(.session-delete.armed) .session-actions{opacity:1}.session-rename{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:0 8px 8px 0;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;transition:color .15s;display:inline-flex}.session-rename:hover{color:var(--color-accent)}.session-delete{color:var(--color-text-muted);font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;border-radius:0 8px 8px 0;flex-shrink:0;padding:0 9px;font-size:.75rem;line-height:1;transition:color .15s}@media (hover:none),(pointer:coarse){.session-actions{opacity:1}.session-rename,.session-delete{min-width:40px;min-height:40px}}.session-delete:hover{color:var(--color-text)}.session-delete.armed{color:var(--color-accent);letter-spacing:.04em;text-transform:uppercase;font-size:.65rem}.session-rename-input{border:1px solid var(--color-accent);background:var(--color-surface-2);min-width:0;color:var(--color-text);font-family:var(--font-body);border-radius:8px;flex:1;padding:8px 10px;font-size:.85rem}.session-rename-input:focus{outline:none}.session-placeholder,.chat-placeholder{color:var(--color-text-muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.session-placeholder{padding:9px 10px}.chat-placeholder{flex:1;justify-content:center;align-items:center;display:flex}.app{background:var(--color-canvas);flex-direction:column;flex:1;min-width:0;height:100vh;display:flex}.app-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.icon-btn.sidebar-toggle{flex-shrink:0;display:none}.sidebar-scrim{display:none}.session-title{min-width:0;font-family:var(--font-display);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;margin:0;font-size:1rem;font-weight:500;overflow:hidden}.header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.hint{color:var(--color-text-muted);font-size:.75rem}.status-badge{border:1px solid var(--color-border);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:.68rem;display:inline-flex}.status-dot{background:var(--color-text-muted);border-radius:50%;width:6px;height:6px}.status-badge.status-listening{border-color:var(--color-accent-strong);color:var(--color-accent)}.status-badge.status-listening .status-dot{background:var(--color-accent)}.status-badge.status-processing{color:var(--color-text)}.status-badge.status-processing .status-dot{background:var(--color-accent);opacity:.6}.chat-window{flex-direction:column;flex:1;gap:10px;padding:24px;display:flex;overflow-y:auto}.bubble-row{display:flex}.bubble-row.user{flex-direction:column;align-items:flex-end}.bubble-row.assistant{flex-direction:column;align-items:flex-start}.bubble{white-space:pre-wrap;word-break:break-word;border-radius:14px;max-width:72%;padding:11px 15px;font-size:.925rem;line-height:1.45}.bubble.user{background:var(--color-accent);color:var(--color-canvas);border-bottom-right-radius:4px;font-weight:500}.bubble.assistant{background:var(--color-surface-2);color:var(--color-text);border-left:3px solid var(--color-accent-strong);border-bottom-left-radius:4px}.bubble.error{border:1px solid var(--color-danger)}.bubble-meta{font-family:var(--font-mono);color:var(--color-text-muted);opacity:0;align-items:center;gap:8px;margin-top:2px;font-size:.68rem;transition:opacity .15s;display:flex}.bubble-row:hover .bubble-meta,.bubble-row:focus-within .bubble-meta{opacity:1}@media (hover:none){.bubble-meta{opacity:1}}.meta-btn{color:inherit;font-family:var(--font-mono);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:.68rem;transition:color .15s;display:inline-flex}.meta-btn:hover{color:var(--color-text)}.retry-btn{color:var(--color-danger)}.retry-btn:hover{color:var(--color-danger);filter:brightness(1.2)}.bubble-meta time{cursor:default}.typing-indicator{align-items:center;gap:4px;height:14px;padding:16px 15px;display:flex}.typing-indicator span{background:var(--color-accent);opacity:.8;border-radius:2px;width:3px;height:6px}@media (prefers-reduced-motion:no-preference){.typing-indicator span{animation:1.1s ease-in-out infinite waveform}.typing-indicator span:nth-child(2){animation-delay:.12s}.typing-indicator span:nth-child(3){animation-delay:.24s}.typing-indicator span:nth-child(4){animation-delay:.36s}}@keyframes waveform{0%,to{height:6px}50%{height:16px}}.message-input{border-top:1px solid var(--color-border);background:var(--color-surface);align-items:center;gap:10px;padding:16px 24px;display:flex}.message-input input{border:1px solid var(--color-border);background:var(--color-surface-2);color:var(--color-text);font-family:var(--font-body);border-radius:10px;outline:none;flex:1;padding:11px 15px;font-size:.925rem;transition:border-color .15s,box-shadow .15s}.message-input input::placeholder{color:var(--color-text-muted)}.message-input input:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}.send-btn{background:var(--color-accent);color:var(--color-canvas);font-family:var(--font-display);cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:.875rem;font-weight:700;transition:filter .15s;display:inline-flex}.send-btn:hover:not(:disabled){filter:brightness(1.08)}.send-btn:disabled{background:var(--color-surface-2);color:var(--color-text-muted);cursor:not-allowed}.icon-btn{border:1px solid var(--color-border);background:var(--color-surface-2);width:38px;height:38px;color:var(--color-text-muted);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,color .15s,background .15s;display:inline-flex;position:relative}.icon-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.mic-btn.mic-listening,.hands-free-btn.active{border-color:var(--color-accent);background:var(--color-accent-dim);color:var(--color-accent)}.mic-btn.mic-processing{opacity:.5;cursor:default}.mic-ring{border:1px solid var(--color-accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-1px}@media (prefers-reduced-motion:no-preference){.mic-btn.mic-listening .mic-ring{animation:1.6s ease-out infinite mic-pulse}}@keyframes mic-pulse{0%{opacity:.6;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@media (width<=768px){.icon-btn.sidebar-toggle{display:inline-flex}.session-list{z-index:30;width:min(85vw,300px);height:100vh;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.session-list.open{transform:translate(0)}.sidebar-scrim{z-index:20;opacity:0;pointer-events:none;background:#00000080;transition:opacity .2s;display:block;position:fixed;inset:0}.sidebar-scrim.open{opacity:1;pointer-events:auto}.bubble{max-width:90%}.chat-window{padding:16px}.app-header{padding:12px 16px}.hint{display:none}.message-input{gap:8px;padding:12px 16px}}.turn-timings{opacity:.75;align-items:center;gap:10px;padding:6px 16px 0;font-size:12px;display:flex}.ttfa-readout strong{font-variant-numeric:tabular-nums}.waterfall{border-radius:3px;flex:1;height:6px;display:flex;overflow:hidden}.waterfall-seg{height:100%}.seg-stt{background:#8b8bff}.seg-db{background:#4fb3a5}.seg-model{background:#f4a142}.seg-audio{background:#7a7f8a}
