.voice-input-container{position:relative;display:inline-flex;align-items:center;gap:var(--space-2)}.voice-input-button{position:relative;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-circle);cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);background:transparent;color:var(--brand-cyan);overflow:visible;z-index:1}@media (hover:hover){.voice-input-button:hover:not(.disabled):not(.recording):not(.transcribing){background:var(--bg-accent-muted);transform:scale(1.1)}}.voice-input-button:active:not(.disabled){transform:scale(.95)}.voice-input-small{width:32px;height:32px;min-width:32px}@media (max-width:767px){.voice-input-small{width:44px;height:44px;min-width:44px}}.voice-input-medium{width:40px;height:40px;min-width:40px}.voice-input-large{width:48px;height:48px;min-width:48px}.voice-input-small .voice-input-icon{width:16px;height:16px}.voice-input-medium .voice-input-icon{width:20px;height:20px}.voice-input-large .voice-input-icon{width:24px;height:24px}.voice-input-icon{display:flex;align-items:center;justify-content:center;z-index:2}.voice-input-icon svg{width:100%;height:100%}.voice-input-button.recording{background:rgba(var(--brand-red-rgb),.2);color:var(--brand-red);animation:recording-glow 1.5s ease-in-out infinite}@keyframes recording-glow{0%,to{box-shadow:0 0 15px rgba(var(--brand-red-rgb),.4),0 0 30px rgba(var(--brand-red-rgb),.2)}50%{box-shadow:0 0 25px rgba(var(--brand-red-rgb),.6),0 0 50px rgba(var(--brand-red-rgb),.3)}}.voice-pulse-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:var(--radius-circle);border:2px solid rgba(var(--brand-red-rgb),.4);pointer-events:none}.voice-pulse-ring-1{width:100%;height:100%;animation:pulse-expand 1.5s ease-out infinite}.voice-pulse-ring-2{width:100%;height:100%;animation:pulse-expand 1.5s ease-out .3s infinite}.voice-pulse-ring-3{width:100%;height:100%;animation:pulse-expand 1.5s ease-out .6s infinite}@keyframes pulse-expand{0%{transform:translate(-50%,-50%) scale(1);opacity:.6}to{transform:translate(-50%,-50%) scale(2.5);opacity:0}}.voice-level-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;border-radius:var(--radius-circle);background:radial-gradient(circle,rgba(var(--brand-red-rgb),.4) 0,rgba(var(--brand-red-rgb),0) 70%);pointer-events:none;transition:transform .05s ease-out,opacity .05s ease-out}.voice-input-button.transcribing{background:var(--bg-accent-strong);color:var(--brand-cyan);cursor:wait}.voice-spinner{animation:spin 1s linear infinite}.voice-input-button.disabled{opacity:.4;cursor:not-allowed;background:transparent;color:var(--text-disabled)}.voice-recording-status{display:flex;align-items:center;gap:var(--space-2);padding:6px 12px;background:var(--badge-danger-bg);border:1px solid var(--badge-danger-border);border-radius:var(--radius-full);font-size:var(--text-ms);color:var(--badge-danger-text);animation:status-fade-in .2s ease-out}@keyframes status-fade-in{0%{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:translateX(0)}}.voice-recording-dot{width:8px;height:8px;border-radius:var(--radius-circle);background:var(--brand-red);animation:recording-blink 1s ease-in-out infinite}@keyframes recording-blink{0%,to{opacity:1}50%{opacity:.3}}.voice-recording-time{font-family:SF Mono,Monaco,Consolas,monospace;font-weight:var(--font-medium);min-width:40px}.voice-cancel-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:var(--radius-circle);background:var(--button-danger-bg);color:var(--button-danger-text);cursor:pointer;transition:all .2s ease}@media (hover:hover){.voice-cancel-btn:hover{background:var(--button-danger-hover-bg);transform:scale(1.1)}}.voice-cancel-btn svg{width:12px;height:12px}.voice-error-message{position:absolute;top:calc(100% + 8px);right:0;padding:var(--space-2) var(--space-3);background:rgba(var(--brand-red-rgb),.95);color:var(--text-primary);font-size:var(--text-xs);border-radius:var(--radius-sm);white-space:nowrap;box-shadow:var(--shadow-sm);animation:error-fade-in .2s ease-out;z-index:var(--z-tooltip);pointer-events:none}.voice-error-message:before{content:"";position:absolute;top:-6px;right:10px;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid rgba(var(--brand-red-rgb),.95)}@keyframes error-fade-in{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.voice-input-unsupported{opacity:.3;cursor:not-allowed}@media (prefers-color-scheme:dark){.voice-input-button{background:transparent}}.voice-composer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);width:100%;min-width:0;box-sizing:border-box}.voice-composer:not([data-state=idle]){padding:var(--space-1);border:1px solid var(--border-default);border-radius:var(--radius-full);background:var(--bg-glass)}.voice-composer-control,.voice-composer-send,.voice-composer-start{display:inline-flex;flex:none;align-items:center;justify-content:center;width:var(--space-8);height:var(--space-8);padding:0;border:0;border-radius:var(--radius-circle);background:var(--bg-glass);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast),opacity var(--transition-fast)}.voice-composer-start{background:transparent;color:var(--brand-cyan)}.voice-composer-send{background:var(--text-primary);color:var(--text-on-brand)}.voice-composer-control svg,.voice-composer-send svg,.voice-composer-start svg{width:var(--space-4);height:var(--space-4)}.voice-composer-control .lucide-square{width:var(--space-3);height:var(--space-3)}.voice-composer-send svg{width:var(--space-4-5);height:var(--space-4-5)}.voice-composer-control:focus-visible,.voice-composer-send:focus-visible,.voice-composer-start:focus-visible{outline:var(--focus-ring-width) solid var(--brand-cyan);outline-offset:var(--focus-ring-offset)}.voice-composer-send:disabled,.voice-composer-start:disabled{cursor:not-allowed;opacity:var(--opacity-32)}@media (hover:hover){.voice-composer-control:hover,.voice-composer-start:hover:not(:disabled){background:var(--bg-glass-hover)}.voice-composer-send:hover:not(:disabled){opacity:var(--opacity-80)}}.voice-composer-track{display:flex;flex:1 1 auto;align-items:center;gap:var(--space-2);min-width:0}.voice-composer-wave{display:block;flex:1 1 auto;width:100%;min-width:0;height:var(--space-6);fill:var(--text-secondary)}.voice-composer-time{flex:none;color:var(--text-secondary);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;line-height:var(--leading-normal)}.voice-composer-status{display:flex;flex:1 1 auto;align-items:center;gap:var(--space-2);min-width:0;color:var(--text-secondary);font-size:var(--text-xs);line-height:var(--leading-snug);overflow-wrap:anywhere}.voice-composer-spinner{flex:none;width:var(--space-4);height:var(--space-4);animation:spin var(--duration-slowest) linear infinite}.voice-composer-announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}@media (prefers-reduced-motion:reduce){.voice-composer-spinner{animation:none}}@media (max-width:767px),(pointer:coarse){.voice-composer:not([data-state=idle]){padding:var(--space-1-5)}.voice-composer-control,.voice-composer-send,.voice-composer-start{width:var(--tap-target-min);height:var(--tap-target-min)}.voice-composer-control svg,.voice-composer-send svg,.voice-composer-start svg{width:var(--space-5);height:var(--space-5)}.voice-composer-control .lucide-square{width:var(--space-3-5);height:var(--space-3-5)}.voice-composer-wave{height:var(--space-8)}}