.ncsr-composer {
  grid-template-columns: 1fr 38px 42px;
}

.ncsr-voice {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  margin-bottom: 2px;
  padding: 0;
  border: 1px solid #bad9dd;
  border-radius: 50%;
  background: #f1fbfa;
  color: var(--ncsr-teal);
  cursor: pointer;
}

.ncsr-voice svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.ncsr-voice:hover {
  background: #ddf6f2;
}

.ncsr-voice.listening {
  border-color: #d4553f;
  background: #fff0ec;
  color: #b93424;
  box-shadow: 0 0 0 4px rgba(212, 85, 63, 0.14);
  animation: ncsr-listen 1s ease-in-out infinite;
}

.ncsr-voice[hidden] {
  display: none;
}

.ncsr-no-voice .ncsr-composer {
  grid-template-columns: 1fr 42px;
}

.ncsr-send:disabled,
.ncsr-voice:disabled {
  cursor: wait;
  opacity: 0.58;
}

@keyframes ncsr-listen {
  50% { transform: scale(1.08); }
}

@media (prefers-reduced-motion: reduce) {
  .ncsr-voice.listening { animation: none; }
}
