mic-input-meter { display: inline-flex; flex: 0 0 auto; }
.mic-input-button {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 56px; padding: 6px; border: 1px solid var(--bs-border-color, #dee2e6);
    border-radius: 14px; background: var(--bs-body-bg, #fff); color: var(--bs-secondary-color, #6c757d);
}
.mic-input-button:hover { border-color: var(--bs-primary, #0d6efd); }
.mic-input-button:focus-visible { outline: 3px solid var(--bs-primary, #0d6efd); outline-offset: 3px; }
.mic-input-body { fill: var(--bs-tertiary-bg, #f1f3f5); }
.mic-input-fill { fill: var(--bs-success, #198754); clip-path: inset(var(--mic-empty, 100%) 0 0 0); transform-box: fill-box; }
.mic-input-dot { position: absolute; right: 6px; top: 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--bs-secondary, #6c757d); }
mic-input-meter[data-state="listening"] .mic-input-dot { background: var(--bs-success, #198754); }
mic-input-meter[data-state="error"] .mic-input-dot { background: var(--bs-danger, #dc3545); }
