
.has-voice-input { padding-right: 40px !important; }
.voice-input-icon {
    position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 24px; height: 24px;
    color: #94a3b8; cursor: pointer; z-index: 1100; transition: all 0.3s ease; display: flex;
    align-items: center; justify-content: center; background: transparent; border-radius: 50%; pointer-events: auto;
}
.voice-input-icon svg { width: 18px; height: 18px; }
.voice-input-icon:hover { color: var(--accent); background: rgba(212, 175, 55, 0.1); }
.voice-input-icon.listening { color: #ef4444; animation: voicePulse 1.5s infinite; background: rgba(239, 68, 68, 0.1); }
.voice-active-input { border-color: #ef4444 !important; box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1) !important; }
textarea.has-voice-input + .voice-input-icon { top: 20px; transform: translateY(0); }
textarea.has-voice-input + .voice-input-icon.listening { animation: voicePulseTextarea 1.5s infinite; }

@keyframes voicePulse {
    0% { transform: translateY(-50%) scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: translateY(-50%) scale(1.1); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { transform: translateY(-50%) scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}
@keyframes voicePulseTextarea {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: scale(1.1); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}
