/* Voice builder — the guided recording screen. Big text, one button.
   Uses the app's real design tokens from tokens.css (--bg-elevated,
   --bg-sunken, --text, --text-muted, --border, --primary, --danger,
   --success-ink), so it follows the light theme like every other view and
   flips correctly under :root[data-theme="dark"]. Never hardcode a colour
   that only reads on a dark card. Nothing here restyles the shell. */

.vb-meter,
.vb-passage,
.vb-after,
.vb-done {
  background: var(--bg-elevated);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: var(--space-5);
  margin-bottom: var(--space-4);
}

.vb-meter-words {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--text);
  margin: 0 0 var(--space-3);
}

.vb-meter-track {
  height: 16px;
  border-radius: var(--radius-pill);
  background: var(--bg-sunken);
  border: 1px solid var(--border);
  overflow: hidden;
}

.vb-meter-fill {
  height: 100%;
  width: 0;
  background: var(--primary);
  transition: width 240ms ease;
}

/* Teleprompter text: readable from a step back, generous line height,
   full-strength ink — never dimmed. */
.vb-passage-title {
  margin: 0 0 var(--space-3);
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
}

.vb-passage-text {
  font-size: 1.6rem;
  line-height: 1.6;
  color: var(--text);
  margin: 0 0 var(--space-4);
}

.vb-big-button {
  font-size: 1.25rem;
  padding: 0.7em 1.4em;
  width: 100%;
  max-width: 420px;
}

.vb-stop {
  background: var(--danger);
  color: #ffffff;
}

.vb-live {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: var(--space-3) 0 0;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--text);
}

.vb-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--danger);
  animation: vb-pulse 1.1s ease-in-out infinite;
}

@keyframes vb-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.25; }
}

@media (prefers-reduced-motion: reduce) {
  .vb-dot { animation: none; }
  .vb-meter-fill { transition: none; }
}

.vb-note {
  margin: var(--space-3) 0 0;
  color: var(--text-muted);
}

.vb-saved-note {
  margin: 0 0 var(--space-2);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--success-ink);
}

/* The one thing on this screen that must never be missed. */
.vb-problem {
  margin: var(--space-3) 0 0;
  padding: 12px 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--danger);
  background: color-mix(in srgb, var(--danger) 12%, var(--bg-elevated));
  color: var(--danger-ink);
  font-weight: 700;
}

.vb-audio {
  width: 100%;
  max-width: 420px;
  margin: var(--space-2) 0 var(--space-4);
  display: block;
}

.vb-after-buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.vb-done-items {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.vb-done-item {
  width: 100%;
  display: flex;
  justify-content: space-between;
  gap: var(--space-3);
  padding: 12px 14px;
  border-radius: var(--radius-md);
  border: 1px solid var(--border);
  background: var(--bg-sunken);
  color: var(--text);
  font-family: var(--font-display);
  font-size: 1rem;
  cursor: pointer;
  text-align: left;
}

.vb-done-item:hover {
  border-color: var(--primary);
}

.vb-done-current {
  border-color: var(--primary);
}

.vb-done-length {
  color: var(--text-muted);
}
