/* WHY [BOL-VOICE-CONNECTION-INDICATOR-001]: the existing icon slot paints a
   truthful connection ring without consuming grid space or replacing the
   independent microphone-ready/error dot. Native state alone mounts it.
   No timer, percentage, layout shift, new motion framework or Voice owner.
   FALSIFIER: connecting is invisible at360/390/412px, a control moves, the
   ready dot is covered, or reduced motion loses the static pending mark. */
.app-shell .ops-voice-mode__icon > .ops-voice-connection {
  position: absolute;
  inset: -4px;
  border: 2px solid var(--line-dark);
  border-block-start-color: var(--orange-dark);
  border-radius: 50%;
  pointer-events: none;
  animation: ops-voice-mic-readiness-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .app-shell .ops-voice-mode__icon > .ops-voice-connection {
    animation: none !important;
    border-style: dotted;
  }
}
