/* Voice dictation control (assets/speech-dictation.js). Explicit gaps: 8px icon/label, 12px between the button and its status. */
.sd-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:8px}
.sd-mic{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border:1px solid #bdcbe0;border-radius:18px;background:#fff;color:#3d5e92;font:inherit;font-size:12px;line-height:1.2;cursor:pointer}
.sd-mic .sd-icon{font-size:16px}
.sd-mic:hover:not(:disabled){background:#f1f5fc}
.sd-mic:disabled{opacity:.55;cursor:not-allowed}
.sd-mic.is-listening{border-color:#e08b8b;background:#fdeeee;color:#9b2c2c}
.sd-mic.is-listening .sd-icon{animation:sd-pulse 1.1s ease-in-out infinite}
.sd-status{font-size:12px;line-height:1.4;color:#66758b;min-width:0;overflow-wrap:anywhere}
.sd-status:empty{display:none}
.sd-status[data-sd-kind=listening]{color:#9b2c2c;font-style:italic}
.sd-status[data-sd-kind=error]{color:#8c3e34}
@keyframes sd-pulse{0%,100%{opacity:1}50%{opacity:.35}}
@media(prefers-reduced-motion:reduce){.sd-mic.is-listening .sd-icon{animation:none}}
