/* The microphone in text boxes (public/js/dictate.js, docs/architecture/dictation.md). No build step. */
.co-mic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgb(0 0 0 / 0.12);
    border-radius: 999px;
    background: #fff;
    color: #475569;
    cursor: pointer;
    padding: 0;
    line-height: 0;
}
.co-mic[hidden] { display: none; }
.co-mic svg { width: 16px; height: 16px; }
.co-mic:hover { color: var(--camp, var(--co-primary, #1f4d3a)); border-color: currentColor; }
.co-mic:focus-visible { outline: 2px solid var(--camp, var(--co-primary, #1f4d3a)); outline-offset: 2px; }
.co-mic.is-listening {
    background: #dc2626;
    border-color: #dc2626;
    color: #fff;
    animation: co-mic-pulse 1.4s ease-in-out infinite;
}
.co-mic--floating {
    position: fixed;
    z-index: 70;
    width: 28px;
    height: 28px;
    box-shadow: 0 1px 3px rgb(0 0 0 / 0.15);
}
.co-mic--docked {
    width: 40px;
    height: 40px;
    flex: none;
}
.co-mic--docked svg { width: 20px; height: 20px; }
.co-mic__sr {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}
.co-mic-heard {
    position: fixed;
    z-index: 70;
    padding: 4px 10px;
    border-radius: 8px;
    background: #0f172a;
    color: #fff;
    font-size: 13px;
    line-height: 1.4;
    box-shadow: 0 2px 8px rgb(0 0 0 / 0.2);
    pointer-events: none;
}
.co-mic-heard[hidden] { display: none; }
.co-mic-heard.is-state { background: #334155; font-style: italic; }
@keyframes co-mic-pulse {
    50% { box-shadow: 0 0 0 6px rgb(220 38 38 / 0.25); }
}
@media (prefers-reduced-motion: reduce) {
    .co-mic.is-listening { animation: none; }
}
