/* La raíz del player LLENA su hueco: es el ámbito del HUD de esquinas
   (core/playerHud.js) — sin esto los chips flotaban a media altura, junto al
   tablero, en vez de en la esquina (mismo caso que Memoria, v1.51.511). */
.ab-play {
  height: 100%; min-height: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  gap: max(8px, 2cqmin);
  /* Contenedor de consulta propio, igual que `.wh-play`: sin él los `cqmin` de
     la rueda se resolvían contra un ancestro lejano y la MISMA rueda salía de
     otro tamaño en el marco del profe, en la tarea y en el panel del duelo. */
  container-type: size;
}
/* La RULETA de esta plantilla (rules.selector='wheel') usa la pieza COMPARTIDA
   `.ww-wheel-stage` / `.ww-wheel-pointer` (styles/wheel.css): es el mismo
   `wheelSvg()`. Tener aquí su copia era garantizar que el próximo ajuste de la
   punta ▶ arreglara una rueda y dejara la otra rota. */
/* El tablero se declara AQUÍ y solo aquí: el `style=` inline que traía el
   markup ganaba en especificidad, así que ajustar el CSS no hacía nada hasta
   descubrir el inline. Al moverlo se me quedaron por el camino el `display` y
   el `gap` y las cajas salieron en una fila de 32 px — mover maqueta a CSS es
   mover TODA la maqueta. El inline conserva lo único dinámico: las columnas,
   que dependen del nº de cajas. */
.ab-play .ab-board {
  display: grid;
  gap: max(6px, 1.6cqmin);
  width: min(100%, 460px);
}

.ql-grid {
  display: grid;
  gap: .6rem;
  max-width: 720px;
  margin: 0 auto;
}
.ql-box {
  border: 3px solid transparent;
  border-radius: 10px;
  padding: 0;
  height: 90px;
  font-size: 1.8rem;
  font-weight: 700;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: transform .15s, opacity .2s;
}
.ql-box:hover:not(:disabled):not(.ql-open) { transform: scale(1.06); }
.ql-box.ql-open { background: var(--ww-card-bg, #fff) !important; color: var(--ww-card-fg, var(--ww-fg, #1f2937)); border-color: var(--ww-card-border, #dee2e6); }
.ql-box:disabled { cursor: default; }
.ql-num { font-size: 1.8rem; }

/* Student view */
.ql-student-grid {
  display: grid;
  gap: .5rem;
  max-width: 480px;
  margin: 0 auto;
}
.ql-sbox {
  border-radius: 8px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.3rem;
  font-weight: 700;
  color: #fff;
  border: none;
}
.ql-sbox.ql-done { opacity: .45; }
.ql-sbox.ql-open { background: var(--ww-card-bg, #fff) !important; color: var(--ww-card-fg, var(--ww-fg, #1f2937)); }
