.voice-channel-show {
  max-width: 80ch;
  margin: 0 auto;
}

.voice-channel-show__header {
  padding-bottom: var(--block-space);
  border-bottom: 1px solid var(--color-border);
}

.voice-channel-show__connection-status {
  gap: var(--inline-space);
}

.voice-channel-show__activity-badge {
  padding: 0.35em 0.6em;
  border: 1px solid var(--color-border);
  border-radius: 999px;
}

.voice-channel-show__activity-dot {
  width: 0.6em;
  height: 0.6em;
  border-radius: 50%;
  background-color: var(--color-text-muted);
  transition: all 120ms ease;
}

.voice-channel-show__activity-badge[data-state="open_mic"] .voice-channel-show__activity-dot {
  background-color: #22c55e;
}

.voice-channel-show__activity-badge[data-state="ptt_ready"] .voice-channel-show__activity-dot {
  background-color: #eab308;
}

.voice-channel-show__activity-badge[data-state="transmitting"] .voice-channel-show__activity-dot,
.voice-channel-show__activity-badge[data-state="speaking"] .voice-channel-show__activity-dot {
  background-color: #22c55e;
  box-shadow: 0 0 0.35em rgba(34, 197, 94, 0.8);
  animation: voice-pulse 0.9s ease-in-out infinite;
}

.voice-channel-show__activity-badge[data-state="connecting"] .voice-channel-show__activity-dot {
  background-color: #3b82f6;
}

.voice-channel-show__activity-badge[data-state="disconnected"] .voice-channel-show__activity-dot {
  background-color: #ef4444;
}

.voice-channel-show__participants {
  margin-top: var(--block-space-double);
}

.voice-channel-show__participants-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--block-space);
}

.voice-participant-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--block-space-half);
  padding: var(--block-space);
  background-color: var(--color-bg);
  border: 2px solid var(--color-border);
  border-radius: 0.75em;
  transition: all 150ms ease;
}

.voice-participant-card--speaking {
  border-color: var(--voice-primary);
  background-color: rgba(34, 197, 94, 0.05);
  box-shadow: 0 0 20px var(--voice-speaking-glow);
}

.voice-participant-card--muted {
  opacity: 0.7;
}

.voice-participant-card__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: var(--color-border-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  font-weight: 600;
  border: 3px solid transparent;
  transition: all 150ms ease;
}

.voice-participant-card--speaking .voice-participant-card__avatar {
  border-color: var(--voice-primary);
  animation: voice-pulse 1.5s ease-in-out infinite;
}

.voice-participant-card__name {
  text-align: center;
}

.voice-participant-card__status {
  margin-top: var(--block-space-quarter);
}

.voice-channel-show__empty {
  padding: var(--block-space-triple);
  border: 2px dashed var(--color-border);
  border-radius: 1em;
}

.voice-channel-show__controls {
  padding-top: var(--block-space-double);
  border-top: 1px solid var(--color-border);
}

.colorize--green {
  color: var(--voice-primary);
}

.btn--large {
  padding: var(--block-space) var(--inline-space-double);
  min-width: 100px;
}
