*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0a0a0a;--surface:#141414;--surface-2:#1e1e1e;--border:#2a2a2a;--text:#f0f0f0;--text-muted:#666;--accent:#f97316;--accent-blue:#3b82f6;--red:#ef4444;--radius:12px}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}.app{flex-direction:column;max-width:680px;height:100%;margin:0 auto;display:flex}.header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.logo{letter-spacing:.05em;font-size:16px;font-weight:600}.header-controls{align-items:center;gap:12px;display:flex}.tts-toggle{cursor:pointer;opacity:.4;background:0 0;border:none;padding:4px;font-size:18px;transition:opacity .2s}.tts-toggle.active{opacity:1}.command-badge{letter-spacing:.08em;text-transform:uppercase;border-radius:20px;padding:3px 8px;font-size:11px;font-weight:600}.command-execute{color:var(--accent);background:#f9731626;border:1px solid #f973164d}.command-clarify{color:var(--accent-blue);background:#3b82f626;border:1px solid #3b82f64d}.chat-thread{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.chat-thread.empty{text-align:center;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;line-height:1.8}.chat-thread.empty .hint{color:var(--accent)}.message{flex-direction:column;display:flex}.message-user{align-items:flex-end}.message-assistant{align-items:flex-start}.message-content{border-radius:var(--radius);max-width:85%;padding:12px 16px;font-size:14px;line-height:1.6}.user-content{background:var(--surface-2);color:var(--text);flex-direction:column;align-items:flex-end;gap:6px;display:flex}.assistant-content{background:var(--surface);border:1px solid var(--border)}.assistant-content.streaming:after{content:"▋";color:var(--accent);animation:.8s infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.assistant-content pre{border:1px solid var(--border);background:#0d0d0d;border-radius:8px;margin:10px 0;padding:12px;font-size:13px;overflow-x:auto}.assistant-content code{font-family:SF Mono,Fira Code,monospace;font-size:13px}.assistant-content p{margin-bottom:8px}.assistant-content p:last-child{margin-bottom:0}.assistant-content ul,.assistant-content ol{margin-bottom:8px;padding-left:20px}.assistant-content h1,.assistant-content h2,.assistant-content h3{margin:12px 0 8px;font-weight:600}.input-area{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;align-items:center;gap:12px;padding:20px;display:flex}.status-text{color:var(--text-muted);letter-spacing:.05em;height:16px;font-size:12px}.mic-button{background:var(--surface-2);border:2px solid var(--border);width:72px;height:72px;color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;outline:none;justify-content:center;align-items:center;transition:all .2s;display:flex}.mic-button svg{width:28px;height:28px}.mic-button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.mic-button.recording{border-color:var(--red);color:var(--red);background:#ef444426;animation:1.5s ease-in-out infinite pulse}.mic-button.busy{border-color:var(--accent);color:var(--accent);opacity:.6;cursor:default}@keyframes pulse{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 14px #ef444400}}.error-bar{color:var(--red);text-align:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:8px;margin:0 20px;padding:10px 14px;font-size:13px}.setup-screen{justify-content:center;align-items:center;height:100%;padding:20px;display:flex}.setup-card{flex-direction:column;gap:16px;width:100%;max-width:320px;display:flex}.setup-card h1{letter-spacing:.05em;font-size:32px;font-weight:700}.setup-card p{color:var(--text-muted);font-size:14px}.setup-card form{flex-direction:column;gap:12px;display:flex}.setup-card input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:8px;outline:none;width:100%;padding:12px 14px;font-size:15px;transition:border-color .2s}.setup-card input:focus{border-color:var(--accent)}.setup-card button{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;padding:12px;font-size:15px;font-weight:600;transition:opacity .2s}.setup-card button:hover{opacity:.85}.error-text{color:var(--red);font-size:13px}.chat-thread::-webkit-scrollbar{width:4px}.chat-thread::-webkit-scrollbar-track{background:0 0}.chat-thread::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
