/* =========================================================================
   Post-call — Action buttons row (New Call, Proceed to Training)
   ========================================================================= */

.analysis-actions {
  display: flex;
  justify-content: center;
  gap: 1rem;
  padding: 0.5rem 0;
}
.action-btn {
  padding: 0.65rem 2.2rem;
  border: 1.5px solid var(--teal-border);
  border-radius: var(--radius-pill);
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  cursor: pointer;
  background: var(--teal-soft);
  color: var(--teal);
  transition: background var(--dur-micro) var(--ease),
              color     var(--dur-micro) var(--ease),
              transform var(--dur-micro) var(--ease);
}
.action-btn:hover {
  background: var(--teal);
  color: var(--bg);
  transform: translateY(-1px);
}
.action-btn:active { transform: translateY(0); opacity: 0.9; }

/* =========================================================================
   Post-call — progressive reveal (Quick Coach first, then "Show Results")
   ========================================================================= */

/* Phase-1 gate button — centered under the Quick Coach card. */
.show-results-btn {
  display: block;
  margin: 0.25rem auto 1rem;
}

/* Results wrapper. The cards used to be direct children of .screen (a flex
   column with gap: 0.5rem); inside this wrapper they need the same layout to
   keep their inter-card spacing. Collapsed until the user reveals it. */
#analysis-results {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
#analysis-results[hidden] { display: none; }

/* Per-section loading: while a result card carries `is-loading`, show only its
   title + a local loading line; hide the real content until its data lands. */
.section-loading {
  display: none;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0;
  color: var(--text-muted);
  font-size: 0.85rem;
  font-weight: 500;
}
.card.is-loading .section-loading { display: flex; }
/* Terminal state when a section's data never arrived (see _failPendingSections). */
.section-loading.is-failed { font-style: italic; }
.card.is-loading > *:not(.card-title):not(.qa-eval-header):not(.section-loading) {
  display: none;
}
.section-spinner {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  border-radius: 50%;
  border: 2px solid var(--border-emph);
  border-top-color: var(--accent);
  animation: spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .section-spinner { animation-duration: 2.4s; }
}
