*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background .3s}:root{--bg-primary:#0a0a0a;--bg-secondary:#141414;--bg-bubble-user:#e8e8e8;--bg-bubble-assistant:#1a1a1a;--text-primary:#e8e8e8;--text-secondary:#888;--text-muted:#555;--text-user-bubble:#0a0a0a;--border:#1e1e1e;--accent:#2ecc71;--input-bg:#141414;--input-border:#2a2a2a;--button-bg:#e8e8e8;--button-text:#0a0a0a;--button-hover:#ccc;--button-disabled:#333;--button-disabled-text:#666;--error-bg:#dc26261a;--error-text:#ef4444;--avatar-bg:#e8e8e8;--avatar-text:#0a0a0a;--chip-bg:#141414;--chip-border:#2a2a2a;--chip-hover:#1e1e1e;--scrollbar:#333;--code-bg:#1e1e1e}[data-theme=light]{--bg-primary:#fafafa;--bg-secondary:#f0f0f0;--bg-bubble-user:#111;--bg-bubble-assistant:#f0f0f0;--text-primary:#111;--text-secondary:#555;--text-muted:#888;--text-user-bubble:#fafafa;--border:#e0e0e0;--accent:#2ecc71;--input-bg:#fff;--input-border:#ddd;--button-bg:#111;--button-text:#fafafa;--button-hover:#333;--button-disabled:#ccc;--button-disabled-text:#999;--error-bg:#fef2f2;--error-text:#dc2626;--avatar-bg:#111;--avatar-text:#fafafa;--chip-bg:#fff;--chip-border:#e0e0e0;--chip-hover:#f0f0f0;--scrollbar:#ccc;--code-bg:#e8e8e8}.chat-container{background:var(--bg-primary);max-width:768px;height:100dvh;color:var(--text-primary);flex-direction:column;margin:0 auto;font-family:Sora,sans-serif;transition:background .3s,color .3s;display:flex;position:relative}.chat-body{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.chat-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.chat-header-left h1{letter-spacing:.15em;text-transform:lowercase;color:var(--text-primary);margin:0;font-family:DM Mono,monospace;font-size:1.1rem;font-weight:300}.chat-header-left p{color:var(--text-muted);letter-spacing:.05em;margin:4px 0 0;font-size:.75rem;font-weight:300}.chat-header-actions{align-items:center;gap:8px;display:flex}.theme-toggle{border:1px solid var(--border);width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:.9rem;transition:all .15s;display:flex}.theme-toggle:hover{color:var(--text-primary);border-color:var(--text-muted)}.reset-button{letter-spacing:.05em;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:6px 14px;font-family:DM Mono,monospace;font-size:.7rem;font-weight:400;transition:all .15s}.reset-button:hover{color:var(--text-primary);border-color:var(--text-muted)}.chat-messages{flex-direction:column;flex:1;gap:16px;padding:24px;display:flex;overflow-y:auto}.welcome-section{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;animation:.8s ease-out fadeUp;display:flex}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.welcome-text h2{letter-spacing:.1em;color:var(--text-primary);margin:0 0 8px;font-family:DM Mono,monospace;font-size:1.2rem;font-weight:300}.welcome-text p{color:var(--text-muted);margin:0;font-size:.85rem;font-weight:300}.suggested-questions{flex-wrap:wrap;justify-content:center;gap:8px;max-width:560px;display:flex}.suggestion-chip{color:var(--text-secondary);background:var(--chip-bg);border:1px solid var(--chip-border);cursor:pointer;border-radius:20px;padding:10px 16px;font-family:Sora,sans-serif;font-size:.8rem;font-weight:300;transition:all .2s}.suggestion-chip:hover{background:var(--chip-hover);border-color:var(--text-muted);color:var(--text-primary)}.message{align-items:flex-start;gap:10px;display:flex}.message-assistant-content{flex-direction:column;gap:8px;max-width:75%;display:flex}.message-assistant-content .message-bubble{max-width:100%}.suggestion-chips{flex-wrap:wrap;gap:6px;display:flex}.message-user{justify-content:flex-end}.message-avatar{background:var(--avatar-bg);width:30px;height:30px;color:var(--avatar-text);letter-spacing:.05em;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-family:DM Mono,monospace;font-size:.6rem;font-weight:400;display:flex}.message-bubble{word-wrap:break-word;border-radius:14px;max-width:75%;padding:12px 16px;font-size:.85rem;font-weight:300;line-height:1.6}.bubble-user{background:var(--bg-bubble-user);color:var(--text-user-bubble);border-bottom-right-radius:4px}.bubble-assistant{background:var(--bg-bubble-assistant);color:var(--text-primary);border-bottom-left-radius:4px}.bubble-assistant p{margin:0 0 8px}.bubble-assistant p:last-child{margin-bottom:0}.bubble-assistant ul,.bubble-assistant ol{margin:4px 0 8px;padding-left:20px}.bubble-assistant li{margin:2px 0}.bubble-assistant strong{font-weight:600}.bubble-assistant code{background:var(--code-bg);border-radius:3px;padding:1px 5px;font-family:DM Mono,monospace;font-size:.8em}.typing-cursor{background:var(--text-muted);vertical-align:text-bottom;width:2px;height:1em;animation:1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.typing-indicator{gap:4px;padding:4px 0;display:flex}.typing-indicator span{background:var(--text-muted);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite bounce}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes bounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.error-message{text-align:center;color:var(--error-text);background:var(--error-bg);border-radius:8px;padding:8px 16px;font-size:.8rem;font-weight:300}.limit-banner{text-align:center;background:var(--surface);border-top:1px solid var(--border);color:var(--text-secondary);padding:10px 16px;font-size:.8rem;font-weight:300}.limit-banner a{color:var(--text-primary);text-underline-offset:3px;text-decoration:underline}.input-bar{border-top:1px solid var(--border);gap:8px;padding:16px 24px;display:flex}.input-bar textarea{color:var(--text-primary);background:var(--input-bg);border:1px solid var(--input-border);resize:none;border-radius:10px;outline:none;flex:1;padding:10px 16px;font-family:Sora,sans-serif;font-size:.85rem;font-weight:300;line-height:1.4;transition:border-color .15s}.input-bar textarea::placeholder{color:var(--text-muted)}.input-bar textarea:focus{border-color:var(--text-muted)}.input-bar textarea:disabled{opacity:.5}.input-bar button{letter-spacing:.05em;color:var(--button-text);background:var(--button-bg);cursor:pointer;border:none;border-radius:10px;padding:10px 20px;font-family:DM Mono,monospace;font-size:.8rem;font-weight:400;transition:background .15s}.input-bar button:hover:not(:disabled){background:var(--button-hover)}.input-bar button:disabled{background:var(--button-disabled);color:var(--button-disabled-text);cursor:not-allowed}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:0 0}.chat-messages::-webkit-scrollbar-thumb{background:var(--scrollbar);border-radius:2px}@media (width<=640px){.chat-container{max-width:100%}.chat-header{padding:12px 16px}.chat-messages{padding:16px}.input-bar{padding:12px 16px}.message-bubble{max-width:85%}}.call-header-btn{border:1px solid var(--border);color:var(--text-primary);letter-spacing:.03em;cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-family:Sora,sans-serif;font-size:.75rem;font-weight:400;transition:background .2s,border-color .2s;display:flex}.call-header-btn:hover:not(:disabled){background:var(--chip-hover);border-color:var(--text-secondary)}.call-header-btn:disabled{opacity:.4;cursor:not-allowed}.call-header-btn-icon{font-size:.85rem}.call-welcome-card{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;text-align:left;width:100%;color:var(--text-primary);border-radius:10px;align-items:center;gap:14px;margin-bottom:16px;padding:16px 20px;transition:background .2s,border-color .2s;display:flex}.call-welcome-card:hover{background:var(--chip-hover);border-color:var(--text-secondary)}.call-welcome-icon{flex-shrink:0;font-size:1.4rem}.call-welcome-text{flex-direction:column;gap:2px;display:flex}.call-welcome-title{font-size:.9rem;font-weight:500}.call-welcome-subtitle{color:var(--text-secondary);font-size:.75rem;font-weight:300}.call-overlay{background:var(--bg-primary);z-index:10;border-radius:inherit;flex-direction:column;align-items:center;display:flex;position:absolute;inset:0}.call-content{flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex}.call-pulse{justify-content:center;align-items:center;width:120px;height:120px;display:flex;position:relative}.call-pulse-ring{border:2px solid var(--accent);opacity:0;border-radius:50%;animation:2s ease-out infinite pulse-ring;position:absolute;inset:-12px}.call-pulse-ring--delay{animation-delay:1s}.call-pulse--listening .call-pulse-ring{border-color:var(--accent)}.call-pulse--speaking .call-pulse-ring{border-color:var(--text-primary);animation-duration:1.2s}.call-pulse:not(.call-pulse--listening):not(.call-pulse--speaking) .call-pulse-ring{opacity:0;animation:none}.call-pulse:not(.call-pulse--listening):not(.call-pulse--speaking) .call-avatar{animation:2s ease-in-out infinite subtle-glow}@keyframes pulse-ring{0%{opacity:.6;transform:scale(.8)}to{opacity:0;transform:scale(1.4)}}@keyframes subtle-glow{0%,to{box-shadow:0 0 #ffffff0d}50%{box-shadow:0 0 20px 4px #ffffff1a}}.call-avatar{background:var(--avatar-bg);width:120px;height:120px;color:var(--avatar-text);letter-spacing:.1em;border-radius:50%;justify-content:center;align-items:center;font-family:DM Mono,monospace;font-size:2.5rem;font-weight:300;display:flex}.call-bottom{justify-content:center;align-items:center;gap:16px;padding:32px;display:flex}.call-btn{cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:1.2rem;transition:transform .15s,box-shadow .15s;display:flex}.call-btn:hover{transform:scale(1.06)}.call-btn--end{color:#fff;background:#dc3545;box-shadow:0 0 16px #dc35454d}.call-btn--end:hover{box-shadow:0 0 24px #dc354580}.call-btn--retry{color:#ffffffb3;background:#ffffff14;border:1px solid #ffffff1a}.call-btn--retry:hover{background:#ffffff1f}.call-error-text{color:#ef4444;text-align:center;margin-top:24px;font-size:.8rem;font-weight:300}
