/**
 * ThatChess Coach — Sistema de estilos
 * Integrado con design-system.css editorial
 * El coach no es un widget de chat: es la voz editorial del producto.
 */

/* ═══════════════════════════════════════════════
   COACH VOICE — Texto editorial inline
   ═══════════════════════════════════════════════ */

.tc-coach-voice {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  line-height: var(--tc-leading-relaxed);
  color: var(--tc-gray-300);
  padding: var(--tc-space-3) 0;
}

.tc-coach-voice strong,
.tc-coach-voice b {
  color: var(--tc-white-pure);
  font-weight: var(--tc-weight-bold);
}

.tc-coach-voice em {
  color: var(--tc-rosegold-light);
  font-style: italic;
}

/* ═══════════════════════════════════════════════
   COACH QUESTION — Pregunta socrática con acento
   ═══════════════════════════════════════════════ */

.tc-coach-question {
  border-left: 3px solid var(--tc-rosegold);
  padding: var(--tc-space-3) var(--tc-space-4);
  margin: var(--tc-space-3) 0;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-style: italic;
  color: var(--tc-rosegold-light);
  line-height: var(--tc-leading-relaxed);
  background: var(--tc-rosegold-muted);
}

.tc-coach-question::before {
  content: '';
}

/* ═══════════════════════════════════════════════
   MOMENT TIMELINE — Dots horizontales por categoría
   ═══════════════════════════════════════════════ */

.tc-moment-timeline {
  display: flex;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) 0;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
  align-items: center;
}

.tc-moment-timeline::-webkit-scrollbar {
  display: none;
}

.tc-moment-dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  border: 2px solid var(--tc-gray-600);
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  transition: transform 0.15s ease, border-color 0.15s ease, background 0.15s ease;
  padding: 0;
  display: block;
}

.tc-moment-dot:hover {
  transform: scale(1.3);
  border-color: var(--tc-gray-400);
}

.tc-moment-dot.active {
  transform: scale(1.6);
  border-color: var(--tc-white-pure);
  background: var(--tc-white-pure);
}

.tc-moment-dot.completed {
  background: var(--tc-gray-500);
  border-color: var(--tc-gray-500);
}

/* ═══════════════════════════════════════════════
   MOMENT CARD — Card editorial con borde de categoría
   ═══════════════════════════════════════════════ */

.tc-moment-card {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  border-left: 3px solid var(--tc-gray-500);
  padding: var(--tc-space-4) var(--tc-space-5, 1.25rem);
  margin: var(--tc-space-3) 0;
  position: relative;
  transition: opacity 0.2s ease;
}

/* Category-specific card borders removed — neutral for all moments */

.tc-moment-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--tc-space-2);
  margin-bottom: var(--tc-space-3);
}

.tc-moment-card-tag {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  padding: var(--tc-space-1) var(--tc-space-2);
  border: 1px solid currentColor;
  display: inline-flex;
  align-items: center;
  gap: var(--tc-space-1);
}

.tc-moment-card-move {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-500);
}

/* ═══════════════════════════════════════════════
   REVIEW PANEL — Layout editorial
   ═══════════════════════════════════════════════ */

.tc-review-header {
  padding: var(--tc-space-3, 0.75rem) var(--tc-space-4);
  border-bottom: 1px solid var(--tc-gray-800);
  background: var(--tc-gray-900);
  flex-shrink: 0;
}

.tc-review-header h2 {
  font-family: var(--tc-font-display-alt);
  font-weight: var(--tc-weight-extrabold);
  font-size: var(--tc-text-large);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wide);
  color: var(--tc-white-pure);
  margin: 0;
}

.tc-review-header .tc-review-subtitle {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  margin-top: var(--tc-space-1);
}

.tc-review-body {
  padding: var(--tc-space-3) var(--tc-space-4);
  overflow-y: auto;
  flex: 1 1 0;
  min-height: 0;
}

/* ═══════════════════════════════════════════════
   TU VERSION — Auto-reflexión cards
   ═══════════════════════════════════════════════ */

.tc-tuversion-container {
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-3);
}

.tc-tuversion-card {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  border-left: 3px solid var(--tc-rosegold);
  padding: var(--tc-space-4);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
}

.tc-tuversion-card:hover {
  background: var(--tc-gray-900);
  border-color: var(--tc-gray-600);
  border-left-color: var(--tc-rosegold);
}

.tc-tuversion-card.answered {
  border-left-color: var(--tc-emerald);
  opacity: 0.7;
}

.tc-tuversion-question {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-style: italic;
  color: var(--tc-rosegold-light);
  line-height: var(--tc-leading-relaxed);
  margin-bottom: var(--tc-space-2);
}

.tc-tuversion-input {
  width: 100%;
  background: var(--tc-gray-900);
  border: 1px solid var(--tc-gray-700);
  color: var(--tc-white-pure);
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  padding: var(--tc-space-2) var(--tc-space-3);
  outline: none;
  transition: border-color 0.15s ease;
}

.tc-tuversion-input:focus {
  border-color: var(--tc-rosegold);
}

.tc-tuversion-input::placeholder {
  color: var(--tc-gray-600);
  font-style: italic;
}

.tc-tuversion-skip {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-600);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  cursor: pointer;
  padding: var(--tc-space-1) 0;
  transition: color 0.15s ease;
}

.tc-tuversion-skip:hover {
  color: var(--tc-gray-400);
}

/* ═══════════════════════════════════════════════
   CLOSURE CARD — Micro-objetivo
   ═══════════════════════════════════════════════ */

.tc-closure-card {
  background: var(--tc-champagne-muted);
  border: 1px solid var(--tc-champagne-deep);
  padding: var(--tc-space-5, 1.25rem) var(--tc-space-4);
  margin: var(--tc-space-4) 0;
}

.tc-closure-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-champagne-deep);
  margin-bottom: var(--tc-space-2);
}

.tc-closure-text {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-semibold);
  color: var(--tc-champagne);
  line-height: var(--tc-leading-relaxed);
}

/* ═══════════════════════════════════════════════
   EXERCISES — Editorial Clean Redesign (Phase 5)
   Following thatchess principles: aire, minimal, editorial
   ═══════════════════════════════════════════════ */

/* ─── Featured Exercise (Tab Principal) ─── */

.tc-exercise-featured {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 3rem 2rem;
  gap: 2rem;
  /* Más aire que antes (1.5rem) */
}

.tc-exercise-featured__kicker {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
}

.tc-exercise-featured__title {
  font-family: var(--tc-font-display-alt);
  font-size: 1.5rem;
  /* Reducido de 1.75rem - menos agresivo */
  font-weight: var(--tc-weight-extrabold);
  margin: 0;
  text-align: center;
  max-width: 400px;
  color: var(--tc-white-pure);
}

.tc-exercise-featured__description {
  max-width: 350px;
  text-align: center;
  color: var(--tc-gray-400);
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  line-height: var(--tc-leading-relaxed);
}

/* ─── Exercise Browser ─── */

.tc-exercise-browser-header {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-500);
  padding: 16px 16px 4px;
}

.tc-exercise-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 12px 16px 16px;
}

@media (min-width: 400px) {
  .tc-exercise-grid {
    grid-template-columns: 1fr 1fr;
  }
}

/* Exercise Cards - Rediseño limpio y minimalista */
.tc-exercise-card {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  padding: 12px;
  cursor: pointer;
  transition: border-color 160ms ease, background 160ms ease;
  margin-bottom: 0;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tc-exercise-grid .tc-exercise-card {
  margin-bottom: 0;
}

.tc-exercise-card:hover {
  background: var(--tc-coach-surface-2);
  border-color: var(--tc-gray-600);
}

.tc-exercise-card.locked {
  opacity: 0.65;
  cursor: default;
}

.tc-exercise-card.locked:hover {
  background: var(--tc-coach-surface-1);
  border-color: var(--tc-coach-border);
}

/* Estado visual sutil - left border */
.tc-exercise-card.completed {
  border-left: 3px solid var(--tc-emerald);
  opacity: 0.8;
}

.tc-exercise-card.attempted {
  border-left: 3px solid var(--tc-champagne);
}

.tc-exercise-card.new {
  border-left: 3px solid var(--tc-gray-600);
  opacity: 0.8;
}

/* Título limpio - línea 1 */
.tc-exercise-card__title {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
  margin-bottom: 0;
}

/* Meta info - línea 2 (nivel · estado) */
.tc-exercise-card__meta {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
}

.tc-exercise-card__meta--completed {
  color: var(--tc-emerald);
}

.tc-exercise-card__meta--attempted {
  color: var(--tc-champagne);
}

.tc-exercise-card__meta--locked {
  color: var(--tc-gray-600);
}

.tc-exercise-card__meta--coach {
  color: var(--tc-champagne);
}

.tc-exercise-card__meta--new {
  color: var(--tc-gray-500);
}

/* ─── Exercise Player (Interior) ─── */

.tc-exercise-player {
  display: flex;
  flex-direction: column;
  height: 100%;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.tc-exercise-content {
  padding: var(--tc-space-6) var(--tc-space-4);
  width: 100%;
  max-width: 680px;
  /* Igual que lecciones */
  margin: 0 auto;
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  box-sizing: border-box;
}

.tc-exercise-title {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-large);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
  margin-bottom: var(--tc-space-4);
}

.tc-exercise-objective {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-400);
  line-height: var(--tc-leading-relaxed);
  margin-bottom: var(--tc-space-6);
}

.tc-exercise-hint {
  border-left: 3px solid var(--tc-rosegold);
  background: rgba(244, 153, 132, 0.05);
  padding: var(--tc-space-3) var(--tc-space-4);
  margin: var(--tc-space-4) 0;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-rosegold-light);
  font-style: italic;
  line-height: var(--tc-leading-relaxed);
}

.tc-exercise-feedback--correct {
  border-left: 3px solid var(--tc-emerald);
  background: rgba(16, 185, 129, 0.05);
  padding: var(--tc-space-4);
  margin: var(--tc-space-4) 0;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-relaxed);
}

.tc-exercise-feedback--wrong {
  border-left: 3px solid var(--tc-rosegold);
  background: rgba(244, 153, 132, 0.05);
  padding: var(--tc-space-4);
  margin: var(--tc-space-4) 0;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-relaxed);
}

/* Botones de ejercicio - usar clases existentes tc-coach-btn */
.tc-exercise-actions {
  display: flex;
  gap: var(--tc-space-3);
  margin-top: var(--tc-space-6);
  flex-wrap: wrap;
  justify-content: center;
}

/* Labels y pills de tipo - uso limitado */
.tc-exercise-type-pill {
  display: inline-flex;
  align-items: center;
  gap: var(--tc-space-1);
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  padding: var(--tc-space-1) var(--tc-space-2);
  border: 1px solid currentColor;
  color: var(--tc-gray-500);
}

.tc-exercise-type-pill--feature {
  /* Featured exercises: no pill visible */
  display: none;
}

.tc-exercise-description {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-400);
  line-height: var(--tc-leading-relaxed);
  margin-top: var(--tc-space-2);
}

.tc-exercise-description--feature {
  /* Featured: máximo 1-2 líneas */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  line-clamp: 2;
  overflow: hidden;
}

/* LEGACY - mantener para compatibilidad temporal */
.tc-exercise-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-emerald);
  margin-bottom: var(--tc-space-2);
}

/* Exercise player header title - similar to lesson header */
.tc-exercise-header-title {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-300);
  padding: var(--tc-space-4) var(--tc-space-4) var(--tc-space-2);
  text-align: center;
}

.tc-exercise-category {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  color: var(--tc-gray-500);
  text-align: center;
  padding: 0 var(--tc-space-4) var(--tc-space-3);
}

.tc-exercise-difficulty {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  color: var(--tc-gray-600);
  margin-bottom: var(--tc-space-2);
}

/* Exercise player status indicator */
.tc-exercise-player-status {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-tiny);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  color: var(--tc-gray-500);
  padding: var(--tc-space-2) 0;
  border-top: 1px solid var(--tc-gray-800);
  border-bottom: 1px solid var(--tc-gray-800);
  margin: var(--tc-space-4) 0;
  text-align: center;
}

.tc-exercise-player-status--waiting {
  color: var(--tc-gray-400);
}

.tc-exercise-player-status--correct {
  color: var(--tc-emerald);
  border-color: var(--tc-emerald);
}

.tc-exercise-player-status--wrong {
  color: var(--tc-rosegold);
  border-color: var(--tc-rosegold);
}

.tc-exercise-player-status--comparative {
  color: var(--tc-champagne);
  border-color: var(--tc-gray-700);
  text-transform: none;
  letter-spacing: normal;
  text-align: left;
  line-height: var(--tc-leading-relaxed);
  white-space: pre-line;
}

/* Hint styling */
.tc-exercise-player-hint {
  border-left: 3px solid var(--tc-rosegold);
  background: rgba(244, 153, 132, 0.05);
  padding: var(--tc-space-3) var(--tc-space-4);
  margin: var(--tc-space-3) 0;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-rosegold-light);
  font-style: italic;
  line-height: var(--tc-leading-relaxed);
}

/* Solution display */
.tc-exercise-solution {
  border-left: 3px solid var(--tc-emerald);
  background: rgba(16, 185, 129, 0.05);
  padding: var(--tc-space-4);
  margin: var(--tc-space-4) 0;
}

.tc-exercise-solution-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-emerald);
  margin-bottom: var(--tc-space-2);
}

.tc-exercise-solution-move {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
}

.tc-exercise-solution-copy {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-regular);
  line-height: 1.6;
  color: var(--tc-white-pure);
}


/* ═══════════════════════════════════════════════
   LEARN PANEL — Sub-tabs y layout
   ═══════════════════════════════════════════════ */

.tc-learn-tabs {
  display: flex;
  border-bottom: 1px solid var(--tc-gray-800);
  background: var(--tc-gray-900);
  overflow-x: auto;
  scrollbar-width: none;
}

.tc-learn-tabs::-webkit-scrollbar {
  display: none;
}

.tc-learn-tab {
  flex: 1;
  padding: var(--tc-space-3) var(--tc-space-4);
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  color: var(--tc-gray-500);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
  white-space: nowrap;
  text-align: center;
}

.tc-learn-tab:hover {
  color: var(--tc-gray-300);
}

.tc-learn-tab.active {
  color: var(--tc-white-pure);
  border-bottom-color: var(--tc-crimson);
}

/* Keep vertical text air identical between Play and Learn tab bars */
#play-tabs .tab-btn,
#tcLearnTabs .tab-btn,
#tcReviewTabs .tab-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  line-height: 16px;
}

.tc-review-tabs-body {
  flex: 1 1 0;
  min-height: 0;
  position: relative;
}

.tc-review-tab-pane {
  display: none;
  min-height: 0;
  height: 100%;
}

.tc-review-tab-pane.active {
  display: block;
}

.tc-review-tab-pane--review.active {
  display: flex;
  flex-direction: column;
}

/* ─── Lesson Browser Grid ─── */

.tc-lesson-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--tc-space-3);
  padding: var(--tc-space-4);
}

@media (min-width: 400px) {
  .tc-lesson-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.tc-lesson-card {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  padding: var(--tc-space-4);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-2);
}

.tc-lesson-card:hover {
  background: var(--tc-gray-900);
  border-color: var(--tc-gray-600);
}

.tc-lesson-card.completed {
  border-left: 3px solid var(--tc-emerald);
  opacity: 0.8;
}

.tc-lesson-card.new {
  border-left: 3px solid var(--tc-gray-600);
  opacity: 0.8;
}

.tc-lesson-card-title {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
}

.tc-lesson-card-meta {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
}

.tc-lesson-card-difficulty {
  display: flex;
  gap: 3px;
}

.tc-lesson-card-dot {
  width: 6px;
  height: 6px;
  background: var(--tc-gray-700);
}

.tc-lesson-card-dot.filled {
  background: var(--tc-champagne);
}

/* ═══════════════════════════════════════════════
   LESSON NAVIGATION — Editorial, Minimalista
   ═══════════════════════════════════════════════ */

/* Contenedor principal de navegación - single line, centered */
.tc-lesson-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--tc-space-3);
  padding: var(--tc-space-1) var(--tc-space-4) var(--tc-space-4);
  border-bottom: 1px solid var(--tc-gray-800);
  background: transparent;
  flex-shrink: 0;
}

.tc-lesson-step-nav {
  padding: var(--tc-space-2) var(--tc-space-4);
  border-top: 1px solid var(--tc-gray-800);
  flex-shrink: 0;
}

.tc-lesson-step-shell {
  min-height: 100%;
  width: 100%;
  display: flex;
  flex-direction: column;
}

/* Indicador de paso actual - mono tiny, discreto */
.tc-lesson-step-indicator {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-500);
  min-width: 48px;
  text-align: center;
}

/* Progreso visual sutil - dots en lugar de barra */
.tc-lesson-progress-dots {
  display: flex;
  align-items: center;
  gap: 4px;
}

.tc-lesson-progress-dot {
  width: 4px;
  height: 4px;
  background: var(--tc-gray-700);
  transition: background 0.2s ease;
}

.tc-lesson-progress-dot.filled {
  background: var(--tc-champagne);
}

.tc-lesson-progress-dot.current {
  width: 6px;
  height: 6px;
  background: var(--tc-white-pure);
}

/* Controles de navegación - chevrons minimalistas */
.tc-lesson-nav-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--tc-gray-700);
  color: var(--tc-gray-400);
  cursor: pointer;
  transition: all 0.1s ease;
  padding: 0;
}

.tc-lesson-nav-btn:hover {
  background: var(--tc-gray-900);
  color: var(--tc-white-pure);
  border-color: var(--tc-gray-600);
}

.tc-lesson-nav-btn:disabled {
  opacity: 0.25;
  cursor: not-allowed;
}

.tc-lesson-nav-btn svg {
  width: 14px;
  height: 14px;
}

/* Reset button - discreto, secundario */
.tc-lesson-reset-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  color: var(--tc-gray-500);
  cursor: pointer;
  transition: all 0.1s ease;
  padding: 0;
  margin-left: auto;
}

.tc-lesson-reset-btn:hover {
  background: var(--tc-gray-900);
  color: var(--tc-gray-300);
  border-color: var(--tc-gray-600);
}

.tc-lesson-reset-btn svg {
  width: 12px;
  height: 12px;
}

.tc-lesson-help-btn svg {
  width: 18px;
  height: 18px;
}

.tc-lesson-reset-btn:disabled,
.tc-lesson-help-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  border-color: var(--tc-gray-700);
  color: var(--tc-gray-600);
  background: transparent;
}

.tc-lesson-inline-hint-btn {
  width: auto;
  border-color: var(--tc-gray-600);
  color: var(--tc-gray-200);
}

/* Título de lección - mucho más discreto */
.tc-lesson-header-title {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-300);
  padding: var(--tc-space-4) var(--tc-space-4) var(--tc-space-2);
  text-align: center;
}

/* ═══════════════════════════════════════════════
   LESSON CONTENT — Editorial Layout
   ═══════════════════════════════════════════════ */

/* Container principal - máximo aire y claridad */
.tc-lesson-content {
  width: 100%;
  padding: var(--tc-space-6) var(--tc-space-4);
  max-width: 560px;
  margin: 0 auto;
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
}

/* Voice del coach - simple, legible, con aire */
.tc-coach-voice {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  line-height: var(--tc-leading-relaxed);
  color: var(--tc-gray-300);
  margin-bottom: var(--tc-space-4);
  padding-top: 0;
}

.tc-play-tour-copy {
  font-size: var(--tc-text-small);
}

/* Shared soft narrative style used in lessons and exercises. */
.tc-narrative-note {
  margin-top: var(--tc-space-6);
  font-size: var(--tc-text-small);
  opacity: 0.7;
  font-style: italic;
}

.tc-lesson-step-prompt {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  color: var(--tc-white-pure);
  line-height: var(--tc-leading-relaxed);
  margin-bottom: var(--tc-space-4);
}

.tc-lesson-step-explain {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-relaxed);
}

/* ═══════════════════════════════════════════════
   COACH NAV — Botones de control (review/exercise)
   ═══════════════════════════════════════════════ */

.tc-coach-nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) 0;
}

.tc-lesson-step-nav--early {
  padding: var(--tc-space-3) var(--tc-space-4);
}

.tc-lesson-step-actions {
  display: flex;
  align-items: center;
  gap: var(--tc-space-2);
  margin-left: auto;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.tc-lesson-step-actions--early {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  justify-content: center;
}

.tc-lesson-step-actions--early .tc-coach-btn {
  width: auto;
  min-width: 160px;
  max-width: 220px;
  flex: 1 1 180px;
}

.tc-lesson-knowledge-actions {
  margin-top: var(--tc-space-3);
  display: flex;
  gap: var(--tc-space-2);
  flex-wrap: wrap;
}

.tc-lesson-knowledge-actions .tc-coach-btn {
  width: auto;
  flex: 1 1 140px;
}

.tc-lesson-knowledge-back {
  margin-top: var(--tc-space-3);
  display: flex;
  justify-content: center;
}

.tc-lesson-knowledge-back .tc-coach-btn {
  width: auto;
  min-width: 180px;
}

.tc-coach-navbtn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tc-gray-900);
  border: 1px solid var(--tc-gray-700);
  color: var(--tc-gray-300);
  cursor: pointer;
  transition: background 0.1s ease, color 0.1s ease;
  padding: 0;
}

.tc-coach-navbtn:hover {
  background: var(--tc-gray-800);
  color: var(--tc-white-pure);
}

.tc-coach-navbtn:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

.tc-coach-navbtn svg {
  width: 16px;
  height: 16px;
}

.tc-coach-navbtn--hint {
  border-color: var(--tc-rosegold-deep);
  color: var(--tc-rosegold-light);
}

.tc-coach-navbtn--hint:hover {
  background: var(--tc-rosegold-muted);
  color: var(--tc-rosegold);
}

/* ═══════════════════════════════════════════════
   COACH BANNER — Para intervenciones en juego
   ═══════════════════════════════════════════════ */

.tc-coach-banner {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 25;
  background: var(--tc-gray-950);
  border-top: 1px solid var(--tc-gray-700);
  padding: var(--tc-space-3) var(--tc-space-4);
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-normal);
  transform: translateY(100%);
  transition: transform 0.25s ease;
  pointer-events: auto;
}

.tc-coach-banner.visible {
  transform: translateY(0);
}

.tc-coach-banner-dismiss {
  position: absolute;
  top: var(--tc-space-2);
  right: var(--tc-space-2);
  background: none;
  border: none;
  color: var(--tc-gray-600);
  cursor: pointer;
  font-size: var(--tc-text-tiny);
  padding: var(--tc-space-1);
}

/* ═══════════════════════════════════════════════
   REVIEW STATS — Resumen post-partida
   ═══════════════════════════════════════════════ */

.tc-review-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--tc-space-2);
  padding: var(--tc-space-3) 0;
}

.tc-review-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--tc-space-1);
  padding: var(--tc-space-3);
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-800);
}

.tc-review-stat-value {
  font-family: var(--tc-font-display-alt);
  font-size: var(--tc-text-title);
  font-weight: var(--tc-weight-extrabold);
  color: var(--tc-white-pure);
}

.tc-review-stat-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
}

/* ═══════════════════════════════════════════════
   BUTTONS — Coach specific
   ═══════════════════════════════════════════════ */

.tc-coach-btn {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-tiny);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  padding: var(--tc-space-2) var(--tc-space-4);
  border: 1px solid var(--tc-gray-700);
  background: var(--tc-gray-900);
  color: var(--tc-gray-300);
  cursor: pointer;
  transition: background 0.1s ease, color 0.1s ease, border-color 0.1s ease;
  width: 100%;
  text-align: center;
}

.tc-coach-btn:hover {
  background: var(--tc-gray-800);
  color: var(--tc-white-pure);
  border-color: var(--tc-gray-600);
}

.tc-coach-btn--primary {
  background: var(--tc-crimson);
  border-color: var(--tc-crimson);
  color: var(--tc-white-pure);
}

.tc-coach-btn--primary:hover {
  background: var(--tc-crimson-bright);
  border-color: var(--tc-crimson-bright);
}

.tc-coach-btn--champagne {
  background: var(--tc-champagne-muted);
  border-color: var(--tc-champagne-deep);
  color: var(--tc-champagne);
}

.tc-coach-btn--champagne:hover {
  background: var(--tc-champagne);
  color: var(--tc-black-absolute);
}

/* ═══════════════════════════════════════════════
   VALIDATION TAG — Mensaje de validación del coach
   ═══════════════════════════════════════════════ */

.tc-validation-tag {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-500);
  font-style: italic;
  padding: var(--tc-space-2) 0;
  opacity: 0.8;
}

/* ═══════════════════════════════════════════════
   CATEGORY BADGE — Inline taxonomy tag
   ═══════════════════════════════════════════════ */

.tc-category-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--tc-space-1);
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  padding: 2px var(--tc-space-2);
  border: 1px solid currentColor;
}

.tc-category-badge[data-category="atencion"] {
  color: var(--tc-crimson);
}

.tc-category-badge[data-category="tactica"] {
  color: var(--tc-champagne);
}

.tc-category-badge[data-category="calculo"] {
  color: var(--tc-rosegold);
}

.tc-category-badge[data-category="estrategia"] {
  color: var(--tc-emerald);
}

.tc-category-badge[data-category="final"] {
  color: var(--tc-gray-400);
}

.tc-category-badge[data-category="apertura"] {
  color: var(--tc-champagne-light);
}

.tc-category-badge[data-category="ritmo"] {
  color: var(--tc-gray-500);
}

/* ═══════════════════════════════════════════════
   EMPTY STATES — Editorial Style (matching Jugar)
   ═══════════════════════════════════════════════ */

.tc-coach-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: var(--tc-space-8, 2rem);
  padding-top: var(--tc-space-8, 2rem);
  text-align: center;
  gap: var(--tc-space-1);
  min-height: 300px;
}

/* Legacy icon style */
.tc-coach-empty-icon {
  font-size: 2.5rem;
  color: var(--tc-gray-700);
}

.tc-coach-empty-text {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-500);
  line-height: var(--tc-leading-relaxed);
  max-width: 280px;
}

/* ─── Panel Empty State — Full Editorial (matches Play) ─── */
.tc-panel-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: var(--tc-space-8, 2rem);
  text-align: center;
  height: 100%;
  min-height: 0;
}

.tc-panel-empty-icon {
  font-family: var(--tc-font-display-alt);
  font-size: 8rem;
  font-weight: var(--tc-weight-black);
  line-height: 1;
  color: var(--tc-white-pure);
  opacity: 0.11;
  margin-bottom: var(--tc-space-6);
  letter-spacing: -0.05em;
  user-select: none;
}

/* Shared geometry for first-time mode micro-onboardings (J/A/R). */
.tc-panel-empty-state.tc-microonboarding-state {
  padding-top: 2rem;
}

.tc-panel-empty-icon.tc-microonboarding-icon {
  opacity: 0.11;
  margin-bottom: var(--tc-space-6);
}

/* Match Play's icon-to-title spacing inside Review tabs. */
#panel-review .tc-panel-empty-icon {
  margin-bottom: 2rem;
}

#panel-review .tc-panel-empty-icon.tc-microonboarding-icon {
  margin-bottom: var(--tc-space-6);
}

.tc-panel-empty-headline {
  font-family: var(--tc-font-body);
  font-weight: var(--tc-weight-bold);
  font-size: 1.75rem;
  line-height: var(--tc-leading-snug);
  letter-spacing: var(--tc-tracking-tight);
  color: var(--tc-white-pure);
  margin-bottom: var(--tc-space-4);
}

.tc-panel-empty-body {
  font-family: var(--tc-font-body);
  font-weight: var(--tc-weight-regular);
  font-size: var(--tc-text-body);
  line-height: var(--tc-leading-normal);
  color: var(--tc-gray-400);
  max-width: 320px;
  margin-bottom: var(--tc-space-6);
}

.tc-panel-empty-action {
  width: 100%;
  max-width: 280px;
}

.tc-panel-empty-action .tc-btn {
  padding: var(--tc-space-4) var(--tc-space-6);
}

/* ─── Panel Simple Header (Clean) ─── */
.tc-panel-header-simple {
  padding: var(--tc-space-4) var(--tc-space-4);
  border-bottom: 1px solid var(--tc-gray-800);
  background: transparent;
  flex-shrink: 0;
}

.tc-panel-header-simple h2 {
  font-family: var(--tc-font-display-alt);
  font-weight: var(--tc-weight-extrabold);
  font-size: var(--tc-text-large);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wide);
  color: var(--tc-white-pure);
  margin: 0;
}

.tc-panel-header-simple .tc-panel-subtitle {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  margin-top: var(--tc-space-1);
}

/* ─── Scrollable body with generous spacing ─── */
.tc-panel-body-scroll {
  flex: 1 1 0;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding: var(--tc-space-4);
}

.tc-panel-body-scroll--microonboarding {
  padding-top: 0;
}

.tc-panel-body-scroll--lesson-step {
  padding-bottom: 0;
}

.tc-panel-body-scroll--exercise-step {
  padding-bottom: 0;
}

/* ─── Primary action card (single prominent CTA) ─── */
.tc-primary-card {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  border-left: 3px solid var(--tc-champagne);
  padding: var(--tc-space-5) var(--tc-space-4);
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease;
  margin-bottom: var(--tc-space-4);
}

.tc-primary-card:hover {
  background: var(--tc-gray-900);
  border-color: var(--tc-gray-600);
  border-left-color: var(--tc-champagne);
}

.tc-primary-card-kicker {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-champagne);
  margin-bottom: var(--tc-space-2);
}

.tc-primary-card-title {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
}

.tc-primary-card-subtitle {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-400);
  margin-top: var(--tc-space-1);
}

/* ─── Section divider (subtle) ─── */
.tc-panel-divider {
  height: 1px;
  background: var(--tc-gray-800);
  margin: var(--tc-space-4) 0;
}

.tc-panel-section-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-500);
  margin-bottom: var(--tc-space-3);
}

/* ═══════════════════════════════════════════════
   ASK OPTIONS — Multiple choice questions
   ═══════════════════════════════════════════════ */

.tc-ask-options {
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-2);
  margin: var(--tc-space-3) 0;
}

.tc-ask-option {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  padding: var(--tc-space-3) var(--tc-space-4);
  cursor: pointer;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-300);
  text-align: left;
  transition: background 0.1s ease, border-color 0.1s ease;
}

.tc-ask-option:hover {
  background: var(--tc-gray-900);
  border-color: var(--tc-gray-600);
  color: var(--tc-white-pure);
}

.tc-ask-option--correct {
  border-color: var(--tc-emerald);
  background: rgba(80, 200, 120, 0.08);
  color: var(--tc-emerald-light);
  cursor: default;
}

.tc-ask-option--wrong {
  border-color: var(--tc-crimson);
  background: rgba(220, 38, 38, 0.06);
  color: var(--tc-crimson);
  opacity: 0.7;
  cursor: default;
}

.tc-ask-option--selected {
  border-color: var(--tc-champagne);
  background: rgba(212, 175, 55, 0.08);
  color: var(--tc-white-pure);
}

.tc-ask-option--recommended {
  border-color: var(--tc-gray-500);
  box-shadow: inset 0 0 0 1px rgba(212, 175, 55, 0.3);
}

.tc-ask-option--disabled {
  pointer-events: none;
  opacity: 0.5;
}

.tc-review-option-item {
  display: flex;
  flex-direction: column;
}

.tc-ask-feedback {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-400);
  line-height: var(--tc-leading-relaxed);
  padding: var(--tc-space-2) var(--tc-space-3);
  margin-top: var(--tc-space-1);
  border-left: 2px solid var(--tc-gray-700);
}

.tc-ask-feedback--correct {
  border-left-color: var(--tc-emerald);
  color: var(--tc-emerald-light);
}

.tc-ask-feedback--wrong {
  border-left-color: var(--tc-crimson);
}

/* Lessons keep wrong-answer emphasis warm instead of punitive red. */
.tc-panel-body-scroll--lesson-step .tc-ask-option--wrong,
.tc-panel-body-scroll--lesson-step .tc-ask-option--wrong:hover {
  border: 1px solid var(--tc-champagne);
  background: var(--tc-champagne-muted);
  background-color: var(--tc-champagne-muted);
  color: var(--tc-champagne);
}

.tc-panel-body-scroll--lesson-step .tc-ask-feedback--wrong {
  border-left-color: var(--tc-champagne);
}

.tc-review-option-feedback {
  margin-top: var(--tc-space-2);
  padding: var(--tc-space-3) var(--tc-space-4);
  border-left: 3px solid var(--tc-emerald);
  background: rgba(80, 200, 120, 0.08);
  color: var(--tc-emerald-light);
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  line-height: var(--tc-leading-relaxed);
  white-space: pre-line;
}

/* ═══════════════════════════════════════════════
   EXERCISE PLAYER — Inline puzzle player
   ═══════════════════════════════════════════════ */

.tc-exercise-player {
  max-width: 100%;
  width: 100%;
  min-width: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Exercise header title - persistent like lessons */
.tc-exercise-header-title {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-300);
  padding: var(--tc-space-4) var(--tc-space-4) var(--tc-space-2);
  text-align: center;
}

/* Exercise category - discrete mono, not badge */
.tc-exercise-category {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-500);
  text-align: center;
  padding: 0 var(--tc-space-4) var(--tc-space-3);
}

.tc-review-challenge-subtitle {
  padding-bottom: var(--tc-space-3);
  margin-bottom: var(--tc-space-4);
}

/* Explain opener mirrors lesson header tone and leaves breathing room below nav. */
.tc-review-explain-opener {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-300);
  text-align: center;
  margin-top: var(--tc-space-4);
  margin-bottom: var(--tc-space-3);
}

/* Unified exercise content container */
.tc-exercise-content {
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
  padding: var(--tc-space-6) var(--tc-space-4);
  box-sizing: border-box;
}

/* Exercise objective - editorial text, not box */
.tc-exercise-objective {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-relaxed);
  margin-bottom: var(--tc-space-4);
}

.tc-exercise-objective,
.tc-exercise-content .tc-coach-voice.tc-narrative-note,
#tcExerciseFeedback {
  width: 100%;
}

/* Difficulty - subtle text indicator */
.tc-exercise-difficulty {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-600);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  margin-bottom: var(--tc-space-2);
}

/* Takeaway card - pattern definition */
.tc-exercise-takeaway {
  margin-top: var(--tc-space-3);
  padding: var(--tc-space-2) var(--tc-space-3);
  background: var(--tc-gray-900);
  border-radius: 6px;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-300);
  line-height: var(--tc-leading-relaxed);
}

.tc-exercise-takeaway-kicker {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  color: var(--tc-gray-400);
  margin-bottom: 6px;
}

.tc-exercise-takeaway-summary {
  color: var(--tc-gray-300);
}

.tc-exercise-takeaway-action {
  margin-top: 6px;
  color: var(--tc-gray-400);
}

/* Legacy title kept for compatibility but updated */
.tc-exercise-player-title {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
  margin-bottom: var(--tc-space-1);
}

.tc-exercise-player-hint {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-400);
  font-style: italic;
  line-height: var(--tc-leading-relaxed);
  margin-bottom: var(--tc-space-3);
}

.tc-exercise-player-status {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  padding: var(--tc-space-2) 0;
  text-align: center;
}

.tc-exercise-player-status--waiting {
  color: var(--tc-champagne);
}

.tc-exercise-player-status--correct {
  color: var(--tc-emerald);
}

.tc-exercise-player-status--wrong {
  color: var(--tc-crimson);
}

.tc-exercise-player-status--comparative {
  color: var(--tc-champagne);
  text-transform: none;
  letter-spacing: normal;
  text-align: left;
  line-height: var(--tc-leading-relaxed);
  white-space: pre-line;
}

.tc-exercise-solution {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  border-left: 3px solid var(--tc-emerald);
  padding: var(--tc-space-3) var(--tc-space-4);
  margin: var(--tc-space-3) 0;
}


.tc-exercise-solution-label {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-emerald);
  margin-bottom: var(--tc-space-1);
}

.tc-exercise-solution-move {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
}

.tc-exercise-solution-copy {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-regular);
  line-height: 1.6;
  color: var(--tc-white-pure);
}

.tc-exercise-success-narrative {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 10px;
  padding-left: var(--tc-space-3);
}

.tc-exercise-success-narrative::before {
  content: '';
  position: absolute;
  top: 10px;
  bottom: 15px;
  left: 0;
  width: 2px;
  background: var(--tc-champagne);
}

/* ═══════════════════════════════════════════════
   REVIEW: Move comparison (played vs suggested)
   ═══════════════════════════════════════════════ */

.tc-move-comparison {
  display: flex;
  gap: var(--tc-space-3);
  margin: var(--tc-space-3) 0;
}

.tc-move-played,
.tc-move-suggested {
  flex: 1;
  padding: var(--tc-space-3);
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
}

.tc-move-played {
  border-left: 3px solid var(--tc-crimson);
}

.tc-move-suggested {
  border-left: 3px solid var(--tc-emerald);
}

.tc-move-label {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-bottom: var(--tc-space-1);
}

.tc-move-played .tc-move-label {
  color: var(--tc-crimson);
}

.tc-move-suggested .tc-move-label {
  color: var(--tc-emerald);
}

.tc-move-san {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-body);
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
}

.tc-move-why {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-400);
  margin-top: var(--tc-space-1);
  line-height: var(--tc-leading-relaxed);
}

/* ═══════════════════════════════════════════════
   SCROLL & OVERFLOW
   ═══════════════════════════════════════════════ */

.tc-coach-scroll {
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--tc-gray-700) transparent;
  min-height: 0;
  flex: 1 1 0;
}

.tc-coach-scroll::-webkit-scrollbar {
  width: 4px;
}

.tc-coach-scroll::-webkit-scrollbar-track {
  background: transparent;
}

.tc-coach-scroll::-webkit-scrollbar-thumb {
  background: var(--tc-gray-700);
}

/* ═══════════════════════════════════════════════
   ANIMATIONS
   ═══════════════════════════════════════════════ */

@keyframes tc-coach-fadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.tc-coach-fade-in {
  animation: tc-coach-fadeIn 0.25s ease forwards;
}

@keyframes tc-coach-slideUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.tc-coach-slide-up {
  animation: tc-coach-slideUp 0.3s ease forwards;
}

/* Stagger children */
.tc-coach-stagger>*:nth-child(1) {
  animation-delay: 0ms;
}

.tc-coach-stagger>*:nth-child(2) {
  animation-delay: 80ms;
}

.tc-coach-stagger>*:nth-child(3) {
  animation-delay: 160ms;
}

.tc-coach-stagger>*:nth-child(4) {
  animation-delay: 240ms;
}

.tc-coach-stagger>*:nth-child(5) {
  animation-delay: 320ms;
}

.tc-coach-stagger>*:nth-child(6) {
  animation-delay: 400ms;
}

.tc-coach-stagger>*:nth-child(7) {
  animation-delay: 480ms;
}

/* ═══════════════════════════════════════════════
   BOARD — Editorial square highlights
   Overlays on chess squares for coach annotations.
   Uses the editorial palette: crimson (danger),
   emerald (good), rosegold (focus), gray (neutral).
   ═══════════════════════════════════════════════ */

.tc-sq-hl {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;
  border-radius: 2px;
  animation: tc-sq-pulse 1.8s ease-in-out infinite;
}

.tc-sq-hl--focus {
  background: radial-gradient(circle at center, rgba(201, 169, 137, 0.45) 0%, rgba(201, 169, 137, 0.08) 70%, transparent 100%);
  box-shadow: inset 0 0 0 2.5px rgba(201, 169, 137, 0.7);
}

.tc-sq-hl--danger {
  background: radial-gradient(circle at center, rgba(200, 16, 46, 0.35) 0%, rgba(200, 16, 46, 0.06) 70%, transparent 100%);
  box-shadow: inset 0 0 0 2.5px rgba(200, 16, 46, 0.6);
}

.tc-sq-hl--good {
  background: radial-gradient(circle at center, rgba(16, 185, 129, 0.35) 0%, rgba(16, 185, 129, 0.06) 70%, transparent 100%);
  box-shadow: inset 0 0 0 2.5px rgba(16, 185, 129, 0.6);
}

.tc-sq-hl--neutral {
  background: radial-gradient(circle at center, rgba(255, 255, 255, 0.15) 0%, transparent 70%);
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.25);
}

@keyframes tc-sq-pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.55;
  }
}

/* ═══════════════════════════════════════════════
   FLASHCARDS — Spaced repetition review cards
   ═══════════════════════════════════════════════ */

.tc-flashcard-container {
  padding: var(--tc-space-4);
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-4);
}

.tc-flashcard-progress {
  display: flex;
  align-items: center;
  gap: var(--tc-space-3);
}

.tc-flashcard-progress-bar {
  flex: 1;
  height: 3px;
  background: var(--tc-gray-800);
  position: relative;
  overflow: hidden;
}

.tc-flashcard-progress-fill {
  height: 100%;
  background: var(--tc-champagne);
  transition: width 0.3s ease;
}

.tc-flashcard-progress-text {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-500);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  white-space: nowrap;
}

.tc-flashcard {
  background: var(--tc-gray-950);
  border: 1px solid var(--tc-gray-700);
  padding: var(--tc-space-5, 1.25rem);
  min-height: 120px;
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-3);
  cursor: pointer;
  transition: border-color 0.2s ease;
  position: relative;
}

.tc-flashcard:hover {
  border-color: var(--tc-gray-600);
}

.tc-flashcard--flipped {
  border-left: 3px solid var(--tc-emerald);
  cursor: default;
}

.tc-flashcard-category {
  display: inline-flex;
  align-items: center;
  gap: var(--tc-space-1);
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  padding: 2px var(--tc-space-2);
  border: 1px solid currentColor;
  align-self: flex-start;
}

.tc-flashcard-front {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-white-pure);
  line-height: var(--tc-leading-relaxed);
}

.tc-flashcard-hint {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  color: var(--tc-gray-600);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
}

.tc-flashcard-back {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-emerald-light);
  line-height: var(--tc-leading-relaxed);
  padding-top: var(--tc-space-2);
  border-top: 1px solid var(--tc-gray-800);
}

.tc-flashcard-back .tc-flashcard-answer {
  font-weight: var(--tc-weight-bold);
  color: var(--tc-white-pure);
  margin-bottom: var(--tc-space-1);
}

.tc-flashcard-buttons {
  display: flex;
  gap: var(--tc-space-2);
  margin-top: var(--tc-space-2);
}

.tc-flashcard-btn {
  flex: 1;
  padding: var(--tc-space-2) var(--tc-space-3);
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  font-weight: var(--tc-weight-bold);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wider);
  border: 1px solid var(--tc-gray-700);
  background: var(--tc-gray-900);
  color: var(--tc-gray-300);
  cursor: pointer;
  text-align: center;
  transition: background 0.1s ease, color 0.1s ease;
}

.tc-flashcard-btn:hover {
  background: var(--tc-gray-800);
  color: var(--tc-white-pure);
}

.tc-flashcard-btn--again {
  border-color: var(--tc-crimson);
  color: var(--tc-crimson);
}

.tc-flashcard-btn--again:hover {
  background: rgba(220, 38, 38, 0.1);
}

.tc-flashcard-btn--hard {
  border-color: var(--tc-rosegold);
  color: var(--tc-rosegold);
}

.tc-flashcard-btn--hard:hover {
  background: var(--tc-rosegold-muted);
}

.tc-flashcard-btn--good {
  border-color: var(--tc-emerald);
  color: var(--tc-emerald);
}

.tc-flashcard-btn--good:hover {
  background: rgba(16, 185, 129, 0.1);
}

.tc-flashcard-btn--easy {
  border-color: var(--tc-champagne);
  color: var(--tc-champagne);
}

.tc-flashcard-btn--easy:hover {
  background: var(--tc-champagne-muted);
}

.tc-flashcard-summary {
  text-align: center;
  padding: var(--tc-space-8, 2rem) var(--tc-space-4);
}

.tc-flashcard-summary-icon {
  font-size: 2rem;
  margin-bottom: var(--tc-space-3);
}

.tc-flashcard-summary-title {
  font-family: var(--tc-font-display-alt);
  font-size: var(--tc-text-large);
  font-weight: var(--tc-weight-extrabold);
  color: var(--tc-white-pure);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-wide);
  margin-bottom: var(--tc-space-2);
}

.tc-flashcard-summary-stats {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-400);
  line-height: var(--tc-leading-relaxed);
}

/* ═══════════════════════════════════════════════
   PHASE 6 — Progress Dashboard & Preferences
   ═══════════════════════════════════════════════ */

/* ── Progress Ring (SVG) ───────────────────── */
.tc-progress-ring {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.tc-progress-ring svg {
  transform: rotate(-90deg);
}

.tc-progress-ring-bg {
  fill: none;
  stroke: var(--tc-gray-800, #2a2a2a);
  stroke-width: 4;
}

.tc-progress-ring-fill {
  fill: none;
  stroke: var(--tc-champagne, #c9a96e);
  stroke-width: 4;
  stroke-linecap: round;
  transition: stroke-dashoffset 0.6s ease;
}

.tc-progress-ring-text {
  position: absolute;
  font-family: var(--tc-font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--tc-white-pure);
  text-align: center;
}

/* ── Header Stats Row ──────────────────────── */
.tc-learn-header-stats {
  display: flex;
  align-items: center;
  gap: var(--tc-space-4, 1rem);
  padding: 0 var(--tc-space-4, 1rem) var(--tc-space-2, 0.5rem);
}

.tc-header-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.tc-header-stat-value {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-base, 16px);
  font-weight: 700;
  color: var(--tc-white-pure);
}

.tc-header-stat-label {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
}

/* ── Streak Badge ──────────────────────────── */
.tc-streak-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 10px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--tc-crimson, #dc143c) 0%, var(--tc-rosegold, #b76e79) 100%);
  font-family: var(--tc-font-mono);
  font-size: 11px;
  font-weight: 700;
  color: var(--tc-white-pure);
}

.tc-streak-badge--inactive {
  background: var(--tc-gray-800, #2a2a2a);
  color: var(--tc-gray-500);
}

.tc-streak-badge i {
  font-size: 10px;
}

/* ── Dashboard Cards ───────────────────────── */
.tc-dashboard {
  padding: var(--tc-space-4, 1rem);
  display: flex;
  flex-direction: column;
  gap: var(--tc-space-4, 1rem);
}

.tc-dash-card {
  background: var(--tc-gray-900, #1a1a1a);
  border: 1px solid var(--tc-gray-800, #2a2a2a);
  border-radius: 8px;
  padding: var(--tc-space-4, 1rem);
}

.tc-dash-card-title {
  font-family: var(--tc-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--tc-gray-500);
  margin-bottom: var(--tc-space-3, 0.75rem);
}

/* ── Skill Bars ────────────────────────────── */
.tc-skill-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.tc-skill-bar-label {
  font-family: var(--tc-font-mono);
  font-size: 10px;
  color: var(--tc-gray-400);
  width: 70px;
  text-align: right;
  flex-shrink: 0;
}

.tc-skill-bar-track {
  flex: 1;
  height: 6px;
  background: var(--tc-gray-800, #2a2a2a);
  border-radius: 3px;
  overflow: hidden;
}

.tc-skill-bar-fill {
  height: 100%;
  border-radius: 3px;
  transition: width 0.5s ease;
}

.tc-skill-bar-fill[data-cat="atencion"] {
  background: var(--tc-crimson, #dc143c);
}

.tc-skill-bar-fill[data-cat="tactica"] {
  background: var(--tc-champagne, #c9a96e);
}

.tc-skill-bar-fill[data-cat="calculo"] {
  background: var(--tc-rosegold, #b76e79);
}

.tc-skill-bar-fill[data-cat="estrategia"] {
  background: var(--tc-emerald, #2ecc71);
}

.tc-skill-bar-fill[data-cat="final"] {
  background: var(--tc-gray-400, #888);
}

.tc-skill-bar-fill[data-cat="apertura"] {
  background: #e8d5a3;
}

.tc-skill-bar-fill[data-cat="ritmo"] {
  background: #6b7280;
}

/* ── Activity Chart (7 days) ───────────────── */
.tc-activity-chart {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  height: 60px;
  gap: 4px;
}

.tc-activity-day {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.tc-activity-bar {
  width: 100%;
  min-height: 2px;
  background: var(--tc-champagne, #c9a96e);
  border-radius: 2px 2px 0 0;
  transition: height 0.4s ease;
  opacity: 0.8;
}

.tc-activity-bar--today {
  opacity: 1;
  background: var(--tc-rosegold, #b76e79);
}

.tc-activity-label {
  font-family: var(--tc-font-mono);
  font-size: 8px;
  color: var(--tc-gray-600);
  text-transform: uppercase;
}

/* ── Big Number ────────────────────────────── */
.tc-dash-big-row {
  display: flex;
  justify-content: space-around;
  text-align: center;
  gap: var(--tc-space-2);
}

.tc-dash-big-num {
  font-family: var(--tc-font-mono);
  font-size: 28px;
  font-weight: 800;
  color: var(--tc-white-pure);
  line-height: 1;
}

.tc-dash-big-label {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
  margin-top: 4px;
}

/* ── Preferences Panel ─────────────────────── */
.tc-prefs-section {
  margin-bottom: var(--tc-space-4, 1rem);
}

.tc-prefs-label {
  font-family: var(--tc-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
  margin-bottom: 6px;
}

.tc-prefs-options {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}

.tc-prefs-option {
  padding: 6px 14px;
  border: 1px solid var(--tc-gray-700, #333);
  border-radius: 6px;
  background: transparent;
  color: var(--tc-gray-400);
  font-family: var(--tc-font-mono);
  font-size: 11px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.tc-prefs-option:hover {
  border-color: var(--tc-gray-500);
  color: var(--tc-white-pure);
}

.tc-prefs-option.active {
  border-color: var(--tc-champagne, #c9a96e);
  color: var(--tc-champagne, #c9a96e);
  background: rgba(201, 169, 110, 0.08);
}

/* ── Goal Slider ───────────────────────────── */
.tc-goal-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tc-goal-slider {
  flex: 1;
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  background: var(--tc-gray-800, #2a2a2a);
  border-radius: 2px;
  outline: none;
}

.tc-goal-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  background: var(--tc-champagne, #c9a96e);
  border-radius: 50%;
  cursor: pointer;
}

.tc-goal-value {
  font-family: var(--tc-font-mono);
  font-size: 14px;
  font-weight: 700;
  color: var(--tc-white-pure);
  min-width: 32px;
  text-align: center;
}

/* ═══════════════════════════════════════════════
   EDITORIAL REWORK — Quiet Graphite Layer
   ═══════════════════════════════════════════════ */

:root {
  --tc-coach-surface-0: #0f0f10;
  --tc-coach-surface-1: #141416;
  --tc-coach-surface-2: #1a1a1d;
  --tc-coach-border: #2a2a2f;
}

.tc-review-header {
  padding: 16px;
  background: var(--tc-coach-surface-1);
  border-bottom-color: var(--tc-coach-border);
}

.tc-review-header h2 {
  font-size: 1.05rem;
  letter-spacing: 0.08em;
}

.tc-review-header .tc-review-subtitle {
  margin-top: 6px;
  color: var(--tc-gray-500);
  letter-spacing: 0.12em;
}

.tc-review-body {
  padding: 16px;
  background: var(--tc-coach-surface-0);
}

.tc-learn-tabs {
  background: var(--tc-coach-surface-1);
  border-bottom-color: var(--tc-coach-border);
}

.tc-learn-tab {
  padding: 12px 14px;
  color: var(--tc-gray-500);
  border-bottom-color: transparent;
}

.tc-learn-tab.active {
  color: var(--tc-white-pure);
  border-bottom-color: var(--tc-champagne);
}

.tc-coach-scroll {
  background: var(--tc-coach-surface-0);
}

.tc-lesson-grid {
  gap: 10px;
  padding: 12px 16px 16px;
}

.tc-lesson-card {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  gap: 6px;
  padding: 12px;
  transition: border-color 160ms ease, background 160ms ease;
}

.tc-lesson-card:hover {
  background: var(--tc-coach-surface-2);
  border-color: var(--tc-gray-600);
}

.tc-lesson-card--primary {
  border-left: 3px solid var(--tc-champagne);
  background: linear-gradient(180deg, rgba(212, 175, 55, 0.08), transparent 90%), var(--tc-coach-surface-1);
}

.tc-lesson-card-kicker {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-champagne);
  margin-bottom: 4px;
}

.tc-lesson-card-meta {
  letter-spacing: 0.08em;
}

.tc-learn-section-stack>*+* {
  margin-top: 2px;
}

.tc-learn-feature-section {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  border-left: 3px solid var(--tc-champagne);
  padding: 12px;
}

.tc-exercise-category-header {
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-micro);
  text-transform: uppercase;
  letter-spacing: var(--tc-tracking-widest);
  color: var(--tc-gray-300);
  margin-top: 18px;
  margin-bottom: 8px;
  padding-bottom: 4px;
  border-bottom: 1px solid var(--tc-coach-border);
  display: flex;
  align-items: center;
  gap: 8px;
}

.tc-exercise-category-note {
  margin-left: auto;
  font-size: 8px;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
}

.tc-exercise-card {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  margin: 0;
  padding: 12px;
}

.tc-exercise-card::before {
  width: 2px;
  background: var(--tc-champagne);
}

.tc-exercise-card--recommended {
  border-left: 3px solid var(--tc-champagne);
}

.tc-exercise-label {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  font-weight: var(--tc-weight-semibold);
  text-transform: none;
  letter-spacing: 0.01em;
  margin-bottom: 0;
  color: var(--tc-white-pure);
}


.tc-review-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.tc-review-stats--compact .tc-review-stat {
  background: var(--tc-coach-surface-1);
  border-color: var(--tc-coach-border);
  padding: 8px 10px;
  align-items: flex-start;
}

.tc-review-stats--compact .tc-review-stat-value {
  font-family: var(--tc-font-mono);
  font-size: 16px;
  line-height: 1.1;
}

.tc-review-stats--compact .tc-review-stat-label {
  font-size: 9px;
  letter-spacing: 0.08em;
}

.tc-moment-card {
  background: var(--tc-coach-surface-1);
  border-color: var(--tc-coach-border);
  border-left-width: 2px;
}

.tc-moment-card-header {
  margin-bottom: 8px;
}

.tc-moment-card-tag {
  border-width: 1px;
  padding: 2px 6px;
}

.tc-moment-focus {
  background: var(--tc-coach-surface-2);
  border: 1px solid var(--tc-coach-border);
  border-left: 2px solid var(--tc-champagne);
  padding: 10px 12px;
  margin: 10px 0;
}

.tc-moment-details {
  margin-top: 8px;
  border: 1px solid var(--tc-coach-border);
  background: var(--tc-coach-surface-1);
}

.tc-moment-details>summary {
  cursor: pointer;
  list-style: none;
  padding: 8px 10px;
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--tc-gray-500);
}

.tc-moment-details>summary::-webkit-details-marker {
  display: none;
}

.tc-moment-details[open]>summary {
  border-bottom: 1px solid var(--tc-coach-border);
  color: var(--tc-gray-300);
}

.tc-move-comparison {
  margin: 0;
  gap: 8px;
  padding: 10px;
}

.tc-move-played,
.tc-move-suggested {
  background: var(--tc-coach-surface-0);
  border-color: var(--tc-coach-border);
  border-left-width: 2px;
}

.tc-move-label {
  color: var(--tc-gray-500);
}

.tc-coach-btn {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  color: var(--tc-gray-300);
  transition: background 160ms ease, border-color 160ms ease, color 160ms ease;
}

.tc-coach-btn:hover {
  background: var(--tc-coach-surface-2);
}

.tc-coach-btn--quiet {
  color: var(--tc-gray-400);
  border-color: var(--tc-gray-700);
  background: transparent;
}

.tc-coach-btn--quiet:hover {
  color: var(--tc-gray-100);
  background: var(--tc-coach-surface-2);
  border-color: var(--tc-gray-600);
}

.tc-coach-btn--champagne {
  background: rgba(212, 175, 55, 0.11);
  border-color: rgba(212, 175, 55, 0.55);
  color: var(--tc-champagne-light);
}

.tc-coach-btn--champagne:hover {
  background: var(--tc-champagne);
  color: var(--tc-black-absolute);
  border-color: var(--tc-champagne);
}

/* ── Coach Play Session (embedded in Learn) ───────────────────── */

.tc-coachplay-session {
  display: flex;
  flex-direction: column;
  gap: 12px;
  height: 100%;
  min-height: 100%;
  padding: 12px;
  box-sizing: border-box;
  background:
    linear-gradient(180deg, rgba(212, 175, 55, 0.03) 0%, rgba(15, 15, 16, 0) 42%),
    var(--tc-coach-surface-0);
  border: 1px solid var(--tc-coach-border);
}

.tc-coachplay-header {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--tc-coach-border);
}

.tc-coachplay-kicker {
  font-family: var(--tc-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--tc-champagne);
}

.tc-coachplay-status {
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-200);
  line-height: var(--tc-leading-normal);
}

.tc-coachplay-feed {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 180px;
  max-height: none;
  padding-right: 2px;
}

/* ─── Legacy bubble (backward compat) ─── */
.tc-coachplay-bubble {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  border-left: 2px solid var(--tc-champagne);
  padding: 10px 11px;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-200);
  line-height: var(--tc-leading-relaxed);
}

.tc-coachplay-bubble.warn {
  border-left-color: var(--tc-crimson);
}

.tc-coachplay-bubble.muted {
  color: var(--tc-gray-400);
  border-left-color: var(--tc-gray-600);
}

/* ─── Conversational Turn Layout ─── */
.tc-coachplay-turn {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}

.tc-coachplay-avatar {
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: rgba(212, 175, 55, 0.10);
  border: 1px solid rgba(212, 175, 55, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-family: var(--tc-font-mono);
  font-size: 10px;
  font-weight: 600;
  color: var(--tc-champagne);
  margin-top: 1px;
}

.tc-coachplay-turn-body {
  flex: 1;
  min-width: 0;
}

.tc-coachplay-ply {
  font-family: var(--tc-font-mono);
  font-size: 9px;
  color: var(--tc-gray-600);
  letter-spacing: 0.04em;
  margin-bottom: 3px;
}

/* ─── Structured Message Block ─── */
.tc-coachplay-msg {
  background: var(--tc-coach-surface-1);
  border: 1px solid var(--tc-coach-border);
  border-left: 2px solid var(--tc-champagne);
  padding: 10px 12px;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-small);
  color: var(--tc-gray-200);
  line-height: var(--tc-leading-relaxed);
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.tc-coachplay-msg--premove {
  border-left-color: #5b9bd5;
  background: rgba(91, 155, 213, 0.04);
}

.tc-coachplay-msg--praise {
  border-left-color: var(--tc-champagne);
  background: rgba(212, 175, 55, 0.04);
}

.tc-coachplay-msg--warn {
  border-left-color: var(--tc-crimson);
  background: rgba(180, 40, 40, 0.03);
}

.tc-coachplay-msg--cpu {
  border-left-color: var(--tc-gray-500);
  background: rgba(255, 255, 255, 0.015);
}

.tc-coachplay-msg--system {
  border-left-color: var(--tc-gray-600);
  background: transparent;
}

/* ─── Message Sub-lines ─── */
.tc-coachplay-msg-line {
  margin: 0;
}

.tc-coachplay-msg-line--validation {
  color: var(--tc-gray-300);
}

.tc-coachplay-msg-line--evidence {
  color: var(--tc-gray-200);
}

.tc-coachplay-msg-line--heuristic {
  font-style: italic;
  color: var(--tc-gray-400);
  font-size: calc(var(--tc-text-small) - 1px);
  margin-top: 2px;
}

.tc-coachplay-msg-line--question {
  color: var(--tc-gray-100);
  font-weight: 500;
}

/* ─── Interactive Elements ─── */
.tc-coachplay-show-btn {
  display: inline-block;
  margin-top: 4px;
  padding: 4px 10px;
  font-family: var(--tc-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tc-champagne);
  background: transparent;
  border: 1px solid rgba(212, 175, 55, 0.25);
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}

.tc-coachplay-show-btn:hover {
  background: rgba(212, 175, 55, 0.08);
  border-color: rgba(212, 175, 55, 0.4);
}

/* ─── Continue Button (Gate Release) ─── */
.tc-coachplay-continue-btn {
  display: inline-block;
  margin-top: 6px;
  padding: 5px 14px;
  font-family: var(--tc-font-mono);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tc-gray-100);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 3px;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
  animation: tc-continue-pulse 2s ease-in-out 3s infinite;
}

.tc-coachplay-continue-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.3);
}

@keyframes tc-continue-pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.6; }
}

/* ─── Turn Separator ─── */
.tc-coachplay-separator {
  height: 1px;
  background: var(--tc-coach-border);
  margin: 2px 0;
  opacity: 0.4;
}

.tc-coachplay-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: auto;
  padding-top: 10px;
  border-top: 1px solid var(--tc-coach-border);
}

.tc-coachplay-actions .tc-coach-btn {
  width: 100%;
}

.tc-coachplay-history {
  margin-top: 2px;
  border: 1px solid var(--tc-coach-border);
  background: var(--tc-coach-surface-1);
  max-height: 180px;
  overflow-y: auto;
}

.tc-coachplay-history-title {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 8px 10px;
  font-family: var(--tc-font-mono);
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: var(--tc-gray-400);
  background: var(--tc-coach-surface-2);
  border-bottom: 1px solid var(--tc-coach-border);
}

.tc-coachplay-history-empty {
  padding: 10px;
  font-family: var(--tc-font-body);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-500);
}

.tc-coachplay-history-row {
  padding: 7px 10px;
  font-family: var(--tc-font-mono);
  font-size: var(--tc-text-tiny);
  color: var(--tc-gray-300);
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.tc-coachplay-history-row:last-child {
  border-bottom: 0;
}

.tc-moment-dot {
  border-color: var(--tc-gray-600);
  background: transparent !important;
}

.tc-moment-dot.active {
  border-color: var(--tc-champagne) !important;
  background: var(--tc-champagne) !important;
}

.tc-coach-fade-in {
  animation: tc-coach-fadeIn 0.16s ease forwards;
}

.tc-coach-slide-up {
  animation: tc-coach-slideUp 0.18s ease forwards;
}

@media (min-width: 920px) {
  .tc-review-header {
    padding-left: 20px;
    padding-right: 20px;
  }

  .tc-review-body {
    padding-left: 20px;
    padding-right: 20px;
  }

  .tc-lesson-grid {
    padding-left: 20px;
    padding-right: 20px;
  }

  .tc-exercise-grid {
    padding-left: 20px;
    padding-right: 20px;
  }
}

@media (max-width: 639px) {
  .tc-review-stats {
    grid-template-columns: 1fr 1fr;
  }

  .tc-move-comparison {
    flex-direction: column;
  }

  .tc-learn-tab {
    font-size: 9px;
    padding: 11px 10px;
  }

  .tc-coachplay-session {
    padding: 10px;
    gap: 10px;
  }

  .tc-coachplay-feed {
    min-height: 150px;
    max-height: none;
  }

  .tc-coachplay-avatar {
    width: 22px;
    height: 22px;
    font-size: 9px;
  }

  .tc-coachplay-turn {
    gap: 8px;
  }
}

@media (min-width: 680px) {
  .tc-coachplay-actions {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: reduce) {

  .tc-coach-fade-in,
  .tc-coach-slide-up,
  .tc-moment-dot,
  .tc-coach-btn,
  .tc-lesson-card {
    animation: none !important;
    transition: none !important;
  }
}
