:root{--audio-connected:#22c55e;--audio-recording:#ef4444;--audio-session-active:#3b82f6;--audio-warning:#fbbf24;--audio-warning-button-text:#5b3106;--audio-warning-button-text-hover:#422006;--audio-warning-surface:rgba(251, 191, 36, 0.12);--audio-warning-text:#92400e;--audio-bg:var(--panel);--audio-border:var(--border);--audio-padding:15px;--audio-gap:10px;--audio-btn-padding:8px 16px;--audio-status-size:8px;--audio-pulse-duration:1.5s;--audio-transition:var(--transition-base)}[data-theme=dark]{--audio-warning-surface:rgba(245, 158, 11, 0.18);--audio-warning-text:#fde68a}@media (prefers-color-scheme:dark){:root[data-theme=system]{--audio-warning-surface:rgba(245, 158, 11, 0.18);--audio-warning-text:#fde68a}}.audio-controls-container{background:var(--audio-bg);border:1px solid var(--audio-border);border-radius:var(--radius-lg);padding:var(--audio-padding);margin:var(--spacing-lg) 0;display:flex;align-items:center;gap:var(--audio-gap);flex-wrap:wrap;box-shadow:0 2px 8px var(--shadow-color)}.recording-controls{display:flex;align-items:center;gap:var(--spacing-sm);animation:.3s ease-out slideIn}.recording-controls .cancel-btn{background:var(--panel);color:var(--text);border:1px solid var(--border);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base);font-size:16px}.recording-controls .cancel-btn:hover{background:var(--bg);border-color:var(--text)}.recording-controls .transcribe-send-btn{background:var(--panel);color:var(--accent);border:1px solid var(--border);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base);font-size:16px}.recording-controls .transcribe-send-btn:hover{background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}.recording-controls .send-recording-btn{background:var(--panel);color:var(--text);border:1px solid var(--border);width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);cursor:pointer;transition:var(--transition-base);font-size:16px}.recording-controls .send-recording-btn:hover{background:var(--bg);border-color:var(--text)}.recording-controls .send-recording-btn:disabled{background:var(--muted);border-color:var(--muted);cursor:not-allowed;opacity:.6}.composer[data-recording=true] .audio-btn,.composer[data-recording=true] .mic-btn{display:none}@keyframes slideIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}@keyframes recordingPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(239,68,68,.4)}50%{opacity:.8;box-shadow:0 0 0 10px rgba(239,68,68,0)}}.composer[data-recording=true] .recording-controls{animation:.3s ease-out slideIn}.audio-status{display:flex;align-items:center;gap:var(--spacing-sm);font-size:13px;color:var(--muted);font-weight:500}.status-dot{width:var(--audio-status-size);height:var(--audio-status-size);border-radius:var(--radius-full);background:var(--muted);transition:var(--audio-transition);flex-shrink:0}.status-dot.connected{background:var(--audio-connected);box-shadow:0 0 8px rgba(34,197,94,.3)}.status-dot.recording{background:var(--audio-recording);animation:audioPulse var(--audio-pulse-duration) infinite;box-shadow:0 0 8px rgba(239,68,68,.3)}.status-dot.session-active{background:var(--audio-session-active);box-shadow:0 0 8px rgba(59,130,246,.3)}.status-dot.warning{background:var(--audio-warning);box-shadow:0 0 8px rgba(251,191,36,.3)}.audio-btn{padding:var(--audio-btn-padding);border:1px solid var(--audio-border);background:var(--audio-bg);color:var(--text);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;transition:var(--audio-transition);display:flex;align-items:center;gap:6px;font-family:inherit;line-height:1;white-space:nowrap}.audio-btn:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--accent);transform:translateY(-1px)}.audio-btn:active:not(:disabled){transform:translateY(0)}.audio-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.audio-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.audio-btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.audio-btn.primary:hover:not(:disabled){background:#0d8f6b;border-color:#0d8f6b}.audio-btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.audio-btn.danger:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.audio-btn.warning{background:var(--warning);color:var(--audio-warning-button-text);border-color:var(--warning)}.audio-btn.warning:hover:not(:disabled){background:#f59e0b;border-color:#f59e0b;color:var(--audio-warning-button-text-hover)}.audio-btn.secondary{background:var(--bg);border-color:var(--border)}.audio-btn.secondary:hover:not(:disabled){background:var(--accent-weak);border-color:var(--accent)}.realtime-status{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:500;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border)}.realtime-status.active{background:var(--accent-weak);border-color:var(--accent);color:var(--accent)}.realtime-status.error{background:rgba(239,68,68,.1);border-color:var(--danger);color:var(--danger)}.module-status{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--spacing-md);margin:var(--audio-gap) 0;font-family:Monaco,Menlo,'Ubuntu Mono',monospace;font-size:var(--font-size-small);width:100%}.module-status h4{margin:0 0 var(--spacing-sm) 0;color:var(--accent);font-size:var(--font-size-base);font-weight:600;font-family:var(--font-family)}.module-status .status-item{margin:var(--spacing-xs) 0;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xs) 0;border-bottom:1px solid var(--border)}.module-status .status-item:last-child{border-bottom:none}.status-label{color:var(--text);font-weight:500}.status-value{color:var(--muted);font-weight:400}.status-value.active{color:var(--audio-connected);font-weight:600}.status-value.error{color:var(--danger);font-weight:600}.status-value.warning{color:var(--warning);font-weight:600}.status-value.info{color:var(--info);font-weight:600}.audio-response{background:var(--assistant-bg);border-left:4px solid var(--accent);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);margin:var(--spacing-sm) 0;box-shadow:0 2px 8px var(--shadow-color)}.audio-response-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);font-size:var(--font-size-small);color:var(--muted);font-weight:500}.audio-response-header .icon{width:16px;height:16px;color:var(--accent)}.audio-response audio{width:100%;margin-top:var(--spacing-sm);border-radius:var(--radius-md)}.audio-response audio::-webkit-media-controls-panel{background-color:var(--panel)}.audio-response audio::-webkit-media-controls-pause-button,.audio-response audio::-webkit-media-controls-play-button{background-color:var(--accent);border-radius:var(--radius-full)}.audio-visualizer-container{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border)}.audio-level-indicator{display:flex;align-items:center;gap:2px;height:20px}.audio-level-bar{width:3px;background:var(--muted);border-radius:1px;transition:var(--audio-transition);min-height:4px}.audio-level-bar.active{background:var(--accent);animation:.5s ease-in-out infinite alternate audioLevel}.audio-visualizer{display:flex;align-items:center;gap:2px}.audio-bar{width:2px;height:8px;background:currentColor;border-radius:1px}#recordingHint:not([hidden]) .audio-visualizer .audio-bar{animation:1.2s ease-in-out infinite recordingBars}.audio-bar:first-child{animation-delay:0s}.audio-bar:nth-child(2){animation-delay:.2s}.audio-bar:nth-child(3){animation-delay:.4s}.audio-bar:nth-child(4){animation-delay:.6s}.audio-bar:nth-child(5){animation-delay:.8s}@keyframes recordingBars{0%,100%{height:4px;opacity:.4}50%{height:12px;opacity:1}}@media (max-width:768px){.audio-controls-container{padding:var(--spacing-md);gap:var(--spacing-sm)}.audio-btn{padding:6px var(--spacing-md);font-size:var(--font-size-small)}.audio-status{font-size:var(--font-size-small)}.module-status{padding:var(--spacing-sm);font-size:var(--font-size-tiny)}.realtime-status{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-small)}.audio-level-bar{width:2px}}@media (max-width:480px){.audio-controls-container{flex-direction:column;align-items:stretch}.audio-status,.realtime-status{justify-content:center}.module-status .status-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-xs)}.audio-btn{justify-content:center;width:100%}}@keyframes audioPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}@keyframes audioLevel{0%{height:4px;opacity:.6}100%{height:16px;opacity:1}}@media (prefers-reduced-motion:reduce){.status-dot.recording{animation:none}.audio-level-bar.active{animation:none;background:var(--accent)}.audio-btn:hover:not(:disabled){transform:none}}.composer .audio-controls .audio-btn,.composer .composer-actions .audio-btn{width:40px;height:40px;flex:0 0 40px;padding:0;justify-content:center}.audio-controls-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-xl);margin:var(--spacing-lg) 0;box-shadow:0 4px 12px var(--shadow-color)}.audio-controls-panel h3{margin:0 0 var(--spacing-lg) 0;color:var(--text);font-size:var(--font-size-large);font-weight:600;display:flex;align-items:center;gap:var(--spacing-sm)}.audio-controls-panel .icon{width:20px;height:20px;color:var(--accent)}.audio-error{background:rgba(239,68,68,.1);border:1px solid var(--danger);color:var(--danger);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-sm) 0;display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-small);font-weight:500}.audio-error .icon{width:16px;height:16px;flex-shrink:0}.audio-warning{background:var(--audio-warning-surface);border:1px solid var(--warning);color:var(--audio-warning-text);padding:var(--spacing-md);border-radius:var(--radius-md);margin:var(--spacing-sm) 0;display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-small);font-weight:500}.audio-warning .icon{width:16px;height:16px;flex-shrink:0;color:var(--audio-warning-text)}.audio-loading{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-subtle);border-radius:var(--radius-md);border:1px solid var(--border)}.audio-loading .spinner{width:16px;height:16px;border:2px solid var(--border);border-top:2px solid var(--accent);border-radius:var(--radius-full);animation:1s linear infinite spin}.audio-loading .text{color:var(--muted);font-size:var(--font-size-small);font-weight:500}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}