/* Модул 9: Voice-to-Text — микрофон до textarea */

.sff-voice-wrapper {
    position: relative;
    width: 100%;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 8px;
}

.sff-voice-wrapper textarea {
    flex: 1;
    min-width: 0;
    min-height: 80px;
}

.sff-voice-btn {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 2px solid #0f5ef7;
    background: #f0f7ff;
    color: #0f5ef7;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
    -webkit-tap-highlight-color: transparent;
}

.sff-voice-btn:hover {
    background: #e0efff;
    border-color: #0b4ac4;
    color: #0b4ac4;
}

.sff-voice-btn:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(15, 94, 247, 0.35);
}

.sff-voice-btn.sff-voice-recording {
    background: #dc3545;
    border-color: #dc3545;
    color: #fff;
    animation: sff-voice-pulse 1.2s ease-in-out infinite;
}

.sff-voice-btn.sff-voice-recording:hover {
    background: #c82333;
    border-color: #c82333;
    color: #fff;
}

@keyframes sff-voice-pulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.5); }
    50% { opacity: 0.9; box-shadow: 0 0 0 10px rgba(220, 53, 69, 0); }
}

.sff-voice-btn svg {
    display: block;
}
