/* voice widgets (WP8). Logical properties only. */
.sh-mic { display: inline-flex; align-items: center; gap: 8px; }
.sh-mic[hidden], .sh-speak-btn[hidden], .sh-mic-status[hidden], .sh-mic-auto[hidden] { display: none; }
.sh-mic-btn, .sh-speak-btn { border: 1px solid var(--sand-300); background: var(--white); color: var(--ink-700); inline-size: 40px; block-size: 40px; border-radius: 50%; }
.sh-mic-btn:hover, .sh-speak-btn:hover { background: var(--sand-100); }
.sh-mic-btn.on { background: var(--claim-bad); border-color: var(--claim-bad); color: var(--white); animation: sh-mic-pulse 1.2s infinite; }
.sh-speak-btn { inline-size: 34px; block-size: 34px; }
.sh-speak-btn.on { background: var(--water); border-color: var(--water); color: var(--white); }
.sh-mic-status { color: var(--claim-bad); font-weight: 600; }
.sh-mic-auto { display: inline-flex; align-items: center; gap: 4px; color: var(--ink-500); cursor: pointer; }
.sh-mic-auto input { accent-color: var(--brass-500); }
@keyframes sh-mic-pulse { 0% { box-shadow: 0 0 0 0 rgba(178, 58, 58, .45); } 70% { box-shadow: 0 0 0 10px rgba(178, 58, 58, 0); } 100% { box-shadow: 0 0 0 0 rgba(178, 58, 58, 0); } }
@media (prefers-reduced-motion: reduce) { .sh-mic-btn.on { animation: none; } }
