.h2flo-voice-status {
  display: inline-flex;
  align-items: center;
  min-height: 1.35em;
}

.h2flo-voice-recording-indicator {
  display: inline-block;
  width: 10px;
  height: 10px;
  flex: 0 0 10px;
  border-radius: 50%;
  background: #c62828;
  box-shadow: 0 0 0 0 rgba(198, 40, 40, 0.36);
  animation: h2flo-voice-recording-pulse 1.5s ease-in-out infinite;
}

.h2flo-mentor-voice-preference {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: inherit;
  font-size: 0.9rem;
  cursor: pointer;
}

.h2flo-mentor-voice-preference input {
  margin: 0;
}

.h2flo-mentor-voice-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin-top: 0.5rem;
}

.h2flo-mentor-voice-button {
  min-height: 2rem;
  padding: 0.3rem 0.65rem;
  border: 1px solid rgba(31, 65, 88, 0.35);
  border-radius: 0.35rem;
  background: #fff;
  color: inherit;
  font: inherit;
  font-size: 0.85rem;
  cursor: pointer;
}

.h2flo-mentor-voice-button:hover:not(:disabled) {
  background: rgba(31, 65, 88, 0.07);
}

.h2flo-mentor-voice-button:disabled {
  cursor: default;
  opacity: 0.58;
}

.h2flo-mentor-voice-status {
  min-width: 8rem;
  font-size: 0.85rem;
}

.h2flo-mentor-voice-controls.is-speaking .h2flo-mentor-voice-status {
  font-weight: 600;
}

.h2flo-mentor-voice-controls.is-unavailable .h2flo-mentor-voice-status {
  color: #8b2c2c;
}

.h2flo-mentor-voice-disclosure {
  color: #52616b;
  font-size: 0.76rem;
}

@keyframes h2flo-voice-recording-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(198, 40, 40, 0.36); }
  50% { box-shadow: 0 0 0 4px rgba(198, 40, 40, 0.08); }
}

@media (prefers-reduced-motion: reduce) {
  .h2flo-voice-recording-indicator {
    animation: none;
  }
}
