/* Voice picker chips + shared inline spinner (docs/design-guidelines.md tokens only). */
.voice-picker { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(140px, calc(50% - var(--space-1))), 1fr)); gap: var(--space-2); margin: var(--space-2) 0 var(--space-4); }

.voice-chip {
  position: relative; display: flex; align-items: stretch; min-height: 52px;
  background: var(--surface); border-radius: var(--radius-md);
  box-shadow: inset 0 0 0 1px var(--border);
}
.voice-chip--selected { background: var(--highlight); box-shadow: inset 0 0 0 2px var(--primary); }
.voice-chip--disabled { opacity: .55; }

.voice-chip-select {
  flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: center; gap: 2px;
  padding: var(--space-2) var(--space-3); border: 0; background: none; color: var(--ink);
  font: inherit; text-align: left; cursor: pointer;
}
.voice-chip-select:disabled { cursor: default; }
.voice-chip-label { font-size: 15px; font-weight: 600; }
.voice-chip-name { font-size: 12px; color: var(--ink-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.voice-chip-play {
  flex: none; width: 44px; display: grid; place-items: center; border: 0; background: none;
  color: var(--primary); cursor: pointer; border-left: 1px solid var(--border);
}
.voice-chip-play:focus-visible, .voice-chip-select:focus-visible { outline: 2px solid var(--primary); outline-offset: -2px; }

.voice-chip-error {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 2; margin-top: 2px;
  font-size: 12px; color: var(--danger); background: var(--surface); padding: 2px var(--space-2);
}

.voice-change-note { font-size: 14px; color: var(--ink-muted); margin: 0 0 var(--space-3); }

.spinner {
  display: inline-block; width: 16px; height: 16px; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent;
  animation: spinner-turn .8s linear infinite; vertical-align: -3px;
}
@keyframes spinner-turn { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation-duration: 2.4s; } }
