.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}}