/* ============================================================================
   LIF Trainer Lab — vista de play (motor de práctica)
   FASE 1: estilos para mesa estática
   ============================================================================ */

/* -------- Wrapper general ------------------------------------------------ */
.trainer-play {
  background: linear-gradient(180deg, #050d1c 0%, #020613 100%);
  border-radius: var(--radius);
  padding: 20px 24px 24px;
  color: white;
  min-height: 480px;
}

/* -------- Header --------------------------------------------------------- */
.trainer-play__header {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px solid rgba(127, 200, 232, 0.15);
}

.trainer-play__header-info {
  grid-column: 2;
  text-align: center;
}

.trainer-play__exit {
  grid-column: 3;
  justify-self: end;
}

.trainer-play__header-eyebrow {
  font-size: 11px;
  color: rgba(127, 200, 232, 0.7);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.trainer-play__header-title {
  font-size: 14px;
  color: white;
  font-weight: 500;
  margin-top: 2px;
}

.trainer-play__exit {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: rgba(255, 255, 255, 0.75);
  padding: 6px 14px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
  cursor: pointer;
  transition: var(--transition);
}

.trainer-play__exit:hover {
  border-color: rgba(127, 200, 232, 0.55);
  color: white;
}

/* -------- Contenedor de la mesa ------------------------------------------ */
.trainer-play__table-container {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px 0 50px;
}

/* Mesa: ratio más oval (700×360 → felt visible ~2.13:1) */
.trainer-table {
  position: relative;
  width: 100%;
  max-width: 700px;
  height: 360px;
}

/* -------- Felt (fondo de la mesa) ---------------------------------------- */
.trainer-table__felt {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 88%;
  height: 78%;
  background: radial-gradient(ellipse at center, #1d4877 0%, #143A5F 50%, #0d2a4a 100%);
  border: 4px solid #2a1810;
  border-radius: 50%;
  box-shadow:
    inset 0 0 50px rgba(0, 0, 0, 0.45),
    0 6px 30px rgba(0, 0, 0, 0.5);
}

/* -------- Anillo decorativo interno -------------------------------------- */
.trainer-table__ring {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 78%;
  height: 68%;
  border: 1px solid rgba(127, 200, 232, 0.18);
  border-radius: 50%;
  pointer-events: none;
}

/* -------- POT (parte superior central) ---------------------------------- */
.trainer-table__pot {
  position: absolute;
  top: 28%;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0, 0, 0, 0.55);
  border: 1px solid rgba(127, 200, 232, 0.4);
  padding: 5px 16px;
  border-radius: 999px;
  backdrop-filter: blur(4px);
  display: flex;
  gap: 8px;
  align-items: center;
  pointer-events: none;
}

.trainer-table__pot-label {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.55);
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.trainer-table__pot-value {
  font-size: 14px;
  color: #7fc8e8;
  font-weight: 500;
}

/* -------- LET IT FLOW (mismo estilo del header del index público) ------- */
.trainer-table__brand {
  position: absolute;
  top: 56%;
  left: 50%;
  transform: translateX(-50%);
  pointer-events: none;
}

.trainer-table__brand-tagline {
  font-family: 'Montserrat', system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: .46em;
  font-size: clamp(12px, 2.2vw, 22px);
  color: rgba(var(--primary-rgb), .95);
  text-shadow:
    0 0 14px rgba(var(--primary-rgb), .35),
    0 0 34px rgba(var(--accent-rgb), .20);
  filter: drop-shadow(0 10px 24px rgba(0, 0, 0, .25));
  white-space: nowrap;
}

/* -------- Asientos ------------------------------------------------------- */
.trainer-seat {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.trainer-seat__avatar {
  position: relative;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  background: #1a2538;
  border: 2px solid #4a6890;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  color: #d8e4f0;
  transition: var(--transition);
}

.trainer-seat__pos {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.3px;
  line-height: 1.1;
}

.trainer-seat__stack {
  font-size: 15px;
  font-weight: 800;
  color: #7fc8e8;
  line-height: 1.1;
}

/* -------- Bounty badge (PKO only) --------------------------------------- */
/* Aparece arriba del avatar, formato compacto en $.
   Diseño inspirado en el badge de bounty de GGPoker (oscuro, dorado). */
.trainer-seat__bounty {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  padding: 2px 8px;
  background: linear-gradient(180deg, #2a1810 0%, #1a0f08 100%);
  border: 1px solid rgba(245, 185, 66, 0.55);
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  color: #f5d97a;
  white-space: nowrap;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}

.trainer-seat__bounty-icon {
  color: #f5b942;
  font-size: 9px;
  line-height: 1;
}

.trainer-seat__bounty-value {
  letter-spacing: 0.2px;
}

/* Hero: badge un poco más grande */
.trainer-seat.is-hero .trainer-seat__bounty {
  font-size: 12px;
  padding: 3px 9px;
}

/* Estado: pending (asiento neutro, esperando acción) */
.trainer-seat.is-pending .trainer-seat__avatar {
  border-color: #4a6890;
}

/* Estado: fold — borde rojo. La info de pos+stack queda visible una vez
   que el overlay momentáneo "FOLD" se desvanece. */
.trainer-seat.is-fold .trainer-seat__avatar {
  border-color: #c54545;
}

/* Estado: active (alguien con acción visible reciente, e.g. raise) */
.trainer-seat.is-active .trainer-seat__avatar {
  border-color: #f5b942;
  color: #f5d97a;
  box-shadow: 0 0 12px rgba(245, 185, 66, 0.35);
}
.trainer-seat.is-active .trainer-seat__stack {
  color: #f5d97a;
}

/* Estado: hero (resaltado en cyan LIF, avatar más grande) */
.trainer-seat.is-hero .trainer-seat__avatar {
  width: 64px;
  height: 64px;
  background: linear-gradient(135deg, #5fb4d8 0%, #2c7fa8 60%, #1a4f78 100%);
  border: 3px solid #9fd5ed;
  box-shadow: 0 0 26px rgba(127, 200, 232, 0.7);
  color: white;
}
.trainer-seat.is-hero .trainer-seat__pos {
  font-size: 14px;
  font-weight: 800;
}
.trainer-seat.is-hero .trainer-seat__stack {
  font-size: 16px;
  font-weight: 800;
  color: white;
}

/* Cartas del hero: posicionadas absolutamente a la derecha del avatar.
   Esto evita que el bloque del hero se ensanche y desplace el avatar
   del eje x=50% del table. Las cartas flotan en el espacio entre BB y SB. */
.trainer-seat.is-hero .trainer-seat__cards {
  position: absolute;
  left: 100%;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 12px;
  margin-bottom: 0;
}

/* -------- Botón del dealer ---------------------------------------------- */
/* Posición dinámica — siempre hacia el centro de la mesa (lado interior
   del avatar). --dealer-x y --dealer-y los setea play-view.js a partir
   del ángulo del seat. */
.trainer-seat__dealer {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(
    calc(-50% + var(--dealer-x, 0px)),
    calc(-50% + var(--dealer-y, 0px))
  );
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: white;
  color: #143A5F;
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
  border: 1px solid rgba(127, 200, 232, 0.5);
}

/* -------- Fold overlay (momentáneo dentro del avatar) ------------------- */
.trainer-seat__fold-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(197, 69, 69, 0.92);
  color: white;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: trainer-fold-flash 1.2s ease-out forwards;
  pointer-events: none;
  z-index: 2;
}

@keyframes trainer-fold-flash {
  0%   { opacity: 0; transform: scale(0.7); }
  18%  { opacity: 1; transform: scale(1); }
  65%  { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(1); }
}

/* -------- Acción del jugador (raise label, etc.) ------------------------ */
.trainer-seat__action {
  background: rgba(245, 185, 66, 0.18);
  border: 1px solid #f5b942;
  color: #f5d97a;
  font-size: 10px;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 999px;
  white-space: nowrap;
}

/* -------- Cartas del hero (estilo solid color background) --------------- */
/* Usamos !important defensivo para los colores de palo porque son
   INFORMACIÓN crítica (el alumno tiene que distinguir el palo siempre)
   y no queremos que reglas de otros archivos CSS los sobreescriban. */
.trainer-seat__cards {
  display: flex;
  gap: 4px;
}

.trainer-card-mini {
  width: 38px;
  height: 52px;
  border-radius: 6px;
  padding: 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.45);
  color: white !important;
  background-color: #3a3a3a; /* fallback */
}

.trainer-card-mini__rank {
  font-size: 18px;
  font-weight: 800;
  line-height: 1;
  color: white !important;
}

.trainer-card-mini__suit {
  font-size: 17px;
  line-height: 1;
  color: white !important;
}

/* Baraja de 4 colores */
.trainer-card-mini.is-hearts   { background-color: #d11d1d !important; }
.trainer-card-mini.is-diamonds { background-color: #2563eb !important; }
.trainer-card-mini.is-clubs    { background-color: #15803d !important; }
.trainer-card-mini.is-spades   { background-color: #3a3a3a !important; }

/* -------- Banner de fase (placeholder informativo) ---------------------- */
.trainer-play__phase-banner {
  margin-top: 16px;
  padding: 12px 16px;
  background: rgba(127, 200, 232, 0.08);
  border: 1px solid rgba(127, 200, 232, 0.25);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.75);
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.trainer-play__phase-banner strong {
  color: #7fc8e8;
  font-weight: 500;
}

/* -------- Lobby de contexto del torneo (reemplaza a .trainer-strip) ----- */
.trainer-lobby {
  margin-bottom: 12px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid rgba(var(--primary-rgb), .22);
  background: rgba(var(--primary-rgb), .06);
}

/* ---- Colapsado: chips ----------------------------------------------------- */
.trainer-lobby__summary {
  width: 100%;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 10px; padding: 10px 14px;
  background: transparent; border: 0;
  color: var(--text-soft);
  font-family: var(--font-body); font-size: 12px;
  cursor: pointer; transition: var(--transition);
}
.trainer-lobby__summary:hover { background: rgba(var(--primary-rgb), .10); }
.trainer-lobby__chip {
  display: inline-flex; align-items: center;
  padding: 3px 10px;
  background: rgba(0, 0, 0, .35);
  border: 1px solid rgba(var(--primary-rgb), .25);
  border-radius: 999px;
  font-size: 11px; letter-spacing: .3px; white-space: nowrap;
}
.trainer-lobby[data-format="PKO"]    .trainer-lobby__chip--format { background: rgba(245,166,35,.18); border-color: rgba(245,166,35,.55); color: #F5C56A; font-weight: 700; }
.trainer-lobby[data-format="ICM"]    .trainer-lobby__chip--format { background: rgba(16,185,129,.15); border-color: rgba(16,185,129,.55); color: #6ED4A3; font-weight: 700; }
.trainer-lobby[data-format="ChipEv"] .trainer-lobby__chip--format { background: rgba(var(--primary-rgb),.18); border-color: rgba(var(--primary-rgb),.55); color: var(--primary); font-weight: 700; }
.trainer-lobby__caret {
  color: rgba(var(--primary-rgb), .85); font-size: 18px; line-height: 1;
  transition: transform .2s ease;
}
.trainer-lobby__summary[aria-expanded="true"] .trainer-lobby__caret { transform: rotate(180deg); }

/* ---- Expandido: panel lobby ---------------------------------------------- */
.trainer-lobby__panel[hidden] { display: none !important; }
.trainer-lobby__panel {
  border-top: 1px solid rgba(var(--primary-rgb), .18);
  background: #001127;
  color: #E8F4FA;
}

/* header */
.trainer-lobby__header {
  background: linear-gradient(135deg, var(--deep) 0%, #001A3D 60%, #002752 100%);
  padding: 12px 13px;
  border-bottom: 1px solid rgba(var(--primary-rgb), .30);
}
.trainer-lobby__header-row { display: flex; align-items: flex-start; gap: 10px; }
.trainer-lobby__logo {
  width: 36px; height: 36px; flex-shrink: 0; border-radius: 4px;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display); font-size: 17px; color: #001127; letter-spacing: .04em;
}
.trainer-lobby__head-main { flex: 1; min-width: 0; }
.trainer-lobby__title {
  font-family: var(--font-display); font-size: 17px; letter-spacing: .04em;
  color: #FFF; line-height: 1.05; text-transform: uppercase;
}
.trainer-lobby__subtitle  { font-size: 11px; color: var(--primary); margin-top: 3px; }
.trainer-lobby__subtitle2 { font-size: 10px; color: rgba(255,255,255,.75); margin-top: 1px; }
.trainer-lobby__pill {
  display: inline-block; margin-left: 4px; padding: 1px 5px; border-radius: 2px;
  font-size: 9px; font-weight: 700; letter-spacing: .08em;
}
.trainer-lobby[data-format="PKO"]    .trainer-lobby__pill { background: rgba(245,166,35,.20); color: #F5A623; }
.trainer-lobby[data-format="ICM"]    .trainer-lobby__pill { background: rgba(16,185,129,.20); color: #4ADE80; }
.trainer-lobby[data-format="ChipEv"] .trainer-lobby__pill { background: rgba(var(--primary-rgb),.20); color: var(--primary); }

/* entries */
.trainer-lobby__entries {
  padding: 9px 13px; text-align: center;
  background: linear-gradient(180deg, rgba(245,166,35,.08), transparent);
  border-bottom: 1px solid rgba(var(--primary-rgb), .18);
  font-size: 11.5px; color: rgba(255,255,255,.9);
}
.trainer-lobby__entries strong { color: #FFF; font-weight: 700; }
.trainer-lobby__entries .paid  { color: var(--primary); }
.trainer-lobby__itm {
  display: inline-block; margin-left: 3px; padding: 1px 5px; border-radius: 2px;
  font-size: 9px; font-weight: 700; letter-spacing: .08em; vertical-align: 1px;
}
.trainer-lobby__itm.is-in  { background: rgba(16,185,129,.18); color: #4ADE80; }
.trainer-lobby__itm.is-out { background: rgba(239,68,68,.18); color: #EF4444; }

/* blinds */
.trainer-lobby__blinds {
  padding: 12px 13px; text-align: center;
  background: rgba(0, 0, 0, .32);
  border-bottom: 1px solid rgba(var(--primary-rgb), .18);
}
.trainer-lobby__blinds-value { color: #FFF; font-family: var(--font-display); font-size: 20px; letter-spacing: .05em; }
.trainer-lobby__level        { color: var(--primary); }

/* your seat */
.trainer-lobby__seat {
  margin: 10px; padding: 10px 12px;
  background: linear-gradient(135deg, rgba(245,166,35,.16), rgba(245,166,35,.05));
  border: 1px solid rgba(245,166,35,.5); border-radius: 4px;
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.trainer-lobby__seat-stack { display: flex; flex-direction: column; gap: 1px; }
.trainer-lobby__seat-label { font-size: 9px; color: #F5A623; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; }
.trainer-lobby__seat-value { font-family: var(--font-display); font-size: 25px; color: #FFF; line-height: 1; margin-top: 2px; }
.trainer-lobby__seat-bb    { font-size: 13px; color: #F5A623; margin-left: 2px; font-family: var(--font-display); }
.trainer-lobby__seat-sub   { font-size: 10.5px; color: rgba(255,255,255,.7); margin-top: 2px; }
.trainer-lobby__rank       { background: #F5A623; color: #2A1700; padding: 7px 11px; border-radius: 4px; text-align: center; line-height: 1; flex-shrink: 0; }
.trainer-lobby__rank-num   { font-size: 15px; font-family: var(--font-display); letter-spacing: .04em; white-space: nowrap; }
.trainer-lobby__rank-label { font-size: 8.5px; letter-spacing: .12em; margin-top: 3px; color: rgba(42,23,0,.85); font-weight: 700; }

/* field */
.trainer-lobby__field {
  padding: 10px 13px;
  border-top: 1px solid rgba(var(--primary-rgb), .18);
  border-bottom: 1px solid rgba(var(--primary-rgb), .18);
  background: rgba(0, 0, 0, .2);
}
.trainer-lobby__field-row { display: flex; justify-content: space-between; align-items: baseline; font-size: 11.5px; padding: 2px 0; }
.trainer-lobby__field-row.is-highlight { padding: 5px 0; }
.trainer-lobby__field-divider { border-top: 1px solid rgba(var(--primary-rgb), .14); margin: 4px 0; }
.trainer-lobby__field-key { color: rgba(255,255,255,.75); font-size: 11px; }
.trainer-lobby__field-key.is-bold { color: var(--primary); font-weight: 700; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.trainer-lobby__field-val { color: #FFF; font-variant-numeric: tabular-nums; }
.trainer-lobby__field-val.is-bold   { font-size: 17px; font-family: var(--font-display); letter-spacing: .02em; }
.trainer-lobby__field-val.is-bounty { color: #F5A623; }

/* payouts */
.trainer-lobby__paytab {
  padding: 9px; text-align: center;
  background: rgba(var(--primary-rgb), .08); color: #FFF;
  border-bottom: 2px solid var(--primary);
  font-size: 11.5px; font-family: var(--font-display); letter-spacing: .16em;
}
.trainer-lobby__payouts { max-height: 320px; overflow-y: auto; padding: 2px 0 4px; }
.trainer-lobby__payout-row {
  display: grid; grid-template-columns: 100px 1fr; gap: 8px;
  padding: 6px 13px; font-size: 12px; align-items: center;
  border-bottom: 1px solid rgba(var(--primary-rgb), .06);
}
.trainer-lobby__payout-row.is-alt { background: rgba(var(--primary-rgb), .04); }
.trainer-lobby__payout-place { color: #FFF; font-family: var(--font-display); font-size: 14px; letter-spacing: .05em; }
.trainer-lobby__payout-place.is-top { color: #F5A623; }
.trainer-lobby__payout-amount { color: #FFF; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.trainer-lobby__payouts::-webkit-scrollbar { width: 5px; }
.trainer-lobby__payouts::-webkit-scrollbar-track { background: rgba(0, 0, 0, .25); }
.trainer-lobby__payouts::-webkit-scrollbar-thumb { background: rgba(var(--primary-rgb), .3); border-radius: 3px; }

/* mobile */
@media (max-width: 560px) {
  .trainer-lobby__summary { gap: 6px; padding: 8px 10px; }
  .trainer-lobby__chip { font-size: 10px; padding: 2px 8px; }
  .trainer-lobby__payout-row { grid-template-columns: 88px 1fr; }
}

/* -------- Mobile -------------------------------------------------------- */
@media (max-width: 720px) {
  .trainer-play {
    padding: 16px 14px 18px;
  }
  .trainer-play__table-container {
    padding: 20px 0 36px;
  }
  .trainer-table {
    height: 320px;
  }
  .trainer-seat__avatar {
    width: 46px;
    height: 46px;
  }
  .trainer-seat.is-hero .trainer-seat__avatar {
    width: 54px;
    height: 54px;
  }
  .trainer-seat__pos {
    font-size: 11px;
  }
  .trainer-seat__stack {
    font-size: 13px;
  }
  .trainer-seat.is-hero .trainer-seat__pos {
    font-size: 12px;
  }
  .trainer-seat.is-hero .trainer-seat__stack {
    font-size: 14px;
  }
  .trainer-seat.is-hero .trainer-seat__cards {
    margin-left: 8px;
  }
  .trainer-card-mini {
    width: 32px;
    height: 44px;
  }
  .trainer-card-mini__rank {
    font-size: 15px;
  }
  .trainer-card-mini__suit {
    font-size: 14px;
  }
  .trainer-table__brand-tagline {
    letter-spacing: .30em;
  }
  .trainer-seat__fold-overlay {
    font-size: 11px;
  }
  .trainer-seat__bounty {
    font-size: 9px;
    padding: 1px 6px;
  }
  .trainer-seat.is-hero .trainer-seat__bounty {
    font-size: 10px;
  }
}
/* ============================================================================
   FASES 2+3+4 — stage (mesa+lobby), acciones, feedback, grilla, tira ITM
   ============================================================================ */

/* -------- Stage: mesa (izquierda) + lobby (derecha) --------------------- */
.trainer-play__stage {
  display: flex;
  align-items: stretch;
  gap: 18px;
}
.trainer-play__table-column {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
}
.trainer-play__lobby-mount {
  flex: 0 0 312px;
  width: 312px;
  transition: flex-basis .3s ease, width .3s ease;
}
/* Lobby retraído: la mesa toma todo el ancho, el mount colapsa. */
.trainer-play__stage.is-lobby-collapsed .trainer-play__lobby-mount {
  flex-basis: 0;
  width: 0;
  overflow: hidden;
}

/* -------- Lobby dockeado a la derecha ----------------------------------- */
.trainer-lobby {
  position: relative;
  height: 100%;
  margin: 0;                 /* anula el margin-bottom del lobby viejo */
  border-radius: var(--radius-sm);
  border: 1px solid rgba(var(--primary-rgb), .22);
  background: rgba(var(--primary-rgb), .06);
  overflow: visible;         /* el botón de retraer sobresale */
}
.trainer-lobby[hidden] { display: none !important; }
.trainer-lobby__scroll {
  height: 100%;
  max-height: 560px;
  overflow-y: auto;
  padding: 14px;
}
.trainer-lobby__retract {
  position: absolute; top: 12px; left: -13px; z-index: 4;
  width: 26px; height: 26px; border-radius: 50%;
  cursor: pointer;
  border: 1px solid rgba(var(--primary-rgb), .5);
  background: #0d1f33; color: var(--primary);
  font-weight: 800; font-size: 14px; line-height: 1;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .5);
  transition: background .15s ease;
}
.trainer-lobby__retract:hover { background: #12283f; }
.trainer-lobby__scroll::-webkit-scrollbar { width: 6px; }
.trainer-lobby__scroll::-webkit-scrollbar-track { background: rgba(0, 0, 0, .2); }
.trainer-lobby__scroll::-webkit-scrollbar-thumb { background: rgba(var(--primary-rgb), .3); border-radius: 3px; }

/* -------- Tira colapsada (arriba, full width) con color ITM ------------- */
.trainer-strip {
  margin-bottom: 12px;
  border-radius: var(--radius-sm);
  border: 1px solid rgba(var(--primary-rgb), .22);
  background: rgba(var(--primary-rgb), .06);
  overflow: hidden;
}
.trainer-strip[hidden] { display: none !important; }
.trainer-strip__summary {
  width: 100%;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: 10px; padding: 10px 14px;
  background: transparent; border: 0; cursor: pointer;
  color: var(--text-soft); font-family: var(--font-body); font-size: 12px;
  transition: var(--transition);
}
.trainer-strip__summary:hover { background: rgba(var(--primary-rgb), .10); }
.trainer-strip__chip {
  display: inline-flex; align-items: center; padding: 3px 10px;
  background: rgba(0, 0, 0, .35);
  border: 1px solid rgba(var(--primary-rgb), .25);
  border-radius: 999px;
  font-size: 11px; letter-spacing: .3px; white-space: nowrap;
}
.trainer-strip[data-format="PKO"]    .trainer-strip__chip--format { background: rgba(245,166,35,.18); border-color: rgba(245,166,35,.55); color: #F5C56A; font-weight: 700; }
.trainer-strip[data-format="ICM"]    .trainer-strip__chip--format { background: rgba(16,185,129,.15); border-color: rgba(16,185,129,.55); color: #6ED4A3; font-weight: 700; }
.trainer-strip[data-format="ChipEv"] .trainer-strip__chip--format { background: rgba(var(--primary-rgb),.18); border-color: rgba(var(--primary-rgb),.55); color: var(--primary); font-weight: 700; }
/* Chip de estado del field: verde si ITM, rojo si no. */
.trainer-strip__chip--itm.is-in  { background: rgba(34,185,85,.16);  border-color: rgba(34,185,85,.65);  color: #7ee9a4; font-weight: 700; }
.trainer-strip__chip--itm.is-out { background: rgba(216,80,79,.16);  border-color: rgba(216,80,79,.65);  color: #f3a3a2; font-weight: 700; }
.trainer-strip__expand { color: rgba(var(--primary-rgb), .85); font-size: 15px; line-height: 1; margin-left: 2px; }

/* -------- Panel inferior (acciones / feedback) -------------------------- */
.trainer-play__panel {
  margin-top: 4px;
}
.trainer-play__prompt {
  text-align: center; font-size: 14px; color: rgba(255,255,255,.82);
  margin-bottom: 12px;
}
.trainer-play__prompt strong { color: var(--primary); }

/* -------- Botones de acción --------------------------------------------- */
.trainer-actions {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
}
.trainer-action {
  --action-color: #5fb4d8;
  flex: 0 1 auto; min-width: 120px;
  padding: 13px 22px; border-radius: var(--radius-sm);
  font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
  color: #fff;
  background: color-mix(in srgb, var(--action-color) 22%, #0a1626);
  border: 1.5px solid var(--action-color);
  transition: transform .1s ease, background .15s ease, box-shadow .15s ease;
}
.trainer-action:hover {
  background: color-mix(in srgb, var(--action-color) 40%, #0a1626);
  box-shadow: 0 0 18px color-mix(in srgb, var(--action-color) 40%, transparent);
  transform: translateY(-1px);
}
.trainer-action:active { transform: translateY(0); }
.trainer-action--fold { color: #d8e4f0; }

/* -------- Feedback ------------------------------------------------------- */
.trainer-feedback__banner {
  border-radius: var(--radius-sm); padding: 12px 16px; margin-bottom: 14px;
  border-left: 4px solid;
}
.trainer-feedback__banner.is-correct { background: rgba(34,185,85,.12);  border-color: #22b955; }
.trainer-feedback__banner.is-mixed   { background: rgba(245,185,66,.12); border-color: #f5b942; }
.trainer-feedback__banner.is-low     { background: rgba(217,137,58,.12); border-color: #d9893a; }
.trainer-feedback__banner.is-mistake { background: rgba(216,80,79,.12);  border-color: #d8504f; }
.trainer-feedback__verdict { font-size: 16px; font-weight: 800; color: #fff; margin-bottom: 3px; }
.trainer-feedback__blurb { font-size: 12.5px; color: rgba(255,255,255,.78); line-height: 1.45; }
.trainer-feedback__blurb strong { color: #fff; }

.trainer-feedback__breakdown {
  display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px;
}
.trainer-feedback__row {
  display: grid; grid-template-columns: 150px 1fr 110px; align-items: center; gap: 12px;
  padding: 7px 10px; border-radius: 8px;
  background: rgba(255,255,255,.025);
}
.trainer-feedback__row.is-chosen { background: rgba(var(--primary-rgb),.10); outline: 1px solid rgba(var(--primary-rgb),.3); }
.trainer-feedback__row-head { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.trainer-feedback__row-swatch { width: 12px; height: 12px; border-radius: 3px; flex-shrink: 0; }
.trainer-feedback__row-label { font-weight: 700; font-size: 13px; color: #fff; }
.trainer-feedback__row-best, .trainer-feedback__row-you {
  font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  padding: 2px 6px; border-radius: 4px;
}
.trainer-feedback__row-best { background: rgba(34,185,85,.2); color: #7ee9a4; }
.trainer-feedback__row-you  { background: rgba(var(--primary-rgb),.2); color: var(--primary); }
.trainer-feedback__bar-track { height: 10px; border-radius: 999px; background: rgba(0,0,0,.35); overflow: hidden; }
.trainer-feedback__bar-fill { height: 100%; border-radius: 999px; transition: width .4s ease; }
.trainer-feedback__row-meta { display: flex; justify-content: flex-end; gap: 12px; font-variant-numeric: tabular-nums; }
.trainer-feedback__row-freq { font-weight: 700; font-size: 13px; color: #fff; }
.trainer-feedback__row-ev { font-size: 12px; color: rgba(255,255,255,.55); }

/* -------- Grilla 13×13 --------------------------------------------------- */
.trainer-feedback__grid-section { margin-bottom: 18px; }
.trainer-feedback__grid-title {
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase;
  color: rgba(var(--primary-rgb), .75); font-weight: 700; margin-bottom: 8px;
}
.trainer-grid { display: flex; flex-direction: column; gap: 10px; }
.trainer-grid__matrix {
  display: grid;
  grid-template-columns: repeat(13, 1fr);
  gap: 2px;
  width: 100%;
  max-width: 360px;
}
.trainer-grid__cell {
  position: relative;
  aspect-ratio: 1 / 1;
  border-radius: 3px;
  background: #1a2538;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden;
}
.trainer-grid__cell.is-empty { background: #121a28; opacity: .4; }
.trainer-grid__cell-label {
  position: relative; z-index: 2;
  font-size: 9.5px; font-weight: 700; color: #fff;
  text-shadow: 0 1px 2px rgba(0,0,0,.8);
  pointer-events: none;
}
.trainer-grid__cell.is-empty .trainer-grid__cell-label { color: rgba(255,255,255,.4); text-shadow: none; }
.trainer-grid__cell.is-highlight {
  outline: 2.5px solid #fff;
  outline-offset: -1px;
  z-index: 3;
  box-shadow: 0 0 14px rgba(255,255,255,.6);
}
.trainer-grid__legend { display: flex; flex-wrap: wrap; gap: 14px; }
.trainer-grid__legend-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: rgba(255,255,255,.75); }
.trainer-grid__legend-swatch { width: 12px; height: 12px; border-radius: 3px; }

/* -------- Botón siguiente ----------------------------------------------- */
.trainer-feedback__next {
  display: block; width: 100%; max-width: 320px; margin: 0 auto;
  padding: 13px; border-radius: var(--radius-sm);
  font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer;
  color: #06121f;
  background: linear-gradient(135deg, #9fd5ed, #5fb4d8);
  border: 0;
  transition: filter .15s ease, transform .1s ease;
}
.trainer-feedback__next:hover { filter: brightness(1.08); transform: translateY(-1px); }

/* -------- Bet chip de jugadores 'live' (limp/call) ---------------------- */
.trainer-seat__bet {
  position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
  background: rgba(0,0,0,.6); border: 1px solid rgba(var(--primary-rgb),.35);
  color: #cfe6f3; font-size: 10px; font-weight: 700;
  padding: 1px 7px; border-radius: 999px; white-space: nowrap;
}
.trainer-seat.is-live .trainer-seat__avatar { border-color: #6d8fb8; }

/* -------- Score en el header -------------------------------------------- */
.trainer-play__score { grid-column: 1; justify-self: start; display: flex; gap: 6px; }
.trainer-play__score-chip {
  font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.trainer-play__score-chip.is-correct { background: rgba(34,185,85,.16); color: #7ee9a4; }
.trainer-play__score-chip.is-mixed   { background: rgba(245,185,66,.16); color: #f5d97a; }
.trainer-play__score-chip.is-mistake { background: rgba(216,80,79,.16); color: #f3a3a2; }

/* -------- Loading / error / summary ------------------------------------- */
.trainer-play__loading, .trainer-play__error, .trainer-play__summary {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 60px 20px; gap: 14px; min-height: 300px;
}
.trainer-play__spinner {
  width: 38px; height: 38px; border-radius: 50%;
  border: 3px solid rgba(var(--primary-rgb),.2); border-top-color: var(--primary);
  animation: trainer-spin .8s linear infinite;
}
@keyframes trainer-spin { to { transform: rotate(360deg); } }
.trainer-play__loading-text { color: rgba(255,255,255,.6); font-size: 13px; }
.trainer-play__error-icon { font-size: 32px; color: #f5b942; }
.trainer-play__error-text { color: rgba(255,255,255,.8); font-size: 14px; max-width: 360px; }
.trainer-play__retry, .trainer-play__summary-exit {
  padding: 10px 20px; border-radius: var(--radius-sm); cursor: pointer;
  font-family: inherit; font-size: 13px; font-weight: 700; color: #06121f;
  background: linear-gradient(135deg, #9fd5ed, #5fb4d8); border: 0;
}
.trainer-play__summary-title { font-size: 14px; letter-spacing: .1em; text-transform: uppercase; color: rgba(var(--primary-rgb),.8); }
.trainer-play__summary-acc { font-family: var(--font-display); font-size: 56px; font-weight: 800; color: #fff; line-height: 1; }
.trainer-play__summary-acc-label { font-size: 12px; color: rgba(255,255,255,.55); margin-top: -6px; }
.trainer-play__summary-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin: 8px 0 4px; }
.trainer-play__summary-stat { display: flex; flex-direction: column; font-size: 11px; color: rgba(255,255,255,.6); gap: 2px; }
.trainer-play__summary-stat span { font-family: var(--font-display); font-size: 24px; font-weight: 800; }
.trainer-play__summary-stat.is-correct span { color: #7ee9a4; }
.trainer-play__summary-stat.is-mixed span { color: #f5d97a; }
.trainer-play__summary-stat.is-low span { color: #e0a96a; }
.trainer-play__summary-stat.is-mistake span { color: #f3a3a2; }

/* -------- Responsive del stage: lobby abajo en pantallas angostas ------- */
@media (max-width: 900px) {
  .trainer-play__stage { flex-direction: column; }
  .trainer-play__lobby-mount { flex-basis: auto; width: 100%; }
  .trainer-play__stage.is-lobby-collapsed .trainer-play__lobby-mount { width: 100%; flex-basis: auto; }
  .trainer-lobby__scroll { max-height: none; }
  .trainer-lobby__retract { left: auto; right: 12px; top: -13px; transform: rotate(90deg); }
  .trainer-feedback__row { grid-template-columns: 120px 1fr 92px; }
  .trainer-grid__matrix { max-width: 100%; }
}

/* Sufijo de alcance de las stats (cuando son de la mesa, no del field) */
.trainer-lobby__field-scope {
  font-size: 8.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  color: rgba(255,255,255,.4); margin-left: 6px;
}

/* ============================================================================
   Rangos (feedback): preview compacto clickeable → modal grande con EV
   ============================================================================ */
.trainer-feedback__ranges {
  margin-bottom: 18px;
  border: 1px solid rgba(var(--primary-rgb), .18);
  border-radius: var(--radius-sm);
  background: rgba(var(--primary-rgb), .04);
  overflow: hidden;
}
.trainer-feedback__ranges-head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px; padding: 10px 14px 6px;
  color: rgba(var(--primary-rgb), .85);
  font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.trainer-feedback__ranges-hint { font-size: 10px; opacity: .7; letter-spacing: .04em; }

/* -------- Preview: mini-grilla(s), cursor lupa, overlay de expandir ------ */
.trainer-ranges-preview {
  position: relative;
  display: flex; gap: 14px; justify-content: center; align-items: flex-start;
  width: 100%; padding: 6px 14px 14px;
  background: transparent; border: 0; cursor: zoom-in;
}
.trainer-ranges-preview__card { display: flex; flex-direction: column; gap: 4px; align-items: center; }
.trainer-ranges-preview__cap {
  font-size: 9px; color: rgba(255,255,255,.55); letter-spacing: .04em; text-transform: uppercase;
}
/* mini-grilla: chica, sin labels ni leyenda (solo color) */
.trainer-ranges-preview .trainer-grid { gap: 0; }
.trainer-ranges-preview .trainer-grid__matrix { width: 156px; max-width: 156px; gap: 1px; }
.trainer-ranges-preview .trainer-grid__cell-label { display: none; }
.trainer-ranges-preview .trainer-grid__cell { border-radius: 1.5px; }
.trainer-ranges-preview .trainer-grid__legend { display: none; }
.trainer-ranges-preview .trainer-grid__cell.is-highlight { outline-width: 1.5px; box-shadow: 0 0 6px rgba(255,255,255,.7); }

.trainer-ranges-preview__overlay {
  position: absolute; inset: 6px 14px 14px;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  background: rgba(5,13,28,.55); border-radius: var(--radius-sm);
  color: #fff; font-size: 12px; font-weight: 600; letter-spacing: .02em;
  opacity: 0; transition: opacity .15s ease; pointer-events: none;
}
.trainer-ranges-preview:hover .trainer-ranges-preview__overlay,
.trainer-ranges-preview:focus-visible .trainer-ranges-preview__overlay { opacity: 1; }
.trainer-ranges-preview__expand { font-size: 26px; line-height: 1; color: var(--primary); }

/* -------- Modal: ambos rangos en grande + EV ---------------------------- */
.trainer-modal-backdrop {
  position: fixed; inset: 0; z-index: 1000;
  display: flex; align-items: center; justify-content: center; padding: 24px;
  background: rgba(2,6,15,.78); backdrop-filter: blur(2px);
  opacity: 0; transition: opacity .18s ease;
}
.trainer-modal-backdrop.is-open { opacity: 1; }
.trainer-modal {
  width: 100%; max-width: 560px; max-height: 92vh; overflow-y: auto;
  background: linear-gradient(180deg, #0a1424 0%, #060e1c 100%);
  border: 1px solid rgba(var(--primary-rgb), .25);
  border-radius: var(--radius); box-shadow: 0 24px 70px rgba(0,0,0,.6);
  transform: translateY(8px) scale(.99); transition: transform .18s ease;
}
.trainer-modal.is-dual { max-width: 900px; }
.trainer-modal-backdrop.is-open .trainer-modal { transform: translateY(0) scale(1); }
.trainer-modal__header {
  position: sticky; top: 0; z-index: 2;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid rgba(var(--primary-rgb), .15);
  background: rgba(10,20,36,.96);
}
.trainer-modal__title { font-size: 14px; font-weight: 700; color: #fff; }
.trainer-modal__close {
  width: 30px; height: 30px; border-radius: 8px; cursor: pointer;
  border: 1px solid rgba(255,255,255,.18); background: transparent; color: rgba(255,255,255,.75);
  font-size: 14px; transition: var(--transition);
}
.trainer-modal__close:hover { border-color: rgba(var(--primary-rgb),.55); color: #fff; }
.trainer-modal__body { padding: 16px 18px 22px; }
.trainer-modal__grids { display: flex; flex-direction: column; gap: 24px; align-items: center; margin-top: 16px; }
.trainer-modal__grids.is-dual { flex-direction: row; align-items: flex-start; justify-content: center; gap: 30px; flex-wrap: wrap; }
.trainer-modal__grid-card { flex: 1 1 380px; min-width: 0; max-width: 420px; }
/* grilla grande dentro del modal */
.trainer-modal__grid-card .trainer-grid__matrix { max-width: 420px; gap: 2px; }
.trainer-modal__grid-card .trainer-grid__cell-label { font-size: 11px; }

/* Responsive */
@media (max-width: 900px) {
  .trainer-modal.is-dual { max-width: 460px; }
  .trainer-modal__grids.is-dual { flex-direction: column; align-items: center; gap: 22px; }
  .trainer-modal__grid-card { flex-basis: auto; width: 100%; max-width: 380px; }
  .trainer-ranges-preview { flex-wrap: wrap; }
}
@media (max-width: 420px) {
  .trainer-modal__grid-card .trainer-grid__cell-label { font-size: 9px; }
  .trainer-ranges-preview .trainer-grid__matrix { width: 132px; max-width: 132px; }
}