.header{background:var(--color-bg-secondary);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative;z-index:100}.header:after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-accent-primary) 50%,transparent 100%);opacity:.3}.header-content{max-width:1400px;margin:0 auto;padding:var(--space-lg) var(--space-xl);display:flex;align-items:center;justify-content:space-between;gap:var(--space-xl)}.header-brand{display:flex;align-items:center;gap:var(--space-md)}.brand-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--color-bg-primary);box-shadow:var(--shadow-glow)}.brand-icon svg{width:24px;height:24px}.brand-text{display:flex;flex-direction:column;gap:.125rem}.brand-title{font-family:var(--font-display);font-size:1.5rem;font-weight:800;letter-spacing:-.03em;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.brand-subtitle{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.1em}.header-status{display:flex;align-items:center;gap:var(--space-lg);flex:1;justify-content:center}.status-group{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-full)}.status-indicator{width:8px;height:8px;border-radius:50%;position:relative}.status-indicator:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;background:inherit;opacity:.3}.status-indicator.connected{background:var(--color-accent-primary);box-shadow:0 0 12px var(--color-accent-primary)}.status-indicator.disconnected{background:var(--color-text-tertiary)}.status-text{display:flex;flex-direction:column;gap:.125rem}.status-label{font-size:.7rem;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-mono)}.status-value{font-size:.875rem;color:var(--color-text-primary);font-weight:500;font-family:var(--font-mono)}.tools-badge{display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-mono);font-size:.875rem;color:var(--color-accent-primary)}.tools-badge svg{width:16px;height:16px;stroke-width:2}.header-actions{display:flex;gap:var(--space-sm)}.btn-clear{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.875rem;cursor:pointer;transition:all var(--transition-base)}.btn-clear:hover{background:var(--color-bg-elevated);border-color:var(--color-accent-primary);color:var(--color-accent-primary);box-shadow:0 0 12px var(--color-accent-glow)}.btn-clear svg{width:16px;height:16px;stroke-width:2}@media(max-width:768px){.header-content{flex-direction:column;gap:var(--space-md);padding:var(--space-md)}.header-status{width:100%;justify-content:flex-start;flex-wrap:wrap}.header-actions{width:100%}.btn-clear{width:100%;justify-content:center}}.message{padding:var(--space-xl) var(--space-md);position:relative}.message:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--color-border);opacity:.5}.message.user{background:var(--color-user-message)}.message.assistant{background:var(--color-ai-message);border-left:2px solid var(--color-accent-primary)}.message-container{max-width:900px;margin:0 auto;display:flex;gap:var(--space-lg);align-items:flex-start}.message-avatar{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--color-border);position:relative}.message.user .message-avatar{background:linear-gradient(135deg,var(--color-bg-elevated),var(--color-bg-tertiary));color:var(--color-text-secondary)}.message.assistant .message-avatar{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:var(--color-bg-primary);box-shadow:0 0 16px var(--color-accent-glow)}.message-avatar svg{width:20px;height:20px;stroke-width:2}.message-content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-sm)}.message-header{display:flex;align-items:center;gap:var(--space-sm)}.message-role{font-family:var(--font-display);font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.05em}.message-model{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary);padding:.125rem .5rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.message-content{font-family:var(--font-mono);font-size:.9375rem;line-height:1.7;color:var(--color-text-primary);word-wrap:break-word}.message-content p{margin:0 0 var(--space-md) 0}.message-content p:last-child{margin-bottom:0}.message-content ul,.message-content ol{margin:var(--space-md) 0;padding-left:var(--space-xl)}.message-content li{margin:var(--space-xs) 0}.message-content h1,.message-content h2,.message-content h3{margin:var(--space-lg) 0 var(--space-md) 0;color:var(--color-text-primary);font-family:var(--font-display)}.message-content h1{font-size:1.75rem;border-bottom:2px solid var(--color-border);padding-bottom:var(--space-sm)}.message-content h2{font-size:1.5rem}.message-content h3{font-size:1.25rem}.message-content a{color:var(--color-accent-primary);text-decoration:none;border-bottom:1px solid var(--color-accent-primary);transition:all var(--transition-fast)}.message-content a:hover{color:var(--color-accent-secondary);border-bottom-color:var(--color-accent-secondary)}.message-content blockquote{margin:var(--space-md) 0;padding-left:var(--space-md);border-left:3px solid var(--color-accent-primary);color:var(--color-text-secondary);font-style:italic}.message-content table{width:100%;border-collapse:collapse;margin:var(--space-md) 0;font-size:.875rem}.message-content th,.message-content td{padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);text-align:left}.message-content th{background:var(--color-bg-elevated);font-weight:600;color:var(--color-accent-primary)}.message-content tr:nth-child(2n){background:#ffffff05}.code-block{margin:var(--space-md) 0;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border);background:var(--color-bg-elevated)}.code-header{padding:var(--space-sm) var(--space-md);background:#0000004d;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.code-language{font-family:var(--font-mono);font-size:.75rem;color:var(--color-accent-primary);text-transform:uppercase;letter-spacing:.05em}.code-block pre{margin:0;padding:var(--space-md);background:transparent;border:none;overflow-x:auto}.code-block code{background:transparent;padding:0;border:none;font-size:.875rem;line-height:1.6}.message-raw{background:var(--color-bg-elevated);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow-x:auto;font-size:.875rem;color:var(--color-text-secondary)}.message-footer{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.usage-stats{display:flex;align-items:center;gap:var(--space-sm);font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary)}.usage-stat{display:flex;align-items:center;gap:.25rem}.usage-label{color:var(--color-text-tertiary)}.usage-value{color:var(--color-accent-primary);font-weight:500}.usage-divider{color:var(--color-border)}@media(max-width:768px){.message{padding:var(--space-md)}.message-container{gap:var(--space-md)}.message-avatar{width:32px;height:32px}.message-avatar svg{width:18px;height:18px}.message-content{font-size:.875rem}.code-block code{font-size:.8125rem}}.download-button{display:inline-flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:var(--color-bg-primary);text-decoration:none;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:.875rem;font-weight:500;transition:all var(--transition-base)}.download-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.chat-container{flex:1;overflow-y:auto;overflow-x:hidden;background:var(--color-bg-primary);position:relative}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100%;padding:var(--space-2xl);text-align:center}.empty-state-icon{width:120px;height:120px;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--color-bg-primary);margin-bottom:var(--space-xl);box-shadow:var(--shadow-glow)}.empty-state-icon svg{width:64px;height:64px;stroke-width:2}.empty-state-title{font-family:var(--font-display);font-size:2rem;font-weight:800;margin-bottom:var(--space-md);background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.empty-state-description{font-family:var(--font-mono);font-size:1rem;color:var(--color-text-secondary);max-width:500px;margin-bottom:var(--space-2xl);line-height:1.6}.empty-state-suggestions{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-md);max-width:800px;width:100%}.suggestion-card{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);transition:all var(--transition-base);cursor:default}.suggestion-card:hover{border-color:var(--color-accent-primary);transform:translateY(-4px);box-shadow:0 8px 24px var(--color-accent-glow)}.suggestion-icon{font-size:2rem;margin-bottom:var(--space-xs)}.suggestion-text{font-family:var(--font-mono);font-size:.875rem;color:var(--color-text-secondary);text-align:center}.loading-indicator{padding:var(--space-xl) var(--space-md);background:var(--color-ai-message);border-left:2px solid var(--color-accent-primary);position:relative}.loading-indicator:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--color-border);opacity:.5}.loading-content{max-width:900px;margin:0 auto;display:flex;gap:var(--space-lg);align-items:center}.loading-avatar{width:36px;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));display:flex;align-items:center;justify-content:center;color:var(--color-bg-primary);flex-shrink:0}.loading-avatar svg{width:20px;height:20px;stroke-width:2}.loading-dots{display:flex;gap:.5rem;align-items:center}.loading-dots span{width:8px;height:8px;background:var(--color-accent-primary);border-radius:50%;display:block}.error-message{padding:var(--space-xl) var(--space-md);background:#ff4d6d1a;border-left:2px solid var(--color-error);position:relative}.error-message:before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--color-error);opacity:.5}.error-content{max-width:900px;margin:0 auto;display:flex;gap:var(--space-lg);align-items:center}.error-icon{width:36px;height:36px;border-radius:var(--radius-md);background:var(--color-error);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.error-icon svg{width:20px;height:20px;stroke-width:2}.error-content{display:flex;flex-direction:column;gap:.25rem;font-family:var(--font-mono)}.error-content strong{color:var(--color-error);font-size:.875rem;font-weight:600}.error-content span{color:var(--color-text-secondary);font-size:.875rem}@media(max-width:768px){.empty-state{padding:var(--space-xl) var(--space-md)}.empty-state-icon{width:80px;height:80px}.empty-state-icon svg{width:48px;height:48px}.empty-state-title{font-size:1.5rem}.empty-state-description{font-size:.875rem}.empty-state-suggestions{grid-template-columns:1fr}.loading-indicator,.error-message{padding:var(--space-md)}}.chat-input-container{background:var(--color-bg-secondary);border-top:1px solid var(--color-border);padding:var(--space-lg) var(--space-xl);position:relative}.chat-input-container:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--color-accent-primary) 50%,transparent 100%);opacity:.3}.chat-input-wrapper{max-width:900px;margin:0 auto}.chat-input-form{display:flex;flex-direction:column;gap:var(--space-sm)}.input-group{display:flex;align-items:flex-end;gap:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-md);transition:all var(--transition-base);position:relative;overflow:hidden}.input-group:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));opacity:0;transition:opacity var(--transition-base)}.input-group:focus-within{border-color:var(--color-accent-primary);box-shadow:0 0 0 3px var(--color-accent-glow)}.input-group:focus-within:before{opacity:.05}.message-input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text-primary);font-family:var(--font-mono);font-size:.9375rem;line-height:1.5;resize:none;min-height:24px;max-height:200px;position:relative;z-index:1}.message-input::placeholder{color:var(--color-text-tertiary)}.message-input:disabled{opacity:.5;cursor:not-allowed}.btn-send,.btn-stop{width:40px;height:40px;border:none;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);flex-shrink:0;position:relative;z-index:1}.btn-send{background:linear-gradient(135deg,var(--color-accent-primary),var(--color-accent-secondary));color:var(--color-bg-primary)}.btn-send:hover:not(:disabled){box-shadow:var(--shadow-glow);transform:translateY(-2px)}.btn-send:active:not(:disabled){transform:translateY(0)}.btn-send:disabled{opacity:.3;cursor:not-allowed;background:var(--color-bg-elevated);color:var(--color-text-tertiary)}.btn-stop{background:var(--color-error);color:#fff}.btn-stop:hover{background:#f35;box-shadow:0 0 20px #ff4d6d80}.btn-send svg,.btn-stop svg{width:20px;height:20px;stroke-width:2}.input-footer{display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xs)}.input-hint{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-tertiary);display:flex;align-items:center;gap:var(--space-xs)}.input-hint kbd{padding:.125rem .375rem;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.7rem;color:var(--color-accent-primary)}@media(max-width:768px){.chat-input-container{padding:var(--space-md)}.input-group{padding:var(--space-sm) var(--space-md)}.message-input{font-size:.875rem}.btn-send,.btn-stop{width:36px;height:36px}.btn-send svg,.btn-stop svg{width:18px;height:18px}.input-hint{font-size:.7rem}}.btn-mic{width:40px;height:40px;border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base);flex-shrink:0;position:relative;z-index:1;overflow:visible;background:var(--color-bg-elevated);color:var(--color-text-secondary)}.btn-mic svg{width:20px;height:20px;stroke-width:2}.btn-mic:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary);border-color:var(--color-accent-primary)}.btn-mic--active{background:#ef4444!important;border-color:#ef4444!important;color:#fff!important;box-shadow:0 0 16px #ef444466}.btn-mic__pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-md);background:#ef444466;pointer-events:none}.input-group--listening{border-color:#ef4444!important;box-shadow:0 0 0 3px #ef444426!important}.input-hint--listening{color:#ef4444;animation:hint-pulse 1.5s ease-in-out infinite}.input-hint--interim{color:var(--color-text-secondary);font-style:italic}@keyframes hint-pulse{0%,to{opacity:1}50%{opacity:.6}}@media(max-width:768px){.btn-mic{width:36px;height:36px}.btn-mic svg{width:18px;height:18px}}.app{width:100vw;height:100vh;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg-primary);position:relative}.app:before{content:"";position:fixed;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 50% 50%,rgba(0,255,157,.03) 0%,transparent 50%);animation:rotate 20s linear infinite;pointer-events:none;z-index:0}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.app>*{position:relative;z-index:1}:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #13131a;--color-bg-tertiary: #1a1a24;--color-bg-elevated: #20202e;--color-accent-primary: #00ff9d;--color-accent-secondary: #00d4ff;--color-accent-glow: rgba(0, 255, 157, .3);--color-text-primary: #ffffff;--color-text-secondary: #a0a0b8;--color-text-tertiary: #6b6b84;--color-border: rgba(255, 255, 255, .08);--color-border-focus: rgba(0, 255, 157, .3);--color-user-message: linear-gradient(135deg, #1a1a24 0%, #20202e 100%);--color-ai-message: linear-gradient(135deg, #0f1f1a 0%, #13131a 100%);--color-error: #ff4d6d;--color-warning: #ffb84d;--color-success: #00ff9d;--font-display: "Syne", system-ui, sans-serif;--font-mono: "DM Mono", "Courier New", monospace;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: .375rem;--radius-md: .75rem;--radius-lg: 1rem;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-glow: 0 0 24px var(--color-accent-glow);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:var(--font-mono);font-size:15px;line-height:1.6;color:var(--color-text-primary);background:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{width:100vw;height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;line-height:1.2;letter-spacing:-.02em}h1{font-size:2.5rem;font-weight:800}h2{font-size:2rem}h3{font-size:1.5rem}code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-elevated);padding:.125rem .375rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}pre{font-family:var(--font-mono);background:var(--color-bg-elevated);padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);overflow-x:auto;margin:var(--space-md) 0}pre code{background:none;padding:0;border:none;border-radius:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-bg-elevated);border-radius:var(--radius-full);border:2px solid var(--color-bg-secondary)}::-webkit-scrollbar-thumb:hover{background:#ffffff26}::selection{background:var(--color-accent-primary);color:var(--color-bg-primary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}@keyframes glow{0%,to{box-shadow:0 0 20px var(--color-accent-glow)}50%{box-shadow:0 0 40px var(--color-accent-glow)}}.text-mono{font-family:var(--font-mono)}.text-display{font-family:var(--font-display)}.glow{animation:glow 2s ease-in-out infinite}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.03'/%3E%3C/svg%3E");opacity:.5;z-index:9999;mix-blend-mode:overlay}
