/* gencv-voice-btn — round mic button with ping animation while recording */

.gencv-voice-btn {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid var(--line-strong);
    background: var(--bg-2);
    color: var(--ink-muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s;
    flex-shrink: 0;
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
    touch-action: none;       /* prevent iOS Safari from interpreting hold as long-press */
}
.gencv-voice-btn:hover {
    color: var(--ink);
    border-color: var(--ink-muted);
    background: var(--ink-whisper);
}

.gencv-voice-btn--recording {
    color: var(--accent-ink);
    background: var(--voice-recording-bg);
    border-color: transparent;
    box-shadow: var(--voice-recording-shadow);
}
.gencv-voice-btn--recording::before {
    content: "";
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    border: 2px solid var(--voice-recording-ring);
    animation: gencvPing 1.4s ease-out infinite;
}

.gencv-voice-btn--loading {
    color: var(--accent);
    border-color: var(--accent-dim);
}
.gencv-voice-btn--loading svg { animation: gencvSpin 1s linear infinite; }
