﻿@charset "UTF-8";
:root {
  /* Paleta primaria – Arena - Guía de estilo */
  --arena: #4cedab; /* Arena: color principal marca */
  --arena-1: #D9FBED;
  --arena-2: #acf7d8;
  /* Verde más cargado que armoniza con --arena (bordes, hover, acentos fuertes; no es otro matiz distinto) */
  --arena-deep: #0f6b52;
  --arena-ink: #0a4a3a; /* texto sobre fondos menta claros */
  --negro: #0F0F0F;
  --negro-1: #686868;
  --negro-2: #353535;
  --negro-3: #1F1F1F;
  --blanco: #FFFFFF;
  --blanco-1: #F4F4F4;
  --blanco-2: #E7E7E7;
  /* Marca (mapeo a variables de app) */
  --wba-primary: var(--arena);
  --wba-primary-dark: #3bc995;
  --wba-accent: var(--arena-2);
  --wba-accent-gold: var(--arena);
  --wba-orange: var(--arena-2);
  /* Estados */
  --wba-success: #4aa364;
  --wba-success-bright: #03ac19;
  --wba-error: #c03d32;
  --wba-error-strong: #b90000;
  --wba-validation: #f04124;
  /* Fondos y texto – guía Arena */
  --wba-bg-dark: var(--negro);
  --wba-bg-black: var(--negro);
  --wba-bg-panel: var(--negro-3);
  --wba-text-on-dark: var(--blanco);
  --wba-text-muted: var(--negro-1);
  --wba-competition-bg: var(--blanco);
  --wba-content-bg: var(--blanco-1);
}

/* ========== Arena – Guía de estilo (Wodbuster Arena) ========== */
/* Fuente Manuka – títulos y destacados (guía de estilo) */
@font-face {
  font-family: "Manuka";
  src: url("../fonts/manuka-black.woff2") format("woff2");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Manuka";
  src: url("../fonts/Manuka-Medium.otf") format("opentype");
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Manuka Condensed";
  src: url("../fonts/manuka-condensed-regular.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
/* Paleta según "Arena - Guía de estilo" (Wodbuster Arena): Negro, Blanco, Arena, Arena 1/2, Negro 1/2/3, Blanco 1/2. */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html, body {
  height: 100%;
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  background-color: var(--negro);
}

/* User info – diseño legacy (Account/Login, menú usuario) */
.userinfo {
  position: relative;
  white-space: nowrap;
  flex-shrink: 0;
}

.userinfo .button {
  margin: 0;
  border: 1px solid var(--arena);
  border-radius: 0.25rem;
  background-color: transparent;
  color: var(--arena);
}

.userinfo img.atleta,
.userinfo .user-avatar,
.userinfo .user-avatar-initial {
  cursor: pointer;
  width: 1.875rem;
  height: 1.875rem;
  border-radius: 100%;
}

.userinfo .details {
  display: none;
  position: absolute;
  top: 2.198rem;
  right: 0.625rem;
  background: var(--blanco);
  z-index: 1100;
  border: 1px solid #f1f3f4;
  border-radius: 5px;
  min-width: 16.25rem;
  max-width: 100%;
  box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
}

.userinfo .details.show {
  display: block;
}

.userinfo .userdata {
  display: flex;
  border-bottom: 1px solid #eaeaea;
  padding: 1rem;
}

.userinfo .userdata img,
.userinfo .userdata .user-avatar,
.userinfo .userdata .user-avatar-initial {
  width: 2.625rem;
  height: 2.625rem;
  margin-right: 1rem;
  flex-shrink: 0;
}

.userinfo .userdata h4 {
  margin: 0;
  padding: 0.125rem 0 0 0;
  line-height: normal;
  font-weight: 600;
  font-size: 0.938rem;
  overflow: hidden;
  text-overflow: ellipsis;
  color: var(--negro);
}

.userinfo .userdata p {
  margin: 0;
  padding: 0;
  line-height: normal;
  color: #6e6e6e;
  font-size: 0.75rem;
  word-break: break-word;
}

.userinfo .useroptions {
  padding: 0.5rem;
}

.userinfo .useroptions ul,
.userinfo .useroptions li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.userinfo .useroptions li:hover {
  background: #f3f4f6;
  border-radius: 0.25rem;
}

.userinfo .useroptions li:last-child {
  margin-bottom: 0;
}

.userinfo .useroptions a,
.userinfo .useroptions button.user-option {
  color: #555;
  line-height: 2.563rem;
  padding: 0 0.5rem;
  display: block;
  width: 100%;
  text-align: left;
  border: none;
  background: none;
  cursor: pointer;
  font-size: 0.9rem;
  font-family: inherit;
  text-decoration: none;
}

.userinfo .useroptions a:hover,
.userinfo .useroptions button.user-option:hover {
  color: var(--negro);
}

.userinfo .useroptions li.signout button.user-option,
.userinfo .useroptions li.signout a.user-option {
  color: #b90000;
  border-top: 1px solid #eee;
}

.userinfo .useroptions li.signout button.user-option:hover,
.userinfo .useroptions li.signout a.user-option:hover {
  background: rgba(185, 0, 0, 0.08);
}

/* Trigger del menú usuario (en header oscuro) */
.userinfo .user-menu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.25rem 0.5rem;
  border: 1px solid transparent;
  border-radius: 0.25rem;
  background: transparent;
  color: var(--arena);
  font-size: 0.9rem;
  cursor: pointer;
  font-family: inherit;
}

.userinfo .user-menu-trigger:hover {
  background: rgba(255, 255, 255, 0.08);
  color: var(--blanco);
}

.userinfo .user-menu-chevron {
  font-size: 0.6rem;
  opacity: 0.9;
}

/* ========== Contenedor principal (legacy) – off-canvas + main ========== */
.off-canvas-wrapper {
  min-height: calc(100vh - 104px);
  position: relative;
  background-color: #0F0F0F;
}

.off-canvas-wrapper-inner {
  position: relative;
  z-index: 1050;
}

.off-canvas {
  background: var(--blanco);
  position: fixed;
  top: 0;
  left: 0;
  height: 100%;
  overflow-y: auto;
  width: 20rem;
  z-index: 1001;
  transform: translateX(-20rem);
  transition: transform 0.3s ease;
}

.off-canvas.position-left {
  -webkit-transform: translateX(-20rem);
  transform: translateX(-20rem);
}

.off-canvas-content {
  min-height: calc(100vh - 104px);
  transition: transform 0.3s ease;
  position: relative;
  z-index: 0;
  background-color: #0F0F0F;
  display: flex;
  flex-direction: column;
}

.off-canvas-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1060;
}

.off-canvas-wrapper.menu-open .off-canvas.position-left {
  transform: translateX(0);
}

.off-canvas-wrapper.menu-open .off-canvas-content {
  transform: translateX(20rem);
}

/* Cabecera (fondo negro como legacy); no fixed para que no tape el contenido */
.contain-to-grid {
  background: var(--negro);
  flex-shrink: 0;
  margin-bottom: 0;
}

/* Separación entre header y contenido principal */
.off-canvas-content .mainwraper {
  padding: 0;
  padding-top: 1rem;
  width: 100%;
  flex: 1;
  min-height: 0;
  position: relative;
  z-index: 0;
}

/* Fila y columna del contenido (paridad Foundation .row + legacy #maincolumn) */
.off-canvas-content .mainwraper .row,
.off-canvas-content #mainrow,
#mainrow {
  margin-left: auto;
  margin-right: auto;
  max-width: 75rem;
  width: 100%;
  min-height: 0;
  box-sizing: border-box;
}

.off-canvas-content #maincolumn {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  padding-bottom: 1.25rem;
  padding-top: 1.25rem;
  background-color: #fff;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

/* Compatibilidad si se usa también .mainwraper sin prefijo */
.mainwraper {
  padding: 0;
}

/* Ocultar visualmente pero mantener para lectores de pantalla (a11y) */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

#maincolumn {
  padding-right: 1.25rem;
  padding-left: 1.25rem;
  padding-bottom: 1.25rem;
  padding-top: 1.25rem;
  background-color: #fff;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Contenedor principal: móvil (evita desbordes y respeta safe-area / notch) */
@media (max-width: 39.9em) {
  .off-canvas-content .mainwraper {
    padding-top: 0.5rem;
  }
  .off-canvas-content #mainrow,
  #mainrow {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
    max-width: 100%;
  }
  .off-canvas-content #maincolumn,
  #maincolumn {
    padding-left: max(0.65rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.65rem, env(safe-area-inset-right, 0px));
    padding-top: max(0.85rem, env(safe-area-inset-top, 0px));
    padding-bottom: max(1rem, env(safe-area-inset-bottom, 0px));
    overflow-x: clip;
  }
}
@media (max-width: 24em) {
  .off-canvas-content #maincolumn,
  #maincolumn {
    padding-left: max(0.5rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.5rem, env(safe-area-inset-right, 0px));
  }
}
/* Minimenu (estilo legacy) */
.minimenu {
  background: url("../images/Logo-WodBusterArena-Black.svg") no-repeat 1rem 1rem;
  background-size: 80% auto;
  margin: 0;
  padding: 5rem 1rem 2rem 1rem;
}

.minimenu ul,
.minimenu li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.minimenu li {
  background: #EFEFEF;
  padding: 0 0 1rem 1rem;
  border-radius: 4px;
  margin-bottom: 0.5rem;
  border-bottom: 2px solid #e7e7e7;
}

.minimenu li.spacer {
  background: none;
  border: none;
  padding: 0;
  margin: 0.25rem 0;
  height: 0;
  min-height: 0;
}

.minimenu li a {
  font-family: "Manuka", "Manuka Condensed", "Public Sans", sans-serif;
  font-size: 2rem;
  text-decoration: none;
  text-transform: uppercase;
  color: var(--negro);
  display: block;
}

.minimenu li.active {
  border-bottom-color: var(--arena);
}

.minimenu li.active a {
  color: var(--arena);
}

.minimenu li a:hover {
  color: var(--negro-1);
}

h2.mainTitle {
  text-align: center;
  margin: 4rem 0 3rem 0;
  font-size: 0.813rem;
  text-transform: uppercase;
  color: var(--negro);
  font-family: "Public Sans", sans-serif;
  font-weight: normal;
  line-height: normal;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Títulos según guía Arena: Manuka para títulos y destacados */
h1, .page-title {
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-weight: 800;
  color: var(--negro);
  letter-spacing: -0.02em;
}

/* Título principal en columna (p. ej. home): espacio antes del panel de filtros */
#maincolumn > h1.page-title:first-child {
  margin-top: 0;
  margin-bottom: 1.35rem;
  line-height: 1.15;
}

@media (min-width: 40em) {
  #mainrow,
  .off-canvas-content #mainrow {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
  }
  #maincolumn,
  .off-canvas-content #maincolumn {
    padding-right: 3rem;
    padding-left: 3rem;
    padding-bottom: 3rem;
    border-radius: 0.5rem;
  }
}
.nav-list li a.active {
  background-color: rgba(76, 237, 171, 0.15);
  border-left: 3px solid var(--arena);
}

.nav-list li a:hover {
  background-color: rgba(255, 255, 255, 0.08);
  color: var(--arena-2);
}

.loading-overlay {
  position: fixed;
  inset: 0;
  background-color: rgba(0, 0, 0, 0.75);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000 !important;
}

.spinner {
  border: 6px solid var(--negro-2);
  border-top-color: var(--arena);
  border-radius: 50%;
  width: 60px;
  height: 60px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}
/* ----- Register: inscripción – Arena, Guía de estilo -----
   Paleta: Negro, Blanco, Arena, Arena 1/2, Negro 1/2/3, Blanco 1/2.
   Tipografía: Manuka (títulos y destacados), Public Sans (contenido). Contraste y legibilidad prioritarios. */
.reg-wrap {
  min-height: 60vh;
  padding: 0 1rem 2rem;
  max-width: 720px;
  margin: 0 auto;
}

.reg-hero {
  text-align: center;
  padding: 2.5rem 1rem;
  background: var(--negro);
  background: linear-gradient(160deg, var(--negro) 0%, var(--negro-3) 50%, var(--negro-2) 100%);
  border-radius: 16px;
  margin-bottom: 1.5rem;
  color: var(--blanco);
}

.reg-hero-title {
  font-family: "Manuka", "Public Sans", sans-serif;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0 0 0.5rem;
  line-height: 1.15;
  color: var(--arena);
}

.reg-hero-meta {
  font-size: 1rem;
  color: var(--arena);
  margin: 0 0 0.5rem;
  font-weight: 600;
}

.reg-hero-sub {
  margin: 0;
  color: var(--blanco);
  font-size: 1.05rem;
  opacity: 0.95;
}

.reg-hero-sub--small {
  font-size: 0.9rem;
  margin-top: 0.5rem;
}

.reg-hero--loading {
  padding: 3rem;
}

.reg-hero--success {
  background: linear-gradient(160deg, var(--negro) 0%, #0d3d1a 100%);
}

.reg-hero--success .reg-hero-title {
  color: var(--wba-success-bright);
}

.reg-capitan-invite-notice {
  margin: 1.25rem auto 0;
  max-width: 34rem;
  padding: 1rem 1.25rem;
  text-align: left;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(199, 173, 120, 0.35);
  border-radius: 12px;
  color: var(--blanco);
  font-size: 0.95rem;
  line-height: 1.45;
}

.reg-capitan-invite-notice strong {
  color: var(--arena);
  display: block;
  margin-bottom: 0.35rem;
}

.reg-capitan-invite-notice-sub {
  margin-top: 1rem;
}

.reg-capitan-invite-notice-text {
  margin: 0;
  opacity: 0.95;
}

.reg-capitan-invite-notice-text + .reg-capitan-invite-notice-sub {
  margin-top: 0.85rem;
}

.reg-capitan-invite-notice a {
  color: var(--arena-2);
  text-decoration: underline;
}

/* Aviso pago pendiente — formulario reg-flow (fondo claro) */
.reg-pending-payment-notice {
  grid-column: 1/-1;
  margin-bottom: 1rem;
  padding: 1rem 1.25rem 1.15rem;
  background: var(--arena-1);
  border: 2px solid var(--arena-deep);
  border-left-width: 5px;
  border-radius: 12px;
  color: var(--negro);
  box-shadow: 0 2px 12px rgba(15, 111, 82, 0.12);
}

.reg-pending-payment-notice__head {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-bottom: 0.5rem;
}

.reg-pending-payment-notice__icon {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  font-weight: 800;
  line-height: 1;
  color: var(--blanco);
  background: var(--arena-deep);
  border-radius: 50%;
}

.reg-pending-payment-notice__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--arena-ink);
  line-height: 1.35;
}

.reg-pending-payment-notice__text {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro-2);
}

.reg-pending-payment-notice__actions {
  margin-top: 0.85rem;
}

.reg-pending-payment-notice__cta {
  display: inline-block;
  padding: 0.65rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 700;
  text-decoration: none;
  color: var(--negro);
  background: var(--arena);
  border: 2px solid var(--arena-deep);
  border-radius: 10px;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.reg-pending-payment-notice__cta:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 14px rgba(15, 111, 82, 0.25);
  color: var(--negro);
}

.reg-modal-invitar-equipo {
  color: var(--negro-1);
}

.reg-modal-invitar-equipo-lead {
  margin: 0;
  line-height: 1.5;
  font-size: 0.98rem;
}

.reg-modal-invitar-equipo-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.reg-modal-invitar-equipo-actions .reg-cta {
  text-align: center;
  justify-content: center;
}

.reg-hero--invite, .reg-hero--error {
  background: linear-gradient(160deg, var(--negro) 0%, var(--negro-2) 100%);
}

/* Cuenta atrás: inscripciones aún no abiertas */
.reg-hero--countdown {
  padding: 2rem 1rem;
}

.reg-countdown-title {
  font-size: 1.25rem;
  margin: 0 0 1rem;
  color: var(--blanco);
  font-weight: 600;
}

.reg-countdown {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 0.25rem 0.5rem;
}

.reg-countdown li {
  text-align: center;
}

.reg-countdown-num {
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.2;
  color: var(--arena);
  font-family: "Manuka", "Public Sans", sans-serif;
  display: block;
  min-width: 2ch;
}

.reg-countdown-label {
  font-size: 0.75rem;
  color: var(--arena-2);
  margin: 0.25rem 0 0 0;
  text-transform: lowercase;
}

.reg-countdown-sep {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  color: var(--arena);
  line-height: 1;
  padding-top: 0.5rem;
}

/* Bloque competición: imagen + título (guía: Manuka títulos, paleta Arena) */
.reg-competition {
  margin-bottom: 1.5rem;
}

.reg-competition-header {
  text-align: center;
  padding: 1.5rem 1rem;
  background: var(--negro);
  background: linear-gradient(160deg, var(--negro) 0%, var(--negro-3) 50%, var(--negro-2) 100%);
  border-radius: 16px;
  color: var(--blanco);
}

.reg-competition-img {
  display: block;
  max-width: 280px;
  max-height: 140px;
  margin: 0 auto 1rem;
  object-fit: contain;
}

.reg-competition-title {
  font-family: "Manuka", "Public Sans", sans-serif;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.15;
  color: var(--arena);
}

/* Fieldsets: datos de inscripción (fondo claro) y legal (fondo oscuro), paleta Arena */
.reg-fieldset {
  border: 1px solid var(--negro-2);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin: 0 0 1.5rem;
  color: var(--negro);
}

.reg-fieldset-legend {
  font-family: "Manuka", "Public Sans", sans-serif;
  font-size: 2.1rem;
  font-weight: 700;
  color: var(--arena);
  padding: 0 0.5rem;
  margin: 0 0 1rem;
}

.reg-fieldset--legal {
  border-color: var(--arena-2);
  background: var(--negro-3);
  color: var(--blanco);
}

.reg-organizador {
  font-size: 0.95rem;
  color: var(--blanco);
  line-height: 1.5;
  margin-bottom: 1rem;
  opacity: 0.95;
}

.reg-organizador strong {
  color: var(--arena);
}

.reg-legal-link {
  margin: 0 0 1rem;
}

.reg-legal-link a {
  color: var(--arena-2);
  text-decoration: underline;
}

.reg-actions {
  margin-top: 1rem;
}

.reg-pulse {
  width: 48px;
  height: 48px;
  border: 3px solid var(--negro-2);
  border-top-color: var(--arena);
  border-radius: 50%;
  margin: 0 auto 1rem;
  animation: reg-spin 0.8s linear infinite;
}

@keyframes reg-spin {
  to {
    transform: rotate(360deg);
  }
}
.reg-success-icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1rem;
  background: var(--wba-success-bright);
  color: var(--wba-bg-black);
  font-size: 2rem;
  font-weight: 800;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.reg-cta {
  display: inline-block;
  padding: 0.9rem 1.75rem;
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
  margin-top: 1rem;
}

.reg-cta:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px var(--negro);
}

.reg-cta:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.reg-cta {
  background: var(--arena);
  color: var(--negro);
}

.reg-cta--secondary {
  background: transparent;
  color: var(--blanco);
  border: 2px solid var(--blanco);
}

.reg-cta--submit {
  width: 100%;
  margin-top: 1.25rem;
  padding: 1rem;
  font-size: 1.1rem;
}

/* En reg-wizard-nav el ancho se sobrescribe para que Anterior y Siguiente/Pagar se vean juntos */
.reg-cta--admin {
  background: transparent;
  color: var(--arena-2);
  border: 1px solid var(--arena-2);
  margin-top: 0.5rem;
  width: 100%;
}

.reg-cta--complete {
  background: var(--negro-3);
  color: var(--blanco);
  border: 2px solid var(--blanco-2);
  cursor: default;
  width: 100%;
  text-align: center;
}

.reg-cta--complete:hover {
  transform: none;
  box-shadow: none;
}

.reg-categories {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.reg-cat-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: var(--negro-3);
  color: var(--blanco);
  text-decoration: none;
  border-radius: 12px;
  border: 2px solid transparent;
  transition: border-color 0.2s, background 0.2s;
}

.reg-cat-card:hover {
  border-color: var(--arena);
  background: var(--negro-2);
}

.reg-cat-name {
  font-weight: 700;
  font-size: 1.1rem;
}

.reg-cat-arrow {
  color: var(--arena);
  font-size: 1.25rem;
}

.reg-flow {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 640px) {
  .reg-flow {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    grid-auto-flow: row;
  }
  /* Register móvil: contenedor, safe-area y espaciado */
  .reg-wrap {
    padding: 0 0.75rem 1.5rem;
    padding-left: max(0.75rem, env(safe-area-inset-left));
    padding-right: max(0.75rem, env(safe-area-inset-right));
    padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
  }
  .reg-hero {
    padding: 1.5rem 1rem;
    margin-bottom: 1rem;
    border-radius: 12px;
  }
  .reg-hero-title {
    font-size: clamp(1.4rem, 5vw, 1.85rem);
  }
  .reg-hero-sub {
    font-size: 0.95rem;
  }
  .reg-hero-sub--small {
    font-size: 0.85rem;
  }
  .reg-hero--loading {
    padding: 2rem 1rem;
  }
  .reg-hero--success .reg-cta,
  .reg-hero--error .reg-cta,
  .reg-hero--invite .reg-cta {
    display: block;
    width: 100%;
    margin-top: 0.75rem;
    text-align: center;
    padding: 0.85rem 1rem;
    min-height: 44px;
  }
  .reg-hero--error .reg-cta + .reg-cta {
    margin-left: 0;
    margin-top: 0.5rem;
  }
  /* Bloque competición */
  .reg-competition {
    margin-bottom: 1rem;
  }
  .reg-competition-header {
    padding: 1rem 0.75rem;
    border-radius: 12px;
  }
  .reg-competition-img {
    max-width: 220px;
    max-height: 110px;
    margin-bottom: 0.75rem;
  }
  .reg-competition-title {
    font-size: clamp(1.4rem, 5vw, 1.85rem);
  }
  /* Cuenta atrás */
  .reg-hero--countdown {
    padding: 1.5rem 0.75rem;
  }
  .reg-countdown-num {
    font-size: clamp(1.75rem, 5vw, 2.5rem);
  }
  .reg-countdown-sep {
    font-size: clamp(1.25rem, 4vw, 1.75rem);
  }
  /* Aside resumen: flujo normal (sticky desactivado en base), más compacto */
  .reg-summary {
    padding: 1rem;
    border-radius: 10px;
    gap: 0.75rem;
  }
  .reg-summary-box {
    padding: 1rem;
  }
  .reg-summary-value {
    font-size: 1.2rem;
  }
  .reg-summary-value--small {
    font-size: 0.875rem;
  }
  .reg-summary-organizador .reg-summary-value--small {
    font-size: 0.8rem;
  }
  /* Fieldset y formulario: separación clara del resumen */
  .reg-form-area {
    margin-top: 0;
  }
  .reg-fieldset {
    padding: 1rem;
    margin-bottom: 1rem;
    border-radius: 10px;
  }
  .reg-fieldset-legend {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }
  .reg-card {
    padding: 1rem;
  }
  /* Wizard steps: más compactos, scroll horizontal si muchos */
  .reg-wizard-steps {
    gap: 0.35rem;
    margin-bottom: 1rem;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 0.25rem;
  }
  .reg-wizard-step {
    min-width: 52px;
    padding: 0.5rem 0.5rem;
    font-size: 0.8rem;
    flex: 0 0 auto;
  }
  .reg-wizard-nav {
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 1rem;
  }
  .reg-wizard-nav .reg-cta {
    width: 100%;
    min-height: 44px;
    padding: 0.85rem 1rem;
  }
  .reg-wizard-nav .reg-cta--secondary,
  .reg-wizard-nav .reg-cta--submit {
    flex: none;
    min-width: 0;
  }
  /* Inputs: 16px para evitar zoom iOS, touch-friendly */
  .reg-input {
    padding: 0.85rem 1rem;
    font-size: 16px;
    margin-bottom: 1rem;
    min-height: 44px;
  }
  .reg-label {
    font-size: 0.9rem;
    margin-bottom: 0.35rem;
  }
  /* Botones CTA principales: área táctil 44px */
  .reg-cta {
    min-height: 44px;
    padding: 0.85rem 1.25rem;
  }
  .reg-cta--submit {
    padding: 0.95rem 1rem;
    font-size: 1rem;
  }
  /* Categorías */
  .reg-cat-card {
    padding: 1rem 1rem;
    min-height: 48px;
  }
  .reg-cat-name {
    font-size: 1rem;
  }
  /* Opciones compra */
  .reg-opcion-btn {
    padding: 1rem;
    min-height: 48px;
  }
  .reg-opcion-row .reg-opcion-desc-btn {
    min-width: 44px;
    min-height: 44px;
  }
  /* Resumen compacto */
  .reg-resumen {
    padding: 1rem;
    margin-bottom: 0.75rem;
  }
  .reg-resumen-list {
    grid-template-columns: 1fr;
    gap: 0.25rem;
  }
  .reg-resumen-list dt {
    margin-top: 0.5rem;
  }
  .reg-resumen-list dt:first-child {
    margin-top: 0;
  }
  /* Drawer móvil más ancho */
  .reg-opcion-drawer {
    width: min(100%, 100vw);
    max-width: 100%;
  }
}
.reg-summary {
  background: var(--negro);
  color: var(--blanco);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 1.25rem;
  border-radius: 12px;
}

@media (min-width: 641px) {
  .reg-summary {
    position: sticky;
    top: 1rem;
  }
}
.reg-summary-box {
  background: var(--negro);
  color: var(--blanco);
  border-radius: 12px;
  padding: 1.25rem;
  border: 1px solid var(--negro-2);
}

.reg-summary-box.reg-summary-organizador .reg-summary-value--small {
  font-size: 0.85rem;
  line-height: 1.4;
}

.reg-summary-block {
  margin-bottom: 1rem;
}

.reg-summary-block:last-child {
  margin-bottom: 0;
}

.reg-summary-label {
  display: block;
  font-size: 0.8rem;
  color: var(--arena-2);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
}

.reg-summary-value {
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--arena-2);
}

.reg-summary-value--small {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--blanco);
}

.reg-summary-link {
  color: var(--arena);
  text-decoration: none;
  font-weight: 600;
}

.reg-summary-link:hover {
  text-decoration: underline;
}

.reg-summary-btn-descripcion {
  background: none;
  border: none;
  padding: 0;
  font-size: inherit;
  color: var(--arena);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
}

.reg-summary-btn-descripcion:hover {
  text-decoration: underline;
}

.reg-descripcion-html {
  font-size: 1rem;
  line-height: 1.6;
  color: var(--negro);
}

.reg-descripcion-html p {
  margin: 0 0 0.75rem 0;
}

.reg-descripcion-html p:last-child {
  margin-bottom: 0;
}

.reg-descripcion-html a {
  color: var(--arena);
  font-weight: 600;
}

.reg-descripcion-html a:hover {
  text-decoration: underline;
}

.reg-precio-descuento {
  display: block;
}

.reg-precio-tachado {
  text-decoration: line-through;
  color: var(--wba-text-muted);
  margin-right: 0.5rem;
}

.reg-precio-nuevo {
  text-decoration: none;
  font-weight: 600;
  color: var(--wba-success);
}

.reg-descuento-badge {
  display: inline-block;
  font-size: 0.75rem;
  padding: 0.15rem 0.4rem;
  margin-left: 0.5rem;
  background: var(--arena-1);
  color: var(--negro);
  border-radius: 4px;
}

/* Mensajes de urgencia comercial (plazas): sin número, incitan a inscribirse */
.reg-summary-block--plazas .reg-plazas-msg {
  display: inline-block;
  font-size: 1rem;
  font-weight: 700;
  padding: 0.4rem 0.75rem;
  border-radius: 8px;
  margin-top: 0.25rem;
}

.reg-plazas--completado {
  background: var(--negro-3);
  color: var(--blanco-2);
  border: 1px solid var(--blanco-2);
}

.reg-plazas--ultimas {
  background: linear-gradient(135deg, #c0392b 0%, #e74c3c 100%);
  color: #fff;
  border: none;
  box-shadow: 0 2px 8px rgba(192, 57, 43, 0.4);
  animation: reg-pulse-urgent 2s ease-in-out infinite;
}

.reg-plazas--rapido {
  background: linear-gradient(135deg, var(--arena) 0%, #f5d547 100%);
  color: var(--negro);
  border: none;
  box-shadow: 0 2px 8px rgba(240, 184, 41, 0.35);
}

.reg-plazas--limitadas {
  background: var(--arena-1);
  color: var(--negro);
  border: 2px solid var(--arena);
  font-weight: 800;
}

@keyframes reg-pulse-urgent {
  0%, 100% {
    box-shadow: 0 2px 8px rgba(192, 57, 43, 0.4);
  }
  50% {
    box-shadow: 0 2px 14px rgba(231, 76, 60, 0.6);
  }
}
.reg-form-area {
  min-width: 0;
}

.reg-form-area--relative {
  position: relative;
}

/* Overlay de carga a pantalla completa para que siempre se vea */
.reg-loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 15, 0.92);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  z-index: 9999;
}

.reg-loading-spinner {
  width: 48px;
  height: 48px;
  border: 4px solid var(--blanco-2);
  border-top-color: var(--arena);
  border-radius: 50%;
  animation: reg-spin 0.8s linear infinite;
}

.reg-loading-text {
  color: var(--blanco);
  margin-top: 1rem;
  font-size: 1.05rem;
  font-weight: 500;
}

@keyframes reg-spin {
  to {
    transform: rotate(360deg);
  }
}
/* Spinner pequeño dentro de botones (estado loading) */
.btn-spinner {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-right: 0.5em;
  vertical-align: -0.15em;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: reg-spin 0.7s linear infinite;
}

.reg-cta .btn-spinner,
.leaderboard-btn .btn-spinner {
  margin-right: 0.45rem;
}

.reg-cta:disabled .btn-spinner,
.leaderboard-btn:disabled .btn-spinner {
  opacity: 0.9;
}

.reg-summary-block--captain .reg-summary-value--small {
  word-break: break-word;
}

.reg-legal--inline {
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.reg-resumen {
  background: var(--blanco-1);
  border-radius: 12px;
  padding: 1.25rem;
  margin-bottom: 1rem;
  border: 1px solid var(--blanco-2);
}

.reg-resumen-title {
  font-size: 1.1rem;
  margin-bottom: 1rem;
  color: var(--negro);
}

.reg-resumen-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.35rem 1.5rem;
  margin: 0;
}

.reg-resumen-list dt {
  font-weight: 600;
  color: var(--negro-1);
}

.reg-resumen-list dd {
  margin: 0;
}

.reg-resumen-list--compact {
  gap: 0.2rem 1rem;
}

.reg-resumen-list--compact dt, .reg-resumen-list--compact dd {
  font-size: 0.9rem;
}

.reg-summary-block--resumen .reg-resumen-list--compact {
  margin-top: 0.5rem;
}

/* Campo informativo: mismo aspecto que input pero solo lectura */
.reg-input-readonly {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  margin-bottom: 1.1rem;
  background: var(--blanco-1);
  color: var(--negro);
  cursor: default;
}

.reg-input-readonly--miembros {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.reg-input-readonly--miembros .reg-miembro-linea {
  display: block;
  font-size: 0.95rem;
}

.reg-invitado-equipo {
  margin-bottom: 1.5rem;
}

.reg-invitado-equipo-title {
  font-size: 1rem;
  margin: 0 0 1rem 0;
  font-weight: 700;
  color: var(--negro);
}

.reg-card {
  background: var(--blanco);
  border-radius: 16px;
}

.reg-badge {
  background: var(--arena-1);
  color: var(--negro);
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-weight: 700;
  margin-bottom: 1.25rem;
  display: inline-block;
}

.reg-label {
  display: block;
  font-weight: 700;
  font-size: 0.95rem;
  margin-bottom: 0.4rem;
  color: var(--negro);
}

.reg-required {
  color: var(--wba-error);
}

.reg-input {
  width: 100%;
  padding: 0.75rem 1rem;
  font-size: 1rem;
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  margin-bottom: 1.1rem;
  transition: border-color 0.2s;
  background: var(--blanco);
  color: var(--negro);
}

.reg-input:focus {
  outline: none;
  border-color: var(--arena);
}

.reg-input--select {
  cursor: pointer;
  appearance: auto;
}

.reg-legal {
  margin: 1.25rem 0;
  padding-top: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.reg-error {
  background: var(--arena-1);
  color: var(--wba-error-strong);
  padding: 0.75rem;
  border-radius: 8px;
  margin: 0.5rem 0;
  font-weight: 500;
  border: 1px solid var(--wba-error);
}

/* Mensaje de error debajo de los botones: legible, no recortado */
.reg-error-block {
  width: 100%;
  margin-top: 1rem;
  padding: 1rem 1.25rem;
  background: var(--arena-1);
  color: var(--wba-error-strong);
  border: 1px solid var(--wba-error);
  border-radius: 10px;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1.5;
  word-wrap: break-word;
  overflow-wrap: break-word;
  white-space: normal;
  box-sizing: border-box;
}

.reg-full {
  text-align: center;
  padding: 1rem;
  background: var(--arena-1);
  color: var(--negro);
  border-radius: 8px;
  font-weight: 600;
  margin-top: 0.5rem;
  border: 1px solid var(--arena-2);
}

.reg-verificacion {
  margin: 1rem 0;
  padding: 1rem;
  background: var(--blanco-1);
  border: 2px solid var(--arena);
  border-radius: 10px;
}

.reg-verificacion-msg {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro);
}

.reg-verificacion .reg-cta--small {
  margin-right: 0.5rem;
  margin-top: 0;
  padding: 0.5rem 1rem;
  font-size: 0.95rem;
}

.reg-input--codigo {
  max-width: 8rem;
  letter-spacing: 0.2em;
  font-variant-numeric: tabular-nums;
}

.reg-verificacion-ok {
  color: var(--wba-success-bright);
  font-weight: 700;
  margin-left: 0.5rem;
}

/* Legal (dentro de reg) – enlace Arena (guía) */
.reg-legal .register-legal {
  margin: 0;
  padding: 0;
  border: none;
}

.reg-legal .legal-text a {
  color: var(--arena);
  font-weight: 600;
}

.reg-legal .legal-text--organizer {
  margin-top: 1rem;
}

/* Dos bloques de aceptación (aviso legal + condiciones organizador) */
.reg-legal .legal-block {
  margin-bottom: 1rem;
  display: block;
}

.reg-legal .legal-block:last-child {
  margin-bottom: 0;
}

.reg-legal .legal-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  cursor: pointer;
}

.reg-legal .legal-checkbox {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.2rem;
  accent-color: var(--arena);
  cursor: pointer;
}

.reg-legal .legal-copy {
  flex: 1;
}

.reg-legal .legal-copy a {
  color: var(--arena);
  font-weight: 600;
}

.register-legal .legal-link {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font: inherit;
  color: var(--arena);
  font-weight: 600;
  text-decoration: underline;
}

.register-legal .legal-link:hover {
  text-decoration: none;
}

.register-legal .legal-block {
  margin-bottom: 1rem;
  display: block;
}

.register-legal .legal-block:last-child {
  margin-bottom: 0;
}

.register-legal .legal-row {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.register-legal .legal-checkbox {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.2rem;
  accent-color: var(--arena);
  cursor: pointer;
}

.register-legal .legal-copy {
  flex: 1;
}

/* Wizard: título del paso */
.reg-step-title {
  margin: 0 0 0.75rem;
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--blanco);
}

/* Wizard: mensajes tranquilizadores */
.reg-wizard-hint {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  background: var(--blanco-1);
  border-left: 4px solid var(--arena);
  border-radius: 0 8px 8px 0;
  font-size: 0.95rem;
  color: var(--negro);
  line-height: 1.5;
}

.reg-wizard-steps {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.reg-wizard-step {
  flex: 1;
  min-width: 60px;
  padding: 0.5rem 0.75rem;
  text-align: center;
  background: var(--blanco-2);
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro-1);
  border: 2px solid transparent;
  cursor: pointer;
  font-family: inherit;
}

.reg-wizard-step:hover:not(:disabled) {
  background: var(--blanco-1);
  color: var(--negro);
}

.reg-wizard-step:disabled {
  cursor: default;
  opacity: 0.6;
}

.reg-wizard-step.reg-wizard-step--active {
  background: var(--arena-1);
  color: var(--negro);
  border-color: var(--arena);
}

.reg-wizard-step.reg-wizard-step--done {
  background: var(--arena-2);
  color: var(--blanco);
  cursor: pointer;
}

.reg-wizard-step.reg-wizard-step--done:hover:not(:disabled) {
  filter: brightness(1.05);
}

.reg-wizard-nav {
  margin-top: 1.25rem;
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  align-items: center;
}

.reg-wizard-nav .reg-cta {
  margin-top: 0;
}

.reg-wizard-nav .reg-cta--secondary {
  width: auto;
  flex: 0 0 auto;
  min-width: 6rem;
  color: var(--negro);
  border: 2px solid var(--negro-2);
  background: var(--blanco);
}

.reg-wizard-nav .reg-cta--secondary:hover:not(:disabled) {
  background: var(--blanco-1);
  border-color: var(--arena);
  color: var(--negro);
}

.reg-wizard-nav .reg-cta--submit {
  flex: 1 1 auto;
  min-width: 10rem;
  width: auto;
}

/* Opciones compra – solo elegir (lista de botones) */
.reg-opciones-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.reg-opcion-item {
  margin-bottom: 0.5rem;
}

.reg-opcion-btn {
  display: block;
  width: 100%;
  padding: 0.85rem 1rem;
  text-align: left;
  background: var(--blanco-1);
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
  transition: background 0.2s, border-color 0.2s;
}

.reg-opcion-row {
  display: flex;
  align-items: stretch;
  gap: 0.35rem;
}

.reg-opcion-row .reg-opcion-btn {
  flex: 1;
}

.reg-opcion-desc-btn {
  flex: 0 0 auto;
  width: 2.5rem;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--blanco-2);
  border: 2px solid var(--blanco-2);
  border-radius: 8px;
  cursor: pointer;
  color: var(--negro-1);
  font-size: 1.1rem;
}

.reg-opcion-desc-btn:hover {
  background: var(--arena-1);
  border-color: var(--arena);
  color: var(--negro);
}

.reg-opcion-item--active .reg-opcion-desc-btn {
  background: var(--arena-1);
  border-color: var(--arena);
}

.reg-opcion-desc-icon {
  line-height: 1;
}

.reg-opcion-btn:hover {
  background: var(--arena-1);
  border-color: var(--arena);
}

.reg-opcion-item--active .reg-opcion-btn {
  background: var(--arena-1);
  border-color: var(--arena);
}

/* Barra lateral (drawer) desde la izquierda para descripción */
.reg-opcion-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 9998;
  animation: reg-drawer-fade 0.2s ease;
}

.reg-opcion-drawer {
  position: fixed;
  top: 0;
  left: 0;
  bottom: 0;
  width: min(360px, 90vw);
  max-width: 100%;
  background: var(--blanco);
  box-shadow: 4px 0 20px rgba(0, 0, 0, 0.2);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  animation: reg-drawer-slide 0.25s ease;
}

.reg-opcion-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--blanco-2);
  background: var(--blanco-1);
}

.reg-opcion-drawer-title {
  margin: 0;
  font-size: 1.05rem;
  color: var(--negro);
}

.reg-opcion-drawer-close {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: none;
  background: var(--blanco-2);
  border-radius: 8px;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--negro);
}

.reg-opcion-drawer-close:hover {
  background: var(--arena-1);
  color: var(--negro);
}

.reg-opcion-drawer-body {
  padding: 1.25rem;
  overflow-y: auto;
  flex: 1;
}

.reg-opcion-drawer-desc {
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro);
}

.reg-opcion-drawer-desc p:last-child {
  margin-bottom: 0;
}

@keyframes reg-drawer-fade {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes reg-drawer-slide {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
/* Opciones compra – paleta Arena (guía) */
.reg-opciones {
  margin: 1rem 0;
}

.reg-opciones-title {
  font-size: 1.15rem;
  margin: 0 0 0.5rem 0;
  color: var(--negro);
}

.reg-opciones-producto-block {
  margin-top: 1.25rem;
  padding: 1rem;
  background: var(--blanco-1);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
}

.reg-opciones-producto-block:first-of-type {
  margin-top: 0.5rem;
}

.reg-opciones-producto-name {
  font-size: 1rem;
  margin: 0 0 0.75rem 0;
  font-weight: 600;
  color: var(--negro);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.reg-opciones-producto-badge {
  font-size: 0.75rem;
  font-weight: 500;
  padding: 0.2rem 0.5rem;
  background: var(--arena-1);
  color: var(--arena-oscuro, #8b6914);
  border-radius: 6px;
}

.reg-opciones-producto-card {
  margin-bottom: 0.75rem;
}

.reg-opciones-producto-card--selected .reg-opciones-producto-btn {
  border: 2px solid var(--arena);
  background: var(--arena-1);
  box-shadow: 0 0 0 1px var(--arena);
}

.reg-opciones-producto-btn {
  display: flex;
  align-items: center;
  gap: 1rem;
  width: 100%;
  text-align: left;
  padding: 1rem;
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  background: var(--blanco);
  color: var(--negro);
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
}

.reg-opciones-producto-btn:hover {
  border-color: var(--arena);
  background: var(--blanco-1);
}

.reg-opciones-producto-img-wrap {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--blanco-2);
}

.reg-opciones-producto-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reg-opciones-producto-btn-text {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.75rem;
  flex: 1;
}

.reg-opciones-producto-btn-text strong {
  margin-right: 0.25rem;
}

.reg-opciones-producto-precio {
  font-weight: 600;
  color: var(--arena-oscuro, #8b6914);
}

.reg-opciones-producto-talla {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.reg-opciones-producto-btn-action {
  font-style: normal;
  font-size: 0.9rem;
  color: var(--arena-oscuro, #8b6914);
  margin-left: auto;
}

.reg-modal-producto-img-wrap {
  margin-bottom: 1rem;
  border-radius: 10px;
  overflow: hidden;
  background: var(--blanco-2);
  max-height: 200px;
}

.captain-modal-producto-img-wrap {
  margin-bottom: 1rem;
  border-radius: 10px;
  overflow: hidden;
  background: var(--blanco-2);
  max-height: 200px;
}

.captain-modal-producto-img-wrap .product-media-slider-img,
.captain-modal-producto-img-wrap .product-media-slider-video {
  max-height: 200px;
}

.reg-modal-producto-img {
  width: 100%;
  height: auto;
  max-height: 200px;
  object-fit: contain;
  display: block;
}

.reg-modal-producto-desc {
  margin-bottom: 1rem;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro);
}

.reg-modal-producto-desc p:last-child {
  margin-bottom: 0;
}

.reg-modal-producto-fields {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.reg-modal-producto-fields .form-group {
  margin-bottom: 1rem;
}

.reg-modal-producto-field {
  animation: reg-modal-field-in 0.2s ease;
}

@keyframes reg-modal-field-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.reg-modal-producto-fields .form-group:last-child {
  margin-bottom: 0;
}

.reg-modal-producto-fields .reg-input--select {
  width: 100%;
  max-width: 20rem;
}

.reg-opciones .accordion.options {
  list-style: none;
  padding: 0;
  margin: 0;
}

.reg-opciones .accordion-item {
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  margin-bottom: 0.5rem;
  overflow: hidden;
}

.reg-opciones .accordion-title {
  display: block;
  padding: 0.85rem 1rem;
  background: var(--blanco-1);
  cursor: pointer;
  text-decoration: none;
  color: var(--negro);
  font-weight: 600;
}

.reg-opciones .accordion-title:hover {
  background: var(--arena-1);
}

.reg-opciones .accordion-item.is-active .accordion-title {
  background: var(--arena-1);
  border-bottom: 2px solid var(--arena);
}

.reg-opciones .accordion-content {
  padding: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.reg-opciones .form-group {
  margin-bottom: 0.75rem;
}

.reg-opciones .form-control {
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  border: 1px solid var(--blanco-2);
  width: 100%;
  background: var(--blanco);
  color: var(--negro);
}

.clearfix::after {
  content: "";
  display: table;
  clear: both;
}

.help-text {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin-top: 0.25rem;
}

/* Utilidades legacy (por si se usan en otros sitios) */
.form-group {
  margin-bottom: 1rem;
}

.form-group label {
  display: block;
  margin-bottom: 0.25rem;
  font-weight: 500;
}

.form-control {
  padding: 0.5rem 0.75rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 1rem;
  width: 100%;
}

.text-danger {
  color: #c00;
}

.btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-weight: 500;
  text-decoration: none;
  border: none;
  cursor: pointer;
  font-size: 1rem;
}

.btn-primary {
  background: var(--wba-primary);
  color: #fff;
}

.btn-primary:hover {
  background: var(--wba-primary-dark);
}

.alert {
  padding: 0.75rem 1rem;
  border-radius: 6px;
  margin-bottom: 1rem;
}

.alert-warning {
  background: #fff3cd;
  border: 1px solid #ffc107;
}

.alert-danger {
  background: #ffebee;
  border: 1px solid var(--wba-error);
}

.list-unstyled {
  list-style: none;
  padding-left: 0;
}

.switch-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.switch-input {
  width: 2.5rem;
  height: 1.25rem;
  accent-color: var(--wba-primary);
  cursor: pointer;
}

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.5rem;
}

.col-md-6, .col-lg-4 {
  padding: 0 0.5rem;
}

.mb-3 {
  margin-bottom: 1rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.w-100 {
  width: 100%;
}

/* ----- Página Aviso legal (/register-legal) – Arena guía de estilo ----- */
.legal-page {
  max-width: 800px;
  margin: 0 auto;
  color: var(--negro);
}

.legal-page h1 {
  font-family: "Manuka", "Public Sans", sans-serif;
  font-size: 1.75rem;
  margin-bottom: 1rem;
  color: var(--negro);
}

.legal-page h2 {
  font-family: "Manuka", "Public Sans", sans-serif;
  font-size: 1.25rem;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
  color: var(--arena);
}

.legal-page h3 {
  font-size: 1.1rem;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  color: var(--negro);
}

.legal-section {
  margin-bottom: 1.5rem;
}

.legal-section ol, .legal-section ul {
  margin: 0.5rem 0 1rem 1.25rem;
}

.legal-section li {
  margin-bottom: 0.35rem;
}

.organizador-block {
  padding: 1rem;
  background: var(--blanco-2);
  border-radius: 8px;
  border: 1px solid var(--negro-2);
}

.organizador-datos {
  font-style: normal;
  line-height: 1.6;
  margin: 0.5rem 0 0 0;
  color: var(--negro);
}

.condiciones-html {
  line-height: 1.5;
}

.legal-page h4 {
  font-size: 1rem;
  margin-top: 1rem;
  margin-bottom: 0.5rem;
  color: var(--negro);
  font-weight: 600;
}

.cookies-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75rem 0 1.25rem 0;
  font-size: 0.9rem;
}

.cookies-table th, .cookies-table td {
  border: 1px solid var(--negro-2);
  padding: 0.5rem 0.75rem;
  text-align: left;
}

.cookies-table th {
  background: var(--blanco-2);
  font-weight: 600;
  color: var(--negro);
}

.cookies-table td {
  color: var(--negro-1);
}

.legal-index {
  background: var(--blanco-2);
  padding: 1rem;
  border-radius: 8px;
  margin-bottom: 1.5rem;
}

.legal-index ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.legal-index li {
  margin-bottom: 0.35rem;
}

.legal-index a {
  color: var(--arena);
  text-decoration: underline;
  cursor: pointer;
}

.legal-index a:hover {
  text-decoration: none;
}

.legal-index {
  margin: 1rem 0;
  padding: 0.75rem;
  background: var(--blanco-1);
  border-radius: 6px;
  border: 1px solid var(--blanco-2);
}

.legal-index ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.legal-index a {
  color: var(--arena);
}

.legal-back {
  margin-top: 2rem;
}

.legal-back a {
  color: var(--arena);
}

/* ----- Listado torneos (paridad viewTorneo.ascx / main.css legacy) ----- */
.competitions {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(1, 100%);
}

.competitions > div {
  min-width: 0;
}

.competition.card {
  background: #1F1F1F;
  border-radius: 0.5rem;
  margin: 0;
  padding: 1rem;
  container-type: inline-size;
  container-name: competition-card;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.competition .metainfo {
  display: flex;
  align-items: flex-start;
}

.competition .metainfo > a {
  flex-shrink: 0;
  text-decoration: none;
}

.competition .metainfo img {
  height: 60px;
  max-width: 50%;
  object-fit: contain;
}

.competition .metainfo .metaattr {
  flex-grow: 1;
  text-align: right;
}

.competition .metainfo .metaattr .tipo {
  background-color: var(--arena);
  font-family: "Public Sans", system-ui, sans-serif;
  color: var(--negro);
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.313rem 0.625rem;
  text-transform: uppercase;
  font-size: 0.625rem;
  border-radius: 2.5rem;
  line-height: 0.75rem;
  margin: 0.5rem 0.25rem 0 0;
}

.competition .metainfo .metaattr .tipo .icon {
  font-size: 0.75rem;
  line-height: 1;
}

.competition .metainfo .metaattr .tipo.spartan {
  padding: 0.35rem 0.5rem;
}

.competition .metainfo .metaattr .tipo.tipo-atletas .icon {
  display: inline;
  margin-right: 0.05em;
}

.competition .metainfo .metaattr .tipo.Cerrado {
  background-color: #AAA;
  color: var(--negro);
}

.competition .metainfo .metaattr .tipo.AbiertasPrivadas {
  background-color: #ffaa01;
  color: var(--negro);
}

.competition .metainfo .metaattr span.tipo {
  color: var(--arena);
  background: transparent;
  border: 1px solid var(--arena);
  font-size: 0.75rem;
}

.competition .metainfo .metaattr span.tipo.tipo-registro.AbiertasPublicas,
.competition .metainfo .metaattr span.tipo.tipo-registro.Esperando {
  background-color: var(--arena);
  color: var(--negro);
  border-color: var(--arena);
}

.competition .metaattr span:last-child {
  margin-right: 0;
}

.competition .nombre {
  font-family: Manuka, "Public Sans", sans-serif;
  text-transform: uppercase;
  color: #fff;
  font-size: clamp(1.35rem, 11cqi, 3.125rem);
  line-height: 0.9;
  margin-top: 1rem;
  height: clamp(3.25rem, 18cqi, 5.625rem);
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
}

.competition .tipo.presencial-online {
  background: linear-gradient(135deg, var(--arena) 0%, #6eb8ff 100%);
  color: var(--negro);
}

.fasesinfowrapper {
  margin: 0.5rem 0;
  padding: 0 0.5rem 0.5rem 0.5rem;
  background-color: #2f2f2f;
  border-radius: 0.25rem;
}

.fasesinfo {
  padding-bottom: 1.25rem;
}

.fasesinfo h6 {
  color: var(--arena);
  text-align: center;
  padding: 0.5rem 0 0 0;
  margin: 0;
  font-family: "Public Sans", system-ui, sans-serif;
  font-size: inherit;
  font-weight: 600;
}

.fasesinfo .fasesmodo-dots {
  display: flex;
  justify-content: center;
  gap: 0.313rem;
  margin-top: 0.35rem;
  padding-bottom: 0.15rem;
}

.fasesinfo .fasesmodo-dot {
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 50%;
  border: none;
  padding: 0;
  cursor: pointer;
  background-color: #666;
  transition: background-color 0.2s;
}

.fasesinfo .fasesmodo-dot:hover {
  background-color: #777;
}

.fasesinfo .fasesmodo-dot.active {
  background-color: var(--arena);
}

.fasesinfo:has(.fasesmodo-dots) {
  padding-bottom: 0.5rem;
}

.competition .attributes > div {
  display: flex;
  gap: 0 1rem;
  padding: 0 1px;
  margin-top: 1rem;
  align-items: center;
}

.competition .attributes > div .icon {
  background: var(--arena);
  border-radius: 50%;
  width: 1.375rem;
  min-width: 1.375rem;
  height: 1.375rem;
  text-align: center;
  line-height: 1.375rem;
  color: var(--negro);
  font-size: 0.75rem;
  flex-shrink: 0;
}

.competition .attributes > div .info {
  line-height: normal;
  color: var(--blanco);
  font-family: "Public Sans", system-ui, sans-serif;
  font-size: 0.813rem;
  flex-grow: 1;
}

.competition .links aside {
  text-align: right;
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.competition .links aside .competition-link,
.competition .links aside .icon {
  font-size: 1.25rem;
  color: var(--arena);
  text-decoration: none;
}

.competition .links aside .competition-link.icon.social,
.competition .links aside .icon.social {
  background-color: #F65777;
  color: #fff;
  border-radius: 5px;
}

.competition .links aside .competition-link:hover {
  opacity: 0.85;
}

.competition .secondaryactions {
  text-decoration: underline;
  white-space: nowrap;
  display: flex;
  gap: 1rem;
  margin: 0.5rem 0 0;
}

.competition .secondaryactions a {
  color: var(--blanco);
}

.competition .primaryactions {
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
  grid-template-columns: 1fr 1fr;
}

.competition .primaryactions .button.radius {
  margin-bottom: 0;
  width: 100%;
  background: transparent;
  border: 1px solid var(--arena);
  color: var(--arena);
  border-radius: 3px;
  padding: 0.6rem 1rem;
  font-weight: 700;
  text-decoration: none;
  text-align: center;
  cursor: pointer;
  font-size: 0.9rem;
  transition: background 0.2s, color 0.2s;
}

.competition .primaryactions .button.radius:hover {
  background: var(--arena);
  color: var(--negro);
}

.competition .primaryactions .button.radius:only-child {
  grid-column: 1/-1;
}

/* Filtros torneos – tarjeta clara, pestañas y panel de fechas */
.troneosfilters {
  position: relative;
  margin-bottom: 1.75rem;
  padding: 1.35rem 1.35rem 1.4rem;
  padding-left: max(1.35rem, env(safe-area-inset-left));
  padding-right: max(1.35rem, env(safe-area-inset-right));
  overflow: hidden;
  background: radial-gradient(120% 80% at 100% 0%, rgba(76, 237, 171, 0.07) 0%, transparent 55%), linear-gradient(165deg, var(--blanco) 0%, var(--blanco-1) 52%, #f4f6f5 100%);
  border: 1px solid rgba(15, 15, 15, 0.07);
  border-radius: 16px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.95) inset, 0 8px 28px rgba(15, 15, 15, 0.055);
}

.troneosfilters::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--arena) 0%, rgba(76, 237, 171, 0.55) 45%, rgba(76, 237, 171, 0.2) 100%);
  border-radius: 16px 16px 0 0;
}

.troneosfilters-head {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.troneosfilters-kicker {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--negro-1);
  opacity: 0.92;
}

.troneosfilters-tabs {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  gap: 0.35rem;
  margin: 0;
  padding: 0.4rem;
  box-sizing: border-box;
  background: rgba(15, 15, 15, 0.035);
  border-radius: 14px;
  border: 1px solid rgba(15, 15, 15, 0.06);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}

.troneosfilters-tab {
  flex: 1 1 0;
  min-width: 0;
  padding: 0.6rem 0.65rem;
  min-height: 46px;
  font-family: "Public Sans", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--negro-1);
  background: transparent;
  border: none;
  border-radius: 11px;
  cursor: pointer;
  text-align: center;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, transform 0.15s ease;
}

.troneosfilters-tab:hover {
  background: rgba(255, 255, 255, 0.75);
  color: var(--negro);
}

.troneosfilters-tab.active {
  background: linear-gradient(180deg, #ffffff 0%, #f7faf8 100%);
  color: var(--negro);
  box-shadow: 0 1px 3px rgba(15, 15, 15, 0.08), 0 0 0 1px rgba(76, 237, 171, 0.35);
}

.troneosfilters-tab:focus-visible {
  outline: 2px solid var(--arena);
  outline-offset: 2px;
}

.troneosfilters-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.75rem 1rem;
  margin-top: 1.1rem;
  padding-top: 1.1rem;
  border-top: 1px solid rgba(15, 15, 15, 0.065);
}

.troneosfilters-search {
  flex: 0 1 auto;
  width: min(100%, 280px);
  max-width: 280px;
  min-width: 11rem;
  min-height: 48px;
  display: flex;
  align-items: center;
  background: var(--blanco);
  border: 1px solid rgba(15, 15, 15, 0.09);
  border-radius: 12px;
  padding: 0 0.85rem 0 0.9rem;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.troneosfilters-search:focus-within {
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.22);
}

.troneosfilters-search-icon {
  display: inline-block;
  width: 1.2rem;
  height: 1.2rem;
  margin-right: 0.55rem;
  flex-shrink: 0;
  opacity: 0.72;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23535353' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3-3'/%3E%3C/svg%3E") center/contain no-repeat;
}

.troneosfilters .icon {
  color: var(--negro-2);
}

.troneosfilters-select-wrap {
  display: flex;
  align-items: center;
  flex: 0 1 auto;
  min-height: 48px;
  padding: 0 0.65rem 0 0.75rem;
  background: var(--blanco);
  border: 1px solid rgba(15, 15, 15, 0.09);
  border-radius: 12px;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.troneosfilters-select-wrap:focus-within {
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.22);
}

.troneosfilters-select-icon {
  margin-right: 0.4rem;
  font-size: 1rem;
  color: var(--negro-2);
  flex-shrink: 0;
  opacity: 0.9;
}

.troneosfilters-select-icon.icon {
  display: inline-flex;
  align-items: center;
  speak: none;
  line-height: 1;
}

.troneosfilters-input {
  flex: 1;
  min-width: 0;
  padding: 0.6rem 0;
  border: none;
  background: transparent;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--negro);
  caret-color: var(--arena);
}

.troneosfilters-input::placeholder {
  color: var(--negro-1);
  opacity: 0.8;
  font-weight: 400;
}

.troneosfilters-input:focus {
  outline: none;
}

.troneosfilters-input:-webkit-autofill,
.troneosfilters-input:-webkit-autofill:hover,
.troneosfilters-input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--negro);
  transition: background-color 6000s ease-in-out 0s;
  box-shadow: 0 0 0 1000px var(--blanco) inset;
}

.troneosfilters-selects {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: stretch;
  flex: 1 1 min(100%, 280px);
  min-width: 0;
  justify-content: flex-end;
}

.troneosfilters-select {
  flex: 1 1 auto;
  min-width: 7.5rem;
  padding: 0.5rem 1.55rem 0.5rem 0.1rem;
  font-size: 0.875rem;
  font-family: inherit;
  font-weight: 600;
  color: var(--negro);
  background-color: transparent;
  border: none;
  border-radius: 0;
  cursor: pointer;
  transition: color 0.15s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23686868' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0 center;
  background-size: 10px;
  appearance: none;
  -webkit-appearance: none;
}

.troneosfilters-select:hover {
  color: var(--negro-2);
}

.troneosfilters-select:focus {
  outline: none;
}

.troneosfilters-select-wrap:hover {
  border-color: rgba(76, 237, 171, 0.45);
}

/* Panel de rango de fechas */
.troneosfilters-dates-panel {
  grid-column: 1/-1;
  width: 100%;
  box-sizing: border-box;
  margin-top: 0.15rem;
  padding: 0.95rem 1.1rem 1.05rem;
  background: linear-gradient(145deg, rgba(76, 237, 171, 0.09) 0%, rgba(76, 237, 171, 0.02) 42%, transparent 100%), var(--blanco);
  border: 1px solid rgba(76, 237, 171, 0.22);
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset;
}

.troneosfilters-dates-head {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin-bottom: 0.75rem;
  padding-bottom: 0.55rem;
  border-bottom: 1px solid rgba(15, 15, 15, 0.06);
}

.troneosfilters-dates-head-icon {
  font-size: 1.05rem;
  opacity: 0.85;
  color: rgba(15, 15, 15, 0.55);
}

.troneosfilters-dates-kicker {
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.11em;
  text-transform: uppercase;
  color: var(--negro-1);
}

.troneosfilters-dates-fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.65rem 0.85rem;
}

.troneosfilters-date-chip {
  flex: 1 1 140px;
  min-width: min(100%, 148px);
  max-width: 260px;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.troneosfilters-date-chip-label {
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--negro-1);
  line-height: 1.2;
}

.troneosfilters-input-date {
  width: 100%;
  min-width: 0;
  min-height: 44px;
  padding: 0.45rem 0.65rem;
  box-sizing: border-box;
  font-size: 0.875rem;
  font-weight: 600;
  font-family: inherit;
  color: var(--negro);
  background: var(--blanco);
  border: 1px solid rgba(15, 15, 15, 0.1);
  border-radius: 10px;
  transition: border-color 0.2s, box-shadow 0.2s;
  cursor: pointer;
}

.troneosfilters-input-date:hover {
  border-color: rgba(76, 237, 171, 0.45);
}

.troneosfilters-input-date:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.2);
}

.troneosfilters-dates-sep {
  flex: 0 0 auto;
  align-self: center;
  width: 1.5rem;
  height: 2px;
  margin-bottom: 0.5rem;
  background: linear-gradient(90deg, transparent, rgba(15, 15, 15, 0.12) 20%, rgba(15, 15, 15, 0.12) 80%, transparent);
  border-radius: 1px;
}

@media (min-width: 520px) {
  .troneosfilters-dates-sep {
    width: 2rem;
    margin-bottom: 0.85rem;
  }
}
.troneosfilters-btn-refresh {
  flex-shrink: 0;
  padding: 0.5rem 1rem;
  margin: 0;
}

/* Desktop/tablet ancho: búsqueda + selects en fila; panel fechas debajo a ancho completo */
@media (min-width: 768px) {
  .troneosfilters-bar {
    display: grid;
    grid-template-columns: minmax(220px, 300px) minmax(0, 1fr);
    gap: 0.75rem 1rem;
    align-items: stretch;
  }
  .troneosfilters-search {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
    max-width: none;
    min-width: 0;
  }
  .troneosfilters-selects {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
    gap: 0.55rem;
    flex: unset;
    min-width: 0;
    justify-content: stretch;
  }
  .troneosfilters-select-wrap {
    min-width: 0;
  }
  .troneosfilters-dates-panel {
    grid-column: 1/-1;
    grid-row: 2;
  }
}
@media (max-width: 640px) {
  .troneosfilters {
    margin-bottom: 1.25rem;
    padding: 1rem max(0.85rem, env(safe-area-inset-left)) 1.15rem max(0.85rem, env(safe-area-inset-right));
    border-radius: 12px;
  }
  .troneosfilters::before {
    border-radius: 12px 12px 0 0;
  }
  .troneosfilters-head {
    gap: 0.5rem;
  }
  .troneosfilters-tabs {
    gap: 0.25rem;
    padding: 0.3rem;
  }
  .troneosfilters-tab {
    padding: 0.55rem 0.4rem;
    font-size: 0.75rem;
    letter-spacing: 0.02em;
  }
  .troneosfilters-bar {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin-top: 0.95rem;
    padding-top: 0.95rem;
    gap: 0.65rem;
  }
  .troneosfilters-search {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
    max-width: none;
  }
  .troneosfilters-input,
  .troneosfilters-select {
    font-size: 16px;
  }
  .troneosfilters-selects {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
    flex: 1 1 auto;
    justify-content: stretch;
  }
  .troneosfilters-select-wrap {
    width: 100%;
    min-width: 0;
    min-height: 48px;
  }
  .troneosfilters-select {
    width: 100%;
    min-width: 0;
  }
  .troneosfilters-dates-panel {
    padding: 0.85rem 0.9rem 0.95rem;
    margin-top: 0;
    border-radius: 12px;
  }
  .troneosfilters-dates-head {
    margin-bottom: 0.65rem;
    padding-bottom: 0.5rem;
  }
  .troneosfilters-dates-fields {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  .troneosfilters-dates-sep {
    display: none;
  }
  .troneosfilters-date-chip {
    flex: 1 1 auto;
    max-width: none;
    min-width: 0;
  }
  .troneosfilters-input-date {
    font-size: 16px;
    min-height: 48px;
  }
}
@media only screen and (min-width: 40em) {
  .competitions,
  .competitions.grid-3 {
    grid-template-columns: repeat(2, calc(50% - 0.625rem));
  }
}
@media only screen and (min-width: 64em) {
  .competitions,
  .competitions.grid-2 {
    grid-template-columns: repeat(2, calc(50% - 0.625rem));
  }
  .competitions,
  .competitions.grid-3 {
    grid-template-columns: repeat(3, calc(33.33% - 0.833rem));
  }
}
@media (max-width: 640px) {
  .competition .nombre {
    font-size: 1.75rem;
    line-height: 1.65rem;
    height: 3.3rem;
    margin-top: 0.75rem;
  }
  .competition .metainfo img {
    height: 50px;
  }
  .competition .metainfo .metaattr .tipo {
    font-size: 0.6rem;
    padding: 0.25rem 0.5rem;
  }
  .competition .primaryactions {
    grid-template-columns: 1fr 1fr;
  }
}
.troneosfilters-aviso {
  margin: 1.5rem 0;
  padding: 1rem;
  background: var(--blanco-1);
  border-radius: 8px;
  color: var(--negro-1);
}

.load-more-sentinel {
  height: 20px;
  margin: 1rem 0;
}

.loading-more {
  text-align: center;
  padding: 1rem;
  color: var(--arena);
}

.load-more-error {
  margin-top: 1rem;
  padding: 1rem;
  background: rgba(200, 60, 60, 0.15);
  border: 1px solid var(--wba-error);
  border-radius: 8px;
  color: var(--wba-error-strong);
}

/* Barra de error de Blazor (oculta por defecto en index.html; el framework la muestra si hay error no controlado) */
#blazor-error-ui.blazor-error-ui {
  background: linear-gradient(90deg, var(--negro-3) 0%, var(--negro-2) 100%);
  color: var(--blanco);
  padding: 0.75rem 1.5rem;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
  font-size: 0.9rem;
}

#blazor-error-ui.blazor-error-ui .reload {
  color: var(--arena);
  margin-left: 1rem;
  text-decoration: none;
}

#blazor-error-ui.blazor-error-ui .reload:hover {
  text-decoration: underline;
}

#blazor-error-ui.blazor-error-ui .dismiss {
  float: right;
  cursor: pointer;
  opacity: 0.8;
}

#blazor-error-ui.blazor-error-ui .dismiss:hover {
  opacity: 1;
}

/* Utilidad botón (Home, Captain, etc.) */
.leaderboard-btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: var(--arena);
  color: var(--negro);
  border: none;
  border-radius: 8px;
  font-weight: 600;
  cursor: pointer;
  text-decoration: none;
  font-size: 0.95rem;
}

.leaderboard-btn:hover {
  filter: brightness(1.05);
}

.leaderboard-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.leaderboard-btn--small {
  padding: 0.35rem 0.75rem;
  font-size: 0.85rem;
}

.leaderboard-btn--secondary {
  background: transparent;
  border: 2px solid var(--negro-2);
  color: var(--negro);
}

.competition .primaryactions .button.radius.captain {
  border-color: var(--arena-2);
  color: var(--arena-2);
}

.competition .primaryactions .button.radius.captain:hover {
  background: var(--arena-2);
  color: var(--negro);
}

.competition-captain-row {
  margin: 0 0 0.75rem;
}

.competition-btn-captain {
  display: inline-block;
  padding: 0.6rem 1.25rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid var(--arena-2);
  color: var(--arena-2);
  background: transparent;
  border-radius: 8px;
  transition: background 0.2s, color 0.2s;
}

.competition-btn-captain:hover {
  background: var(--arena-2);
  color: var(--negro);
}

.competition-member-row {
  margin: 0 0 0.75rem;
}

.competition-admin-row {
  margin: 0 0 0.5rem;
}

.competition-btn-member {
  display: inline-block;
  padding: 0.6rem 1.25rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid var(--arena, #008050);
  color: var(--arena, #008050);
  background: transparent;
  border-radius: 8px;
  transition: background 0.2s, color 0.2s;
}

.competition-btn-member:hover {
  background: var(--arena, #008050);
  color: var(--blanco-1, #fff);
}

.competition-entradas-row {
  margin: 0 0 0.75rem;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: rgba(180, 120, 40, 0.08);
  border: 1px solid rgba(180, 120, 40, 0.35);
}

.competition-entradas-label {
  display: block;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--negro-1);
  margin-bottom: 0.45rem;
}

.competition-btn-entradas {
  display: inline-block;
  padding: 0.6rem 1.25rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid #b8860b;
  color: #8b6914;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 8px;
  transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.competition-btn-entradas:hover {
  background: #b8860b;
  color: var(--blanco-1, #fff);
  border-color: #b8860b;
}

.competition-entradas-hint {
  margin: 0.5rem 0 0 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--negro-1);
}

/* ========== Página Zona capitán – Arena Guía de estilo ========== */
.captain-wrap {
  max-width: 44rem;
  margin: 0 auto;
}

/* Listado y wizard de opciones de compra: más ancho que el resto de capitán (formularios densos, paso 3 dos columnas) */
.captain-wrap.opciones-compra-config {
  max-width: min(56rem, 100%);
}

.captain-wrap.producto-editor-page {
  max-width: min(1280px, 100%);
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

.captain-back--above {
  display: inline-block;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

/* Cabecero de competición – responsive móvil/escritorio, info intuitiva */
.captain-comp-header {
  position: relative;
  margin-bottom: 2rem;
  padding: 3.25rem 1rem 1.25rem;
  background: linear-gradient(180deg, var(--negro-3) 0%, var(--negro) 100%);
  border-radius: 12px;
  border: 1px solid var(--negro-2);
  color: var(--blanco);
}

.captain-comp-header-top {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.captain-comp-logo {
  width: 80px;
  height: 80px;
  min-width: 80px;
  min-height: 80px;
  object-fit: contain;
  object-position: center;
  border-radius: 8px;
  background: var(--blanco-1);
}

.captain-comp-header-title-wrap {
  text-align: center;
}

.captain-comp-name {
  font-family: "Manuka", sans-serif;
  font-size: 1.75rem;
  font-weight: 500;
  color: var(--blanco);
  margin: 0 0 0.35rem 0;
  line-height: 1.3;
}

.captain-comp-subtitle {
  font-size: 0.9rem;
  color: var(--arena-1);
  margin: 0;
}

.captain-comp-badge {
  display: inline;
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--arena-1);
  margin: 0;
}

.captain-comp-badge--category::after {
  content: " · ";
  color: var(--arena-2);
}

.captain-comp-badge--rol {
  color: var(--arena);
}

/* Grid de info: cuándo, dónde, organizador */
.captain-comp-info-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.captain-comp-info-item {
  display: flex;
  align-items: flex-start;
  gap: 0.6rem;
  padding: 0.6rem 0.75rem;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.captain-comp-info-icon {
  font-size: 1.1rem;
  flex-shrink: 0;
  line-height: 1;
}

.captain-comp-info-item > div {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.captain-comp-info-label {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--arena-1);
}

.captain-comp-info-value {
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--blanco);
}

.captain-comp-header .captain-comp-org-contacto {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.85);
}

.captain-comp-header .captain-comp-link {
  color: var(--arena);
  font-weight: 600;
  text-decoration: none;
}

.captain-comp-header .captain-comp-link:hover {
  text-decoration: underline;
}

.captain-comp-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
}

.captain-comp-web-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.5rem 0.9rem;
  background: var(--arena);
  color: var(--negro);
  font-weight: 600;
  font-size: 0.9rem;
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.2s;
}

.captain-comp-web-btn:hover {
  background: var(--arena-2);
}

.captain-comp-header .captain-back {
  font-size: 0.9rem;
  color: var(--arena);
  font-weight: 600;
  text-decoration: none;
}

.captain-comp-header .captain-back:hover {
  text-decoration: underline;
  color: var(--arena-2);
}

/* Tablet/desktop: layout horizontal */
@media (min-width: 36rem) {
  .captain-comp-header {
    padding: 1.5rem 1.25rem;
  }
  .captain-comp-header-top {
    flex-direction: row;
    align-items: flex-start;
    text-align: left;
    gap: 1.25rem;
    margin-bottom: 1.5rem;
  }
  .captain-comp-logo {
    width: 100px;
    height: 100px;
    min-width: 100px;
    min-height: 100px;
  }
  .captain-comp-header-title-wrap {
    text-align: left;
    flex: 1;
  }
  .captain-comp-name {
    font-size: 2rem;
  }
  .captain-comp-info-grid {
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
  }
}
@media (min-width: 48rem) {
  .captain-comp-header {
    padding: 1.75rem 1.5rem;
  }
  .captain-comp-name {
    font-size: 2.25rem;
  }
  .captain-comp-info-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
/* Icono campana comunicaciones en cabecero */
.captain-header-comms-btn {
  position: absolute;
  top: 1rem;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--arena);
  cursor: pointer;
  transition: background 0.2s, transform 0.15s;
}

.captain-header-comms-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  transform: translateX(-50%) scale(1.05);
}

@media (min-width: 36rem) {
  .captain-header-comms-btn {
    left: auto;
    right: 1rem;
    transform: none;
  }
  .captain-header-comms-btn:hover {
    transform: scale(1.05);
  }
}
.captain-header-comms-icon {
  width: 1.35rem;
  height: 1.35rem;
}

.captain-header-comms-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 4px;
  font-size: 0.7rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
  color: var(--blanco);
  background: var(--wba-error);
  border-radius: 10px;
}

/* Vista miembro: badge "Miembro" (mismo estilo que Capitán) */
.member-wrap .member-abandonar-section {
  border-color: var(--blanco-2);
}

/* ========== Member: layout dos columnas + sidebar ========== */
.member-page-layout {
  display: grid;
  gap: 2rem;
  margin-top: 1.5rem;
}

@media (min-width: 900px) {
  .member-page-layout {
    grid-template-columns: 280px 1fr;
    align-items: start;
  }
  .member-sidebar {
    position: sticky;
    top: 1rem;
  }
}
.member-sidebar {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  background: linear-gradient(160deg, var(--negro-3) 0%, var(--negro-2) 100%);
  border-radius: 14px;
  padding: 1.25rem;
  border: 1px solid rgba(76, 237, 171, 0.15);
}

.member-sidebar-title {
  font-family: "Manuka", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--arena);
  margin: 0 0 0.75rem 0;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.member-equipo-card {
  background: rgba(0, 0, 0, 0.25);
  border-radius: 10px;
  padding: 1rem;
  margin-bottom: 1rem;
}

.member-equipo-nombre {
  font-weight: 700;
  color: var(--blanco);
  font-size: 1.1rem;
  margin-bottom: 0.35rem;
}

.member-equipo-meta {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.member-equipo-meta span {
  display: inline-block;
  margin-right: 0.75rem;
}

.member-roster {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.member-roster-item {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.65rem;
  background: rgba(0, 0, 0, 0.2);
  border-radius: 8px;
  font-size: 0.9rem;
  transition: background 0.2s;
}

.member-roster-item:hover {
  background: rgba(0, 0, 0, 0.35);
}

.member-roster-item--capitan {
  background: rgba(76, 237, 171, 0.12);
  border: 1px solid rgba(76, 237, 171, 0.3);
}

.member-roster-avatar {
  width: 2rem;
  height: 2rem;
  min-width: 2rem;
  border-radius: 50%;
  background: var(--negro-2);
  color: var(--arena);
  font-size: 0.75rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.member-roster-item--capitan .member-roster-avatar {
  background: var(--arena);
  color: var(--negro);
}

.member-roster-photo {
  width: 2.25rem;
  height: 2.25rem;
  min-width: 2.25rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 2px solid rgba(255, 255, 255, 0.2);
  background: var(--negro-2);
}

.member-roster-item--capitan .member-roster-photo {
  border-color: rgba(76, 237, 171, 0.5);
  box-shadow: 0 0 0 1px rgba(76, 237, 171, 0.25);
}

.member-roster-nombre {
  flex: 1;
  min-width: 0;
  color: var(--blanco);
  font-weight: 500;
}

.member-roster-badge {
  font-size: 0.65rem;
  font-weight: 800;
  background: var(--arena);
  color: var(--negro);
  padding: 0.15rem 0.4rem;
  border-radius: 4px;
}

.member-sidebar-abandonar {
  margin-top: auto;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.member-btn-abandonar {
  width: 100%;
  padding: 0.6rem 1rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--wba-error);
  background: transparent;
  border: 2px solid rgba(192, 61, 50, 0.5);
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.member-btn-abandonar:hover:not(:disabled) {
  background: rgba(192, 61, 50, 0.15);
  border-color: var(--wba-error);
}

.member-btn-abandonar:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.member-abandonar-msg {
  margin-top: 0.5rem !important;
  font-size: 0.85rem !important;
}

.member-content {
  min-width: 0;
}

.member-content--productos {
  padding: 1rem 1.25rem 1.5rem;
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, var(--blanco-1) 100%);
  border: 1px solid var(--blanco-2);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.04);
}

@media (min-width: 64em) {
  .member-content--productos {
    padding: 1.25rem 1.5rem 2rem;
  }
}
.member-content--productos .captain-section {
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  padding: 1.25rem 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.member-content--productos .product-flow-section--included {
  border-left-width: 5px;
  border-radius: 12px;
}

.member-content--productos .product-flow-section--shop {
  border-left-width: 5px;
  border-radius: 12px;
}

.member-content--productos .captain-section--mis-compras.product-flow-section,
.member-content--productos .product-flow-section--mis-compras {
  border-left-width: 5px;
  border-radius: 12px;
}

.member-content--productos .athlete-products-intro {
  margin-bottom: 1.5rem;
}

.member-content--productos .captain-section-title {
  font-size: 1.2rem;
  letter-spacing: -0.02em;
}

.member-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  padding: 0.35rem;
  background: var(--blanco-2);
  border-radius: 10px;
  width: fit-content;
}

.member-tab {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.25rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro-1);
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.member-tab:hover {
  color: var(--negro);
  background: var(--blanco-1);
}

.member-tab--active {
  background: var(--arena);
  color: var(--negro);
}

.member-tab-icon {
  font-size: 1.1em;
  line-height: 1;
}

/* Member: refinado de cards de productos */
.member-content .upsell-card {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.member-content .upsell-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.member-content .mis-compra-card {
  border-radius: 14px;
  overflow: hidden;
}

.member-content .captain-section {
  border-radius: 14px;
}

.captain-header {
  margin-bottom: 2rem;
}

.captain-title {
  font-family: "Manuka", sans-serif;
  font-size: 1.75rem;
  font-weight: 500;
  margin-bottom: 0.25rem;
  color: var(--blanco);
}

.captain-sub {
  font-size: 1.1rem;
  color: var(--arena-2);
  margin-bottom: 0.5rem;
}

.captain-category {
  display: inline-block;
  background: var(--arena);
  color: var(--negro);
  padding: 0.35rem 0.9rem;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 0.75rem;
}

.captain-back {
  color: var(--arena);
  font-weight: 600;
  text-decoration: none;
}

.captain-back:hover {
  text-decoration: underline;
  color: var(--arena-2);
}

/* Secciones – fondo claro sobre negro (Arena blanco-1, blanco-2) */
.captain-section {
  margin-bottom: 2rem;
  padding: 1.5rem;
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
  box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06);
}

/* Public Sans: legibilidad en secciones (Manuka display poco claro en frases/títulos largos). */
.captain-section-title {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: -0.015em;
  margin-bottom: 1.25rem;
  color: var(--negro);
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.captain-section-title::before {
  content: "";
  width: 4px;
  height: 1.25rem;
  align-self: center;
  background: var(--arena);
  border-radius: 2px;
  flex-shrink: 0;
}

.captain-hint {
  font-size: 0.9rem;
  color: var(--negro-1);
  margin-bottom: 1rem;
  line-height: 1.5;
}

/* Bloque estadísticas miembros – destacado (Arena: negro-3 + arena) */
.captain-members-stats {
  background: linear-gradient(135deg, var(--negro-3) 0%, var(--negro-2) 100%);
  color: var(--blanco);
  padding: 1.25rem 1.5rem;
  border-radius: 12px;
  margin-bottom: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  border: 1px solid var(--negro-2);
}

.captain-stat-item {
  text-align: center;
}

.captain-stat-label {
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.85;
  display: block;
  margin-bottom: 0.25rem;
  color: var(--arena-1);
}

.captain-stat-value {
  font-family: "Manuka", sans-serif;
  font-size: 1.75rem;
  font-weight: 500;
  color: var(--blanco);
}

/* Estado del equipo – barra de progreso + 4 ítems con mini-barras */
.captain-estado-equipo {
  margin-bottom: 1.75rem;
  padding: 1.5rem;
  background: linear-gradient(145deg, var(--negro-3) 0%, var(--negro-2) 100%);
  border-radius: 14px;
  border: 1px solid rgba(76, 237, 171, 0.25);
}

.captain-estado-equipo .captain-section-title {
  margin-bottom: 1.25rem;
  font-size: 1.55rem;
  color: var(--blanco);
}

.captain-estado-progress-wrap {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}

.captain-estado-progress-bar {
  flex: 1;
  height: 18px;
  background: var(--negro);
  border-radius: 9px;
  overflow: hidden;
  box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.5);
}

.captain-estado-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--arena) 0%, #5ef5b8 100%);
  border-radius: 9px;
  transition: width 0.5s ease;
  box-shadow: 0 0 14px rgba(76, 237, 171, 0.5);
}

.captain-estado-progress-pct {
  font-weight: 800;
  font-size: 1.4rem;
  min-width: 4rem;
  color: var(--arena);
}

.captain-estado-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1rem;
}

.captain-estado-item {
  background: var(--negro);
  padding: 1rem 1.15rem;
  border-radius: 10px;
  border: 1px solid var(--negro-2);
}

.captain-estado-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: block;
  color: var(--arena-2);
  margin-bottom: 0.2rem;
}

.captain-estado-value {
  font-weight: 600;
  font-size: 1rem;
  display: block;
  margin: 0 0 0.6rem;
  color: var(--blanco);
}

.captain-estado-mini-bar {
  height: 6px;
  background: var(--negro-2);
  border-radius: 3px;
  overflow: hidden;
}

.captain-estado-mini-fill {
  height: 100%;
  background: var(--negro-1);
  border-radius: 3px;
  transition: width 0.35s ease, background 0.2s;
}

.captain-estado-mini-fill.ok {
  background: var(--arena);
  box-shadow: 0 0 8px rgba(76, 237, 171, 0.4);
}

/* Botones capitán (Arena primario/secundario/peligro) */
.captain-btn {
  padding: 0.6rem 1.25rem;
  border: none;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.15s;
}

.captain-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.captain-btn--primary {
  background: var(--arena);
  color: var(--negro);
}

.captain-btn--primary:hover:not(:disabled) {
  background: var(--wba-primary-dark);
  color: var(--negro);
  transform: translateY(-1px);
}

.captain-btn--secondary {
  background: transparent;
  color: var(--negro);
  border: 2px solid var(--arena);
}

.captain-btn--secondary:hover:not(:disabled) {
  background: var(--arena-1);
  color: var(--negro);
}

.captain-btn--danger {
  background: var(--wba-error);
  color: var(--blanco);
}

.captain-btn--danger:hover:not(:disabled) {
  background: var(--wba-error-strong);
  transform: translateY(-1px);
}

/* Grid y tarjetas de miembros (referencia HTML) */
.captain-members-grid {
  display: grid;
  gap: 1rem;
}

.captain-member-card {
  background: var(--blanco-1);
  border: 2px solid var(--blanco-2);
  border-radius: 12px;
  padding: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.captain-member-card:hover {
  border-color: var(--blanco-2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.captain-member-card--capitan {
  border-color: var(--arena);
  background: linear-gradient(135deg, var(--arena-1) 0%, var(--blanco-1) 100%);
}

.captain-member-avatar {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background: var(--negro-2);
  color: var(--arena);
  font-family: "Manuka", sans-serif;
  font-size: 1rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.captain-member-card--capitan .captain-member-avatar {
  background: var(--arena);
  color: var(--negro);
}

.captain-member-photo {
  width: 3.5rem;
  height: 3.5rem;
  min-width: 3.5rem;
  border-radius: 50%;
  object-fit: cover;
  flex-shrink: 0;
  border: 3px solid var(--blanco-2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-member-card--capitan .captain-member-photo {
  border-color: var(--arena);
  box-shadow: 0 2px 12px rgba(0, 120, 80, 0.2);
}

.captain-member-info {
  flex: 1;
  min-width: 0;
}

.captain-member-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
  margin-bottom: 0.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.captain-member-badge {
  background: var(--arena);
  color: var(--negro);
  padding: 0.2rem 0.6rem;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
}

.captain-member-email {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.captain-member-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.captain-member-actions .captain-btn {
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
}

/* Listas (invitaciones, etc.) */
.captain-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.captain-list-item {
  padding: 0.75rem;
  border-bottom: 1px solid var(--blanco-2);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.captain-list-item:last-child {
  border-bottom: none;
}

.captain-list-item--pending {
  justify-content: space-between;
}

.captain-badge {
  font-size: 0.75rem;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  background: var(--arena-1);
  color: var(--negro);
  font-weight: 600;
}

.captain-badge--capitan {
  background: var(--arena);
  color: var(--negro);
}

.captain-badge--companero {
  background: var(--blanco-2);
  color: var(--negro-1);
}

.captain-badge--enviado {
  background: var(--blanco-2);
  color: var(--negro-1);
}

.captain-name {
  font-weight: 600;
}

.captain-email {
  color: var(--negro-1);
  font-size: 0.95rem;
}

.captain-actions {
  display: flex;
  gap: 0.5rem;
}

.captain-list-item--sent {
  align-items: center;
  gap: 0.75rem;
}

/* Formularios e inputs (Arena: focus con arena) */
.captain-invite {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  align-items: center;
}

.captain-input {
  padding: 0.6rem 0.9rem;
  border: 2px solid var(--blanco-2);
  border-radius: 8px;
  font-size: 1rem;
  min-width: 12rem;
  background: var(--blanco);
  color: var(--negro);
  transition: border-color 0.2s;
}

.captain-input:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.15);
}

.captain-categorias {
  margin-bottom: 1.5rem;
}

.captain-wrap > .captain-categorias .captain-label {
  color: var(--arena-1);
}

.captain-wrap > .captain-categorias .captain-select {
  background: var(--negro-2);
  border-color: var(--negro-2);
  color: var(--blanco);
}

.captain-label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.35rem;
  color: var(--negro-1);
}

.captain-select {
  padding: 0.6rem 0.9rem;
  border-radius: 8px;
  border: 2px solid var(--blanco-2);
  min-width: 14rem;
  background: var(--blanco);
  color: var(--negro);
}

.captain-select:focus {
  outline: none;
  border-color: var(--arena);
}

.captain-msg {
  margin: 0.5rem 0;
  font-size: 0.95rem;
  color: var(--negro-1);
}

.captain-msg--error {
  color: var(--wba-error-strong);
}

/* Datos del equipo (editar nombre, país, box) */
.captain-datos-list {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.25rem 1.5rem;
  margin: 0 0 1rem 0;
  max-width: 28rem;
}

.captain-datos-list dt {
  color: var(--negro-1);
  font-size: 0.9rem;
}

.captain-datos-list dd {
  margin: 0;
  font-weight: 500;
  color: var(--negro);
}

.captain-form-datos {
  max-width: 28rem;
}

.captain-form-group {
  margin-bottom: 1rem;
}

.captain-form-group .captain-input,
.captain-form-group .captain-select {
  width: 100%;
  max-width: 20rem;
  box-sizing: border-box;
}

.captain-radio-group {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.5rem;
}

.captain-radio-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-weight: 500;
}

.captain-form-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
}

/* Drawer: móvil = bottom sheet (abajo arriba), desktop = lateral derecha (derecha izquierda) */
.global-drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 15, 0.5);
  z-index: 1100;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.global-drawer-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
}

/* Móvil: bottom sheet, desliza de abajo a arriba */
.global-drawer {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  max-height: 90vh;
  border-radius: 12px 12px 0 0;
  background: var(--blanco);
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.2);
  z-index: 1101;
  display: flex;
  flex-direction: column;
  transform: translateY(100%);
  pointer-events: none;
  visibility: hidden;
  transition: transform 0.3s ease, visibility 0.3s ease;
}

.global-drawer.is-open {
  transform: translateY(0);
  pointer-events: auto;
  visibility: visible;
}

.global-drawer--small {
  width: 100%;
}

.global-drawer--medium {
  width: 100%;
}

.global-drawer--large {
  width: 100%;
}

@keyframes global-drawer-slide-up {
  from {
    transform: translateY(100%);
  }
  to {
    transform: translateY(0);
  }
}
@keyframes global-drawer-slide-right {
  from {
    transform: translateX(100%);
  }
  to {
    transform: translateX(0);
  }
}
/* Pantalla grande: lateral derecha, desliza de derecha a izquierda */
@media (min-width: 768px) {
  .global-drawer {
    top: 0;
    bottom: 0;
    left: auto;
    right: 0;
    max-height: none;
    border-radius: 0;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.2);
    transform: translateX(100%);
    transition: transform 0.25s ease, visibility 0.25s ease;
  }
  .global-drawer.is-open {
    transform: translateX(0);
  }
  .global-drawer--small {
    width: min(320px, 90vw);
  }
  .global-drawer--medium {
    width: min(400px, 90vw);
  }
  .global-drawer--large {
    width: min(520px, 95vw);
  }
}
.global-drawer-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--blanco-2);
  background: var(--blanco-1);
  flex-shrink: 0;
}

.global-drawer-title {
  font-family: "Manuka", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  margin: 0;
  color: var(--negro);
}

.global-drawer-close {
  width: 2.25rem;
  height: 2.25rem;
  padding: 0;
  border: none;
  background: var(--blanco-2);
  border-radius: 8px;
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  color: var(--negro);
}

.global-drawer-close:hover {
  background: var(--arena-1);
  color: var(--negro);
}

.global-drawer-body {
  padding: 1.25rem;
  overflow-y: auto;
  overflow-x: hidden;
  flex: 1;
  min-height: 0;
}

.global-drawer--large .global-drawer-body {
  padding: 1rem 1.25rem;
}

.global-drawer-footer {
  padding: 1rem 1.25rem;
  border-top: 1px solid var(--blanco-2);
  flex-shrink: 0;
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

/* Modales (Arena: blanco, arena CTA) */
.captain-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 15, 15, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1rem;
}

.captain-modal {
  background: var(--blanco);
  border-radius: 12px;
  padding: 1.5rem;
  max-width: 24rem;
  width: 100%;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
  border: 1px solid var(--blanco-2);
}

.captain-modal-title {
  font-family: "Manuka", sans-serif;
  font-size: 1.2rem;
  font-weight: 500;
  margin: 0 0 1rem 0;
  color: var(--negro);
}

.captain-modal-text {
  font-size: 0.95rem;
  color: var(--negro-1);
  margin: 0 0 0.5rem 0;
  line-height: 1.5;
}

.captain-modal-sub {
  font-size: 0.9rem;
  color: var(--negro-1);
  margin: 0 0 1rem 0;
}

.captain-modal-actions {
  display: flex;
  gap: 0.75rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

/* Modales legales (aviso legal + condiciones competición): más anchos y con scroll */
.legal-modal-overlay {
  z-index: 1001;
}

.legal-modal {
  max-width: 36rem;
  width: 100%;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

.legal-modal-title {
  flex-shrink: 0;
}

.legal-modal-body {
  overflow-y: auto;
  flex: 1;
  min-height: 0;
  margin-bottom: 1rem;
  color: var(--negro);
  font-size: 0.95rem;
}

.legal-modal-body .legal-section h3 {
  font-size: 1rem;
  margin: 1rem 0 0.5rem 0;
}

.legal-modal-body .legal-section h4 {
  font-size: 0.95rem;
  margin: 0.75rem 0 0.35rem 0;
}

.legal-modal-body .legal-section p {
  margin: 0.5rem 0;
  line-height: 1.5;
}

.legal-modal-loading {
  color: var(--negro-1);
  margin: 1rem 0;
}

/* Compatibilidad botones legacy en zona capitán (Arena primario) */
.captain-section .leaderboard-btn {
  padding: 0.6rem 1.25rem;
  border-radius: 8px;
  font-weight: 600;
}

.captain-section .leaderboard-btn:not(.leaderboard-btn--outline):not(.leaderboard-btn--danger):not(.leaderboard-btn--secondary) {
  background: var(--arena);
  color: var(--negro);
  border: 2px solid var(--arena);
}

.captain-section .leaderboard-btn:not(.leaderboard-btn--outline):not(.leaderboard-btn--danger):not(.leaderboard-btn--secondary):hover {
  background: var(--wba-primary-dark);
  color: var(--negro);
  border-color: var(--wba-primary-dark);
}

.captain-section .leaderboard-btn--outline {
  background: transparent;
  border: 2px solid var(--arena);
  color: var(--negro);
}

.captain-section .leaderboard-btn--outline:hover {
  background: var(--arena-1);
  color: var(--negro);
  border-color: var(--arena);
}

.captain-section .leaderboard-btn--danger {
  background: var(--wba-error);
  color: var(--blanco);
}

.captain-section .leaderboard-btn--small {
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
}

/* Invitaciones: cabecera título + botón (como HTML referencia) */
.captain-invitations-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 0.5rem;
}

.captain-invitations-header .captain-section-title {
  margin-bottom: 0;
}

.captain-invitations-table-wrap {
  margin-top: 1rem;
  overflow-x: auto;
}

.captain-invitations-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.captain-invitations-table th {
  background: var(--blanco-1);
  padding: 0.75rem 1rem;
  text-align: left;
  font-weight: 600;
  color: var(--negro-1);
  border-bottom: 2px solid var(--blanco-2);
}

.captain-invitations-table td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--blanco-2);
  color: var(--negro);
}

.captain-invitations-table tbody tr:hover {
  background: var(--blanco-1);
}

.captain-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.6rem;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 600;
}

.captain-status-badge--pending {
  background: var(--arena-1);
  color: var(--negro-2);
}

.captain-table-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.captain-btn--icon {
  padding: 0.4rem 0.75rem;
  font-size: 0.8rem;
}

.captain-btn--resend {
  background: var(--arena-1);
  color: var(--negro);
  border: 1px solid var(--arena-2);
}

.captain-btn--resend:hover:not(:disabled) {
  background: var(--arena-2);
}

.captain-btn--cancel {
  background: #fed7d7;
  color: var(--wba-error-strong);
  border: 1px solid #feb2b2;
}

.captain-btn--cancel:hover:not(:disabled) {
  background: #feb2b2;
}

.captain-empty-state {
  text-align: center;
  padding: 1.5rem;
  color: var(--negro-1);
  font-size: 0.95rem;
}

.captain-btn--small {
  padding: 0.5rem 1rem;
  font-size: 0.85rem;
}

.captain-status-badge--ok {
  background: #c6f6d5;
  color: #22543d;
}

.captain-section-subtitle {
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro-1);
  margin: 1.5rem 0 0.75rem 0;
}

.captain-section-subtitle:first-child {
  margin-top: 0;
}

.captain-link {
  color: var(--arena);
  font-weight: 600;
}

.captain-link:hover {
  text-decoration: underline;
}

/* Banner re-aceptar condiciones (han cambiado) */
.captain-condiciones-reaceptar {
  margin-bottom: 1.5rem;
}

.captain-condiciones-banner {
  background: #fef3c7;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  padding: 1rem 1.25rem;
  color: var(--negro);
}

.captain-condiciones-banner p {
  margin: 0 0 0.75rem 0;
}

.captain-condiciones-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.captain-checkbox-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.captain-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--arena);
}

.captain-datos-list--compact {
  margin-bottom: 0.5rem;
}

.captain-productos-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.captain-producto-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  background: var(--blanco-2);
  border-radius: 8px;
  border: 1px solid var(--blanco-2);
}

.captain-producto-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}

.captain-producto-nombre {
  font-weight: 600;
  color: var(--negro);
}

.captain-producto-precio {
  color: var(--arena);
  font-weight: 600;
}

.captain-producto-fecha {
  font-size: 0.8rem;
  color: var(--negro-1);
}

/* Opciones compra – configuración admin (compacta) */
.opciones-compra-header-compact {
  margin-bottom: 1.5rem;
}

.opciones-compra-titulo {
  margin: 0 0 0.2rem 0;
  font-size: 1.4rem;
  color: var(--negro);
}

.opciones-compra-breadcrumb {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.opciones-compra-modo-compact {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  padding: 0.75rem 1rem;
  background: var(--blanco-2);
  border-radius: 10px;
  margin-bottom: 1.25rem;
}

.opciones-compra-modo-switch {
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--blanco);
  border: 2px solid var(--blanco-2);
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
}

.opciones-compra-modo-switch .opciones-compra-toggle {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.opciones-compra-modo-pill {
  padding: 0.4rem 0.9rem;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro-1);
  transition: all 0.2s;
}

.opciones-compra-modo-pill.activo {
  background: var(--arena);
  color: var(--negro-2);
}

.opciones-compra-modo-desc {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.opciones-compra-msg {
  font-size: 0.85rem;
  margin-left: auto;
}

.opciones-compra-msg.error {
  color: #b91c1c;
}

.opciones-compra-productos-section {
  margin-top: 1rem;
}

.opciones-compra-productos-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
}

.opciones-compra-productos-title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-btn-add {
  padding: 0.45rem 1rem;
  font-size: 0.9rem;
  text-decoration: none !important;
}

.opciones-compra-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1rem;
}

.opciones-compra-tab {
  padding: 0.4rem 0.85rem;
  font-size: 0.85rem;
  font-weight: 500;
  background: var(--blanco-2);
  border: 1px solid transparent;
  border-radius: 6px;
  color: var(--negro-1);
  cursor: pointer;
  transition: all 0.15s;
}

.opciones-compra-tab:hover {
  background: var(--arena-1);
  color: var(--negro);
}

.opciones-compra-tab.activo {
  background: var(--arena-2);
  color: var(--negro);
  border-color: var(--arena);
  font-weight: 600;
}

.opciones-compra-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.opciones-compra-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.65rem 1rem;
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
  transition: border-color 0.15s;
}

.opciones-compra-row:hover {
  border-color: var(--arena-2);
}

.opciones-compra-row.inactivo {
  opacity: 0.6;
}

.opciones-compra-row-info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.opciones-compra-row-nombre {
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--negro);
}

.opciones-compra-row-meta {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  flex-wrap: wrap;
  font-size: 0.8rem;
  color: var(--negro-1);
}

.opciones-compra-row-precio {
  font-weight: 600;
  color: var(--arena);
}

.opciones-compra-row-chip {
  padding: 0.15rem 0.45rem;
  background: var(--blanco-2);
  border-radius: 4px;
  font-size: 0.75rem;
}

.opciones-compra-row-cat {
  font-size: 0.75rem;
  color: var(--negro-1);
}

.opciones-compra-row-inactivo {
  font-size: 0.75rem;
  color: #b91c1c;
  font-weight: 500;
}

.opciones-compra-row-actions {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  flex-shrink: 0;
}

.opciones-compra-btn {
  padding: 0.35rem 0.65rem;
  font-size: 0.8rem;
  font-weight: 500;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: pointer;
  text-decoration: none;
  transition: all 0.15s;
  background: none;
  font-family: inherit;
}

.opciones-compra-btn--edit {
  background: var(--arena-2);
  color: var(--negro);
}

.opciones-compra-btn--edit:hover {
  background: var(--arena-1);
}

.opciones-compra-btn--outline {
  border-color: var(--blanco-2);
  color: var(--negro-1);
}

.opciones-compra-btn--outline:hover {
  border-color: var(--arena-2);
  color: var(--negro);
}

.opciones-compra-btn--del {
  color: var(--negro-1);
  font-size: 1.1rem;
  line-height: 1;
  padding: 0.2rem 0.5rem;
}

.opciones-compra-btn--del:hover {
  color: #b91c1c;
}

.opciones-compra-empty {
  padding: 2rem;
  text-align: center;
  background: var(--blanco-2);
  border-radius: 10px;
  border: 2px dashed var(--blanco-2);
}

.opciones-compra-empty p {
  margin: 0 0 0.75rem 0;
  color: var(--negro-1);
  font-size: 0.95rem;
}

@media (max-width: 640px) {
  .opciones-compra-row {
    flex-direction: column;
    align-items: stretch;
  }
  .opciones-compra-row-actions {
    justify-content: flex-end;
  }
}
.opciones-compra-config .captain-section-title {
  color: var(--negro);
}

/* Opciones compra config – diseño visual por categorías (admin) */
.opc-config-header {
  margin-bottom: 1.5rem;
}

.opc-config-breadcrumb-nav {
  margin-bottom: 0.75rem;
}

.opc-config-header-top {
  margin-bottom: 0.75rem;
}

.opc-config-titulo {
  margin: 0 0 0.35rem 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--negro);
}

.opc-config-intro {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: var(--negro-1);
  max-width: 42rem;
}

.opc-config-breadcrumb {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.opc-config-modo {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 1rem 1.25rem;
  background: linear-gradient(160deg, rgba(76, 237, 171, 0.1) 0%, var(--blanco-2) 60%);
  border-radius: 12px;
  margin-top: 0.75rem;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.opc-config-modo-info {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
}

.opc-config-modo-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
}

.opc-config-modo-switch {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--blanco);
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.opc-config-section-lead {
  margin: 0.25rem 0 0 0;
  font-size: 0.9rem;
  color: var(--negro-1);
  line-height: 1.45;
  max-width: 36rem;
}

.opc-config-toggle {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.opc-config-modo-pill {
  padding: 0.5rem 1.1rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro-1);
  transition: all 0.2s;
}

.opc-config-modo-pill.activo {
  background: var(--arena);
  color: var(--negro-2);
}

.opc-config-modo-desc {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.opc-config-msg {
  font-size: 0.9rem;
  margin-left: auto;
}

.opc-config-msg.error {
  color: #b91c1c;
}

.opc-config-section {
  margin-top: 1.5rem;
}

.opc-config-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.25rem;
  flex-wrap: wrap;
}

.opc-config-section-title {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--negro);
}

.opc-config-btn-add {
  text-decoration: none !important;
  font-weight: 600;
}

.opc-config-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.opc-config-filtro {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1rem;
  font-size: 0.9rem;
  font-weight: 600;
  background: var(--blanco);
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  color: var(--negro-1);
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}

.opc-config-filtro:hover {
  background: var(--arena-1);
  border-color: var(--arena-2);
  color: var(--negro);
}

.opc-config-filtro.activo {
  background: var(--arena-2);
  border-color: var(--arena);
  color: var(--negro);
}

.opc-config-filtro-icon {
  font-size: 1rem;
}

.opc-config-filtro-count {
  padding: 0.15rem 0.5rem;
  background: rgba(0, 0, 0, 0.08);
  border-radius: 6px;
  font-size: 0.8rem;
}

.opc-config-filtro.activo .opc-config-filtro-count {
  background: rgba(0, 0, 0, 0.12);
}

.opc-config-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.25rem;
}

.opc-config-card {
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: border-color 0.2s, box-shadow 0.2s;
  display: flex;
  flex-direction: column;
}

.opc-config-card:hover {
  border-color: var(--arena-2);
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.opc-config-card.inactivo {
  opacity: 0.65;
}

.opc-config-card-img {
  height: 140px;
  background: var(--blanco-2);
  background-size: cover;
  background-position: center;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.opc-config-card-placeholder {
  font-size: 2.5rem;
  opacity: 0.5;
}

.opc-config-card-badge {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  padding: 0.2rem 0.6rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  border-radius: 6px;
}

.opc-config-card-badge.incluido {
  background: var(--arena);
  color: var(--negro-2);
}

.opc-config-card-badge.opcional {
  background: var(--negro);
  color: var(--blanco);
}

.opc-config-card-badge.entradas {
  left: auto;
  right: 0.5rem;
  background: #0f5132;
  color: #ecfdf5;
}

.opc-config-card-precio {
  position: absolute;
  bottom: 0.5rem;
  right: 0.5rem;
  padding: 0.25rem 0.6rem;
  background: rgba(0, 0, 0, 0.7);
  color: var(--blanco);
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 6px;
}

.opc-config-card-body {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1;
}

.opc-config-card-titulo {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.3;
}

.opc-config-card-cats {
  margin: 0;
  font-size: 0.8rem;
  color: var(--negro-1);
  line-height: 1.4;
}

.opc-config-card-inactivo {
  font-size: 0.75rem;
  color: #b91c1c;
  font-weight: 600;
}

.opc-config-card-actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: auto;
  padding-top: 0.5rem;
}

.opc-config-card-actions .captain-btn {
  flex: 1;
  min-width: 80px;
  text-align: center;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.opc-config-card-del {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: transparent;
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
  color: var(--negro-1);
  font-size: 1.2rem;
  line-height: 1;
  cursor: pointer;
  transition: all 0.15s;
  font-family: inherit;
  flex-shrink: 0;
}

.opc-config-card-del:hover:not(:disabled) {
  border-color: #b91c1c;
  color: #b91c1c;
  background: rgba(185, 28, 28, 0.08);
}

.opc-config-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 2rem;
  text-align: center;
  background: var(--blanco-2);
  border-radius: 16px;
  border: 2px dashed var(--arena-2);
}

.opc-config-empty-icon {
  font-size: 3rem;
  margin-bottom: 0.75rem;
  opacity: 0.6;
}

.opc-config-empty p {
  margin: 0 0 1rem 0;
  color: var(--negro-1);
  font-size: 1rem;
  max-width: 360px;
}

@media (max-width: 600px) {
  .opc-config-grid {
    grid-template-columns: 1fr;
  }
}
/* Venta de entradas (admin) - estilo Arena Legacy */
.venta-entradas-page .venta-entradas-section {
  margin-bottom: 2rem;
}

.venta-entradas-config-form .venta-entradas-config-actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 1rem;
}

.venta-entradas-status {
  font-size: 0.9rem;
  margin: 0.75rem 0 1rem 0;
  padding: 0.5rem;
  border-radius: 6px;
  background: var(--blanco-2);
}

.venta-entradas-status--activa {
  background: rgba(16, 185, 129, 0.15);
  color: #047857;
  font-weight: 600;
}

.venta-entradas-info-torneo {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  padding: 1rem;
  background: var(--blanco-2);
  border-radius: 8px;
  border: 1px solid var(--blanco-2);
}

.venta-entradas-info-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem 2rem;
}

.venta-entradas-info-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.venta-entradas-info-label {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.venta-entradas-info-data {
  font-weight: 700;
  font-size: 1rem;
  color: var(--negro);
}

.venta-entradas-opciones-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.venta-entradas-opciones-head h3 {
  margin: 0;
}

.venta-entradas-empty {
  padding: 2rem;
  text-align: center;
  background: var(--blanco-2);
  border-radius: 10px;
  border: 2px dashed var(--blanco-2);
}

.venta-entradas-empty p {
  margin: 0;
  color: var(--negro-1);
  font-size: 0.95rem;
}

.venta-entradas-tabla-wrapper {
  overflow-x: auto;
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
}

.venta-entradas-tabla {
  width: 100%;
  border-collapse: collapse;
}

.venta-entradas-tabla th, .venta-entradas-tabla td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid var(--blanco-2);
  vertical-align: middle;
}

.venta-entradas-tabla th {
  background: var(--negro);
  color: #fff;
  font-weight: 600;
  font-size: 0.9rem;
}

.venta-entradas-tabla tbody tr:hover {
  background: var(--arena-1);
}

.venta-entradas-tabla tbody tr:nth-child(even) {
  background: var(--blanco-2);
}

.venta-entradas-tabla tbody tr:nth-child(even):hover {
  background: var(--arena-1);
}

.venta-entradas-th-orden, .venta-entradas-td-orden {
  width: 4rem;
}

.venta-entradas-th-fecha, .venta-entradas-td-fecha {
  min-width: 6rem;
}

.venta-entradas-th-desc, .venta-entradas-td-desc {
  min-width: 12rem;
  max-width: 24rem;
}

.venta-entradas-desc-html {
  font-size: 0.9rem;
  line-height: 1.3;
}

.venta-entradas-desc-html p {
  margin: 0 0 0.25rem 0;
}

.venta-entradas-th-precio, .venta-entradas-td-precio {
  width: 6rem;
  font-weight: 600;
  color: var(--arena);
}

.venta-entradas-th-stock, .venta-entradas-td-stock {
  width: 6rem;
}

.venta-entradas-th-opciones, .venta-entradas-td-opciones {
  width: 12rem;
}

.venta-entradas-td-opciones {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
}

.venta-entradas-btn-del {
  color: var(--negro-1);
}

.venta-entradas-btn-del:hover {
  color: #b91c1c;
}

/* ========== Página pública de compra de entradas (paridad WodArenaBranch entradas.aspx + main.css) ========== */
.entradas-publica-page.entradas-legacy-page {
  min-height: 60vh;
  padding: 1.5rem 1rem 3rem;
  max-width: min(100%, 72rem);
  margin: 0 auto;
}

/* Cabecera torneo (Legacy .competition .header) */
.entradas-legacy-torneo {
  background: #1f1f1f;
  border-radius: 0.5rem;
  padding: 1rem;
  margin-bottom: 1.25rem;
}

.entradas-legacy-header.text-center {
  text-align: center;
}

.entradas-legacy-logo-link {
  display: inline-block;
  margin-bottom: 0.75rem;
  transition: transform 0.2s;
}

.entradas-legacy-logo-link:hover {
  transform: scale(1.03);
}

.entradas-legacy-logo {
  max-width: min(30%, 8rem);
  height: auto;
  border-radius: 0.35rem;
}

.entradas-legacy-titulo-wrap {
  overflow: hidden;
}

.entradas-legacy-titulo {
  font-family: Manuka, Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  text-transform: uppercase;
  color: #fff;
  font-size: min(10vw, 3.125rem);
  line-height: min(9vw, 2.813rem);
  margin: 0 0 0.75rem 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.entradas-legacy-chip {
  display: inline-block;
  padding: 0.313rem 0.625rem;
  background-color: #4cedab;
  font-family: "Public Sans", sans-serif;
  color: #000;
  text-transform: uppercase;
  font-size: 0.625rem;
  border-radius: 2.5rem;
  line-height: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.06em;
}

/* Estados: loading, error, cerrada, vacía */
.entradas-state {
  text-align: center;
  padding: 3rem 2rem;
  background: var(--negro-3);
  border-radius: 16px;
  border: 1px solid var(--negro-2);
}

.entradas-state--loading .reg-pulse {
  margin: 0 auto 1.25rem;
}

.entradas-state p {
  margin: 0.5rem 0;
  color: var(--blanco-2);
  line-height: 1.5;
}

.entradas-state h2 {
  margin: 0 0 0.75rem 0;
  font-size: 1.35rem;
  color: var(--blanco);
}

.entradas-state-icon {
  font-size: 2.5rem;
  margin-bottom: 1rem;
  opacity: 0.9;
}

.entradas-state-sub {
  font-size: 0.9rem;
  color: var(--blanco-2);
}

.entradas-state-actions {
  display: flex;
  gap: 0.75rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 1.5rem;
}

.entradas-btn-outline {
  background: transparent !important;
  color: var(--arena-2) !important;
  border: 2px solid var(--arena-2) !important;
}

.entradas-btn-outline:hover {
  background: rgba(172, 247, 216, 0.15) !important;
}

/* Stock global */
.entradas-stock-global {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1rem;
  margin-bottom: 1.25rem;
  background: var(--arena-1);
  border: 1px solid rgba(76, 237, 171, 0.45);
  border-radius: 10px;
  font-size: 0.95rem;
  color: var(--negro);
}

.entradas-stock-count {
  font-weight: 800;
  font-size: 1.15rem;
  color: #1a7a52;
}

/* Grid de opciones (Legacy .competitions + .competition.card) */
.entradas-legacy-competitions {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(1, 100%);
}

@media (min-width: 640px) {
  .entradas-legacy-competitions {
    grid-template-columns: repeat(2, calc(50% - 0.625rem));
  }
}
@media (min-width: 1024px) {
  .entradas-legacy-competitions {
    grid-template-columns: repeat(3, calc(33.33% - 0.833rem));
  }
}
.entradas-legacy-card.competition {
  background: #1f1f1f;
  border-radius: 0.5rem;
  margin: 0;
  padding: 1rem;
  text-align: center;
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.entradas-legacy-card--agotado {
  opacity: 0.78;
}

.entradas-legacy-nombre {
  font-family: Manuka, Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  text-transform: uppercase;
  color: #fff;
  font-size: clamp(1.5rem, 5vw, 3.125rem);
  line-height: 1.1;
  margin-top: 0.5rem;
  min-height: 3.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
}

.entradas-legacy-nombre-sufijo {
  font-size: 50%;
  opacity: 0.95;
}

.entradas-legacy-desc {
  color: #fff;
  font-size: 0.9rem;
  line-height: 1.35;
  margin: 0.5rem 0 0 0;
  text-align: center;
}

.entradas-legacy-desc p {
  margin: 0 0 0.35em 0;
}

.entradas-legacy-fasesinfowrapper {
  margin: 0.5rem 0;
  padding: 0 0.5rem 0.5rem 0.5rem;
  background-color: #2f2f2f;
  border-radius: 0.25rem;
  text-align: left;
}

.entradas-legacy-fasesinfo {
  padding-bottom: 0.5rem;
}

.entradas-legacy-attributes > .entradas-legacy-attr-row {
  display: flex;
  gap: 0 1rem;
  padding: 0 1px;
  margin-top: 1rem;
  align-items: flex-start;
}

.entradas-legacy-attr-icon {
  background: #4cedab;
  border-radius: 50%;
  width: 1.375rem;
  min-width: 1.375rem;
  height: 1.375rem;
  text-align: center;
  line-height: 1.375rem;
  color: #0f0f0f;
  font-size: 0.75rem;
  font-weight: 800;
}

.entradas-legacy-attr-info {
  line-height: 1.35;
  color: #fff;
  font-family: "Public Sans", sans-serif;
  font-size: 0.813rem;
  flex-grow: 1;
}

.entradas-legacy-currency {
  font-family: Manuka, Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size: 1.15rem;
  color: #4cedab;
}

.entradas-legacy-primaryactions {
  display: grid;
  gap: 0.5rem;
  margin-top: 1rem;
  grid-template-columns: 1fr;
}

.entradas-legacy-primaryactions .button:only-child {
  grid-column: 1/-1;
}

.entradas-legacy-btn-comprar.button.radius {
  width: 100%;
  margin-bottom: 0;
  background: transparent !important;
  border: 2px solid #4cedab !important;
  color: #fff !important;
  font-weight: 600;
  padding: 0.85rem 1rem;
}

.entradas-legacy-btn-comprar.button.radius:hover {
  background: rgba(76, 237, 171, 0.12) !important;
  color: #4cedab !important;
}

.entradas-legacy-btn-agotado.button.disabled {
  width: 100%;
  margin-bottom: 0;
  cursor: not-allowed;
  opacity: 0.85;
  border: 2px solid #555 !important;
  background: transparent !important;
  color: #aaa !important;
}

/* Aviso próximamente */
.entradas-aviso {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  background: rgba(76, 237, 171, 0.1);
  border: 1px solid rgba(76, 237, 171, 0.35);
  border-radius: 12px;
}

.entradas-aviso-icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}

.entradas-aviso-body {
  flex: 1;
}

.entradas-aviso-body strong {
  display: block;
  margin-bottom: 0.25rem;
  color: var(--arena-2);
}

.entradas-aviso-body p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--blanco-2);
  line-height: 1.5;
}

.entradas-aviso-close {
  padding: 0.5rem 1rem;
  background: var(--arena);
  color: var(--negro);
  font-weight: 600;
  font-size: 0.9rem;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s;
}

.entradas-aviso-close:hover {
  background: var(--arena-2);
}

/* Footer */
.entradas-footer {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--negro-2);
}

.entradas-footer a {
  color: var(--arena-2);
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
}

.entradas-footer a:hover {
  color: var(--arena);
  text-decoration: underline;
}

/* Wizard compra de entradas */
.entradas-compra-flow {
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 16px;
  padding: 1.35rem 1.25rem 1.5rem;
  margin: 1.5rem 0;
  color: var(--negro);
  box-shadow: 0 8px 36px rgba(0, 0, 0, 0.1);
}

.entradas-wizard-header {
  margin-bottom: 1rem;
}

.entradas-compra-title {
  margin: 0 0 0.35rem 0;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--negro);
  letter-spacing: -0.02em;
}

.entradas-wizard-strategy {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.entradas-wizard-track {
  margin-bottom: 1.25rem;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.entradas-wizard-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.15rem;
  min-width: min(100%, 26rem);
  margin: 0 auto;
  padding: 0;
  list-style: none;
}

.entradas-wizard-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  flex: 0 0 auto;
  text-align: center;
  opacity: 0.45;
  transition: opacity 0.2s;
}

.entradas-wizard-item--active {
  opacity: 1;
}

.entradas-wizard-item--done {
  opacity: 1;
}

.entradas-wizard-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  font-size: 0.85rem;
  font-weight: 800;
  background: var(--blanco-2);
  color: var(--negro-1);
  border: 2px solid var(--blanco-2);
}

.entradas-wizard-item--active .entradas-wizard-num {
  background: var(--arena);
  color: var(--negro);
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.35);
}

.entradas-wizard-item--done .entradas-wizard-num {
  background: #0f5132;
  border-color: #0f5132;
  color: #ecfdf5;
}

.entradas-wizard-label {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--negro-1);
  max-width: 4.5rem;
  line-height: 1.15;
}

.entradas-wizard-item--active .entradas-wizard-label {
  color: var(--negro);
}

.entradas-wizard-connector {
  flex: 1 1 0.5rem;
  min-width: 0.35rem;
  height: 3px;
  border-radius: 2px;
  background: var(--blanco-2);
  margin-bottom: 1.25rem;
  align-self: center;
}

.entradas-wizard-connector--done {
  background: linear-gradient(90deg, #0f5132, var(--arena));
}

.entradas-wizard-panel {
  max-width: 22rem;
  margin: 0 auto;
}

.entradas-wizard-panel--wide {
  max-width: none;
}

.entradas-form-step {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.entradas-form-step label {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--negro-1);
}

.entradas-form-step p {
  color: var(--negro);
  line-height: 1.5;
}

.entradas-wizard-hint {
  margin: 0;
  font-size: 0.85rem;
  color: var(--negro-1);
  line-height: 1.4;
}

.entradas-input--qty {
  max-width: 8rem;
}

.entradas-wizard-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 0.75rem 1rem;
  align-items: stretch;
  margin-top: 1.35rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--blanco-2);
}

.entradas-wizard-actions--final {
  margin-top: 1.25rem;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.5fr);
}

.entradas-wizard-btn {
  margin: 0 !important;
  align-self: stretch !important;
  min-height: 3.1rem;
  padding: 0.85rem 1.1rem !important;
  font-size: 0.95rem !important;
  border-radius: 12px !important;
  line-height: 1.25;
  transition: transform 0.15s ease, box-shadow 0.2s ease, border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.entradas-wizard-btn-secondary {
  font-weight: 600 !important;
  background: var(--blanco-1) !important;
  color: var(--negro) !important;
  border: 2px solid #c8c8c8 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.entradas-wizard-btn-secondary:hover:not(:disabled) {
  border-color: var(--negro-1) !important;
  background: var(--blanco-2) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.entradas-wizard-btn-secondary:active:not(:disabled) {
  transform: translateY(1px);
}

.entradas-wizard-btn-primary {
  font-weight: 800 !important;
  letter-spacing: 0.02em;
  border: none !important;
  box-shadow: 0 4px 16px rgba(76, 237, 171, 0.4);
}

.entradas-wizard-btn-primary:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(76, 237, 171, 0.5);
  filter: brightness(1.03);
}

.entradas-wizard-btn-primary:active:not(:disabled) {
  transform: translateY(0);
}

.entradas-wizard-btn-primary:disabled {
  opacity: 0.42;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
  filter: none !important;
}

.entradas-wizard-btn-secondary:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.entradas-wizard-btn-pay {
  font-size: 0.92rem !important;
}

@media (max-width: 420px) {
  .entradas-wizard-actions,
  .entradas-wizard-actions--final {
    grid-template-columns: 1fr;
  }
  .entradas-wizard-btn-primary {
    order: -1;
  }
}
.entradas-cancelar--wizard {
  display: block;
  width: 100%;
  text-align: center;
  margin-top: 0.75rem;
}

.entradas-input {
  width: 100%;
  max-width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid #bdbdbd;
  border-radius: 8px;
  background: var(--blanco);
  color: var(--negro);
  font-size: 1rem;
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05);
}

.entradas-input::placeholder {
  color: #9ca3af;
}

.entradas-input:hover {
  border-color: #9e9e9e;
}

.entradas-input:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.05), 0 0 0 3px rgba(76, 237, 171, 0.35);
}

.entradas-resumen {
  max-width: none;
}

.entradas-resumen-email {
  font-size: 0.9rem;
  color: var(--negro-1);
  margin-top: 0.75rem;
}

.entradas-resumen-email-label {
  font-weight: 700;
  color: var(--negro);
  margin-right: 0.35rem;
}

.entradas-error {
  color: #b91c1c;
  font-size: 0.9rem;
  margin: 0;
  font-weight: 600;
}

.entradas-cancelar {
  margin-top: 1rem;
  background: none;
  border: none;
  color: var(--negro-1);
  font-size: 0.9rem;
  cursor: pointer;
  text-decoration: underline;
}

.entradas-cancelar:hover {
  color: var(--negro);
}

/* Merchandising en wizard (foto + datos) */
.entradas-merch-step {
  max-width: none;
}

.entradas-merch-intro {
  margin: 0 0 1rem 0;
  font-size: 0.92rem;
  color: var(--negro-1);
  line-height: 1.5;
}

.entradas-merch-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.1rem;
  margin-bottom: 0.25rem;
}

.entradas-merch-card {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--blanco-2);
  border-radius: 14px;
  overflow: hidden;
  background: var(--blanco);
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06);
}

.entradas-merch-visual {
  position: relative;
  aspect-ratio: 4/3;
  background: linear-gradient(145deg, var(--blanco-2) 0%, var(--blanco-1) 100%);
  border-bottom: 1px solid var(--blanco-2);
}

.entradas-merch-visual--empty {
  display: flex;
  align-items: center;
  justify-content: center;
}

.entradas-merch-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.entradas-merch-photo--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3rem;
  opacity: 0.35;
  width: 100%;
  height: 100%;
  background: var(--blanco-2);
}

.entradas-merch-body {
  padding: 1rem 1.1rem 1.1rem;
}

.entradas-merch-title {
  margin: 0 0 0.35rem 0;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--negro);
  line-height: 1.25;
}

.entradas-merch-price {
  margin: 0 0 0.5rem 0;
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--arena);
  font-family: Manuka, "Public Sans", sans-serif;
}

.entradas-merch-price-unit {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
}

.entradas-merch-desc {
  margin: 0 0 0.85rem 0;
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.entradas-merch-fields {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  align-items: flex-end;
}

.entradas-merch-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

.entradas-merch-field--grow {
  flex: 1 1 10rem;
}

.entradas-merch-field label {
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--negro-1);
}

.entradas-input--merch-qty {
  max-width: 5.5rem;
}

/* Resumen pedido wizard */
.entradas-resumen-heading {
  margin: 0 0 0.85rem 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--negro);
}

.entradas-resumen-lines {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  margin-bottom: 1rem;
}

.entradas-resumen-line {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.65rem 0.75rem;
  align-items: center;
  padding: 0.65rem 0.75rem;
  background: var(--blanco-1);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
}

.entradas-resumen-line--ticket {
  border-color: rgba(76, 237, 171, 0.45);
}

.entradas-resumen-line-icon {
  font-size: 1.5rem;
  width: 2.5rem;
  text-align: center;
}

.entradas-resumen-line-thumb-wrap {
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 8px;
  overflow: hidden;
  background: var(--blanco-2);
  flex-shrink: 0;
}

.entradas-resumen-line-thumb-wrap--empty {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  opacity: 0.45;
}

.entradas-resumen-line-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.entradas-resumen-line-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}

.entradas-resumen-line-title {
  font-weight: 700;
  font-size: 0.92rem;
  color: var(--negro);
  line-height: 1.25;
}

.entradas-resumen-line-meta {
  font-size: 0.82rem;
  color: var(--negro-1);
}

.entradas-resumen-line-detail {
  font-size: 0.8rem;
  color: var(--negro-1);
  font-style: italic;
}

.entradas-resumen-line-price {
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--negro);
  white-space: nowrap;
}

.entradas-resumen-totals {
  padding: 0.75rem 0;
  border-top: 1px solid var(--blanco-2);
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.entradas-resumen-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.9rem;
  color: var(--negro-1);
}

.entradas-resumen-row--total {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--negro);
  margin-top: 0.25rem;
}

.entradas-resumen-row--total strong {
  color: var(--arena);
  font-size: 1.2rem;
}

/* Confirmación / gracias */
.entradas-confirmacion .entradas-state--gracias .entradas-state-icon {
  color: #4ade80;
}

.entradas-qr-section {
  margin: 1.5rem 0;
  padding: 1rem 1.15rem;
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 10px;
  text-align: left;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.04);
}

.entradas-qr-link {
  color: #0d5c3d;
  font-weight: 600;
  word-break: break-all;
}

.entradas-qr-link:hover {
  color: var(--negro);
  text-decoration: underline;
}

.entradas-qr-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0.5rem 0 0 0;
}

@media (min-width: 560px) {
  .entradas-grid {
    gap: 1.25rem;
  }
  .entradas-card-body {
    padding: 1.75rem 1.75rem 1.25rem;
  }
  .entradas-card-actions {
    padding: 0 1.75rem 1.75rem;
  }
  .entradas-merch-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .entradas-wizard-steps {
    min-width: auto;
    max-width: 36rem;
  }
}
.opciones-compra-accordion-item {
  margin-bottom: 0.5rem;
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  overflow: hidden;
  background: var(--blanco);
}

.opciones-compra-accordion-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.85rem 1rem;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--arena);
  text-transform: uppercase;
  cursor: pointer;
  list-style: none;
  background: var(--blanco-1);
  user-select: none;
}

.opciones-compra-accordion-title::-webkit-details-marker {
  display: none;
}

.opciones-compra-accordion-title::after {
  content: "▶";
  font-size: 0.7rem;
  transition: transform 0.2s;
  color: var(--arena);
}

.opciones-compra-accordion-item[open] .opciones-compra-accordion-title::after {
  transform: rotate(90deg);
}

.opciones-compra-accordion-title:hover {
  background: var(--arena-1);
}

.opciones-compra-accordion-item[open] .opciones-compra-accordion-title {
  background: var(--arena-1);
  border-bottom: 2px solid var(--arena);
}

.opciones-compra-accordion-content {
  padding: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.opciones-compra-accordion-count {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--negro-1);
}

.opciones-compra-toggle-wrap {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  cursor: pointer;
  margin-bottom: 0.5rem;
}

.opciones-compra-toggle {
  width: 20px;
  height: 20px;
  accent-color: var(--arena);
}

.opciones-compra-toggle-label {
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-filter {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.opciones-compra-filter-label {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-filter-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.opciones-compra-filter-btn {
  padding: 0.5rem 1rem;
  font-size: 0.9rem;
  font-weight: 600;
  background: var(--blanco);
  border: 2px solid var(--arena-2);
  border-radius: 8px;
  color: var(--negro-2);
  cursor: pointer;
  transition: all 0.2s;
}

.opciones-compra-filter-btn:hover {
  background: var(--arena-1);
  border-color: var(--arena-2);
  color: var(--negro);
}

.opciones-compra-filter-btn.activo {
  background: var(--arena-2);
  border-color: var(--arena);
  color: var(--negro-2);
}

.opciones-compra-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

.opciones-compra-badge {
  font-size: 0.78rem;
  font-weight: 600;
  padding: 0.2rem 0.6rem;
  background: var(--arena-1);
  color: var(--negro-2);
  border-radius: 6px;
  border: 1px solid var(--arena-2);
}

.opciones-compra-link {
  color: var(--negro-2);
  font-weight: 600;
  text-decoration: underline;
}

.opciones-compra-link:hover {
  color: var(--arena);
}

.captain-productos-admin-list {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-top: 0.5rem;
}

.captain-producto-admin-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 1.25rem;
  padding: 1.15rem 1.5rem;
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  transition: border-color 0.2s, box-shadow 0.2s;
}

.captain-producto-admin-card:hover {
  border-color: var(--arena-2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

@media (max-width: 640px) {
  .captain-producto-admin-card {
    grid-template-columns: 1fr;
  }
}
.captain-producto-admin-card.inactivo {
  opacity: 0.65;
  border-color: var(--blanco-2);
}

.captain-producto-admin-main {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0;
}

.captain-producto-admin-main .captain-producto-nombre {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--negro);
}

.captain-producto-admin-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}

.captain-producto-admin-meta .captain-producto-precio {
  font-weight: 700;
  color: var(--negro-2);
  font-size: 0.95rem;
}

.captain-producto-admin-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex-shrink: 0;
}

.captain-producto-admin-actions .captain-btn--primary {
  background: var(--arena-2);
  color: var(--negro-2);
  border: 2px solid var(--arena-2);
  font-weight: 600;
}

.captain-producto-admin-actions .captain-btn--primary:hover {
  background: var(--arena-1);
  border-color: var(--arena-2);
  color: var(--negro);
}

.captain-producto-tipo {
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.2rem 0.55rem;
  background: var(--blanco-1);
  color: var(--negro-2);
  border-radius: 6px;
  border: 1px solid var(--blanco-2);
}

.captain-btn--danger {
  color: #b91c1c;
  border-color: #b91c1c;
}

.captain-btn--danger:hover {
  background: rgba(185, 28, 28, 0.1);
}

/* Producto editor – topbar, breadcrumbs, wizard steps */
.producto-editor-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
}

.producto-editor-breadcrumb {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  font-size: 0.88rem;
  color: var(--negro-1);
}

.producto-editor-breadcrumb-link {
  color: var(--negro-1);
  text-decoration: none;
  font-weight: 500;
}

.producto-editor-breadcrumb-link:hover {
  color: var(--arena);
  text-decoration: underline;
}

.producto-editor-breadcrumb-sep {
  color: var(--negro-1);
  opacity: 0.45;
}

.producto-editor-breadcrumb-current {
  color: var(--negro);
  font-weight: 600;
}

.producto-editor-preview-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.5rem 1rem;
  font-size: 0.88rem;
  font-weight: 600;
  font-family: inherit;
  color: var(--negro);
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
}

.producto-editor-preview-btn:hover {
  border-color: var(--arena-2);
  background: var(--arena-1);
}

.producto-editor-preview-btn-icon {
  font-size: 1rem;
  line-height: 1;
}

.producto-editor-wizard-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-bottom: 1.5rem;
  border-bottom: 2px solid var(--blanco-2);
}

.producto-editor-wizard-step {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.85rem 1rem 1rem;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  transition: border-color 0.2s;
}

.producto-editor-wizard-step.activo {
  border-bottom-color: var(--arena);
}

.producto-editor-wizard-step.completado .producto-editor-wizard-step-num {
  background: var(--arena);
  color: var(--negro-2);
}

.producto-editor-wizard-step-num {
  flex-shrink: 0;
  width: 1.75rem;
  height: 1.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  border-radius: 50%;
  background: var(--blanco-2);
  color: var(--negro-1);
  transition: background 0.2s, color 0.2s;
}

.producto-editor-wizard-step.activo .producto-editor-wizard-step-num {
  background: var(--arena);
  color: var(--negro-2);
}

.producto-editor-wizard-step-text {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}

.producto-editor-wizard-step-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.25;
}

.producto-editor-wizard-step-sub {
  font-size: 0.78rem;
  color: var(--negro-1);
  line-height: 1.3;
}

.producto-editor-wizard-step.activo .producto-editor-wizard-step-title {
  color: var(--negro);
}

@media (max-width: 640px) {
  .producto-editor-wizard-steps {
    grid-template-columns: 1fr;
    border-bottom: none;
    gap: 0.35rem;
  }
  .producto-editor-wizard-step {
    border-bottom: none;
    border-left: 3px solid transparent;
    margin-bottom: 0;
    padding: 0.65rem 0.75rem;
    border-radius: 8px;
    background: rgba(255, 255, 255, 0.6);
  }
  .producto-editor-wizard-step.activo {
    border-left-color: var(--arena);
    background: var(--arena-1);
  }
}
/* Secciones con icono (paso 1 y 2) */
.producto-editor-seccion {
  margin-bottom: 1.25rem;
  padding: 1.25rem 1.35rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
}

.producto-editor-seccion-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1.1rem;
}

.producto-editor-seccion-icon {
  flex-shrink: 0;
  width: 2.25rem;
  height: 2.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  border-radius: 10px;
  line-height: 1;
}

.producto-editor-seccion-icon--info {
  background: rgba(76, 237, 171, 0.2);
  color: #0d6b4a;
}

.producto-editor-seccion-icon--precio {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}

.producto-editor-seccion-icon--fotos {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}

.producto-editor-seccion-icon--desc {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}

.producto-editor-seccion-icon--extra {
  background: rgba(59, 130, 246, 0.12);
  color: #1d4ed8;
}

.producto-editor-seccion-icon--cats {
  background: rgba(76, 237, 171, 0.2);
  color: #0d6b4a;
}

.producto-editor-seccion-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.3;
}

.producto-editor-seccion-lead {
  margin: 0.35rem 0 0 0;
  font-size: 0.9rem;
  color: var(--negro-1);
  line-height: 1.45;
}

.producto-editor-seccion-body--consejo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(200px, 280px);
  gap: 1.25rem;
  align-items: start;
}

@media (max-width: 768px) {
  .producto-editor-seccion-body--consejo {
    grid-template-columns: 1fr;
  }
}
.producto-editor-consejo {
  padding: 0.85rem 1rem;
  background: linear-gradient(160deg, rgba(76, 237, 171, 0.15) 0%, rgba(76, 237, 171, 0.05) 100%);
  border: 1px solid rgba(76, 237, 171, 0.35);
  border-radius: 12px;
  font-size: 0.85rem;
  line-height: 1.5;
  color: var(--negro-2);
}

.producto-editor-consejo-badge {
  display: inline-block;
  margin-bottom: 0.4rem;
  padding: 0.15rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #0d6b4a;
  background: rgba(76, 237, 171, 0.35);
  border-radius: 6px;
}

.producto-editor-consejo p {
  margin: 0;
}

.producto-editor-tipo-cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  margin: 0.65rem 0 1rem;
}

@media (max-width: 520px) {
  .producto-editor-tipo-cards {
    grid-template-columns: 1fr;
  }
}
.producto-editor-tipo-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.1rem;
  border: 2px solid var(--blanco-2);
  border-radius: 12px;
  background: var(--blanco);
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.producto-editor-tipo-card:hover {
  border-color: var(--arena-2);
}

.producto-editor-tipo-card.activo {
  border-color: var(--arena);
  background: var(--arena-1);
  box-shadow: 0 0 0 1px var(--arena);
}

.producto-editor-tipo-card input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.producto-editor-tipo-card-check {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 1.35rem;
  height: 1.35rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  border-radius: 50%;
  background: var(--arena);
  color: var(--negro-2);
  opacity: 0;
  transform: scale(0.8);
  transition: opacity 0.15s, transform 0.15s;
}

.producto-editor-tipo-card.activo .producto-editor-tipo-card-check {
  opacity: 1;
  transform: scale(1);
}

.producto-editor-tipo-card-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--negro);
  padding-right: 1.5rem;
}

.producto-editor-tipo-card-desc {
  font-size: 0.82rem;
  color: var(--negro-1);
  line-height: 1.35;
}

.producto-editor-precio-row {
  margin-bottom: 1rem;
}

.producto-editor-entradas-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 1rem;
  background: var(--blanco-1);
  border: 1px solid var(--blanco-2);
  border-radius: 10px;
}

.producto-editor-entradas-text {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1;
}

.producto-editor-entradas-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-entradas-switch {
  flex-shrink: 0;
}

/* Pie del asistente: jerarquía clara (ghost / outline / primary) */
.producto-editor-guardar-panel {
  margin-top: 1.25rem;
  padding: 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.producto-editor-guardar-panel-title {
  margin: 0 0 0.35rem 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--negro);
}

.producto-editor-guardar-panel-lead {
  margin: 0 0 1rem 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.producto-editor-alcance-opciones--cards {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

@media (max-width: 560px) {
  .producto-editor-alcance-opciones--cards {
    grid-template-columns: 1fr;
  }
}
.producto-editor-alcance-opt--card {
  position: relative;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.2rem;
  padding: 0.9rem 1rem;
  min-height: 4.5rem;
}

.producto-editor-alcance-opt--card input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.producto-editor-alcance-opt-check {
  position: absolute;
  top: 0.65rem;
  right: 0.65rem;
  width: 1.3rem;
  height: 1.3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.72rem;
  font-weight: 700;
  border-radius: 50%;
  background: var(--arena);
  color: var(--negro-2);
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.15s, transform 0.15s;
}

.producto-editor-alcance-opt--card.activo .producto-editor-alcance-opt-check {
  opacity: 1;
  transform: scale(1);
}

.producto-editor-alcance-opt-title {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--negro);
  padding-right: 1.5rem;
}

.producto-editor-alcance-opt-desc {
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--negro-1);
}

.producto-editor-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
  padding: 1rem 0 0.25rem;
  border-top: 1px solid var(--blanco-2);
}

.producto-editor-footer-izq,
.producto-editor-footer-der {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.producto-editor-footer-der {
  margin-left: auto;
}

.producto-editor-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 0.6rem 1.15rem;
  font-size: 0.92rem;
  font-weight: 600;
  font-family: inherit;
  line-height: 1.25;
  border-radius: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, border-color 0.15s, color 0.15s, box-shadow 0.15s;
  box-sizing: border-box;
}

.producto-editor-btn:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

.producto-editor-btn--ghost {
  background: transparent;
  border: 1px solid transparent;
  color: var(--negro-1);
}

.producto-editor-btn--ghost:hover {
  background: var(--blanco-2);
  color: var(--negro);
}

.producto-editor-btn--outline {
  background: #fff;
  border: 2px solid var(--blanco-2);
  color: var(--negro);
}

.producto-editor-btn--outline:hover:not(:disabled) {
  border-color: var(--arena-2);
  background: var(--arena-1);
}

.producto-editor-btn--primary {
  background: var(--arena);
  border: 2px solid var(--arena);
  color: var(--negro);
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(76, 237, 171, 0.35);
}

.producto-editor-btn--primary:hover:not(:disabled) {
  background: var(--arena-2);
  border-color: var(--arena-2);
  filter: none;
}

.producto-editor-btn--guardar {
  padding: 0.7rem 1.5rem;
  font-size: 0.95rem;
}

@media (max-width: 639px) {
  .producto-editor-footer {
    flex-direction: column;
    align-items: stretch;
  }
  .producto-editor-footer-izq,
  .producto-editor-footer-der {
    width: 100%;
    flex-direction: column;
  }
  .producto-editor-footer-der {
    margin-left: 0;
  }
  .producto-editor-footer .producto-editor-btn {
    width: 100%;
  }
}
/* Opciones compra – modal 3 pasos */
.opciones-compra-steps-indicator {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
}

.opciones-compra-step {
  padding: 4px 10px;
  font-size: 0.85rem;
  color: var(--negro-1);
  background: var(--blanco-2);
  border-radius: 6px;
}

.opciones-compra-step.activo {
  background: var(--arena-1);
  color: var(--negro);
  font-weight: 600;
}

.opciones-compra-step.completado {
  background: var(--arena-2);
  color: var(--negro-1);
}

.opciones-compra-step-sep {
  color: var(--negro-1);
  font-size: 0.8rem;
  margin: 0 0.25rem;
}

/* Producto editor – página por pasos (un solo asistente; contenedor suave) */
.producto-editor-page .producto-editor-steps {
  max-width: none;
  width: 100%;
}

.producto-editor-steps-wrap {
  padding: 1.25rem 1.1rem 1.75rem;
  background: #f3f5f4;
  border-radius: 20px;
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
}

.producto-editor-steps-bar--simple {
  margin-bottom: 1.35rem;
  padding: 0.5rem 0.6rem;
  background: rgba(255, 255, 255, 0.85);
  border-radius: 999px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.5rem;
}

.producto-editor-steps-bar--simple .opciones-compra-step-sep {
  color: var(--negro-1);
  opacity: 0.35;
  font-size: 0.65rem;
  user-select: none;
}

.producto-editor-steps-bar--simple .opciones-compra-step {
  text-align: center;
  padding: 0.45rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  border: none;
  border-radius: 999px;
  line-height: 1.25;
  color: var(--negro-1);
  background: transparent;
  transition: background 0.2s, color 0.2s;
}

.producto-editor-steps-bar--simple .opciones-compra-step.activo {
  background: var(--arena-1);
  color: var(--negro);
  box-shadow: none;
}

.producto-editor-steps-bar--simple .opciones-compra-step.completado {
  background: rgba(76, 237, 171, 0.22);
  color: var(--negro-2);
}

@media (max-width: 520px) {
  .producto-editor-steps-bar--simple .opciones-compra-step-sep {
    display: none;
  }
  .producto-editor-steps-bar--simple .opciones-compra-step {
    flex: 1 1 100%;
    width: 100%;
    box-sizing: border-box;
    text-align: left;
    justify-content: flex-start;
  }
}
/* Editor de producto: móvil (padding, sin desbordes, zonas táctiles) */
@media (max-width: 639px) {
  .captain-wrap.opciones-compra-config.producto-editor-page {
    overflow-x: clip;
  }
  .producto-editor-steps-wrap {
    padding: 0.75rem 0.5rem 1rem;
    border-radius: 14px;
  }
  .producto-editor-steps-bar--simple {
    justify-content: stretch;
    border-radius: 12px;
    padding: 0.4rem 0.45rem;
  }
  .producto-editor-body-surface.captain-section.producto-editor-body {
    padding: 1rem 0.65rem;
    border-radius: 12px;
  }
  .producto-editor-page .producto-editor-group {
    padding: 1rem 0.75rem;
  }
  .producto-editor-paso1-cabecera {
    padding: 0.95rem 0.75rem;
  }
  .producto-editor-paso1-cabecera .producto-editor-paso1-titulo {
    font-size: 1.15rem;
  }
  .producto-editor-paso-title {
    font-size: 1.05rem;
  }
  .producto-editor-intro {
    font-size: 0.9rem;
  }
  .producto-editor-tinymce {
    min-height: 260px;
  }
  .opciones-compra-paso3-btns .producto-editor-btn-rapido {
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
  }
  .producto-editor-plantilla-wrap--inline {
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
  }
  .producto-editor-plantilla-wrap--inline .producto-editor-plantilla-select,
  .producto-editor-plantilla-select {
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}
@media (max-width: 480px) {
  .opciones-compra-campo-card-header {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }
  .opciones-compra-campo-card-actions {
    width: 100%;
    justify-content: stretch;
    gap: 0.4rem;
  }
  .opciones-compra-campo-card-actions .opciones-compra-campo-mover,
  .opciones-compra-campo-card-actions .opciones-compra-campo-card-quitar {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
    box-sizing: border-box;
  }
  .opciones-compra-opciones-por-valor-item {
    flex-direction: column;
    align-items: stretch;
    gap: 0.35rem;
  }
  .opciones-compra-opciones-por-valor-item .captain-input {
    min-width: 0;
    width: 100%;
  }
}
.producto-editor-body-surface.captain-section.producto-editor-body {
  padding: 2rem 2.5rem;
  margin-top: 0;
  overflow: visible;
  background: #fafcfb;
  border: 1px solid rgba(0, 0, 0, 0.05);
  border-radius: 16px;
  box-shadow: none;
}

.producto-editor-page .producto-editor-group {
  border-radius: 16px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.03);
  background: #fff;
}

.producto-editor-page .producto-editor-group-title {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--negro);
}

.producto-editor-paso3-anadir-sub {
  margin: -0.35rem 0 1rem 0;
  font-size: 0.88rem;
}

.producto-editor-plantilla-wrap--inline {
  flex: 1 1 14rem;
  min-width: 12rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.producto-editor-plantilla-wrap--inline .producto-editor-plantilla-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro-1);
}

.producto-editor-paso-title {
  margin: 0 0 0.5rem 0;
  font-size: 1.2rem;
}

.producto-editor-intro {
  color: var(--negro-1);
  font-size: 0.95rem;
  margin: 0 0 1.5rem 0;
  line-height: 1.5;
}

/* Paso 1: cabecera, cuota+precio en dos columnas */
.producto-editor-paso1-cabecera {
  margin: 0 0 1.25rem 0;
  padding: 1.15rem 1.25rem 1.2rem;
  background: linear-gradient(160deg, rgba(76, 237, 171, 0.12) 0%, var(--blanco) 50%);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 14px;
  border-left: 3px solid var(--arena);
  box-shadow: none;
}

.producto-editor-paso1-cabecera .producto-editor-paso1-titulo {
  margin: 0 0 0.45rem 0;
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--negro);
  line-height: 1.2;
}

.producto-editor-paso1-cabecera .producto-editor-paso1-lead {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.55;
  color: var(--negro-2);
  max-width: 40rem;
}

.producto-editor-paso1-bloque {
  position: relative;
}

.producto-editor-paso1-bloque-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 1.1rem;
  font-size: 1.02rem;
}

.producto-editor-paso1-campo-nombre {
  margin-bottom: 1.15rem;
}

.producto-editor-paso1-input-titulo {
  font-size: 1.05rem;
  font-weight: 500;
}

.producto-editor-paso1-duo {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.15rem;
  margin-bottom: 1.15rem;
  padding: 1rem 1.05rem;
  background: var(--blanco-1);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
}

@media (min-width: 640px) {
  .producto-editor-paso1-duo {
    grid-template-columns: minmax(0, 1.2fr) minmax(9rem, 0.85fr);
    align-items: start;
    gap: 1.25rem 1.5rem;
  }
}
.producto-editor-paso1-duo-col .producto-editor-tipo-label {
  margin-bottom: 0.5rem;
}

.producto-editor-tipo-opciones--paso1 {
  flex-direction: column;
  align-items: stretch;
}

@media (min-width: 480px) {
  .producto-editor-tipo-opciones--paso1 {
    flex-direction: row;
    flex-wrap: wrap;
  }
  .producto-editor-tipo-opciones--paso1 .producto-editor-tipo-option {
    flex: 1 1 0;
    min-width: 8.5rem;
    justify-content: center;
  }
}
.producto-editor-paso1-hint-inline {
  display: block;
  margin-top: 0.5rem;
}

.producto-editor-paso1-duo-col--precio .producto-editor-field-precio {
  max-width: 100%;
  width: 100%;
}

@media (min-width: 640px) {
  .producto-editor-paso1-duo-col--precio .producto-editor-field-precio {
    max-width: 11rem;
  }
}
.producto-editor-paso1-extra {
  margin: 0;
  padding: 0.85rem 1rem;
  background: linear-gradient(180deg, rgba(76, 237, 171, 0.08) 0%, var(--blanco) 100%);
  border: 1px dashed var(--arena-2);
  border-radius: 10px;
}

.producto-editor-paso1-checkbox-entradas {
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-paso1-extra-hint {
  margin: 0.5rem 0 0 0;
  font-size: 0.84rem;
  line-height: 1.45;
}

.producto-editor-paso1-bloque--presentacion {
  background: linear-gradient(180deg, var(--blanco) 0%, var(--blanco-1) 100%);
}

.producto-editor-paso1-media-hint,
.producto-editor-paso1-desc-hint {
  margin-bottom: 0.5rem;
  font-size: 0.88rem;
}

.producto-editor-paso1-desc-wrap {
  margin-bottom: 0;
}

.producto-editor-paso1-avanzado {
  margin-top: 0.25rem;
  border-style: dashed;
  border-color: var(--blanco-2);
  background: var(--blanco-1);
}

.producto-editor-paso1-avanzado .producto-editor-group-summary {
  font-size: 0.88rem;
  color: var(--negro-2);
}

.producto-editor-paso3-bloque-anadir .producto-editor-group-title,
.producto-editor-paso3-bloque-manual .producto-editor-group-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
}

.opciones-compra-campo-explica--solo {
  margin-bottom: 0.65rem;
}

.opciones-compra-depende-chips {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

@media (min-width: 520px) {
  .opciones-compra-depende-chips {
    flex-direction: row;
    flex-wrap: wrap;
  }
}
.opciones-compra-depende-chip {
  flex: 1 1 auto;
  min-width: min(100%, 11rem);
  padding: 0.65rem 0.85rem;
  text-align: left;
  font-size: 0.875rem;
  line-height: 1.35;
  font-family: inherit;
  color: var(--negro);
  background: var(--blanco);
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
}

.opciones-compra-depende-chip:hover {
  border-color: var(--arena-2);
  background: var(--arena-1);
}

.opciones-compra-depende-chip--activo {
  border-color: var(--arena);
  background: var(--arena-1);
  box-shadow: 0 0 0 1px var(--arena);
}

.opciones-compra-depende-chip strong {
  font-weight: 700;
}

/* Paso 3: tarjeta capitán (editor) + vista previa fuera de la misma tarjeta */
.producto-editor-step-content {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.producto-editor-step-content--paso3 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(min(300px, 100%), min(36%, 420px));
  gap: clamp(1rem, 2.5vw, 2rem);
  align-items: stretch;
  min-width: 0;
  max-width: 100%;
}

.producto-editor-body--paso3-editor {
  min-width: 0;
}

.producto-editor-paso3-main {
  min-width: 0;
}

.producto-editor-atleta-preview {
  position: sticky;
  top: 1rem;
  align-self: stretch;
  min-width: 0;
}

.producto-editor-atleta-preview-inner {
  padding: 1rem 1.15rem 1.15rem;
  background: var(--blanco-2);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
  height: 100%;
  min-height: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.producto-editor-atleta-preview-title {
  margin: 0 0 0.35rem 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--negro);
}

.producto-editor-atleta-preview-intro {
  margin: 0 0 1rem 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.producto-editor-atleta-preview-card {
  padding: 1rem;
  background: var(--blanco);
  border-radius: 10px;
  border: 1px solid rgba(0, 0, 0, 0.06);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  flex: 1 1 auto;
  min-height: 10rem;
  display: flex;
  flex-direction: column;
}

.producto-editor-atleta-preview-producto {
  font-weight: 700;
  font-size: 1rem;
  color: var(--negro);
  margin-bottom: 0.5rem;
  line-height: 1.3;
}

.producto-editor-atleta-preview-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 1rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid var(--blanco-2);
  font-size: 0.9rem;
}

.producto-editor-atleta-preview-precio {
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-atleta-preview-badge {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 6px;
  background: var(--arena-1);
  color: var(--negro);
}

.producto-editor-atleta-preview-badge--incl {
  background: rgba(46, 125, 50, 0.12);
  color: #2e7d32;
}

.producto-editor-atleta-preview-empty {
  margin: 0;
  font-size: 0.85rem;
  color: var(--negro-1);
  line-height: 1.45;
  flex: 1;
  display: flex;
  align-items: center;
}

.producto-editor-atleta-preview-form {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  flex: 1;
}

.producto-editor-atleta-preview-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.producto-editor-atleta-preview-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-atleta-preview-req {
  color: #c62828;
  font-weight: 700;
}

.producto-editor-atleta-preview-input {
  width: 100%;
  max-width: 100%;
  font-size: 0.9rem;
}

.producto-editor-atleta-preview-reset {
  margin-top: 0.85rem;
  width: 100%;
  font-size: 0.85rem;
  padding: 0.5rem 0.85rem;
}

@media (max-width: 1024px) {
  .producto-editor-step-content--paso3 {
    grid-template-columns: 1fr;
  }
  .producto-editor-atleta-preview {
    position: static;
    order: -1;
  }
}
.producto-editor-page .captain-section.producto-editor-body:not(.producto-editor-body-surface) {
  padding: 2rem 2.5rem;
  margin-top: 0;
  overflow: visible;
}

.producto-editor-body .captain-form-group {
  margin-bottom: 1.25rem;
}

.producto-editor-body .captain-form-group:last-of-type {
  margin-bottom: 0;
}

.producto-editor-tinymce {
  width: 100%;
  max-width: 100%;
  min-height: 380px;
}

.producto-editor-campo-tipo-select {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@media (min-width: 640px) {
  .producto-editor-campo-tipo-select {
    width: auto;
    max-width: 220px;
  }
}
.producto-editor-actions {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--blanco-2);
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

/* Paso 1 oculto: el bloque sigue montado (TinyMCE / media) pero no visible */
.producto-editor-body {
  position: relative;
}

.producto-editor-paso--hidden {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}

.producto-editor-upload-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0, 0, 0, 0.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
}

.producto-editor-upload-overlay__box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem 2rem;
  background: var(--blanco);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
  max-width: 22rem;
  text-align: center;
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-upload-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid var(--blanco-2);
  border-top-color: var(--arena);
  border-radius: 50%;
  animation: producto-editor-spin 0.75s linear infinite;
}

@keyframes producto-editor-spin {
  to {
    transform: rotate(360deg);
  }
}
.producto-editor-alcance {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 1rem;
  padding: 1rem;
  background: var(--blanco-2);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
}

.producto-editor-alcance-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-alcance-opciones {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.producto-editor-alcance-opt {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  border: 2px solid var(--blanco-2);
  background: var(--blanco);
  font-size: 0.9rem;
  transition: all 0.2s;
}

.producto-editor-alcance-opt:hover {
  border-color: var(--arena-2);
}

.producto-editor-alcance-opt.activo {
  border-color: var(--arena);
  background: var(--arena-1);
  font-weight: 500;
}

.producto-editor-alcance-opt input {
  accent-color: var(--arena);
  margin: 0;
}

.producto-editor-alcance-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
}

/* Grupos de campos */
.producto-editor-group {
  margin-bottom: 1.5rem;
  padding: 1.25rem;
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
}

.producto-editor-group--principal {
  background: var(--blanco);
}

.producto-editor-group-title {
  margin: 0 0 1rem 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro);
}

.producto-editor-group--colapsable {
  padding: 0;
}

.producto-editor-group-summary {
  padding: 0.75rem 1rem;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--negro-1);
  list-style: none;
}

.producto-editor-group-summary::-webkit-details-marker {
  display: none;
}

.producto-editor-group-summary::after {
  content: " ▼";
  font-size: 0.7rem;
}

.producto-editor-group--colapsable[open] .producto-editor-group-summary::after {
  content: " ▲";
}

.producto-editor-group-content {
  padding: 0 1rem 1rem;
}

.producto-editor-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
}

.producto-editor-row--dates {
  grid-template-columns: 1fr 1fr;
}

.producto-editor-field-precio {
  max-width: 140px;
}

.producto-editor-required {
  color: #c62828;
}

.producto-editor-input--highlight {
  border-color: var(--arena) !important;
  box-shadow: 0 0 0 2px rgba(var(--arena-rgb, 194, 131, 47), 0.2);
}

/* Selector Opcional / Incluido */
.producto-editor-tipo-card {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.producto-editor-tipo-label {
  display: block;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro-1);
  margin-bottom: 0.35rem;
}

.producto-editor-tipo-opciones {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.producto-editor-field-opcional {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.producto-editor-tipo-option {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  padding: 0.5rem 0.85rem;
  border-radius: 8px;
  border: 2px solid var(--blanco-2);
  background: var(--blanco-2);
  font-size: 0.9rem;
  transition: all 0.2s;
  width: fit-content;
}

.producto-editor-tipo-option:hover {
  border-color: var(--arena-2);
}

.producto-editor-tipo-option.activo {
  border-color: var(--arena);
  background: var(--arena-1);
  font-weight: 600;
}

.producto-editor-tipo-option input {
  accent-color: var(--arena);
  margin: 0;
}

@media (max-width: 600px) {
  .producto-editor-row {
    grid-template-columns: 1fr;
  }
  .producto-editor-field-precio {
    max-width: none;
  }
}
/* Paso 2: categorías */
.producto-editor-categorias-resumen {
  margin-bottom: 1rem;
}

.producto-editor-resumen-badge {
  display: inline-block;
  padding: 0.4rem 0.85rem;
  background: var(--arena-1);
  color: var(--negro);
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 8px;
  border: 1px solid var(--arena-2);
}

.producto-editor-categorias-acciones {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.producto-editor-categorias-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 0.5rem;
}

.opciones-compra-categoria-check--card {
  padding: 0.65rem 1rem;
  border-radius: 8px;
  border: 2px solid var(--blanco-2);
  background: var(--blanco-2);
  transition: all 0.2s;
}

.opciones-compra-categoria-check--card:hover {
  border-color: var(--arena-2);
}

.opciones-compra-categoria-check--card.seleccionada {
  border-color: var(--arena);
  background: var(--arena-1);
  font-weight: 500;
}

/* Paso 3: acciones rápidas */
.producto-editor-campos-rapidos {
  margin-bottom: 1.25rem;
}

.producto-editor-campos-rapidos-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
  margin-bottom: 0.75rem;
}

.producto-editor-campos-rapidos-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.producto-editor-btn-rapido {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  padding: 1rem 1.25rem;
  background: var(--blanco);
  border: 2px solid var(--blanco-2);
  border-radius: 10px;
  cursor: pointer;
  text-align: left;
  transition: all 0.2s;
  min-width: 140px;
}

.producto-editor-btn-rapido:hover {
  border-color: var(--arena);
  background: var(--arena-1);
}

.producto-editor-btn-rapido:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.producto-editor-btn-rapido-icon {
  font-size: 1.25rem;
  color: var(--arena);
}

.producto-editor-btn-rapido-hint {
  font-size: 0.75rem;
  color: var(--negro-1);
}

.opciones-compra-paso3-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: flex-start;
}

.producto-editor-plantilla-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.producto-editor-plantilla-label {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.producto-editor-plantilla-select {
  min-width: 180px;
}

.producto-editor-crear-campos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--blanco-2);
}

.producto-editor-crear-label {
  font-size: 0.9rem;
  color: var(--negro-1);
  margin-right: 0.5rem;
}

.producto-editor-campos-empty-mejorado {
  text-align: center;
  padding: 2rem;
}

.producto-editor-empty-icon {
  font-size: 2.5rem;
  display: block;
  margin-bottom: 0.75rem;
  opacity: 0.6;
}

/* Tooltips CSS (se muestran al pasar el ratón, sin delay) */
.producto-editor-page {
  overflow: visible;
}

[data-tooltip] {
  position: relative;
  display: inline-block;
}

[data-tooltip]::before {
  content: attr(data-tooltip);
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-6px);
  padding: 0.4rem 0.75rem;
  background: var(--negro);
  color: var(--blanco);
  font-size: 0.8rem;
  line-height: 1.3;
  white-space: normal;
  max-width: 240px;
  text-align: center;
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s, visibility 0.15s, transform 0.15s;
  z-index: 1000;
  pointer-events: none;
}

[data-tooltip]::after {
  content: "";
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(-2px);
  border: 6px solid transparent;
  border-top-color: var(--negro);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.15s, visibility 0.15s;
  z-index: 1001;
  pointer-events: none;
}

[data-tooltip]:hover::before,
[data-tooltip]:hover::after,
[data-tooltip]:focus::before,
[data-tooltip]:focus::after {
  opacity: 1;
  visibility: visible;
}

[data-tooltip]:hover::before {
  transform: translateX(-50%) translateY(-8px);
}

.tooltip-wrap {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.tooltip-icon {
  width: 1.1rem;
  height: 1.1rem;
  border-radius: 50%;
  background: var(--negro-1);
  color: var(--blanco);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: help;
  flex-shrink: 0;
}

.tooltip-icon:hover {
  background: var(--negro);
}

.captain-label-tooltip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
}

.producto-editor-body .opciones-compra-categorias-list {
  margin-top: 0.5rem;
}

.producto-editor-body .opciones-compra-plantillas {
  margin-bottom: 1.25rem;
}

.opciones-compra-categorias-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.opciones-compra-categoria-check {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
}

.opciones-compra-categoria-check input {
  accent-color: var(--arena);
}

/* Paso 3: campos – acciones y lista */
.opciones-compra-paso3-acciones {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.opciones-compra-acciones-card {
  padding: 1rem 1.25rem;
  background: var(--blanco-2);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
}

.opciones-compra-acciones-title {
  margin: 0 0 0.35rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-acciones-hint {
  margin: 0 0 0.75rem 0;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.opciones-compra-acciones-btns {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.opciones-compra-campos-seccion {
  margin-top: 1rem;
}

.opciones-compra-campos-seccion-title {
  margin: 0 0 0.35rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-campos-seccion-hint {
  margin: 0 0 1rem 0;
  font-size: 0.875rem;
  line-height: 1.45;
  color: var(--negro-1);
  max-width: 52rem;
}

.opciones-compra-campos-count {
  font-weight: 500;
  color: var(--negro-1);
}

.opciones-compra-plantillas {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.opciones-compra-plantillas-label {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--negro-1);
  margin-right: 0.25rem;
}

.opciones-compra-campos-empty {
  padding: 1.5rem;
  background: var(--blanco-2);
  border-radius: 8px;
  border: 2px dashed var(--negro-2);
  margin-bottom: 1rem;
}

.opciones-compra-campos-empty p {
  margin: 0 0 0.5rem 0;
  color: var(--negro-1);
}

.opciones-compra-campos-empty-hint {
  font-size: 0.9rem;
  color: var(--arena);
}

.opciones-compra-campos-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.opciones-compra-campo-card {
  background: var(--blanco-2);
  border-radius: 12px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
}

.opciones-compra-campo-card--siempre-visible {
  border-left: 2px solid rgba(76, 237, 171, 0.65);
}

.opciones-compra-campo-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 0.75rem;
  padding: 0.75rem 1rem;
  background: linear-gradient(180deg, var(--blanco) 0%, var(--blanco-1) 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.opciones-compra-campo-card-heading {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-width: 0;
  flex: 1 1 12rem;
}

.opciones-compra-campo-card-orden {
  flex-shrink: 0;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 800;
  background: var(--arena-1);
  color: var(--negro);
  border: 1px solid var(--arena-2);
}

.opciones-compra-campo-card-titles {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.opciones-compra-campo-card-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--negro-1);
  line-height: 1.2;
}

.opciones-compra-campo-card-num {
  font-weight: 700;
  font-size: 1rem;
  color: var(--negro);
  line-height: 1.25;
  word-break: break-word;
}

.opciones-compra-campo-card-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  flex-shrink: 0;
}

.opciones-compra-campo-mover {
  min-width: 3.25rem;
  padding-left: 0.45rem;
  padding-right: 0.45rem;
  font-size: 0.78rem;
  font-weight: 600;
}

.opciones-compra-campo-card-quitar {
  flex-shrink: 0;
}

.opciones-compra-campo-card-body {
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.opciones-compra-campo-field {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.opciones-compra-campo-field--opciones .opciones-compra-campo-label {
  margin-bottom: 0.25rem;
}

.opciones-compra-campo-field--req {
  margin-top: 0.25rem;
}

.opciones-compra-campo-label {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
}

.opciones-compra-campo-hint {
  font-weight: 400;
  color: var(--negro-1);
  font-size: 0.85rem;
}

.opciones-compra-campo-hint-block {
  margin: 0 0 0.5rem 0;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.opciones-compra-campo-hint-block code {
  font-size: 0.9em;
  padding: 0.1rem 0.35rem;
  background: var(--blanco-2);
  border-radius: 4px;
}

.opciones-compra-campo-explica {
  margin: 0 0 0.65rem 0;
  font-size: 0.84rem;
  line-height: 1.5;
  color: var(--negro-1);
}

.opciones-compra-campo-field--depende .opciones-compra-select-depende {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  background-color: var(--blanco);
  color: var(--negro);
}

select.opciones-compra-select-depende:disabled {
  opacity: 0.72;
  cursor: not-allowed;
  border-style: dashed;
}

.opciones-compra-campo-req--card {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  cursor: pointer;
  font-weight: 500;
  font-size: 0.9rem;
}

.opciones-compra-campo-req--card input {
  accent-color: var(--arena);
}

.opciones-compra-opciones-por-valor--card {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
}

.opciones-compra-opciones-por-valor-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.opciones-compra-opciones-por-valor-label {
  font-size: 0.9rem;
  color: var(--negro-1);
  min-width: 50px;
}

.opciones-compra-opciones-por-valor-item .captain-input {
  min-width: 120px;
}

/* Image upload */
.image-upload-preview {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.image-upload-img {
  max-width: 150px;
  max-height: 100px;
  object-fit: contain;
  border-radius: 8px;
}

.image-upload-dropzone {
  position: relative;
  border: 2px dashed var(--blanco-2);
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  cursor: pointer;
}

.image-upload-dropzone:hover {
  border-color: var(--arena);
}

.image-upload-dropzone--disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

.image-upload-label {
  display: block;
  font-weight: 500;
  color: var(--negro);
}

.image-upload-hint {
  font-size: 0.8rem;
  color: var(--negro-1);
}

.image-upload-input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
}

/* ProductMediaUpload: múltiples imágenes y vídeos */
.product-media-upload {
  margin-top: 0.5rem;
}

.product-media-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.product-media-item {
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid var(--blanco-2);
}

.product-media-item--pending {
  border-style: dashed;
  border-color: var(--arena-2);
}

.product-media-pending-badge {
  position: absolute;
  bottom: 2px;
  left: 2px;
  right: 2px;
  padding: 2px 4px;
  font-size: 0.6rem;
  font-weight: 600;
  text-align: center;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  border-radius: 4px;
  line-height: 1.2;
}

.product-media-preview {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.product-media-preview--video {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--blanco-2);
}

.product-media-icon {
  font-size: 1.5rem;
  color: var(--arena);
}

.product-media-label {
  font-size: 0.7rem;
  color: var(--negro-1);
}

.product-media-remove {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.6);
  color: white;
  border: none;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.product-media-remove:hover {
  background: #b91c1c;
}

.product-media-add {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.product-media-add-drop {
  position: relative;
}

.product-media-add-input {
  position: absolute;
  opacity: 0;
  width: 100%;
  height: 100%;
  cursor: pointer;
  left: 0;
  top: 0;
}

.product-media-add-btn {
  display: inline-block;
  padding: 0.5rem 1rem;
  font-size: 0.9rem;
  font-weight: 500;
  background: var(--blanco-2);
  border: 2px dashed var(--blanco-2);
  border-radius: 8px;
  color: var(--negro-1);
  cursor: pointer;
  transition: all 0.2s;
}

.product-media-add-drop:hover .product-media-add-btn {
  border-color: var(--arena-2);
  color: var(--arena);
}

.product-media-add-drop.disabled .product-media-add-btn {
  opacity: 0.6;
  cursor: not-allowed;
}

.product-media-uploading {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin-left: 0.5rem;
}

.product-media-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0.5rem 0 0 0;
}

.product-media-crop-modal {
  max-width: 52rem;
}

.product-media-crop-stage {
  width: 100%;
  min-height: 260px;
  max-height: 60vh;
  border: 1px solid var(--blanco-2);
  border-radius: 10px;
  overflow: hidden;
  background: #111;
}

.product-media-crop-image {
  display: block;
  max-width: 100%;
}

/* ProductMediaSlider: carrusel imágenes/vídeos */
.product-media-slider {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  background: var(--blanco-2);
}

.product-media-slider--single {
  padding: 0;
}

.product-media-slider-track {
  display: flex;
  transition: transform 0.3s ease;
}

.product-media-slider-slide {
  flex: 0 0 100%;
}

.product-media-slider-img {
  width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: contain;
  display: block;
}

.product-media-slider-video {
  width: 100%;
  max-height: 300px;
  display: block;
}

.product-media-slider-prev, .product-media-slider-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  color: white;
  border: none;
  cursor: pointer;
  font-size: 1.5rem;
  line-height: 1;
  z-index: 2;
}

.product-media-slider-prev {
  left: 8px;
}

.product-media-slider-next {
  right: 8px;
}

.product-media-slider-prev:hover, .product-media-slider-next:hover {
  background: rgba(0, 0, 0, 0.7);
}

.product-media-slider-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  padding: 8px 0;
}

.product-media-slider-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  border: none;
  background: var(--blanco-2);
  cursor: pointer;
}

.product-media-slider-dot.activo {
  background: var(--arena);
}

.product-media-slider-dot:hover {
  background: var(--arena-2);
}

.captain-compras-list {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.captain-compra-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.75rem 1rem;
  background: var(--blanco-2);
  border-radius: 6px;
  font-size: 0.9rem;
}

.captain-compra-info {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}

.captain-compra-nombre {
  font-weight: 500;
  color: var(--negro);
}

.captain-compra-precio {
  color: var(--arena);
  font-weight: 600;
}

.captain-compra-estado {
  font-size: 0.75rem;
  font-weight: 600;
}

.captain-compra-detalles {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.captain-compra-fechalimite {
  font-size: 0.8rem;
  color: var(--negro-1);
}

.captain-fechalimite-banner {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: #fef3c7;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  color: #92400e;
}

.captain-fechalimite-banner .captain-comp-meta {
  color: #92400e;
}

.captain-aviso-no-cambios {
  margin-bottom: 1rem;
  padding: 0.75rem 1rem;
  background: #fef3c7;
  border: 1px solid #f59e0b;
  border-radius: 8px;
  color: #92400e;
}

/* Grid y cards de productos (upsell) — imagen arriba, cuerpo con acciones al pie */
.upsell-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(288px, 1fr));
  gap: 1.25rem;
  align-items: stretch;
}

.upsell-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--blanco-2);
  border-radius: 16px;
  overflow: hidden;
  background: var(--blanco);
  box-shadow: 0 1px 3px rgba(15, 15, 15, 0.06);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.upsell-card:hover {
  border-color: rgba(212, 175, 55, 0.45);
  box-shadow: 0 8px 24px rgba(15, 15, 15, 0.08);
  transform: translateY(-2px);
}

.upsell-card--no-media {
  padding-top: 0;
}

.upsell-media-placeholder {
  flex-shrink: 0;
  height: 168px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  background: linear-gradient(145deg, var(--blanco-2) 0%, #f4f1eb 100%);
  color: var(--negro-1);
  border-bottom: 1px solid var(--blanco-2);
}

.upsell-media-placeholder-icon {
  font-size: 2rem;
  line-height: 1;
  opacity: 0.5;
}

.upsell-media-placeholder-text {
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.65;
}

.upsell-image {
  width: 100%;
  height: 176px;
  flex-shrink: 0;
  overflow: hidden;
  background: linear-gradient(180deg, var(--blanco-2) 0%, #ebe8e2 100%);
}

.upsell-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  vertical-align: top;
}

/* Slider de imágenes en tarjetas de producto (Captain/Member) */
.upsell-image .product-media-slider {
  height: 100%;
}

.upsell-image .product-media-slider-track {
  height: 100%;
}

.upsell-image .product-media-slider-slide {
  height: 176px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.upsell-image .product-media-slider-img {
  width: 100%;
  height: 176px;
  max-height: 176px;
  object-fit: cover;
}

.upsell-image .product-media-slider-video {
  max-height: 176px;
  height: 176px;
  object-fit: cover;
}

.upsell-image .product-media-slider-prev,
.upsell-image .product-media-slider-next {
  width: 28px;
  height: 28px;
  font-size: 1.2rem;
}

.upsell-image .product-media-slider-dots {
  padding: 4px 0;
}

.upsell-info {
  padding: 1.15rem 1.2rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex: 1 1 auto;
  min-height: 0;
}

.upsell-info .captain-btn:first-of-type {
  margin-top: auto;
}

.upsell-info .captain-btn + .captain-btn {
  margin-top: 0.35rem;
}

.upsell-name {
  font-weight: 700;
  color: var(--negro);
  font-size: 1.05rem;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.upsell-desc {
  font-size: 0.875rem;
  color: var(--negro-1);
  line-height: 1.45;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.upsell-price {
  color: var(--arena);
  font-weight: 700;
  font-size: 1.05rem;
  letter-spacing: -0.02em;
}

.upsell-price--muted {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro-1);
}

.upsell-status {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  margin-top: 2px;
  padding: 0.6rem 0.85rem;
  background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border: 1px solid #6ee7b7;
  border-radius: 10px;
}

.upsell-status-text {
  font-size: 0.88rem;
  font-weight: 700;
  color: #047857;
}

.upsell-details {
  font-size: 0.875rem;
  color: var(--negro-1);
  line-height: 1.4;
}

.deadline-warning {
  font-size: 0.8rem;
  color: #92400e;
  margin-top: 4px;
  padding: 0.55rem 0.8rem;
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 10px;
  line-height: 1.35;
}

.upsell-card .captain-btn {
  width: 100%;
}

.upsell-card .captain-producto-required {
  font-size: 0.88rem;
  color: #1e3a5f;
  font-weight: 600;
  margin: 2px 0 0 0;
  padding: 0.5rem 0.65rem;
  background: #eff6ff;
  border-radius: 8px;
  border: 1px solid #bfdbfe;
}

/* Legacy/alias para no romper otros usos */
.captain-upsell-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1rem;
}

.captain-upsell-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1rem;
  border: 2px solid var(--blanco-2);
  border-radius: 12px;
  padding: 1rem;
  background: var(--blanco);
}

.captain-upsell-img-wrap {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 8px;
  overflow: hidden;
  background: var(--blanco-2);
}

.captain-producto-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.captain-upsell-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.captain-upsell-status {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 4px;
}

.captain-producto-required {
  font-size: 0.85rem;
  color: var(--negro-1);
  font-weight: 600;
  margin: 4px 0 0 0;
}

/* Mis productos comprados – cards */
.mis-compras-cards {
  margin-top: 0.5rem;
}

.mis-compra-card {
  position: relative;
}

.mis-compra-card--pendiente {
  border-color: var(--arena-2);
  box-shadow: 0 0 0 1px var(--arena-1);
}

.mis-compra-card--confirmado {
  border-color: #10b981;
}

.mis-compra-card--cancelado {
  opacity: 0.85;
}

.mis-compra-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.mis-compra-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.mis-compra-card-name {
  flex: 1;
  min-width: 0;
}

.mis-compra-card-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.mis-compra-card-fecha {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.mis-compra-card-detalles {
  font-size: 0.9rem;
  padding: 0.35rem 0;
}

.mis-compra-card-deadline {
  font-size: 0.85rem;
  color: #92400e;
  background: #fef3c7;
  padding: 0.4rem 0.6rem;
  border-radius: 6px;
  margin: 4px 0 0 0;
}

.mis-compra-card-btn {
  margin-top: 6px;
}

.mis-compra-card-closed {
  font-size: 0.85rem;
  padding: 0.4rem 0;
  margin: 4px 0 0 0;
}

/* Flujo de productos: Mi pedido → Productos incluidos → Comprar más */
.product-flow-section {
  margin-bottom: 1.5rem;
}

.product-flow-section .captain-section-title {
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.product-flow-header .captain-hint {
  margin-top: 0;
  margin-bottom: 1.1rem;
}

.product-flow-icon {
  font-size: 1.15em;
  line-height: 1;
  opacity: 0.92;
}

.product-flow-section--included {
  border-left: 4px solid #059669;
  background: linear-gradient(90deg, rgba(16, 185, 129, 0.06) 0%, var(--blanco) 12%);
}

.product-flow-section--shop {
  border-left: 4px solid var(--arena);
  background: linear-gradient(90deg, rgba(212, 175, 55, 0.08) 0%, var(--blanco) 14%);
}

.product-flow-section--mis-compras {
  border-left: 4px solid #6366f1;
  background: linear-gradient(90deg, rgba(99, 102, 241, 0.06) 0%, var(--blanco) 12%);
}

.upsell-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  font-size: 0.7rem;
  font-weight: 700;
  padding: 0.32rem 0.65rem;
  border-radius: 999px;
  margin-bottom: 0.35rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.upsell-badge--included {
  background: #d1fae5;
  color: #047857;
  border: 1px solid #6ee7b7;
}

.upsell-badge--paid {
  background: linear-gradient(135deg, var(--arena-1) 0%, #e8d5a3 100%);
  color: var(--negro);
  border: 1px solid rgba(180, 140, 40, 0.35);
}

.captain-empty-state--hint {
  font-size: 0.95rem;
  color: var(--negro-1);
  padding: 1rem;
}

/* Bloque superior zona atleta — productos */
.athlete-products-zone {
  margin-bottom: 0.25rem;
}

.athlete-products-intro {
  margin-bottom: 1.35rem;
  padding: 1.1rem 1.25rem;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--blanco-1) 0%, var(--blanco) 50%);
  border: 1px solid var(--blanco-2);
  box-shadow: 0 2px 12px rgba(15, 15, 15, 0.04);
}

/* Public Sans: Manuka en título corto de párrafo es poco legible (display). */
.athlete-products-intro-title {
  margin: 0 0 0.35rem 0;
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--negro);
  letter-spacing: -0.01em;
  line-height: 1.35;
}

.athlete-products-intro-text {
  margin: 0;
  font-size: 0.92rem;
  color: var(--negro-1);
  line-height: 1.55;
  max-width: 42rem;
}

.product-flow-header .captain-section-title::before {
  height: 1.25rem;
}

.product-flow-section .captain-hint {
  padding: 0.75rem 1rem;
  background: rgba(0, 0, 0, 0.03);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
  font-size: 0.9rem;
  line-height: 1.5;
}

.mis-compra-card-img .product-media-slider-slide {
  height: 176px !important;
}

.mis-compra-card-img.upsell-image {
  height: 176px;
}

@media (prefers-reduced-motion: reduce) {
  .upsell-card {
    transition: none;
  }
  .upsell-card:hover {
    transform: none;
  }
}
@media (min-width: 48rem) {
  .upsell-image {
    height: 200px;
  }
  .upsell-image .product-media-slider-slide {
    height: 200px;
  }
  .upsell-image .product-media-slider-img {
    height: 200px;
    max-height: 200px;
  }
  .upsell-image .product-media-slider-video {
    height: 200px;
    max-height: 200px;
  }
  .upsell-media-placeholder {
    height: 200px;
  }
  .mis-compra-card-img .product-media-slider-slide {
    height: 200px !important;
  }
  .mis-compra-card-img.upsell-image {
    height: 200px;
  }
}
.captain-purchase-table-wrap {
  overflow-x: auto;
  margin-top: 0.5rem;
}

.captain-purchase-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.captain-purchase-table th {
  background: var(--blanco-2);
  padding: 10px 12px;
  text-align: left;
  font-weight: 600;
  color: var(--negro-1);
  border-bottom: 2px solid var(--blanco-2);
}

.captain-purchase-table td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--blanco-2);
}

.captain-modal-form select.captain-input {
  width: 100%;
  padding: 10px 12px;
  border: 2px solid var(--blanco-2);
  border-radius: 8px;
  font-size: 1rem;
}

/* Modal con formulario (Invitar atleta) */
.captain-modal--form .captain-modal-title {
  margin-bottom: 0.5rem;
}

.captain-modal-form {
  margin: 1rem 0;
}

.captain-data-field {
  margin-bottom: 1rem;
}

.captain-data-field-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 0.35rem;
}

.captain-modal-form .captain-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Página Competition / Leaderboard */
.competition-page {
  padding: 1.5rem 1rem 3rem;
  max-width: 52rem;
  margin: 0 auto;
  color: var(--negro);
}

.competition-page .competition--loading,
.competition-page .competition--notfound {
  text-align: center;
  padding: 2rem;
}

/* Header: logo + nombre competición */
.competition-header {
  text-align: center;
  margin-bottom: 2.5rem;
  padding: 0 0.5rem;
}

.competition-header__logo-wrap {
  max-width: 18rem;
  margin: 0 auto 1.25rem;
  border-radius: 16px;
  overflow: hidden;
  background: var(--blanco-2);
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.08);
  border: 1px solid var(--blanco-2);
}

.competition-header__img {
  display: block;
  width: 100%;
  max-height: 11rem;
  object-fit: contain;
  object-position: center;
}

.competition-header__title {
  margin: 0;
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: clamp(1.4rem, 4vw, 1.85rem);
  font-weight: 800;
  color: var(--negro);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.competition-header__entradas {
  margin-top: 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.competition-header__entradas-btn {
  margin: 0;
}

.competition-header__entradas-hint {
  margin: 0;
  max-width: 22rem;
  font-size: 0.85rem;
  color: var(--negro-1);
  line-height: 1.4;
}

@media (min-width: 40em) {
  .competition-header__logo-wrap {
    max-width: 22rem;
  }
  .competition-header__img {
    max-height: 13rem;
  }
}
/* Filtros: barra categoría + WOD */
.competition-filters {
  margin-bottom: 1.75rem;
  padding: 1rem 1.25rem;
  background: var(--blanco-1);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
}

.competition-filters__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1.25rem;
}

.competition-filters__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--negro-1);
  margin: 0;
}

.competition-filters__select {
  min-width: 12rem;
  padding: 0.6rem 0.9rem;
  border-radius: 10px;
  border: 2px solid var(--negro-2);
  background: var(--blanco);
  color: var(--negro);
  font-size: 0.95rem;
  font-family: inherit;
  cursor: pointer;
}

.competition-filters__select:hover {
  border-color: var(--arena);
}

.competition-filters__select:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.2);
}

@media (max-width: 30em) {
  .competition-filters__row {
    flex-direction: column;
    align-items: stretch;
  }
  .competition-filters__row .competition-filters__label + .competition-filters__select {
    margin-bottom: 0.5rem;
  }
  .competition-filters__select {
    min-width: 0;
    width: 100%;
  }
}
.competition-results__body {
  margin-top: 0;
}

.competition-results .text-center {
  text-align: center;
  padding: 2.5rem 1rem;
  color: var(--negro-1);
  font-size: 1rem;
}

.competition-page h3 {
  margin: 1rem 0;
}

.competition-page .countdown {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 0 0.5rem;
}

.competition-page .countdown li {
  display: inline-block;
  text-align: center;
}

.competition-page .countdown li span {
  font-size: clamp(2rem, 5vw, 4rem);
  font-weight: 300;
  line-height: 1.2;
  color: var(--arena);
}

.competition-page .countdown li.seperator {
  font-size: clamp(2rem, 4vw, 3rem);
  color: var(--arena);
  vertical-align: top;
  padding-top: 0.5rem;
}

.competition-page .countdown li p {
  color: var(--negro-1);
  font-size: 0.8rem;
  margin: 0.25rem 0 0 0;
}

.competition-page .dateend {
  color: var(--negro);
}

.competition-page .row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -0.5rem;
}

.competition-page .columns {
  padding: 0 0.5rem;
}

.competition-page .small-12 {
  flex: 0 0 100%;
  max-width: 100%;
}

.competition-page .medium-4 {
  flex: 0 0 33.333%;
  max-width: 33.333%;
}

.competition-page .medium-offset-2 {
  margin-left: 16.666%;
}

.competition-page .end {
  margin-left: auto;
}

/* Listado leaderboard: tarjetas una bajo otra */
.competition-page .row.leaderboard {
  display: flex;
  flex-direction: column;
  flex-wrap: wrap;
  margin: 0;
  gap: 0.625rem;
}

.competition-page .row.leaderboard .podium .columns {
  width: 100%;
  padding: 0;
  margin-bottom: 0;
}

.competition-page .row.leaderboard .leaderboard-card {
  display: block;
  width: 100%;
  border: none;
  background: none;
  cursor: pointer;
  padding: 0;
  margin: 0;
  text-align: left;
  font: inherit;
  color: inherit;
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.competition-page .row.leaderboard .leaderboard-card:hover {
  transform: translateY(-1px);
}

.competition-page .row.leaderboard .leaderboard-card:active {
  transform: translateY(0);
}

.competition-page .row.leaderboard .athleteresult {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  min-height: 4.25rem;
  padding: 0 1.25rem;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  transition: box-shadow 0.15s ease;
}

.competition-page .row.leaderboard .leaderboard-card:hover .athleteresult {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
}

.competition-page .row.leaderboard .athleteresult .score {
  flex-shrink: 0;
  font-size: 2.7rem;
  font-weight: bold;
  color: #f5ca2b;
  line-height: 1;
}

.competition-page .row.leaderboard .athleteresult .athlete {
  flex: 1;
  min-width: 0;
  overflow: hidden;
}

.competition-page .row.leaderboard .athleteresult .name {
  display: block;
  font-size: 1.6rem;
  font-weight: 600;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.competition-page .row.leaderboard .athleteresult .affiliate {
  display: block;
  font-size: 1rem;
  color: #888;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 0.125rem;
}

.competition-page .row.leaderboard .athleteresult .result {
  flex-shrink: 0;
  font-size: 1.25rem;
  line-height: 1.3;
  text-align: right;
}

.competition-page .row.leaderboard .athleteresult .result .points {
  display: block;
  font-size: 1rem;
  margin-top: 0.125rem;
}

.competition-page .row.leaderboard .first.podium .athleteresult {
  background: linear-gradient(135deg, #FFD54F 0%, #FFA000 100%);
  color: #000;
  box-shadow: 0 4px 16px rgba(255, 193, 7, 0.35);
}

.competition-page .row.leaderboard .second.podium .athleteresult {
  background: linear-gradient(135deg, #EEEEEE 0%, #9E9E9E 100%);
  color: #000;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
}

.competition-page .row.leaderboard .third.podium .athleteresult {
  background: linear-gradient(135deg, #D4A574 0%, #8B4513 100%);
  color: #fff;
  box-shadow: 0 4px 16px rgba(139, 69, 19, 0.3);
}

.competition-page .row.leaderboard .podium .athleteresult .affiliate {
  color: #222;
}

.competition-page .row.leaderboard .podium .athleteresult .score {
  color: inherit;
}

/* Contenido del modal detalle equipo (GlobalModal), igual que competitioninfo.aspx legacy */
.competition-info-modal__loading {
  margin: 0;
  padding: 1rem;
  text-align: center;
  color: var(--negro-1);
}

.competition-info-modal {
  color: var(--negro);
}

.competition-info-modal__team {
  margin: 0 0 0.25rem 0;
  font-size: 1.35rem;
  font-weight: 700;
  text-align: center;
}

.competition-info-modal__box {
  margin: 0 0 1rem 0;
  font-size: 1.1rem;
  font-weight: 500;
  color: var(--negro-1);
  text-align: center;
}

.competition-info-modal__meta {
  margin: 0 0 0.75rem 0;
  font-size: 0.9rem;
  color: var(--negro-1);
  text-align: center;
}

.competition-info-modal__score {
  margin-bottom: 1.25rem;
  padding: 0.75rem;
  background: var(--blanco-2);
  border-radius: 8px;
  text-align: center;
}

.competition-info-modal__puesto {
  font-size: 1rem;
}

.competition-info-modal__pts {
  margin-left: 0.5rem;
  font-size: 0.95rem;
  color: var(--arena);
}

.competition-info-modal__wods {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
  margin: 0 0 1rem 0;
}

.competition-info-modal__wods th,
.competition-info-modal__wods td {
  padding: 0.5rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--blanco-2);
}

.competition-info-modal__wods th {
  font-weight: 600;
  color: var(--negro-1);
}

.competition-info-modal__palmares {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--blanco-2);
}

.competition-info-modal__palmares h4 {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
  color: var(--arena);
}

.competition-info-modal__palmares p {
  margin: 0;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.competition-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 1rem;
}

.competition-modal {
  background: var(--negro-3);
  border: 1px solid var(--negro-2);
  border-radius: 14px;
  max-width: 28rem;
  width: 100%;
  max-height: 90vh;
  overflow: auto;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.competition-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid var(--negro-2);
}

.competition-modal-header h3 {
  margin: 0;
  font-size: 1.15rem;
  color: var(--blanco);
}

.competition-modal-close {
  background: none;
  border: none;
  color: var(--negro-1);
  font-size: 1.5rem;
  line-height: 1;
  cursor: pointer;
  padding: 0.25rem;
}

.competition-modal-close:hover {
  color: var(--blanco);
}

.competition-modal-body {
  padding: 1.25rem;
}

.competition-modal-meta {
  color: var(--negro-1);
  font-size: 0.9rem;
  margin: 0 0 0.25rem 0;
}

.competition-modal-puesto {
  color: var(--arena);
  margin: 0 0 1rem 0;
  font-size: 0.95rem;
}

.competition-modal-wods {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.competition-modal-wods th, .competition-modal-wods td {
  padding: 0.4rem 0.5rem;
  text-align: left;
  border-bottom: 1px solid var(--negro-2);
}

.competition-modal-wods th {
  color: var(--arena-2);
  font-weight: 600;
}

.competition-modal-wods td {
  color: var(--blanco);
}

.competition-modal-palmares {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--negro-2);
}

.competition-modal-palmares h4 {
  margin: 0 0 0.5rem 0;
  font-size: 1rem;
  color: var(--arena);
}

.competition-modal-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0;
}

/* Página CompetitionInfo (legacy competitioninfo.aspx) */
.competition-info-page {
  padding: 1.5rem 1rem;
  max-width: 56rem;
  margin: 0 auto;
  color: var(--blanco);
}

.competition-info-page .competition .header h5 {
  margin: 0.5rem 0;
  color: var(--blanco);
}

.competition-info-page .athleteresult {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.competition-info-page .athleteresult img {
  border-radius: 8px;
}

.competition-info-page .athleteresult .name {
  line-height: 1.3;
}

.competition-info-page .score {
  font-size: 2rem;
  color: var(--arena);
}

.competition-info-page .score span {
  color: var(--blanco);
  font-size: 1.25rem;
}

@media (min-width: 40em) {
  .competition-page .countdown li span {
    font-size: 4rem;
  }
  .competition-page .countdown li.seperator {
    font-size: 4rem;
  }
}
@media (max-width: 39.99em) {
  .competition-page .medium-4, .competition-page .medium-offset-2 {
    flex: 0 0 100%;
    max-width: 100%;
    margin-left: 0;
  }
}
/* WODs – zona capitán y miembro */
.captain-wod-alert {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid #f59e0b;
  border-radius: 10px;
  font-size: 0.95rem;
  color: #92400e;
}

.captain-wod-alert-icon {
  flex-shrink: 0;
  width: 1.5rem;
  height: 1.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #f59e0b;
  color: #fff;
  font-weight: 700;
  border-radius: 50%;
  font-size: 0.9rem;
  line-height: 1;
}

.captain-wods-list {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.captain-wod-item {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.captain-wod-item .captain-wod-form-wrap {
  margin-top: 0;
  margin-left: 0;
}

.captain-wod-card {
  background: var(--blanco-1);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  transition: box-shadow 0.2s, border-color 0.2s;
}

.captain-wod-card:hover {
  border-color: var(--blanco-3);
}

.captain-wod-card--requiere-accion {
  border-color: var(--arena);
  border-left-width: 4px;
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
  box-shadow: 0 2px 12px rgba(4, 197, 171, 0.15);
}

.captain-wod-card--requiere-accion:hover {
  box-shadow: 0 4px 16px rgba(4, 197, 171, 0.2);
}

.captain-wod-card--form-open {
  border-color: var(--arena-2);
  box-shadow: 0 0 0 2px var(--arena-2);
}

.captain-wod-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.captain-wod-name {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--negro);
}

.captain-wod-meta {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin-bottom: 0.5rem;
}

.captain-wod-meta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.9rem;
  color: var(--negro-1);
}

.captain-wod-meta-item {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
}

.captain-wod-meta-label {
  font-weight: 600;
  color: var(--negro-2);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.captain-wod-deadline {
  font-size: 0.95rem;
  color: #065f46;
  font-weight: 600;
  margin: 0.5rem 0 0.75rem;
  padding: 0.5rem 0.75rem;
  background: rgba(209, 250, 229, 0.6);
  border-radius: 8px;
}

.captain-wod-info-box {
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0.5rem 0 0.75rem;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
}

.captain-wod-info-box--futuro {
  color: #92400e;
  background: rgba(254, 243, 199, 0.8);
  border: 1px solid #f59e0b;
}

.captain-wod-desc-wrap {
  margin: 0.75rem 0;
}

.captain-wod-desc-summary {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--arena);
  cursor: pointer;
  padding: 0.25rem 0;
}

.captain-wod-desc-summary:hover {
  text-decoration: underline;
}

.captain-wod-desc {
  font-family: ui-monospace, monospace;
  font-size: 0.85rem;
  white-space: pre-wrap;
  background: var(--blanco-2);
  padding: 0.75rem;
  border-radius: 6px;
  margin: 0.5rem 0;
  color: var(--negro-2);
}

.captain-wod-desc--solo-lectura {
  cursor: default;
  user-select: text;
  background: transparent;
  border: none;
  border-left: 3px solid var(--blanco-2);
  padding-left: 1rem;
  margin-left: 0;
}

.captain-wod-actions {
  margin-top: 1rem;
}

.captain-wod-btn {
  min-width: 10rem;
}

.captain-wod-btn--primary {
  background: var(--arena) !important;
  color: var(--negro) !important;
  border-color: var(--arena) !important;
}

.captain-wod-btn--primary:hover {
  background: var(--wba-primary-dark) !important;
  border-color: var(--wba-primary-dark) !important;
  color: var(--negro) !important;
}

.captain-wod-result-readonly {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--blanco-2);
  font-size: 0.95rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 1rem;
}

.captain-wod-result-label {
  font-weight: 600;
  color: var(--negro-1);
}

.captain-wod-result-value {
  font-weight: 700;
  color: var(--negro);
  font-size: 1.05rem;
}

.captain-wod-result-meta {
  font-size: 0.85rem;
  color: var(--negro-2);
}

.captain-wod-reclamaciones-link {
  margin-left: 0.25rem;
}

.captain-wod-form-wrap {
  margin-top: 0.75rem;
  padding: 1.25rem;
  background: var(--arena-1);
  border-radius: 10px;
  border: 1px solid var(--arena-2);
}

.leaderboard-btn--active {
  background: var(--arena);
  color: var(--negro);
  border-color: var(--arena);
}

.captain-inline-inputs {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.captain-inline-inputs .captain-input--small {
  max-width: 4rem;
}

.wod-badge--futuro {
  background: #fef3c7;
  color: #92400e;
}

.wod-badge--abierto {
  background: #d1fae5;
  color: #065f46;
}

.wod-badge--validando {
  background: #dbeafe;
  color: #1e40af;
}

.wod-badge--validado {
  background: #d1fae5;
  color: #047857;
}

.wod-badge--corregido {
  background: #fee2e2;
  color: #b91c1c;
}

.wod-badge--vivo {
  background: #e0e7ff;
  color: #3730a3;
}

.member-wod-solo-capitan {
  background: #fef3c7;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  margin-top: 0.5rem;
}

/* ========== Comunicaciones (spec §6): mensajes unidireccionales, Normal vs Importante ========== */
.comunicaciones-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.comunicacion-card {
  border-radius: 0.5rem;
  overflow: hidden;
  border: 1px solid var(--blanco-2);
  background: var(--blanco-1);
  border-left: 4px solid #3b82f6;
}

.comunicacion-card--no-leido .comunicacion-head {
  background: var(--negro-3);
  color: var(--blanco);
}

.comunicacion-card--no-leido .comunicacion-body {
  background: var(--negro-3);
  color: var(--blanco);
  padding-top: 0;
}

.comunicacion-card--importante {
  border-left-color: var(--wba-error);
  background: #fef2f2;
}

.comunicacion-card--importante.comunicacion-card--no-leido .comunicacion-head {
  background: #7f1d1d;
  color: var(--blanco);
}

.comunicacion-card--importante.comunicacion-card--no-leido .comunicacion-body {
  background: #7f1d1d;
  color: #fecaca;
}

.comunicacion-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 0.5rem 0.75rem;
  background: #e0e7ff;
  color: var(--negro-2);
}

.comunicacion-head .comunicacion-torneo {
  font-weight: 600;
}

.comunicacion-head .comunicacion-fecha {
  margin-left: auto;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.comunicacion-badge-importante {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  padding: 0.2rem 0.5rem;
  border-radius: 4px;
  background: var(--wba-error);
  color: var(--blanco);
}

.comunicacion-body {
  padding: 1rem;
}

.comunicacion-nuevo {
  margin: 0 0 0.5rem 0;
  font-size: 0.9rem;
  opacity: 0.9;
}

.comunicacion-texto {
  font-size: 0.95rem;
  line-height: 1.5;
  white-space: pre-wrap;
}

.comunicacion-texto br {
  display: block;
  content: "";
  margin-top: 0.25em;
}

.comunicaciones-page .comunicaciones-hint,
.comunicaciones-page .comunicaciones-aviso {
  margin-bottom: 1rem;
  color: var(--negro-1);
}

.comunicaciones-paginacion {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: 1.5rem;
  flex-wrap: wrap;
}

.comunicaciones-pagina-info {
  font-size: 0.95rem;
  color: var(--negro-1);
}

.perfil-page .perfil-hint,
.benchmarks-page .benchmarks-hint {
  margin-bottom: 1rem;
  color: var(--negro-1);
}

/* ========== Reclamaciones ========== */
/* Página listado reclamaciones por torneo (igual que legacy reclamaciones.aspx, diseño mejorado) */
.reclamaciones-torneo-page {
  max-width: 56rem;
  margin: 0 auto;
  padding: 1.5rem 1rem 2rem;
}

.reclamaciones-torneo-header {
  margin-bottom: 1.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.reclamaciones-torneo-title {
  margin: 0;
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  color: var(--negro);
}

.reclamaciones-torneo-back {
  font-size: 0.95rem;
  color: var(--arena);
  text-decoration: none;
  font-weight: 600;
}

.reclamaciones-torneo-back:hover {
  text-decoration: underline;
}

.reclamaciones-torneo-msg {
  margin: 1rem 0;
  color: var(--negro-1);
}

.reclamaciones-torneo-alert {
  padding: 1.25rem;
  border-radius: 12px;
  background: var(--blanco-1);
  border: 1px solid var(--blanco-2);
}

.reclamaciones-torneo-alert--error {
  border-color: rgba(192, 57, 43, 0.4);
  background: rgba(192, 57, 43, 0.06);
}

.reclamaciones-torneo-alert p {
  margin: 0 0 1rem 0;
  color: var(--negro);
}

.reclamaciones-torneo-empty {
  padding: 2.5rem 1rem;
  text-align: center;
  background: var(--blanco-1);
  border-radius: 12px;
  border: 1px dashed var(--blanco-2);
  color: var(--negro-1);
}

.reclamaciones-torneo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}

@media (min-width: 40em) {
  .reclamaciones-torneo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 64em) {
  .reclamaciones-torneo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.reclamacion-card {
  background: var(--negro);
  color: var(--blanco);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  border: none;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.reclamacion-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2);
}

.reclamacion-card--cerrado {
  background: linear-gradient(135deg, #2d2d2d 0%, #1a1a1a 100%);
  opacity: 0.92;
}

.reclamacion-card--abierto {
  background: linear-gradient(135deg, #0d0d0d 0%, #000 100%);
}

.reclamacion-card__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.5rem;
}

.reclamacion-card__meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.reclamacion-card__categoria {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--arena);
}

.reclamacion-card__wod {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.75);
}

.reclamacion-card__fecha {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.6);
  flex-shrink: 0;
}

.reclamacion-card__body {
  flex: 1;
  min-height: 0;
}

.reclamacion-card__nombre {
  font-family: "Manuka", sans-serif;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.3;
}

.reclamacion-card__stats {
  font-size: 0.8rem;
  color: rgba(255, 255, 255, 0.7);
  margin-top: 0.25rem;
}

.reclamacion-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.reclamacion-card__badge {
  font-size: 0.7rem;
  font-weight: 600;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.2);
}

.reclamacion-card--cerrado .reclamacion-card__badge {
  background: var(--negro-1);
}

.reclamacion-card__btn {
  display: inline-block;
  padding: 0.4rem 0.9rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro);
  background: var(--arena);
  border-radius: 8px;
  text-decoration: none;
  transition: background 0.15s ease, color 0.15s ease;
}

.reclamacion-card__btn:hover {
  background: var(--arena-2);
  color: var(--negro);
}

/* Contenedor reclamaciones (detalle conversación) */
.reclamaciones-wrap {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.reclamaciones-wrap:not(.reclamaciones-wrap--modal) {
  padding: 1.5rem;
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
}

/* Página detalle reclamación (/reclamaciones/{id}) */
.reclamaciones-page {
  max-width: 48rem;
  margin: 0 auto;
  padding: 1.5rem 1rem 2rem;
}

.reclamaciones-page-header {
  margin-bottom: 1.25rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.reclamaciones-page-title {
  margin: 0;
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--negro);
}

.reclamaciones-page-back {
  font-size: 0.95rem;
  color: var(--arena);
  text-decoration: none;
  font-weight: 600;
}

.reclamaciones-page-back:hover {
  text-decoration: underline;
}

.reclamaciones-page-content {
  margin: 0;
}

.reclamaciones-back-torneo {
  margin: 0 0 0.75rem 0;
}

.reclamaciones-back-torneo .reclamaciones-page-back {
  font-size: 0.9rem;
}

/* Header conversación (igual que legacy competitionheader) */
.reclamaciones-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.75rem 1rem;
  background: var(--blanco-1);
  border-radius: 10px;
  border: 1px solid var(--blanco-2);
}

.reclamaciones-header-main {
  flex: 1;
  min-width: 0;
}

.reclamaciones-header-titulo {
  font-family: "Manuka", sans-serif;
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.2rem 0;
  color: var(--negro);
  line-height: 1.3;
}

.reclamaciones-header-meta {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0;
}

.reclamaciones-badge {
  flex-shrink: 0;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 6px;
}

.reclamaciones-badge--cerrado {
  background: var(--negro-1);
  color: var(--blanco);
}

/* Body (mensajes) */
.reclamaciones-body {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  min-height: 0;
}

.reclamaciones-body-title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--negro-1);
  margin: 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.reclamaciones-empty {
  padding: 1rem;
  color: var(--negro-1);
  font-size: 0.9rem;
  background: var(--blanco-1);
  border-radius: 8px;
  border: 1px dashed var(--blanco-2);
}

/* Modal: layout optimizado (header + mensajes scroll + form fijo) */
.reclamaciones-wrap--modal {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  height: 100%;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
}

.reclamaciones-wrap--modal .reclamaciones-header {
  flex-shrink: 0;
  padding-bottom: 0.75rem;
}

.reclamaciones-wrap--modal .reclamaciones-header-titulo {
  font-size: 1.05rem;
}

.reclamaciones-wrap--modal .reclamaciones-body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.reclamaciones-wrap--modal .reclamaciones.reclamaciones-list {
  flex: 1;
  min-height: 6rem;
  margin: 0;
}

.reclamaciones-wrap--modal .reclamaciones-form-section,
.reclamaciones-wrap--modal .panelreclamacion {
  flex-shrink: 0;
  margin-top: 0;
  border-top: 1px solid var(--blanco-2);
  padding-top: 1rem;
}

.reclamaciones-wrap--modal .reclamacion-fieldset {
  margin: 0;
  padding: 1rem;
  max-width: 100%;
  box-sizing: border-box;
}

.reclamaciones-wrap--modal .reclamacion-form-campos {
  gap: 0.75rem;
}

.reclamaciones-wrap--modal .reclamacion-field-2cols {
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 520px) {
  .reclamaciones-wrap--modal .reclamacion-field-2cols {
    grid-template-columns: 1fr;
  }
}
.reclamaciones-wrap--modal .captain-input,
.reclamaciones-wrap--modal .reclamacion-textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.reclamaciones-wrap--modal .reclamacion-form-actions {
  margin-top: 0.75rem;
}

/* Chat (reclamacion organizacion/atleta, igual que legacy reclamacionesCaptain) */
.reclamaciones.reclamaciones-list {
  background: var(--blanco-1);
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.25rem;
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
}

.reclamaciones .reclamacion {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
  padding: 0.75rem 1rem;
  border-radius: 12px;
  position: relative;
  max-width: 88%;
  word-wrap: anywhere;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.reclamaciones .reclamacion.organizacion {
  background: var(--blanco);
  align-self: flex-start;
  border: 1px solid var(--blanco-2);
}

.reclamaciones .reclamacion.atleta {
  background: linear-gradient(135deg, #d9fdd3 0%, #c8f5c4 100%);
  align-self: flex-end;
  border: 1px solid rgba(76, 237, 171, 0.25);
}

.reclamaciones .reclamacion + .reclamacion {
  margin-top: 0.15rem;
}

.reclamaciones .reclamacion.organizacion + .reclamacion.atleta {
  margin-top: 0.75rem;
}

.reclamaciones .reclamacion.atleta + .reclamacion.organizacion {
  margin-top: 0.75rem;
}

.reclamaciones .reclamacion .reclamacion-text {
  white-space: pre-wrap;
  line-height: 1.5;
  margin: 0;
  font-size: 0.95rem;
}

.reclamaciones .reclamacion .reclamacion-video {
  border-radius: 8px;
  background: rgba(76, 237, 171, 0.15);
  padding: 0.5rem 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.9rem;
}

.reclamaciones .reclamacion .reclamacion-video a {
  color: var(--arena);
}

.reclamacion-video-player {
  max-width: 100%;
  max-height: 240px;
  border-radius: 8px;
  background: var(--negro);
  display: block;
  margin-top: 0.25rem;
}

.reclamaciones .reclamacion .reclamacion-timevideo {
  font-size: 0.8rem;
  color: var(--negro-1);
  margin-top: 0.25rem;
}

.reclamaciones .reclamacion .reclamacion-info {
  color: var(--negro-1);
  font-size: 0.75rem;
  text-align: right;
  margin-top: 0.5rem;
}

.reclamacion-msg {
  font-size: 0.9rem;
  margin: 0.5rem 0 0 0;
}

.reclamacion-msg--error {
  color: var(--wba-error);
}

.reclamacion-msg--ok {
  color: var(--wba-success);
}

.reclamaciones-form-section {
  margin-top: 1.25rem;
}

.reclamacion-form {
  margin-top: 1.5rem;
}

.reclamacion-fieldset {
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
  padding: 1.25rem;
  margin: 0;
  background: var(--blanco-1);
  max-width: 100%;
  box-sizing: border-box;
}

.reclamacion-fieldset legend {
  padding: 0 0.5rem;
  font-weight: 600;
  font-size: 1rem;
  color: var(--negro);
}

.reclamacion-form-campos {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.reclamacion-field-full {
  width: 100%;
}

.reclamacion-field-2cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

@media (max-width: 400px) {
  .reclamacion-field-2cols {
    grid-template-columns: 1fr;
  }
}
.reclamacion-field-col {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0;
}

.reclamacion-field-col label {
  font-size: 0.95rem;
}

.reclamacion-fieldset .captain-input,
.reclamacion-fieldset textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

.reclamacion-form-actions {
  margin-top: 1rem;
}

.reclamacion-acciones {
  margin-top: 1rem;
}

.captain-label-hint {
  font-weight: normal;
  color: var(--negro-1);
  font-size: 0.85em;
  display: block;
  margin-top: 0.15rem;
}

.panelreclamacion {
  padding: 1.25rem 1.5rem;
  background: var(--blanco-1);
  text-align: left;
  border-radius: 12px;
  margin-top: 1.25rem;
  border: 1px solid var(--blanco-2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.panelreclamacion h4 {
  margin-top: 0;
  margin-bottom: 0.75rem;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--negro);
}

.panelreclamacion p {
  margin: 0.5rem 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro-1);
}

.panelreclamacion .leaderboard-btn {
  margin-top: 1rem;
}

.reclamaciones-form-section {
  border-radius: 12px;
}

.reclamacion-fieldset {
  border-radius: 12px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.captain-link {
  color: var(--arena);
  font-weight: 600;
  text-decoration: none;
}

.captain-link:hover {
  text-decoration: underline;
}

/* Video upload component */
.video-upload {
  margin: 0.5rem 0;
}

.video-upload-url-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-bottom: 0.75rem;
}

.video-upload-url-input {
  width: 100%;
}

.video-upload-separator {
  font-size: 0.85rem;
  color: var(--negro-1);
  text-align: center;
  margin: 0.25rem 0;
}

.video-upload-link {
  color: var(--arena);
  font-size: 0.9rem;
  word-break: break-all;
}

.video-upload-dropzone {
  position: relative;
  border: 2px dashed var(--blanco-2);
  border-radius: 10px;
  padding: 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.2s, background 0.2s;
  min-height: 120px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--blanco-1);
}

.video-upload-dropzone:hover:not(.video-upload-dropzone--disabled) {
  border-color: var(--arena);
  background: rgba(76, 237, 171, 0.05);
}

.video-upload-dropzone--disabled {
  cursor: not-allowed;
  opacity: 0.8;
}

.video-upload-input {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.video-upload-label {
  display: block;
  font-weight: 600;
  color: var(--negro);
  margin-bottom: 0.25rem;
}

.video-upload-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.video-upload-progress {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.video-upload-spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid var(--blanco-2);
  border-top-color: var(--arena);
  border-radius: 50%;
  animation: video-upload-spin 0.8s linear infinite;
}

@keyframes video-upload-spin {
  to {
    transform: rotate(360deg);
  }
}
.video-upload-progress-text {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.video-upload-preview {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
}

.video-upload-video {
  max-width: 100%;
  max-height: 200px;
  border-radius: 8px;
  background: var(--negro);
}

.video-upload-remove {
  font-size: 0.85rem;
  color: var(--wba-error);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0.25rem 0.5rem;
}

.video-upload-remove:hover {
  text-decoration: underline;
}

/* ----- Panel Admin Competición (cadmin) ----- */
.cadmin {
  min-height: 100vh;
  background: #f5f7fa;
}

.cadmin-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  gap: 1rem;
}

.cadmin-spinner {
  width: 40px;
  height: 40px;
  border: 3px solid #e0e0e0;
  border-top-color: var(--arena);
  border-radius: 50%;
  animation: cadmin-spin 0.8s linear infinite;
}

@keyframes cadmin-spin {
  to {
    transform: rotate(360deg);
  }
}
.cadmin-loading p {
  color: var(--negro-1);
}

.cadmin-error-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  text-align: center;
  padding: 2rem;
}

.cadmin-error-icon {
  font-size: 4rem;
  margin-bottom: 1rem;
}

.cadmin-error-page h1 {
  font-size: 1.5rem;
  color: var(--negro);
  margin: 0 0 0.5rem 0;
}

.cadmin-error-page p {
  color: var(--negro-1);
  margin: 0 0 1.5rem 0;
}

/* ----- Crear competición: newtorneo-page ----- */
.newtorneo-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 100vh;
  padding: 2rem 1.25rem 3rem;
  box-sizing: border-box;
}

.newtorneo-page.cadmin {
  background: linear-gradient(180deg, #f0f4f8 0%, #f5f7fa 100%);
}

.newtorneo-page .cadmin-loading,
.newtorneo-page .cadmin-error-page {
  width: 100%;
  max-width: 32rem;
  background: white;
  border-radius: 16px;
  padding: 2.5rem 2rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid #eee;
}

.newtorneo-page .cadmin-error-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
}

.newtorneo-page .cadmin-error-page .cadmin-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  margin-top: 1rem;
}

.newtorneo-page .cadmin-error-page > .cadmin-btn {
  margin-top: 1rem;
}

/* Precios dentro de newtorneo (events-page) */
.newtorneo-page .events-page {
  width: 100%;
  max-width: 56rem;
  margin: 0;
  padding: 0;
  background: transparent;
}

.newtorneo-page .events-page .row {
  margin: 0;
}

.newtorneo-page .events-page .columns {
  padding: 0;
}

.newtorneo-page .events-page .prices {
  background: white;
  border-radius: 16px;
  padding: 2rem 1.5rem 2.5rem;
  margin: 0;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid #eee;
}

.newtorneo-page .events-page .prices h3 {
  font-size: 2rem;
  padding-top: 0;
  margin-bottom: 0.5rem;
}

.newtorneo-page .events-page .prices > p {
  margin-bottom: 1.5rem;
}

.newtorneo-page .newtorneo-title {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.5rem 0;
  text-align: center;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.newtorneo-page .newtorneo-desc {
  text-align: center;
  margin: 0 0 2rem 0;
  color: var(--negro-1);
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
}

.newtorneo-page .priceslist {
  margin-top: 1.5rem;
  gap: 1.25rem;
}

.newtorneo-page .priceslist .pricesitem {
  border-radius: 12px;
  transition: transform 0.2s, box-shadow 0.2s;
}

.newtorneo-page .priceslist .pricesitem:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.newtorneo-page .prices .actions a.button.arena {
  padding: 0.65rem 1.5rem;
  font-weight: 600;
  border-radius: 10px;
}

@media (min-width: 40em) {
  .newtorneo-page .events-page .prices {
    padding: 2.5rem 2.5rem 3rem;
  }
  .newtorneo-page .priceslist {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 600px) {
  .newtorneo-page {
    padding: max(1rem, env(safe-area-inset-top, 0px)) max(0.65rem, env(safe-area-inset-right, 0px)) 2rem max(0.65rem, env(safe-area-inset-left, 0px));
    min-height: auto;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .newtorneo-page .events-page .prices {
    padding: 1.35rem 1rem 1.75rem;
    border-radius: 12px;
  }
  .newtorneo-page .newtorneo-title {
    font-size: 1.45rem;
    padding: 0 0.25rem;
  }
}
.cadmin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.6rem 1.25rem;
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  border: none;
  transition: all 0.2s;
}

.cadmin-btn--primary {
  background: var(--arena);
  color: white;
}

.cadmin-btn--primary:hover {
  background: var(--arena-2);
}

.cadmin-btn--outline {
  background: transparent;
  color: var(--arena);
  border: 1px solid var(--arena);
}

.cadmin-btn--outline:hover {
  background: var(--arena);
  color: white;
}

.cadmin-btn--sm {
  padding: 0.4rem 0.85rem;
  font-size: 0.8rem;
}

.cadmin-btn--ghost {
  background: transparent;
  color: var(--negro-1);
  border: 1px solid transparent;
}

.cadmin-btn--ghost:hover {
  background: #f5f7fa;
  color: var(--arena);
}

/* Header */
.cadmin-header {
  background: white;
  border-bottom: 1px solid #e0e0e0;
  padding: 1rem 1.5rem;
}

.cadmin-header-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}

.cadmin-back {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--negro-1);
  text-decoration: none;
  font-size: 0.85rem;
  transition: color 0.2s;
}

.cadmin-back:hover {
  color: var(--arena);
}

.cadmin-back-icon {
  font-size: 1.1rem;
}

.cadmin-header-actions {
  display: flex;
  gap: 0.5rem;
}

.cadmin-header-main {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.cadmin-title {
  font-family: "Public Sans", system-ui, -apple-system, sans-serif;
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0;
  line-height: 1.2;
}

.cadmin-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.85rem;
  color: var(--negro-1);
  margin-top: 0.25rem;
  flex-wrap: wrap;
}

.cadmin-meta-sep {
  color: #ccc;
}

.cadmin-status {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cadmin-status.active {
  background: #e8f5e9;
  color: #2e7d32;
}

.cadmin-status.inactive {
  background: #ffebee;
  color: #c62828;
}

/* 2.º pago PrePublico — tema oscuro (paleta Arena - Guía de estilo: --negro, --arena, Manuka) */
.roadpublic-prepublic {
  margin: 0;
  padding: 1.2rem 1.4rem 1.3rem;
  background: var(--wba-bg-black);
  background: linear-gradient(160deg, var(--negro) 0%, var(--negro-3) 45%, var(--negro-2) 100%);
  border: 1px solid var(--negro-2);
  border-left: 4px solid var(--arena);
  font-family: "Public Sans", system-ui, -apple-system, sans-serif;
  color: var(--blanco);
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(76, 237, 171, 0.08);
  border-radius: 0 8px 8px 0;
}

.roadpublic-prepublic__title {
  font-size: 1.25rem;
  font-weight: 800;
  margin: 0 0 0.5rem;
  color: var(--blanco);
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.roadpublic-prepublic__intro {
  margin: 0 0 1.1rem;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--arena-2);
  max-width: 52rem;
}

.roadpublic-logo-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.9rem 1.25rem;
  margin: 0 0 1.1rem;
  padding: 0.9rem 1rem;
  background: var(--wba-bg-panel);
  border: 1px solid var(--negro-2);
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
}

.roadpublic-logo-preview {
  flex-shrink: 0;
  width: 100px;
  height: 100px;
  border-radius: 8px;
  border: 1px solid var(--negro-2);
  background: var(--negro);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.roadpublic-logo-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.roadpublic-logo-placeholder {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
  text-align: center;
  padding: 0.5rem;
}

.roadpublic-logo-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}

.roadpublic-file-hidden {
  position: absolute;
  width: 0.1px;
  height: 0.1px;
  opacity: 0;
  overflow: hidden;
  z-index: -1;
}

.roadpublic-logo-cta .roadpublic-btn-refresh {
  cursor: pointer;
  margin: 0;
}

.roadpublic-btn-logo-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0.9rem;
  font-size: 0.86rem;
  font-weight: 600;
  font-family: inherit;
  border-radius: 6px;
  border: 1.5px solid var(--wba-validation);
  background: rgba(240, 65, 36, 0.12);
  color: var(--blanco-1);
  transition: background 0.15s, border-color 0.15s;
  cursor: pointer;
}

.roadpublic-btn-logo-remove:hover:not(:disabled) {
  background: rgba(240, 65, 36, 0.22);
  border-color: #ff6b4a;
}

.roadpublic-btn-logo-remove:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.roadpublic-logo-busy {
  font-size: 0.82rem;
  color: var(--arena-2);
  width: 100%;
  flex-basis: 100%;
}

.roadpublic-logo-msg {
  margin: 0;
  width: 100%;
  flex-basis: 100%;
  font-size: 0.82rem;
  color: var(--wba-error);
}

.roadpublic-form--loading,
.roadpublic-form--error {
  padding: 0.5rem 0 0.5rem;
}

.roadpublic-form__h1 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 0.5rem;
  color: var(--blanco);
}

.roadpublic-form__p {
  margin: 0 0 0.75rem;
  color: var(--negro-1);
}

.roadpublic-spinner {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
  border: 2px solid rgba(76, 237, 171, 0.2);
  border-top-color: var(--arena);
  border-radius: 50%;
  animation: roadpublic-spin 0.7s linear infinite;
  vertical-align: middle;
  margin-left: 0.35rem;
}

@keyframes roadpublic-spin {
  to {
    transform: rotate(360deg);
  }
}
.roadpublic-pend-block {
  margin: 0;
  padding: 0;
}

.roadpublic-pend-head {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  margin: 0 0 0.5rem;
  flex-wrap: wrap;
}

.roadpublic-warnicon {
  flex-shrink: 0;
  width: 2.1rem;
  height: 2.1rem;
  border-radius: 50%;
  background: linear-gradient(160deg, var(--arena) 0%, var(--wba-primary-dark) 100%);
  color: var(--negro);
  font-size: 1.15rem;
  font-weight: 800;
  line-height: 2.1rem;
  text-align: center;
  box-shadow: 0 2px 8px rgba(76, 237, 171, 0.25);
}

.roadpublic-pend-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--blanco);
}

.roadpublic-pending-line {
  margin: 0 0 0.75rem;
  font-size: 0.86rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.roadpublic-card-row.container_links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.roadpublic-card-row .box_link {
  text-decoration: none;
  color: inherit;
  flex: 1 1 150px;
  max-width: 200px;
  min-width: 120px;
  min-height: 4.6rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  border-radius: 8px;
  border: 1px solid var(--negro-2);
  background: var(--wba-bg-panel);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
  padding: 0.65rem 0.7rem;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
}

.roadpublic-card-row .box_link:hover {
  border-color: var(--arena);
  box-shadow: 0 4px 16px rgba(76, 237, 171, 0.12);
  transform: translateY(-1px);
}

.roadpublic-card__num {
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--arena);
  line-height: 1;
  font-family: "Manuka", "Public Sans", sans-serif;
}

.roadpublic-card__text {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--blanco-1);
  margin-top: 0.4rem;
}

.roadpublic-btn-refresh {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0.5rem 1.1rem;
  font-size: 0.86rem;
  font-weight: 600;
  font-family: inherit;
  border-radius: 6px;
  border: 1px solid var(--arena-2);
  background: transparent;
  color: var(--arena-2);
  transition: background 0.2s, border-color 0.2s, color 0.2s, box-shadow 0.2s;
}

.roadpublic-btn-refresh:hover:not(:disabled) {
  background: rgba(76, 237, 171, 0.1);
  border-color: var(--arena);
  color: var(--arena);
}

.roadpublic-btn-refresh:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.container_complete {
  margin-top: 0.5rem;
  padding: 1.1rem 1.2rem;
  background: var(--wba-bg-panel);
  border: 1px solid var(--negro-2);
  border-radius: 10px;
  max-width: 32rem;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.35);
}

.container_complete__lead {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
  color: var(--blanco);
}

.container_complete__sub {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  color: var(--arena-2);
}

.roadpublic-hr {
  border: none;
  border-top: 1px solid var(--negro-2);
  margin: 0.5rem 0 1rem;
}

.final_prices {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 1.25rem 1.5rem;
  margin-bottom: 0.25rem;
}

.final_prices .content_price {
  min-width: 4.5rem;
}

.final_prices .title {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--negro-1);
  margin-bottom: 0.2rem;
}

.price_small, .price_big {
  font-weight: 700;
  color: var(--blanco);
}

.price_small {
  font-size: 0.95rem;
}

.content_price--total .price_big {
  font-size: 1.25rem;
  color: var(--arena);
}

.cents {
  white-space: nowrap;
}

.roadpublic-container-boton {
  margin-top: 0.25rem;
}

.roadpublic-boton {
  border: none;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.95rem;
  font-family: inherit;
  border-radius: 8px;
  transition: background 0.15s, transform 0.1s, box-shadow 0.15s;
}

.roadpublic-boton-mediano {
  background: var(--arena);
  color: var(--negro);
  padding: 0.7rem 1.5rem;
  min-width: 9rem;
  box-shadow: 0 2px 12px rgba(76, 237, 171, 0.35);
  font-weight: 700;
}

.roadpublic-boton-mediano:hover:not(:disabled) {
  filter: brightness(1.06);
  transform: translateY(-1px);
  box-shadow: 0 4px 20px rgba(76, 237, 171, 0.4);
}

.roadpublic-boton-mediano:disabled {
  opacity: 0.5;
  cursor: not-allowed;
  transform: none;
}

.roadpublic-footer-actions {
  margin-top: 0.9rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.roadpublic-hint {
  margin: 0.5rem 0;
  font-size: 0.88rem;
  color: var(--negro-1);
}

/* Misma clase .roadpublic-logo-bar en Configuración (fondo claro) — no heredar panel oscuro del bloque 2.º pago */
.cadmin .cadmin-torneo-logo-section .roadpublic-logo-bar {
  background: #fafafa;
  border: 1px solid #e8eaed;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.cadmin .cadmin-torneo-logo-section .roadpublic-logo-preview {
  background: #fff;
  border-color: #e0e0e0;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-logo-placeholder {
  color: #686868;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-btn-refresh {
  border: 1px solid #6ec5a8;
  background: #fff;
  color: #0b6b52;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-btn-refresh:hover:not(:disabled) {
  background: #e8f7f2;
  border-color: #4db892;
  color: #0b6b52;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-btn-logo-remove {
  border-color: #c4a0a0;
  background: #fff8f7;
  color: #8a2e2e;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-btn-logo-remove:hover:not(:disabled) {
  background: #fce8e8;
  border-color: #b86b6b;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-logo-busy {
  color: #0b6b52;
}

.cadmin .cadmin-torneo-logo-section .roadpublic-logo-msg {
  color: #b00020;
}

/* Layout */
.cadmin-layout {
  display: flex;
  min-height: calc(100vh - 120px);
}

/* Sidebar */
.cadmin-sidebar {
  width: 240px;
  background: white;
  border-right: 1px solid #e0e0e0;
  padding: 1.25rem 0;
  flex-shrink: 0;
}

.cadmin-nav-section {
  margin-bottom: 1.5rem;
}

.cadmin-nav-title {
  display: block;
  padding: 0 1.25rem;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 0.5rem;
}

.cadmin-nav-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 1.25rem;
  color: var(--negro);
  text-decoration: none;
  font-size: 0.9rem;
  transition: all 0.15s;
  border-left: 3px solid transparent;
}

.cadmin-nav-item:hover {
  background: #f5f7fa;
  color: var(--arena);
}

.cadmin-nav-item.active {
  background: rgba(var(--arena-rgb, 13, 110, 253), 0.08);
  color: var(--arena);
  border-left-color: var(--arena);
  font-weight: 500;
}

.cadmin-nav-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}

/* Grupos expandibles (Configuración, Finanzas) */
.cadmin-nav-group {
  margin-bottom: 0.25rem;
}

.cadmin-nav-group summary.cadmin-nav-group-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.65rem 1.25rem;
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--negro);
  cursor: pointer;
  list-style: none;
  transition: all 0.15s;
  border-left: 3px solid transparent;
}

.cadmin-nav-group summary.cadmin-nav-group-title::-webkit-details-marker {
  display: none;
}

.cadmin-nav-group summary.cadmin-nav-group-title::after {
  content: "▶";
  font-size: 0.65rem;
  margin-left: auto;
  transition: transform 0.2s;
  color: var(--negro-1);
}

.cadmin-nav-group[open] summary.cadmin-nav-group-title::after {
  transform: rotate(90deg);
}

.cadmin-nav-group summary.cadmin-nav-group-title:hover {
  background: #f5f7fa;
  color: var(--arena);
}

.cadmin-nav-sub {
  padding-left: 0.5rem;
}

.cadmin-nav-sub .cadmin-nav-item {
  padding-left: 2.5rem;
  font-size: 0.85rem;
}

.cadmin-nav-item--top {
  margin-bottom: 0.25rem;
}

/* Main content */
.cadmin-main {
  flex: 1;
  padding: 1.5rem;
  overflow-x: hidden;
}

.cadmin-page {
  max-width: 1000px;
}

.cadmin-page-header {
  margin-bottom: 1.5rem;
}

.cadmin-page-header h2 {
  font-family: "Public Sans", system-ui, -apple-system, sans-serif;
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.25rem 0;
}

.cadmin-page-desc {
  color: var(--negro-1);
  font-size: 0.9rem;
  margin: 0;
}

/* Empty state */
.cadmin-empty-state {
  background: white;
  border-radius: 12px;
  padding: 3rem 2rem;
  text-align: center;
  border: 2px dashed #e0e0e0;
}

.cadmin-empty-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}

.cadmin-empty-state h3 {
  color: var(--negro);
  margin: 0 0 0.5rem 0;
}

.cadmin-empty-state p {
  color: var(--negro-1);
  margin: 0;
}

.cadmin-empty-state--filter {
  padding: 2rem;
}

.cadmin-empty-state--filter p {
  margin-bottom: 1rem;
}

.cadmin-search-bar {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  padding: 0.85rem 1.1rem;
  background: #f8f9fa;
  border-radius: 12px;
  border: 1px solid #e9ecef;
}

.cadmin-search-label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #495057;
  margin: 0;
}

.cadmin-search-input {
  flex: 1;
  min-width: 220px;
  padding: 0.65rem 1rem;
  border: 1px solid #dee2e6;
  border-radius: 10px;
  font-size: 0.95rem;
  background: #fff;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.cadmin-search-input:focus {
  outline: none;
  border-color: #4cedab;
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.18);
}

.cadmin-search-clear {
  flex-shrink: 0;
}

/* Atletas admin */
.cadmin-athletes-actions {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.cadmin-loading-inline {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem;
  color: var(--negro-1);
}

.cadmin-table-wrap {
  background: white;
  border-radius: 12px;
  overflow-x: auto;
}

.cadmin-table {
  width: 100%;
  border-collapse: collapse;
}

.cadmin-table th, .cadmin-table td {
  padding: 0.75rem 1rem;
  text-align: left;
  border-bottom: 1px solid #eee;
}

.cadmin-table th {
  font-weight: 600;
  color: var(--negro);
  font-size: 0.85rem;
}

.cadmin-table-num {
  text-align: right !important;
}

.cadmin-table-num small {
  font-size: 0.85em;
  color: var(--negro-1);
  font-weight: normal;
}

.cadmin-table-actions {
  white-space: nowrap;
}

.cadmin-athletes-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.cadmin-athlete-card {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  background: white;
  border-radius: 12px;
  padding: 1.25rem;
  border: 1px solid #eee;
}

.cadmin-athlete-main {
  flex: 1;
  min-width: 0;
}

.cadmin-athlete-name {
  font-weight: 600;
  color: var(--negro);
  margin-bottom: 0.25rem;
}

.cadmin-athlete-meta {
  display: flex;
  gap: 0.75rem;
  font-size: 0.85rem;
  color: var(--negro-1);
  margin-bottom: 0.5rem;
}

.cadmin-athlete-muted {
  font-style: italic;
}

.cadmin-athlete-members {
  font-size: 0.9rem;
  color: var(--negro-1);
}

.cadmin-athlete-member {
  display: inline-block;
  margin-right: 0.5rem;
}

.cadmin-athlete-member.captain {
  font-weight: 500;
  color: var(--negro);
}

.cadmin-athlete-actions {
  flex-shrink: 0;
  margin-left: 1rem;
}

/* Tabla atletas por categoría (estilo Arena Legacy: negro con foto) */
.cadmin-table--athletes {
  margin: 0;
}

.cadmin-table--athletes thead th {
  background: #f5f5f5;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.cadmin-table--athletes tbody tr:hover {
  background: #fafafa;
}

.cadmin-athlete-cell-name {
  font-weight: 600;
  color: var(--negro);
  vertical-align: top;
}

.cadmin-athlete-cell-members {
  vertical-align: top;
}

.cadmin-athlete-members-list {
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.9rem;
  color: var(--negro-1);
}

.cadmin-athlete-member-item {
  padding: 0.15rem 0;
}

.cadmin-athlete-member-item.captain {
  font-weight: 500;
  color: var(--negro);
}

.cadmin-athlete-cell-meta {
  font-size: 0.9rem;
  color: var(--negro-1);
  vertical-align: top;
}

.cadmin-athlete-meta-sep {
  margin: 0 0.35rem;
  opacity: 0.6;
}

.cadmin-table--athletes .cadmin-table-actions {
  vertical-align: top;
}

/* Tabla negra estilo Arena Legacy + foto atleta */
.cadmin-table-wrap--dark {
  background: #1a1a1a;
  border-radius: 12px;
}

.cadmin-table--dark {
  margin: 0;
}

.cadmin-table--dark thead th {
  background: #0d0d0d;
  color: #e5e5e5;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  border-bottom: 1px solid #333;
}

.cadmin-table--dark tbody tr {
  border-bottom: 1px solid #2a2a2a;
}

.cadmin-table--dark tbody tr:hover {
  background: #252525;
}

.cadmin-table--dark td {
  color: #e0e0e0;
  border-bottom-color: #2a2a2a;
}

.cadmin-table--dark .cadmin-athlete-cell-name {
  color: #fff;
}

.cadmin-table--dark .cadmin-athlete-cell-meta {
  color: #b0b0b0;
}

.cadmin-table--dark .cadmin-athlete-muted {
  color: #666;
}

.cadmin-athlete-member-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.4rem 0;
}

.cadmin-athlete-member-row.captain .cadmin-athlete-member-name {
  font-weight: 600;
  color: #fff;
}

.cadmin-athlete-photo-wrap {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  overflow: hidden;
  background: #333;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cadmin-athlete-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cadmin-athlete-photo-placeholder {
  font-size: 0.75rem;
  font-weight: 600;
  color: #888;
}

.cadmin-athlete-member-name {
  font-size: 0.9rem;
}

.cadmin-btn--dark {
  color: #b0b0b0;
  border-color: #555;
}

.cadmin-btn--dark:hover {
  color: #fff;
  border-color: #888;
  background: rgba(255, 255, 255, 0.08);
}

.cadmin-btn--danger-dark {
  color: #f88;
  border-color: #a44;
}

.cadmin-btn--danger-dark:hover {
  color: #faa;
  border-color: #c66;
  background: rgba(200, 80, 80, 0.15);
}

/* ========== Tarjetas equipo (atletas por categoría) — diseño profesional ========== */
.cadmin-equipo-card {
  margin-bottom: 2.25rem;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07), 0 1px 4px rgba(0, 0, 0, 0.04);
  border: 1px solid #e5e5e5;
  overflow: hidden;
}

/* Cabecera equipo: tema oscuro para mejor contraste */
.cadmin-equipo-card-header {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding: 1.5rem 1.75rem;
  background: linear-gradient(152deg, #1c1c1e 0%, #26262a 45%, #1a1a1c 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  flex-wrap: wrap;
}

/* Banderas: emoji para nitidez (no escalar imagen pequeña) */
.cadmin-equipo-card-flag {
  width: 64px;
  height: 64px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.25);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.cadmin-flag-emoji-wrap {
  padding: 0;
}

.cadmin-flag-emoji-lg {
  font-size: 2.5rem;
  line-height: 1;
  display: block;
}

.cadmin-flag-emoji-sm {
  font-size: 1.5rem;
  line-height: 1;
  display: inline-block;
}

.cadmin-table--members .cadmin-athlete-cell-flag .cadmin-flag-emoji-sm {
  margin: 0 auto;
}

.cadmin-flag-img-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.cadmin-flag-img-wrap .cadmin-flag-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.cadmin-flag-img-wrap .cadmin-flag-fallback {
  font-size: 2rem;
  line-height: 1;
}

.cadmin-flag-img-wrap--sm {
  width: 28px;
  height: 28px;
}

.cadmin-flag-img-wrap--sm .cadmin-flag-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cadmin-flag-img-wrap--sm .cadmin-flag-fallback {
  font-size: 1.25rem;
}

.cadmin-table--members .cadmin-athlete-cell-flag .cadmin-flag-img-wrap {
  width: 28px;
  height: 28px;
  margin: 0 auto;
}

.cadmin-table--members .cadmin-athlete-cell-flag .cadmin-flag-img-wrap .cadmin-flag-img,
.cadmin-table--members .cadmin-athlete-cell-flag .cadmin-flag-img-wrap .cadmin-flag-fallback {
  width: 28px;
  height: 28px;
  font-size: 1.25rem;
}

.cadmin-equipo-card-info {
  flex: 1;
  min-width: 0;
}

.cadmin-equipo-card-name {
  font-size: 1.4rem;
  font-weight: 700;
  color: #fff;
  margin: 0 0 0.4rem 0;
  letter-spacing: -0.02em;
  line-height: 1.3;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
}

.cadmin-equipo-card-meta {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  flex-wrap: wrap;
}

.cadmin-equipo-card-box {
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.75rem;
  background: rgba(255, 255, 255, 0.09);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 10px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #e0e0e0;
}

.cadmin-equipo-card-pais {
  font-size: 0.8rem;
  font-weight: 600;
  color: #9ca3af;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.cadmin-equipo-card-edit {
  font-size: 0.875rem;
  font-weight: 600;
  color: #60a5fa;
  text-decoration: none;
  padding: 0.55rem 1rem;
  border-radius: 10px;
  border: 1px solid rgba(96, 165, 250, 0.4);
  background: rgba(96, 165, 250, 0.12);
  transition: background 0.2s, border-color 0.2s, color 0.2s, transform 0.15s;
  flex-shrink: 0;
}

.cadmin-equipo-card-edit:hover {
  background: rgba(96, 165, 250, 0.22);
  border-color: #60a5fa;
  color: #93c5fd;
  transform: translateY(-1px);
}

.cadmin-equipo-card-body {
  padding: 0;
}

.cadmin-table-wrap--pro {
  border-radius: 0;
  box-shadow: none;
}

.cadmin-table-wrap--pro .cadmin-table--dark thead th {
  padding: 0.9rem 1.1rem;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9ca3af;
}

.cadmin-table--members .cadmin-th-photo {
  width: 72px;
  padding-left: 1.25rem !important;
}

.cadmin-table--members .cadmin-th-flag {
  width: 56px;
  text-align: center;
}

.cadmin-table--members .cadmin-th-captain {
  width: 64px;
  text-align: center;
}

.cadmin-table--members tbody td {
  padding: 0.9rem 1rem;
  vertical-align: middle;
}

.cadmin-table--members tbody tr {
  transition: background 0.15s ease;
}

.cadmin-table--members tbody tr.cadmin-row-captain {
  background: rgba(255, 193, 7, 0.06);
}

.cadmin-table--members tbody tr.cadmin-row-captain:hover {
  background: rgba(255, 193, 7, 0.1);
}

.cadmin-athlete-cell-photo {
  vertical-align: middle;
  padding-left: 1.25rem !important;
}

.cadmin-table--members .cadmin-athlete-photo-wrap {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  background: #2d2d2d;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #3a3a3a;
}

.cadmin-table--members .cadmin-athlete-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cadmin-table--members .cadmin-athlete-photo-placeholder {
  font-size: 0.8rem;
  font-weight: 600;
  color: #888;
}

.cadmin-athlete-cell-flag {
  vertical-align: middle;
  text-align: center;
}

.cadmin-flag-emoji {
  font-size: 1.5rem;
  line-height: 1;
  display: inline-block;
}

.cadmin-athlete-cell-captain {
  text-align: center;
  vertical-align: middle;
}

.cadmin-star {
  color: #e6b800;
  font-size: 1.25rem;
  filter: drop-shadow(0 0 1px rgba(0, 0, 0, 0.3));
}

.cadmin-star-empty {
  color: #555;
  font-size: 0.85rem;
}

.cadmin-athlete-cell-phone {
  font-size: 0.9rem;
}

.cadmin-link-phone {
  color: #7eb8ff;
  text-decoration: none;
}

.cadmin-link-phone:hover {
  text-decoration: underline;
  color: #a8d0ff;
}

.cadmin-athlete-cell-name {
  font-weight: 600;
  color: #fff;
  font-size: 0.95rem;
}

.cadmin-athlete-cell-email {
  font-size: 0.9rem;
  color: #b8b8b8;
}

.cadmin-row-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.cadmin-badge-captain {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 6px;
  font-size: 0.75rem;
  font-weight: 600;
  background: rgba(230, 184, 0, 0.2);
  color: #e6b800;
}

/* Zona eliminar categoría */
.cadmin-danger-zone {
  margin-top: 2.5rem;
  padding: 1.5rem 1.5rem 1.75rem;
  border-radius: 12px;
  border: 1px solid rgba(220, 53, 69, 0.25);
  background: rgba(220, 53, 69, 0.04);
}

.cadmin-danger-zone-title {
  font-size: 1rem;
  font-weight: 600;
  color: #c92a2a;
  margin: 0 0 0.5rem 0;
}

.cadmin-danger-zone-desc {
  font-size: 0.9rem;
  color: var(--negro-1, #555);
  margin: 0 0 1rem 0;
}

/* Cards */
.cadmin-cards-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1rem;
  margin-bottom: 1rem;
}

.cadmin-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.cadmin-card--action {
  display: flex;
  align-items: center;
  padding: 1.25rem;
  text-decoration: none;
  color: var(--negro);
  transition: all 0.2s;
  border: 1px solid transparent;
}

.cadmin-card--action:hover {
  border-color: var(--arena);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.cadmin-card-icon {
  font-size: 2rem;
  margin-right: 1rem;
  flex-shrink: 0;
}

.cadmin-card-content h3 {
  font-size: 1rem;
  margin: 0 0 0.25rem 0;
}

.cadmin-card-content p {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0;
}

.cadmin-card-arrow {
  margin-left: auto;
  font-size: 1.25rem;
  color: var(--negro-1);
  transition: transform 0.2s;
}

.cadmin-card--action:hover .cadmin-card-arrow {
  transform: translateX(4px);
  color: var(--arena);
}

.cadmin-card--status {
  padding: 1.25rem;
  margin-bottom: 1.5rem;
}

.cadmin-status-content {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 1rem;
}

.cadmin-status-info h3 {
  font-size: 1rem;
  margin: 0 0 0.25rem 0;
  color: var(--negro);
}

.cadmin-status-info p {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0;
}

.cadmin-status-toggle {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.cadmin-status-saving {
  font-size: 0.8rem;
  color: var(--negro-1);
  margin-top: 0.75rem;
  font-style: italic;
}

/* Toggle switch */
.cadmin-switch {
  position: relative;
  display: inline-block;
  width: 52px;
  height: 28px;
}

.cadmin-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.cadmin-switch-slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #ccc;
  transition: 0.3s;
  border-radius: 28px;
}

.cadmin-switch-slider:before {
  position: absolute;
  content: "";
  height: 22px;
  width: 22px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: 0.3s;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.cadmin-switch input:checked + .cadmin-switch-slider {
  background-color: #4caf50;
}

.cadmin-switch input:checked + .cadmin-switch-slider:before {
  transform: translateX(24px);
}

.cadmin-switch-label {
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}

.cadmin-switch-label.on {
  color: #4caf50;
}

.cadmin-switch-label.off {
  color: #9e9e9e;
}

/* Toast */
.cadmin-toast {
  margin-top: 0.75rem;
  padding: 0.5rem 1rem;
  border-radius: 6px;
  font-size: 0.85rem;
}

.cadmin-toast.success {
  background: #e8f5e9;
  color: #2e7d32;
}

.cadmin-toast.error {
  background: #ffebee;
  color: #c62828;
}

/* Info box */
.cadmin-info-box {
  padding: 0.85rem 1rem;
  border-radius: 8px;
  font-size: 0.9rem;
}

.cadmin-info-box.info {
  background: #e3f2fd;
  color: #1565c0;
}

.cadmin-info-box.success {
  background: #e8f5e9;
  color: #2e7d32;
}

/* Grid */
.cadmin-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  margin-bottom: 1rem;
}

.cadmin-card--full {
  grid-column: 1/-1;
}

.cadmin-card-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 1.25rem;
  border-bottom: 1px solid #f0f0f0;
}

.cadmin-card-header-icon {
  width: 20px;
  height: 20px;
  color: var(--arena);
}

.cadmin-card-header h3 {
  font-size: 0.95rem;
  margin: 0;
  color: var(--negro);
}

.cadmin-card-body {
  padding: 1rem 1.25rem;
}

/* Data rows */
.cadmin-data-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0;
  border-bottom: 1px solid #f5f5f5;
}

.cadmin-data-row:last-child {
  border-bottom: none;
}

.cadmin-data-label {
  font-size: 0.85rem;
  color: var(--negro-1);
}

.cadmin-data-value {
  font-size: 0.9rem;
  color: var(--negro);
  font-weight: 500;
}

.cadmin-badge {
  display: inline-block;
  padding: 0.15rem 0.5rem;
  border-radius: 4px;
  font-size: 0.75rem;
  font-weight: 600;
}

.cadmin-badge.yes {
  background: #e8f5e9;
  color: #2e7d32;
}

.cadmin-badge.no {
  background: #f5f5f5;
  color: #757575;
}

.cadmin-checkbox-label {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.9rem;
}

.admin-jueces-roles {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.5rem;
}

.admin-jueces-user {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.admin-jueces-user-text {
  min-width: 0;
  flex: 1;
}

/* Features */
.cadmin-features {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.cadmin-feature-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.85rem;
  padding: 0.35rem 0;
}

.cadmin-feature-item.on {
  color: #2e7d32;
}

.cadmin-feature-item.off {
  color: #9e9e9e;
}

.cadmin-feature-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
}

.cadmin-feature-item.on .cadmin-feature-dot {
  background: #4caf50;
}

.cadmin-feature-item.off .cadmin-feature-dot {
  background: #e0e0e0;
}

/* Organizer */
.cadmin-organizer-main {
  margin-bottom: 0.75rem;
}

.cadmin-organizer-main strong {
  font-size: 1rem;
  color: var(--negro);
}

.cadmin-organizer-dni {
  display: inline-block;
  margin-left: 0.75rem;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.cadmin-organizer-details {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.cadmin-organizer-item {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.9rem;
  color: var(--negro-1);
}

.cadmin-organizer-item a {
  color: var(--arena);
  text-decoration: none;
}

.cadmin-organizer-item a:hover {
  text-decoration: underline;
}

.cadmin-organizer-icon {
  font-size: 1rem;
}

/* Social */
.cadmin-social {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.cadmin-social-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 1.5rem;
  background: #f5f7fa;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s;
}

.cadmin-social-btn:hover {
  background: var(--arena);
  transform: scale(1.1);
}

/* Tabs de configuración */
.cadmin-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  background: white;
  border-radius: 10px;
  padding: 0.35rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.cadmin-tab {
  padding: 0.6rem 1rem;
  border: none;
  background: transparent;
  color: var(--negro-1);
  font-size: 0.85rem;
  font-weight: 500;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.cadmin-tab:hover {
  background: #f0f0f0;
  color: var(--negro);
}

.cadmin-tab.active {
  background: var(--arena);
  color: white;
}

.cadmin-tab-content {
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

/* Alertas */
.cadmin-alert {
  padding: 0.85rem 1.25rem;
  border-radius: 8px;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  font-weight: 500;
}

.cadmin-alert.success {
  background: #e8f5e9;
  color: #2e7d32;
  border-left: 4px solid #4caf50;
}

.cadmin-alert.error {
  background: #ffebee;
  color: #c62828;
  border-left: 4px solid #f44336;
}

/* ========== Juzgar (admin) ========== */
.juzgar-header {
  margin-bottom: 1.5rem;
}

.juzgar-header__title {
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.35rem 0;
}

.juzgar-header__desc {
  color: var(--negro-1);
  font-size: 0.9rem;
  margin: 0;
}

.juzgar-filters {
  background: var(--blanco-1);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.juzgar-filters__row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  align-items: flex-end;
}

.juzgar-filters__field {
  min-width: 0;
  flex: 1 1 200px;
  max-width: 320px;
}

.juzgar-filters__label {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.4rem;
}

.juzgar-filters__select {
  width: 100%;
  padding: 0.6rem 0.9rem;
  border: 1px solid var(--blanco-2);
  border-radius: 10px;
  font-size: 0.95rem;
  color: var(--negro);
  background: var(--blanco);
  transition: border-color 0.2s, box-shadow 0.2s;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  padding-right: 2.25rem;
}

.juzgar-filters__select:hover {
  border-color: #ccc;
}

.juzgar-filters__select:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: 0 0 0 3px rgba(76, 237, 171, 0.2);
}

.juzgar-alert {
  padding: 0.85rem 1.25rem;
  border-radius: 10px;
  margin-bottom: 1.25rem;
  font-size: 0.9rem;
  font-weight: 500;
}

.juzgar-alert--success {
  background: #e8f5e9;
  color: #2e7d32;
  border-left: 4px solid #4caf50;
}

.juzgar-alert--error {
  background: #ffebee;
  color: #c62828;
  border-left: 4px solid #f44336;
}

.juzgar-loading {
  color: var(--negro-1);
  margin: 1rem 0;
}

.juzgar-empty {
  color: var(--negro-1);
  font-size: 0.95rem;
  margin: 1rem 0;
  padding: 1.25rem;
  background: var(--blanco-1);
  border-radius: 12px;
  border: 1px dashed var(--blanco-2);
}

.juzgar-table-wrap {
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow-x: auto;
}

.juzgar-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.juzgar-table thead th {
  padding: 0.85rem 1rem;
  text-align: left;
  font-weight: 600;
  color: var(--negro);
  background: var(--blanco-1);
  border-bottom: 2px solid var(--blanco-2);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.juzgar-table__th--participant {
  min-width: 140px;
}

.juzgar-table__th--athlete {
  min-width: 100px;
}

.juzgar-table__th--score {
  min-width: 100px;
}

.juzgar-table__th--state {
  min-width: 90px;
}

.juzgar-table__th--obs {
  min-width: 140px;
}

.juzgar-table__th--action {
  width: 1%;
  white-space: nowrap;
}

.juzgar-row {
  transition: background 0.15s ease;
}

.juzgar-row:hover {
  background: rgba(76, 237, 171, 0.06);
}

.juzgar-table tbody td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--blanco-2);
  vertical-align: middle;
}

.juzgar-table tbody tr:last-child td {
  border-bottom: none;
}

.juzgar-participant-name {
  font-weight: 600;
  color: var(--negro);
  display: block;
}

.juzgar-participant-box {
  font-size: 0.85em;
  color: var(--negro-1);
}

.juzgar-table__athlete {
  color: var(--negro-1);
}

.juzgar-input {
  width: 100%;
  min-width: 0;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--blanco-2);
  border-radius: 8px;
  font-size: 0.9rem;
  color: var(--negro);
  background: var(--blanco);
  transition: border-color 0.2s, box-shadow 0.2s;
  box-sizing: border-box;
}

.juzgar-input:focus {
  outline: none;
  border-color: var(--arena);
  box-shadow: 0 0 0 2px rgba(76, 237, 171, 0.2);
}

.juzgar-input--wide {
  min-width: 120px;
}

.juzgar-table__action {
  padding-left: 0.5rem;
}

.juzgar-btn-save {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  border-radius: 8px;
  font-size: 0.85rem;
  font-weight: 600;
  background: var(--arena);
  color: white;
  border: none;
  cursor: pointer;
  transition: background 0.2s, transform 0.1s;
}

.juzgar-btn-save:hover:not(:disabled) {
  background: var(--arena-2);
}

.juzgar-btn-save:active:not(:disabled) {
  transform: scale(0.98);
}

.juzgar-btn-save:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* ========== Finanzas (Inscripciones / Cambios) ========== */
.finanzas-header {
  margin-bottom: 1.5rem;
}

.finanzas-header__title {
  font-family: "Manuka", "Public Sans", system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.35rem 0;
}

.finanzas-header__desc {
  color: var(--negro-1);
  font-size: 0.9rem;
  margin: 0;
}

.finanzas-loading {
  color: var(--negro-1);
  margin: 1rem 0;
}

.finanzas-empty {
  color: var(--negro-1);
  font-size: 0.95rem;
  margin: 1rem 0;
  padding: 1.25rem;
  background: var(--blanco-1);
  border-radius: 12px;
  border: 1px dashed var(--blanco-2);
}

.finanzas-total {
  margin-top: 1rem;
  font-size: 0.95rem;
  color: var(--negro);
}

.finanzas-table-wrap {
  background: var(--blanco);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow-x: auto;
}

.finanzas-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.finanzas-table thead th {
  padding: 0.85rem 1rem;
  text-align: left;
  font-weight: 600;
  color: var(--negro);
  background: var(--blanco-1);
  border-bottom: 2px solid var(--blanco-2);
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.finanzas-table__th--fecha {
  min-width: 120px;
}

.finanzas-table__th--categoria {
  min-width: 120px;
}

.finanzas-table__th--equipo {
  min-width: 140px;
}

.finanzas-table__th--email {
  min-width: 160px;
}

.finanzas-table__th--num {
  min-width: 80px;
}

.finanzas-table__th--importe {
  min-width: 90px;
  text-align: right;
}

.finanzas-table tbody td {
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--blanco-2);
  vertical-align: middle;
}

.finanzas-table tbody tr:hover {
  background: rgba(76, 237, 171, 0.06);
}

.finanzas-table tbody tr:last-child td {
  border-bottom: none;
}

.finanzas-table__fecha {
  color: var(--negro-1);
  font-size: 0.85em;
}

.finanzas-equipo {
  font-weight: 600;
  color: var(--negro);
}

.finanzas-table__email {
  font-size: 0.85em;
  color: var(--negro-1);
}

.finanzas-table__num {
  text-align: right;
}

.finanzas-table__importe {
  text-align: right;
  font-weight: 600;
  color: var(--negro);
}

/* Finanzas — Formas de pago (legacy FormasPago) */
.finanzas-formas-pago {
  margin-bottom: 2rem;
}

.finanzas-formas-privado {
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem;
  background: var(--blanco-1);
  border-radius: 12px;
  border: 1px solid var(--blanco-2);
}

.finanzas-formas-msg {
  margin-bottom: 1rem;
}

.fp-card {
  background: var(--blanco);
  border: 1px solid var(--blanco-2);
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  margin-bottom: 1rem;
}

.fp-card--form .fp-card__title {
  margin: 0 0 1rem 0;
  font-size: 1.1rem;
  color: var(--negro);
}

.fp-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.25rem;
}

.fp-code {
  font-size: 0.85em;
  word-break: break-all;
  background: var(--blanco-1);
  padding: 0.15rem 0.4rem;
  border-radius: 6px;
}

.fp-alert {
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1rem;
  border: 1px solid transparent;
}

.fp-alert__title {
  margin: 0 0 0.5rem 0;
  font-size: 1.05rem;
  font-weight: 700;
}

.fp-alert__text {
  margin: 0 0 0.5rem 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro);
}

.fp-alert__text:last-child {
  margin-bottom: 0;
}

.fp-alert--warning {
  background: #fff8e6;
  border-color: #f0d78c;
  color: var(--negro);
}

.fp-alert--warning .fp-alert__title {
  color: #856404;
}

.fp-alert--success {
  background: #e8f7ef;
  border-color: #9dd4b0;
}

.fp-alert--success .fp-alert__title {
  color: #1e5c32;
}

.fp-pasarela-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
}

/* Secciones del formulario */
.cadmin-form-section {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #f0f0f0;
}

.cadmin-form-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.cadmin-form-section h3 {
  font-size: 1.1rem;
  color: var(--negro);
  margin: 0 0 0.5rem 0;
}

.cadmin-form-hint {
  font-size: 0.85rem;
  color: var(--negro-1);
  margin: 0 0 1.25rem 0;
}

.cadmin-torneo-logo-section .roadpublic-logo-bar {
  margin: 0.35rem 0 0;
}

.cadmin-torneo-logo-section .cadmin-btn-logo-upload {
  user-select: none;
}

/* Filas y grupos de formulario */
.cadmin-form-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
  margin-bottom: 1rem;
}

.cadmin-form-row:last-child {
  margin-bottom: 0;
}

.cadmin-form-group {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.cadmin-form-group--wide {
  grid-column: 1/-1;
}

.cadmin-form-group label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.cadmin-form-row--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

@media (max-width: 900px) {
  .cadmin-form-row--3 {
    grid-template-columns: 1fr;
  }
}
.cadmin-form-label.cadmin-form-label--has-tip {
  cursor: help;
  border-bottom: 1px dotted rgba(0, 0, 0, 0.2);
  width: fit-content;
  max-width: 100%;
}

.cadmin-form-fieldset {
  border: 1px solid #e8eaed;
  border-radius: 10px;
  margin: 0 0 1.25rem;
  padding: 0.75rem 1.1rem 1rem;
  background: #fbfcfe;
  min-width: 0;
}

.cadmin-form-fieldset legend {
  margin: 0 0 0.5rem 0;
  padding: 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--negro-1);
}

.cadmin-categoria-form .cadmin-form-hint.cadmin-categoria-form__intro {
  margin: 0 0 1rem;
  line-height: 1.5;
}

.cadmin-categoria-form__field-hint,
.cadmin-codigos-descuento__form-hint {
  font-size: 0.8rem;
  color: var(--negro-1);
  margin: 0.35rem 0 0;
  line-height: 1.45;
  max-width: 48rem;
}

.cadmin-categoria-form__actions {
  border-top: none;
  padding-top: 0.25rem;
}

.cadmin-categoria-form__team-grid {
  margin-top: 0.5rem;
}

/* Categorías: barra y listado */
.cadmin-section-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.cadmin-subsection-title {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.5rem;
}

.cadmin-categorias-list__hint {
  margin: 0 0 0.9rem;
  max-width: 44rem;
}

.cadmin-categorias-list__table {
  margin-bottom: 0;
}

/* Categorías: códigos de descuento */
.cadmin-codigos-descuento {
  margin-top: 1.75rem;
  padding-top: 1.25rem;
  border-top: 1px solid #eceff3;
}

.cadmin-codigos-descuento__title {
  font-size: 1.1rem;
  margin: 0 0 0.4rem;
  color: var(--negro);
}

.cadmin-codigos-descuento__intro {
  margin: 0 0 0.9rem;
  max-width: 44rem;
  line-height: 1.5;
}

.cadmin-codigos-descuento__toolbar {
  margin-bottom: 0.75rem;
}

.cadmin-codigos-descuento__table-wrap {
  margin-bottom: 1.25rem;
}

.cadmin-codigos-descuento__form {
  margin-bottom: 0.75rem;
}

.cadmin-codigos-descuento__form-actions {
  margin-top: 0.35rem;
  padding-top: 0.85rem;
  border-top: 1px solid #eef0f3;
  justify-content: flex-end;
}

.cadmin-table--cd thead th {
  font-size: 0.7rem;
  letter-spacing: 0.03em;
}

/* Crear competición — búsqueda INE (municipio, provincia, país) y lugar del evento */
.lugar-evento-paso {
  max-width: 100%;
}

.es-muni-busc {
  position: relative;
  margin-bottom: 0.5rem;
}

.es-muni-busc__manual-toggle {
  margin: 0.4rem 0 0.15rem;
  font-size: 0.85rem;
}

.es-muni-busc__chk {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  cursor: pointer;
  color: var(--negro-1);
}

.es-muni-busc__lista {
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  max-height: 14rem;
  overflow: auto;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
  z-index: 2;
}

.es-muni-busc__op {
  width: 100%;
  text-align: left;
  display: block;
  padding: 0.5rem 0.85rem;
  border: 0;
  border-bottom: 1px solid #f0f0f0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

.es-muni-busc__op:hover, .es-muni-busc__op:focus {
  background: #f3f6fb;
  outline: none;
}

.es-muni-busc__op:last-of-type {
  border-bottom: 0;
}

.es-muni-busc__mun {
  font-weight: 600;
  color: var(--negro);
  display: block;
}

.es-muni-busc__sub {
  font-size: 0.8rem;
  color: var(--negro-1);
}

.es-muni-busc__fijo {
  font-size: 0.9rem;
  margin: 0.4rem 0 0;
  color: var(--negro-1);
}

/* INE provincia + municipio (listas): spinner mientras carga maestra local */
.es-prov-mun-listas__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 5.5rem;
  padding: 0.75rem 0;
}

.es-prov-mun-listas__spinner {
  width: 32px;
  height: 32px;
  border-width: 2px;
  flex-shrink: 0;
}

/* Inputs */
.cadmin-input, .cadmin-select, .cadmin-textarea {
  padding: 0.7rem 0.9rem;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  font-size: 0.95rem;
  color: var(--negro);
  background: #fafafa;
  transition: all 0.2s;
  width: 100%;
  box-sizing: border-box;
}

.cadmin-input:focus, .cadmin-select:focus, .cadmin-textarea:focus {
  outline: none;
  border-color: var(--arena);
  background: white;
  box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.1);
}

.cadmin-input::placeholder, .cadmin-textarea::placeholder {
  color: #aaa;
}

.cadmin-select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.9rem center;
  padding-right: 2.5rem;
}

.cadmin-textarea {
  resize: vertical;
  min-height: 100px;
  font-family: inherit;
}

/* Toggle inline */
.cadmin-toggle-inline {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 0;
}

.cadmin-toggle-text {
  font-size: 0.9rem;
  color: var(--negro);
  font-weight: 500;
}

.cadmin-toggle-text--status {
  font-weight: 700;
  letter-spacing: 0.5px;
}

.cadmin-toggle-text--status.on {
  color: #2e7d32;
}

.cadmin-toggle-text--status.off {
  color: #c62828;
}

.cadmin-switch--lg {
  width: 60px;
  height: 32px;
}

.cadmin-switch--lg .cadmin-switch-slider:before {
  height: 26px;
  width: 26px;
}

.cadmin-switch--lg input:checked + .cadmin-switch-slider:before {
  transform: translateX(28px);
}

/* Editor TinyMCE */
.cadmin-form-section--editor {
  padding-bottom: 0;
  border-bottom: none;
}

.cadmin-editor-wrap {
  margin-top: 0.75rem;
}

.cadmin-tinymce {
  width: 100%;
  max-width: 100%;
  min-height: 400px;
}

/* Grid de toggles */
.cadmin-toggles-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1rem;
}

.cadmin-toggle-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 1.25rem;
  background: #fafafa;
  border-radius: 10px;
  border: 1px solid #eee;
  transition: all 0.2s;
}

.cadmin-toggle-card:hover {
  border-color: #ddd;
  background: #f5f5f5;
}

.cadmin-toggle-card-info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.cadmin-toggle-card-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro);
}

.cadmin-toggle-card-desc {
  font-size: 0.8rem;
  color: var(--negro-1);
}

/* Acciones del formulario */
.cadmin-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #f0f0f0;
}

/* Botones */
.cadmin-btn--secondary {
  background: #f0f0f0;
  color: var(--negro);
}

.cadmin-btn--secondary:hover {
  background: #e0e0e0;
}

.cadmin-btn--danger {
  background: #b91c1c;
  color: white;
}

.cadmin-btn--danger:hover:not(:disabled) {
  background: #991b1b;
}

.cadmin-btn--primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}

.cadmin-btn-spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: cadmin-spin 0.6s linear infinite;
}

/* Label (cuando no se usa .cadmin-form-group) */
.cadmin-label {
  display: block;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 0.35rem;
}

/* ——— Meta admin (superadmin) ——— */
.cadmin-page.meta-admin {
  max-width: 1100px;
}

.meta-admin {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

.meta-admin__intro {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-bottom: 0.25rem;
}

.meta-admin__intro h2 {
  margin: 0;
}

.meta-admin__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 6px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  background: linear-gradient(135deg, #1a237e 0%, #3949ab 100%);
  color: #fff;
}

.meta-admin__panel {
  background: #fff;
  border: 1px solid #e8eaed;
  border-radius: 12px;
  padding: 1.35rem 1.5rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
}

.meta-admin__panel-title {
  font-family: "Public Sans", system-ui, -apple-system, sans-serif;
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.35rem 0;
}

.meta-admin__panel-desc {
  font-size: 0.86rem;
  color: var(--negro-1);
  margin: 0 0 1.15rem 0;
  line-height: 1.45;
}

.meta-admin__subhead {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--negro-1);
  margin: 1.15rem 0 0.65rem 0;
}

.meta-admin__subhead:first-of-type {
  margin-top: 0;
}

.meta-admin__row--3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
  margin-bottom: 1rem;
}

@media (max-width: 900px) {
  .meta-admin__row--3 {
    grid-template-columns: 1fr;
  }
}
.meta-admin__fase-editor {
  border: 1px solid #dde1e6;
  border-radius: 10px;
  padding: 1.25rem 1.35rem;
  margin-bottom: 1rem;
  background: linear-gradient(180deg, #fafbfc 0%, #fff 100%);
}

.meta-admin__fase-editor h4 {
  margin: 0 0 1rem 0;
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
}

.meta-admin__fase-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.meta-admin__fase-toolbar .cadmin-form-hint {
  margin: 0;
  flex: 1;
  min-width: 12rem;
}

/* Siguientes fases Meta: mismo patrón que listado Home (.competitions + .competition.card + fasesinfo) */
.meta-admin .meta-admin__fase-list.competitions {
  margin-top: 0.25rem;
}

.meta-admin .competition.card.meta-admin__fase-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  box-sizing: border-box;
}

.meta-admin .competition.card.meta-admin__fase-card .fasesinfowrapper {
  flex: 1 1 auto;
}

.meta-admin__fase-card-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
  align-items: center;
  margin-top: auto;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.meta-admin__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding-top: 1.25rem;
  margin-top: 0.25rem;
  border-top: 1px solid #e8eaed;
}

.meta-admin__footer-extra {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-left: auto;
}

@media (max-width: 540px) {
  .meta-admin__footer-extra {
    margin-left: 0;
    width: 100%;
  }
  .meta-admin__footer-extra .cadmin-btn {
    flex: 1;
    justify-content: center;
  }
}
.meta-admin__footer--legacy {
  flex-direction: column;
  align-items: stretch;
  gap: 1rem;
}

.meta-admin__footer-legacy-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
}

.meta-admin__footer-save {
  display: flex;
  justify-content: center;
}

.meta-admin .cadmin-toggles-grid {
  margin-top: 0.25rem;
}

.meta-admin .cadmin-form-hint {
  margin-bottom: 0.85rem;
}

.meta-admin .cadmin-form-row:last-child {
  margin-bottom: 0;
}

/* ——— WODs admin ——— */
.wods-header-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.25rem;
}

.wods-add-card {
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  border-left: 4px solid var(--arena);
}

.wods-add-card h3 {
  font-size: 1.1rem;
  margin: 0 0 0.35rem 0;
  color: var(--negro);
}

.wods-add-card .cadmin-page-desc {
  margin-bottom: 1rem;
}

.wods-add-grid {
  display: grid;
  gap: 1rem;
  max-width: 36rem;
}

.wods-add-grid .cadmin-label {
  margin-bottom: 0.25rem;
}

.wods-datetime-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.wods-add-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.25rem;
}

.wods-checkbox-group {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
}

.wods-checkbox-item {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  background: #f8f9fa;
  border: 1px solid #eee;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 0.9rem;
  color: var(--negro);
}

.wods-checkbox-item:hover {
  border-color: var(--arena-2);
  background: var(--arena-1);
}

.wods-checkbox-item input[type=checkbox] {
  width: 1.1rem;
  height: 1.1rem;
  accent-color: var(--arena);
  cursor: pointer;
  flex-shrink: 0;
}

.wods-checkbox-item:has(input:checked) {
  border-color: var(--arena);
  background: var(--arena-1);
  font-weight: 500;
}

.wods-category-block {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 1.25rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.wods-category-title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0;
  padding: 0.85rem 1.25rem;
  background: linear-gradient(135deg, #f8f9fa 0%, #f0f2f5 100%);
  border-bottom: 1px solid #eee;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.wods-category-title::before {
  content: "";
  width: 4px;
  height: 1.2em;
  background: var(--arena);
  border-radius: 2px;
}

.wods-table-wrap {
  overflow-x: auto;
}

.wods-table-wrap .cadmin-table {
  margin: 0;
}

.wods-table-wrap .cadmin-table th {
  background: #fafafa;
}

.wods-table-wrap .cadmin-table tbody tr:hover {
  background: #fafafa;
}

.wods-row-actions {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.wods-empty-msg {
  padding: 1.5rem;
  text-align: center;
  color: var(--negro-1);
  font-size: 0.95rem;
  background: #fafafa;
  border-radius: 12px;
  margin-top: 1rem;
}

/* WodAdmin (editar un WOD) */
.wod-edit-wrap {
  max-width: 44rem;
  margin: 0 auto;
  padding: 1.5rem;
}

.wod-edit-back {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: var(--negro-1);
  text-decoration: none;
  font-size: 0.9rem;
  margin-bottom: 1rem;
  transition: color 0.2s;
}

.wod-edit-back:hover {
  color: var(--arena);
}

.wod-edit-card {
  background: white;
  border-radius: 12px;
  padding: 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.wod-edit-card h3 {
  font-size: 1rem;
  margin: 0 0 1rem 0;
  color: var(--negro);
}

.wod-edit-grid {
  display: grid;
  gap: 1rem;
}

.wod-edit-datetime {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

.wod-edit-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  padding-top: 0.5rem;
}

.wod-workouts-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  margin-top: 1.5rem;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.wod-workouts-card h3 {
  font-size: 1rem;
  margin: 0;
  padding: 0.85rem 1.25rem;
  background: #f8f9fa;
  border-bottom: 1px solid #eee;
}

.wod-workouts-card .cadmin-table {
  margin: 0;
}

.wod-danger-zone {
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid #fee2e2;
  border-left: 4px solid #dc2626;
}

.wod-danger-zone .cadmin-btn--danger {
  margin-left: 0;
}

@media (max-width: 600px) {
  .wods-datetime-row {
    grid-template-columns: 1fr;
  }
  .wod-edit-datetime {
    grid-template-columns: 1fr;
  }
}
/* ----- Crear competición: diseño unificado ----- */
.crear-competi-borrador-banner {
  max-width: 36rem;
  margin: 0 auto 1rem;
  padding: 0.65rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
  background: rgba(76, 237, 171, 0.12);
  border: 1px solid rgba(76, 237, 171, 0.35);
  border-radius: 8px;
  font-size: 0.9rem;
  box-sizing: border-box;
}

.crear-competi-borrador-banner-cerrar {
  flex-shrink: 0;
}

.crear-competi {
  max-width: 36rem;
  margin: 2rem auto;
  padding: 0 1.25rem 3rem;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
}

.crear-competi-header {
  margin-bottom: 1.5rem;
  text-align: center;
}

.crear-competi-badge {
  display: inline-block;
  padding: 0.25rem 0.75rem;
  background: rgba(76, 237, 171, 0.2);
  color: var(--arena);
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border-radius: 6px;
  margin-bottom: 0.75rem;
}

/* Título del flujo crear: legible en minúsculas (el h1 global usa Manuka). */
.crear-competi-titulo {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.35rem 0;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.crear-competi-exito-marca {
  display: flex;
  justify-content: center;
  margin: 0 0 0.5rem 0;
}

.crear-competi-exito-marca img {
  max-height: 56px;
  width: auto;
  display: block;
}

/* Pantalla pospago (paridad email Legacy «Gracias por registrarse»): título en mayúsculas */
.crear-competi-titulo--gracias-registro {
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 1.2rem;
  line-height: 1.2;
  margin-top: 0.25rem;
}

.crear-competi-subtitulo {
  font-size: 0.95rem;
  color: var(--negro-1);
  margin: 0;
  line-height: 1.5;
}

/* Asistente multipaso (crear competición) */
.crear-competi--wizard {
  max-width: 44rem;
  width: 100%;
}

/* Vista previa lateral pasos 1–5 (Nombre.jsx / VistaPrevia.jsx) */
.crear-competi--wizard:has(.blocks_container) {
  max-width: min(100%, 90rem);
  width: 100%;
}

/* Competición pública: mismo ancho pero sin stepper circular; solo barra + texto */
.crear-competi--wizard-publica {
  max-width: min(100%, 90rem);
  width: 100%;
}

.crear-competi--legacy-onboarding {
  max-width: min(100%, 90rem);
  width: 100%;
}

/* Wizard: ocupar todo el ancho útil de .newtorneo-page (el padre usa align-items:center y encoge el bloque) */
.newtorneo-page > .crear-competi.crear-competi--legacy-onboarding {
  align-self: stretch;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  padding-bottom: 2.5rem;
  box-sizing: border-box;
}

.newtorneo-page > .crear-competi.crear-competi--legacy-onboarding > .crear-competi-ayuda {
  margin-left: clamp(0.75rem, 2vw, 1.5rem);
  margin-right: clamp(0.75rem, 2vw, 1.5rem);
}

/* ----- newCompetition.min.css (React OnBoarding) portado al asistente Blazor ----- */
.newtorneo-page .crear-competi--legacy-onboarding #progressStage {
  margin-bottom: 4rem;
}

/* .base + .cartel: newCompetition.min.css (textos superpuestos; hover muestra uno — React usa JS, aquí fade-in por estado) */
.newtorneo-page .crear-competi--legacy-onboarding .base {
  position: relative;
  width: 100%;
  margin: 0.5rem auto;
  min-height: 2.5rem;
  height: auto;
}

.newtorneo-page .crear-competi--legacy-onboarding .base .cartel {
  position: absolute;
  left: 0;
  right: 0;
  margin-left: auto;
  margin-right: auto;
  width: min(250px, 92vw);
  font-size: 1rem;
  color: var(--arena);
  text-align: center;
  opacity: 0;
  padding: 10px;
  text-transform: uppercase;
  pointer-events: none;
  line-height: 1.2;
  top: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .base .cartel.fade-in {
  animation: legacy-onboarding-cartel-fadein2 500ms ease-in-out forwards;
}

@keyframes legacy-onboarding-cartel-fadein2 {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
.newtorneo-page .crear-competi--legacy-onboarding .stepper-wrapper {
  margin-top: auto;
  display: flex;
  justify-content: space-between;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item::before {
  position: absolute;
  content: "";
  border-bottom: 2px solid #ccc;
  width: 100%;
  top: 20px;
  left: -50%;
  z-index: 2;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item::after {
  position: absolute;
  content: "";
  border-bottom: 2px solid #ccc;
  width: 100%;
  top: 20px;
  left: 50%;
  z-index: 2;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item .step-counter {
  position: relative;
  z-index: 5;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #ccc;
  margin-bottom: 6px;
  font-size: 0.95rem;
  font-weight: 700;
  color: #333;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.actived .step-counter {
  font-weight: 700;
  color: #fff;
  background-color: #0f0f0f;
}

/* Legacy: completed/actived con cursor pointer (pasos ya visitados / actual) */
.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.completed {
  cursor: pointer;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.actived {
  cursor: pointer;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.inactive {
  cursor: default;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.completed .step-counter {
  background-color: var(--arena);
  color: #fff;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item.completed::after {
  position: absolute;
  content: "";
  border-bottom: 2px solid var(--arena);
  width: 100%;
  top: 20px;
  left: 50%;
  z-index: 3;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item:first-child::before {
  content: none;
}

.newtorneo-page .crear-competi--legacy-onboarding .stepper-item:last-child::after {
  content: none;
}

@media (max-width: 480px) {
  .newtorneo-page .crear-competi--legacy-onboarding .stepper-item .step-counter {
    width: 35px;
    height: 35px;
    font-size: 0.85rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .stepper-item::before {
    top: 17px;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .stepper-item::after {
    top: 17px;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .stepper-item.completed::after {
    top: 17px;
  }
}
.newtorneo-page .crear-competi--legacy-onboarding .form-container {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.newtorneo-page .crear-competi--legacy-onboarding .form.anime {
  width: 100%;
  max-width: 100%;
  margin: 0;
  background-color: #fff;
  border-radius: 10px;
  padding: 0 clamp(0.75rem, 2.5vw, 2rem) 2rem;
  position: relative;
  animation: legacy-wizard-scale-in 0.3s cubic-bezier(0.39, 0.575, 0.565, 1) both;
  box-sizing: border-box;
}

.newtorneo-page .crear-competi--legacy-onboarding #progressStage {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

@keyframes legacy-wizard-scale-in {
  0% {
    transform: scale(0.5);
  }
  100% {
    transform: scale(1);
  }
}
.newtorneo-page .crear-competi--legacy-onboarding .blocks_container {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(1rem, 2vw, 1.75rem);
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.newtorneo-page .crear-competi--legacy-onboarding .blocks_container.blocks_container--with-side-preview {
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
}

.newtorneo-page .crear-competi--legacy-onboarding .block_top {
  grid-column: 1/-1;
}

.newtorneo-page .crear-competi--legacy-onboarding .block_left {
  min-width: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .block_right {
  position: sticky;
  top: 1rem;
  align-self: start;
}

.newtorneo-page .crear-competi--legacy-onboarding .wizard-parent-kicker {
  text-align: left;
  font-size: 0.85rem;
  color: #686868;
  margin: 0 0 0.35rem 0;
  line-height: 1.3;
}

.newtorneo-page .crear-competi--legacy-onboarding .wizard-parent-kicker-sep {
  opacity: 0.7;
  margin: 0 0.2rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .block_top .category {
  color: var(--arena);
  text-transform: uppercase;
  text-align: left;
  font-weight: 400;
  margin: 0.5rem 0 0 0;
  line-height: 0.975rem;
  font-size: 0.813rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .block_top h1 {
  font-family: "Manuka", Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  line-height: 3.125rem;
  text-align: left;
  text-transform: uppercase;
  padding: 1rem 0;
  font-size: 3.125rem;
  margin: 0;
  color: var(--negro);
}

.newtorneo-page .crear-competi--legacy-onboarding .block_top .intro {
  text-align: left;
  color: #686868;
  margin: 0 0 2rem 0;
  font-size: 0.938rem;
  line-height: 1.45;
}

/* Paso 3 multifase — 4 niveles: N1 título pantalla, N2 intro, N3 bloques (abajo), N4 labels (.crear-competi-field) */
.newtorneo-page .crear-competi--legacy-onboarding .block_top--wizard-fases h1 {
  font-size: clamp(2.5rem, 4.5vw, 3rem);
  line-height: 1.1;
  padding: 0.5rem 0 0.65rem 0;
  text-transform: none;
  letter-spacing: -0.02em;
  font-weight: 800;
}

.newtorneo-page .crear-competi--legacy-onboarding .form .crear-competi-field label {
  font-size: 0.9375rem;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.35;
  color: var(--negro);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-fase-subseccion-titulo {
  font-size: clamp(1.125rem, 1.5vw, 1.25rem);
  font-weight: 600;
  line-height: 1.25;
  padding-bottom: 0.4rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-onboarding-inner {
  background: transparent;
  border: none;
  box-shadow: none;
  padding: 0;
  margin: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .form .inputName,
.newtorneo-page .crear-competi--legacy-onboarding .form .inputName.cadmin-input {
  border: none;
  border-radius: 4px;
  padding: 0.625rem 1.25rem;
  margin-bottom: 0.2rem;
  min-height: 3.75rem;
  font-size: 0.938rem;
  background-color: #efefef !important;
  box-shadow: none;
}

.newtorneo-page .crear-competi--legacy-onboarding .form .inputName:focus,
.newtorneo-page .crear-competi--legacy-onboarding .form .inputName.cadmin-input:focus {
  outline: none !important;
  border-color: transparent;
  background-color: #efefef !important;
  box-shadow: none;
}

.newtorneo-page .crear-competi--legacy-onboarding .form label {
  text-align: left;
  margin-bottom: 0.5rem;
  font-weight: 600;
  line-height: 1.35;
  font-size: inherit;
  color: var(--negro);
  text-transform: none;
  letter-spacing: 0.01em;
}

.newtorneo-page .crear-competi--legacy-onboarding .container_boton {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  align-items: end;
}

.newtorneo-page .crear-competi--legacy-onboarding .gobackButton {
  margin-top: 1rem;
  background-color: transparent;
  color: #0f0f0f;
  display: block;
  border: 0;
  cursor: pointer;
  justify-self: start;
  text-align: left;
  padding: 0.25rem 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .gobackButton:hover {
  color: var(--arena);
}

.newtorneo-page .crear-competi--legacy-onboarding .gobackButton .text {
  text-decoration: underline;
}

.newtorneo-page .crear-competi--legacy-onboarding .boton {
  background-color: var(--arena);
  border-radius: 4px;
  border: none;
  width: 200px;
  margin-top: 2rem;
  font-weight: 400;
  height: 3.125rem;
  justify-self: end;
  cursor: pointer;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .boton_whole:hover:not(:disabled) {
  background-color: #0f0f0f;
  color: #fff;
}

.newtorneo-page .crear-competi--legacy-onboarding .boton:disabled {
  opacity: 0.65;
  cursor: not-allowed;
}

/* Vista previa lateral / resumen: centrada como onboarding Legacy */
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia {
  margin-top: 9px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  border-radius: 8px;
  background-color: #eee;
  padding: 1.15rem 1rem 1.3rem;
  font-size: 0.938rem;
  color: #0f0f0f;
  box-sizing: border-box;
  width: 100%;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia h4 {
  color: #0f0f0f;
  text-transform: uppercase;
  font-weight: 700;
  font-size: 1rem;
  margin: 0 0 0.35rem 0;
  width: 100%;
  letter-spacing: 0.04em;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .linea_horizontal {
  height: 1px;
  background-color: #bbb;
  margin: 0.85rem auto;
  width: min(220px, 85%);
  max-width: 100%;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .fases .linea_horizontal {
  width: min(180px, 75%);
  margin: 0.75rem auto;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .bold {
  font-weight: 600;
}

/* VistaPrevia.jsx: data_competi + fases (texto centrado) */
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .data_competi,
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .fases {
  width: 100%;
  max-width: 22rem;
  text-align: center;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia--bloque-principal .data_competi,
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia--bloque-principal .fases {
  max-width: 100%;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .data_competi > div,
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .fases .fase > div {
  margin: 0.35rem 0;
  line-height: 1.45;
  text-align: center;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .fases .fase h4 {
  margin: 0.65rem 0 0.4rem 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f0f0f;
  text-transform: none;
  text-align: center;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .fases .fase:first-child h4 {
  margin-top: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia--bloque-principal {
  margin-top: 0.5rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-wrap {
  max-width: min(48rem, 100%);
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  box-sizing: border-box;
  padding-left: clamp(0.15rem, 1.5vw, 0.75rem);
  padding-right: clamp(0.15rem, 1.5vw, 0.75rem);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-categoria {
  font-size: 0.875rem;
  color: #555;
  margin: 0 0 0.25rem 0;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-titulo {
  font-size: 1.75rem;
  font-weight: 700;
  margin: 0 0 0.5rem 0;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-subtitulo {
  font-size: 1rem;
  font-weight: 600;
  margin: 0 0 1rem 0;
  color: #333;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--legacy-row {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--legacy-row .crear-competi-opcion {
  display: flex;
  margin: 0;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 1rem;
  align-items: center;
  cursor: pointer;
  flex-flow: row wrap;
  background: #fff;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--legacy-row .crear-competi-opcion:hover {
  box-shadow: 0 5px 0 var(--arena);
  border: 1px solid var(--arena);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--legacy-row .crear-competi-opcion.selected {
  border-color: var(--arena);
  box-shadow: 0 4px 0 rgba(76, 237, 171, 0.35);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas .crear-competi-opcion {
  margin: 0;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  padding: 0.75rem 1rem;
  cursor: pointer;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas .crear-competi-opcion:hover {
  border-color: var(--arena);
  box-shadow: 0 4px 0 rgba(76, 237, 171, 0.25);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas .crear-competi-opcion.selected {
  border-color: var(--arena);
}

@media (max-width: 768px) {
  .newtorneo-page .crear-competi--legacy-onboarding .blocks_container {
    display: block;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_right {
    margin-top: 2rem;
    position: static;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top h1 {
    font-size: 2rem;
    line-height: 1.15;
    padding: 0.65rem 0;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top--wizard-fases h1 {
    font-size: clamp(2rem, 5vw, 2.65rem);
    line-height: 1.1;
    text-transform: none;
  }
}
@media (max-width: 480px) {
  .newtorneo-page .crear-competi--legacy-onboarding .boton {
    width: 100%;
  }
}
/* Móvil (≤600px): wizard crear competición — legibilidad, sin scroll horizontal, botones táctiles */
@media (max-width: 600px) {
  .newtorneo-page .crear-competi--legacy-onboarding #progressStage {
    margin-bottom: 2rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .form-container {
    overflow-x: hidden;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .wizard-parent-kicker {
    text-align: center;
    font-size: 0.8rem;
    padding: 0 0.35rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top .category {
    text-align: center;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top h1 {
    font-size: 1.55rem;
    line-height: 1.12;
    padding: 0.4rem 0 0.3rem;
    text-align: center;
    word-break: break-word;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top--wizard-fases h1 {
    font-size: clamp(1.75rem, 6vw, 2.25rem);
    text-transform: none;
    font-weight: 800;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_top .intro {
    text-align: center;
    font-size: 0.875rem;
    margin-bottom: 1.1rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .form.anime {
    padding-left: max(0.65rem, env(safe-area-inset-left, 0px));
    padding-right: max(0.65rem, env(safe-area-inset-right, 0px));
  }
  .newtorneo-page .crear-competi--legacy-onboarding .form .inputName,
  .newtorneo-page .crear-competi--legacy-onboarding .form .inputName.cadmin-input {
    font-size: 16px;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .container_boton {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .gobackButton {
    justify-self: center;
    margin-top: 0.15rem;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .boton {
    width: 100%;
    max-width: none;
    margin-top: 0;
    justify-self: stretch;
    min-height: 48px;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-titulo {
    font-size: 1.4rem;
    word-break: break-word;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-resumen-legacy-wrap {
    max-width: none;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .block_right {
    margin-top: 1.5rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia {
    padding: 0.9rem 0.75rem 1.05rem;
    font-size: 0.875rem;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas .crear-competi-opcion {
    min-width: 0;
    flex: 1 1 calc(50% - 0.35rem);
    min-height: 44px;
    justify-content: center;
  }
}
@media (max-width: 380px) {
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas {
    flex-direction: column;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--compactas .crear-competi-opcion {
    flex: 1 1 auto;
    width: 100%;
  }
}
.crear-competi-vista-previa {
  background: #fafcfb;
  border: 1px solid rgba(15, 15, 15, 0.08);
  border-radius: 12px;
  padding: 1rem 1rem 1.1rem;
  font-size: 0.875rem;
  color: var(--negro);
}

.crear-competi-vista-previa-titulo {
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--arena);
}

.crear-competi-vista-previa-line {
  height: 1px;
  background: rgba(15, 15, 15, 0.1);
  margin: 0 0 0.75rem;
}

.crear-competi-vista-previa-data > div {
  margin-bottom: 0.45rem;
  line-height: 1.4;
}

.crear-competi-vista-previa-k {
  color: var(--negro-1);
  font-weight: 600;
  margin-right: 0.35rem;
}

.crear-competi-vista-previa-v {
  font-weight: 600;
}

.crear-competi-progreso-publica {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.35rem 0.5rem;
  margin: 0 0 0.5rem;
  text-align: center;
}

.crear-competi-wizard-meta--inline {
  margin: 0;
}

.crear-competi-progreso-publica-sep {
  color: var(--negro-1);
  user-select: none;
}

.crear-competi-progreso-publica-etapa {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--arena);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.crear-competi-wizard-progress--publica {
  margin-bottom: 1.25rem;
}

.crear-competi--publica-intro .crear-competi-header {
  margin-bottom: 1rem;
}

.crear-competi-intro {
  font-size: 0.95rem;
  color: var(--negro-1);
  margin: 0.75rem 0 0;
  line-height: 1.55;
  text-align: left;
}

.crear-competi-intro--destacado {
  font-weight: 600;
  color: var(--negro);
}

.crear-competi-intro--tight {
  margin-top: 0.5rem;
}

.crear-competi-paso--no-soy-cliente-informativa {
  padding-top: 0.35rem;
}

.crear-competi--pago-problema .crear-competi-pago-problema-icon {
  font-size: 2.5rem;
  line-height: 1;
  margin-bottom: 0.75rem;
}

.crear-competi-pago-problema-lista {
  margin: 1rem 0 0;
  padding-left: 1.25rem;
  text-align: left;
  font-size: 0.92rem;
  color: var(--negro-1);
  line-height: 1.55;
}

.crear-competi-pago-problema-lista li {
  margin: 0.45rem 0;
}

.crear-competi-actions--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
}

.crear-competi-actions--stack .cadmin-btn {
  width: 100%;
  justify-content: center;
}

@media (min-width: 480px) {
  .crear-competi-actions--stack {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
  }
  .crear-competi-actions--stack .cadmin-btn {
    width: auto;
  }
}
/* Invitados.jsx: bloque contacto (Madrid, Barcelona, WhatsApp, email) */
.crear-competi-contacto-inv {
  text-align: left;
  margin: 0.25rem 0 1rem;
  line-height: 1.55;
}

.crear-competi-contacto-inv p {
  margin: 0.65rem 0;
  font-size: 0.95rem;
  color: var(--negro-1);
}

.crear-competi-contacto-inv .nowrap {
  white-space: nowrap;
}

.crear-competi-contacto-inv-br {
  display: none;
}

@media (max-width: 639px) {
  .crear-competi-contacto-inv-br {
    display: inline;
  }
}
.crear-competi-contacto-inv-tel {
  color: var(--arena);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.crear-competi-contacto-inv-tel:hover {
  opacity: 0.9;
}

.crear-competi-publica-pasos {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  margin: 0 0 0.5rem;
  text-align: left;
}

@media (min-width: 720px) {
  .crear-competi-publica-pasos {
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem 1.25rem;
    align-items: start;
  }
}
.crear-competi-publica-paso h5 {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.4rem 0;
  line-height: 1.35;
}

.crear-competi-little {
  font-size: 0.875rem;
  color: var(--negro-1);
  line-height: 1.45;
  display: block;
}

.crear-competi-wizard-meta {
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--negro-1);
  margin: 0 0 0.25rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.wizard-stepper-shell {
  position: relative;
  margin-bottom: 1.5rem;
  padding: 1.1rem 0.75rem 0.65rem;
  background: linear-gradient(165deg, #fafcfb 0%, var(--blanco-1) 45%, #f0f2f1 100%);
  border: 1px solid rgba(15, 15, 15, 0.08);
  border-radius: 14px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.9) inset, 0 4px 20px rgba(0, 0, 0, 0.05);
}

/* Línea base continua detrás de los pasos */
.wizard-stepper-shell::before {
  content: "";
  position: absolute;
  left: 1.75rem;
  right: 1.75rem;
  top: calc(1.1rem + 21px);
  height: 3px;
  background: var(--blanco-2);
  border-radius: 2px;
  z-index: 0;
  pointer-events: none;
}

.wizard-stepper-scroll {
  position: relative;
  z-index: 1;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  padding: 0.35rem 0.25rem 0.5rem;
  margin: 0;
  scrollbar-width: thin;
  scrollbar-color: var(--arena-2) transparent;
}

.wizard-stepper-scroll::-webkit-scrollbar {
  height: 5px;
}

.wizard-stepper-scroll::-webkit-scrollbar-thumb {
  background: var(--arena-2);
  border-radius: 4px;
}

.wizard-stepper-scroll::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.04);
  border-radius: 4px;
}

.crear-competi-wizard-progress {
  position: relative;
  z-index: 1;
  height: 6px;
  margin: 0.35rem 0.85rem 0.15rem;
  background: rgba(15, 15, 15, 0.06);
  border-radius: 999px;
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}

.crear-competi-wizard-progress-bar {
  height: 100%;
  min-width: 0;
  background: linear-gradient(90deg, var(--arena-2), var(--arena), #3bd9a0);
  border-radius: 999px;
  transition: width 0.45s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 0 12px rgba(76, 237, 171, 0.35);
}

.crear-competi-ayuda {
  margin: 0 0 1.25rem 0;
  padding: 0.75rem 1rem;
  background: var(--blanco-1);
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  font-size: 0.875rem;
}

.crear-competi-ayuda-summary {
  cursor: pointer;
  font-weight: 600;
  color: var(--negro);
  list-style: none;
}

.crear-competi-ayuda-summary::-webkit-details-marker {
  display: none;
}

.crear-competi-ayuda[open] .crear-competi-ayuda-summary {
  margin-bottom: 0.5rem;
}

.crear-competi-ayuda-texto {
  margin: 0 0 0.65rem 0;
  color: var(--negro-1);
  line-height: 1.45;
}

.crear-competi-ayuda-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.65rem;
  align-items: center;
}

.crear-competi-ayuda-links a {
  color: var(--negro);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.crear-competi-ayuda-links a:hover {
  color: var(--arena);
}

.crear-competi-ayuda-wb {
  font-weight: 600;
}

.crear-competi-ayuda-sep {
  color: var(--negro-1);
  user-select: none;
}

.crear-competi-actions--cliente-wb {
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

@media (max-width: 600px) {
  .crear-competi-actions--cliente-wb .cadmin-btn {
    flex: 1 1 auto;
    min-width: 10rem;
    justify-content: center;
  }
}
.crear-competi-error {
  padding: 0.85rem 1rem;
  background: #fef2f2;
  color: var(--wba-error);
  border-radius: 8px;
  margin-bottom: 1rem;
  font-size: 0.9rem;
}

.crear-competi-seccion .validation-message {
  display: block;
  margin-top: 0.35rem;
  font-size: 0.85rem;
  color: var(--wba-error);
}

/* Stepper */
.wizard-stepper {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 0;
  margin-bottom: 0;
  min-width: min-content;
  padding: 0 0.15rem;
}

.wizard-step-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.45rem;
  flex-shrink: 0;
  max-width: 5.25rem;
  transition: opacity 0.2s ease;
}

.wizard-step-wrap:not(.wizard-step-wrap--current) .wizard-step-label {
  color: var(--negro-1);
  font-weight: 600;
}

.wizard-step-wrap--current .wizard-step-label {
  color: var(--negro);
  font-weight: 700;
}

.wizard-step {
  position: relative;
  z-index: 2;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.88rem;
  line-height: 1;
  background: var(--blanco);
  color: var(--negro-1);
  border: 2px solid var(--blanco-2);
  transition: background 0.28s ease, color 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, transform 0.2s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);
}

.wizard-step.active {
  background: var(--arena);
  color: white;
  border-color: #3bd9a0;
  transform: scale(1.06);
  box-shadow: 0 4px 16px rgba(76, 237, 171, 0.5), 0 0 0 4px rgba(76, 237, 171, 0.18);
}

.wizard-step.done {
  background: linear-gradient(145deg, var(--arena-1), #e8fdf4);
  color: #0d5c3f;
  border-color: var(--arena-2);
  font-size: 1rem;
  font-weight: 800;
}

.wizard-step.done:not(.active) {
  transform: none;
  box-shadow: 0 2px 8px rgba(76, 237, 171, 0.2);
}

.wizard-step-label {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  color: inherit;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  line-height: 1.2;
  max-width: 5.25rem;
  text-align: center;
}

/* Segmentos entre círculos (encima de la línea base del shell) */
.wizard-step-line {
  position: relative;
  z-index: 1;
  flex: 0 1 40px;
  min-width: 18px;
  max-width: 52px;
  height: 4px;
  align-self: flex-start;
  margin-top: 20px;
  border-radius: 4px;
  background: transparent;
  transition: background 0.35s ease, box-shadow 0.35s ease;
}

.wizard-step-line.done {
  background: linear-gradient(90deg, var(--arena), var(--arena-2));
  box-shadow: 0 0 8px rgba(76, 237, 171, 0.35);
}

.wizard-step-line:not(.done) {
  background: transparent;
}

/* Contenido pasos */
.crear-competi-paso {
  background: white;
  border-radius: 12px;
  padding: 1.75rem 1.5rem;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  border: 1px solid #eee;
}

.crear-competi-paso--wizard {
  position: relative;
  border-radius: 14px;
  border: 1px solid rgba(15, 15, 15, 0.06);
  padding-top: 1.85rem;
  box-shadow: 0 2px 16px rgba(0, 0, 0, 0.06), 0 0 0 1px rgba(0, 0, 0, 0.03);
  overflow: hidden;
}

.crear-competi-paso--wizard::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--arena), var(--arena-2));
  pointer-events: none;
}

.crear-competi--wizard .crear-competi-paso-titulo {
  font-size: 1.22rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.crear-competi--wizard .crear-competi-paso-desc {
  font-size: 0.925rem;
  line-height: 1.45;
}

.crear-competi-block {
  margin-bottom: 0;
}

.crear-competi-paso-titulo {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.35rem 0;
}

.crear-competi-paso-desc {
  font-size: 0.9rem;
  color: var(--negro-1);
  margin: 0 0 1.25rem 0;
  line-height: 1.4;
}

.crear-competi-field {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  margin-bottom: 1rem;
}

.crear-competi-field:last-child {
  margin-bottom: 0;
}

/* Nivel 4 — etiquetas de campo (oración; sin todo mayúsculas) */
.crear-competi-field label {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--negro);
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.35;
}

.crear-competi-label-opcional {
  font-weight: 500;
  text-transform: none;
  letter-spacing: normal;
  font-size: 0.8125rem;
  color: var(--negro-1);
  opacity: 0.88;
}

.crear-competi-seccion {
  margin-bottom: 1.5rem;
}

.crear-competi-seccion:last-child {
  margin-bottom: 0;
}

.crear-competi-seccion-titulo {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.75rem 0;
  padding-bottom: 0.4rem;
  border-bottom: 1px solid #eee;
}

.crear-competi-seccion-titulo small {
  font-weight: 400;
  color: var(--negro-1);
}

.crear-competi-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.crear-competi-hint {
  font-size: 0.8rem;
  color: var(--negro-1);
  margin: 0.5rem 0 0 0;
}

.crear-competi-hint--tight {
  margin-top: 0.35rem;
  margin-bottom: 0.75rem;
}

.crear-competi-hint--orientativo {
  color: #666;
  line-height: 1.45;
  font-size: 0.82rem;
  margin-top: 0.5rem !important;
}

.crear-competi-hint--debajo-subtitulo {
  font-size: 0.88rem;
  color: #555;
  line-height: 1.45;
  margin: 0.25rem 0 0.65rem 0 !important;
}

.crear-competi-hint--inline-modalidad {
  font-size: 0.88rem;
  color: #475569;
  line-height: 1.45;
  margin: 0.45rem 0 0.35rem 0 !important;
}

/* Encabezado contextual por fase — paso 3 multifase */
.crear-competi-fase-paso-contexto {
  margin-bottom: 1.15rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid rgba(15, 15, 15, 0.08);
}

.crear-competi-fase-paso-contexto--band {
  border-bottom: none;
  margin-bottom: 0.85rem;
  padding: 0.75rem 0.9rem 0.85rem;
  border-radius: 10px;
  background: #f4f6f8;
  border: 1px solid rgba(15, 15, 15, 0.07);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}

.crear-competi-fase-paso-pretitulo {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.35rem;
}

.crear-competi-fase-paso-nombre-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 0.32rem 0.7rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 15, 15, 0.12);
}

.crear-competi-fase-paso-nombre-badge--clasif {
  background: rgba(76, 237, 171, 0.16);
  border-color: rgba(20, 184, 166, 0.35);
  color: #0f766e;
}

.crear-competi-fase-paso-nombre-badge--final {
  background: rgba(251, 191, 36, 0.2);
  border-color: rgba(217, 119, 6, 0.35);
  color: #92400e;
}

.crear-competi-fase-paso-paso-n {
  font-size: 0.8125rem;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.crear-competi-fase-paso-contexto--band .crear-competi-fase-paso-micro {
  margin-top: 0.15rem;
}

.crear-competi-fase-paso-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.5rem;
}

.crear-competi-fase-paso-num {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--negro);
  letter-spacing: 0.02em;
}

.crear-competi-fase-paso-badge {
  display: inline-block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  border: 1px solid rgba(15, 15, 15, 0.12);
}

.crear-competi-fase-paso-badge--clasif {
  background: rgba(76, 237, 171, 0.14);
  border-color: rgba(20, 184, 166, 0.35);
  color: #0f766e;
}

.crear-competi-fase-paso-badge--final {
  background: rgba(251, 191, 36, 0.18);
  border-color: rgba(217, 119, 6, 0.35);
  color: #92400e;
}

.crear-competi-fase-paso-lead {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.55;
  color: #3f3f3f;
  max-width: 40rem;
}

/* Progreso de fase: dos líneas discretas (no compiten con el h1) */
.crear-competi-fase-paso-kicker-stack {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin: 0 0 0.4rem 0;
}

.crear-competi-fase-paso-kicker-step {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #64748b;
  letter-spacing: 0.02em;
  line-height: 1.3;
}

.crear-competi-fase-paso-kicker-name {
  font-size: 0.875rem;
  font-weight: 500;
  color: #475569;
  line-height: 1.3;
}

/* Variante inline legada (si se usa en otro sitio) */
.crear-competi-fase-paso-kicker {
  margin: 0 0 0.35rem 0;
  font-size: 0.875rem;
  font-weight: 500;
  color: #64748b;
  letter-spacing: 0.02em;
  line-height: 1.4;
}

.crear-competi-fase-paso-micro {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  font-weight: 400;
  color: #64748b;
  max-width: 40rem;
}

/* Paso 2: texto de ayuda de la lista de fases — legible sin parecer microcopia */
.crear-competi-fases-din-intro {
  font-size: 0.9rem !important;
  line-height: 1.55 !important;
  color: #4a4a4a !important;
}

.crear-competi-fase-bloque--multifase {
  border: 1px solid rgba(15, 15, 15, 0.09);
  border-radius: 12px;
  padding: 1rem 1.1rem 1.15rem;
  background: #fafafa;
}

/* Nivel 3 — títulos de bloque (Modalidad / Sede / Fechas); wizard multifase refuerza tamaño arriba */
.crear-competi-fase-subseccion-titulo {
  font-size: clamp(1.0625rem, 1.35vw, 1.1875rem);
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.45rem 0;
  text-transform: none;
  letter-spacing: 0;
  border-bottom: 1px solid #eee;
  padding-bottom: 0.35rem;
}

.crear-competi-fase-subseccion-titulo--spaced {
  margin-top: 0.85rem;
}

.crear-competi-fase-subseccion-titulo--precio {
  margin-top: 1.1rem;
  margin-bottom: 0;
  border-bottom: none;
  padding-bottom: 0;
}

.crear-competi-fase-subseccion-titulo--modalidad {
  margin-top: 0;
}

.crear-competi-fase-subseccion-desc {
  margin: 0 0 0.65rem 0;
  font-size: 0.875rem;
  line-height: 1.45;
  font-weight: 400;
  color: #64748b;
  max-width: 38rem;
}

.crear-competi-fase-subseccion-titulo--sin-borde {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: 0.5rem;
}

/* Paso datos fiscales: aviso cuando falta país (provincia/población aún no disponibles) */
.crear-competi-fiscal .crear-competi-hint--paso-ubicacion {
  margin: 0.25rem 0 0.85rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: rgba(76, 237, 171, 0.09);
  border: 1px solid rgba(76, 237, 171, 0.28);
  color: var(--negro);
  font-size: 0.82rem;
  line-height: 1.45;
}

@media (max-width: 600px) {
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-hint--paso-ubicacion {
    font-size: 0.8rem;
    padding: 0.6rem 0.75rem;
  }
}
/* Datos fiscales (wizard paso 5): ancho completo y selects usables */
.crear-competi-fiscal .cadmin-input.inputName,
.crear-competi-fiscal select.cadmin-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.crear-competi-fiscal select.cadmin-input {
  min-height: 2.75rem;
  padding: 0.45rem 0.65rem;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.65rem center;
  padding-right: 2rem;
}

.crear-competi-fiscal .crear-competi-seccion .validation-message {
  word-break: break-word;
}

@media (max-width: 600px) {
  .crear-competi--legacy-onboarding .crear-competi-fiscal.crear-competi-block {
    padding: 0.85rem 0.65rem 0.5rem;
    margin-left: 0;
    margin-right: 0;
    border-radius: 12px;
    background: linear-gradient(180deg, #f8f9fa 0%, #fff 40%);
    border: 1px solid rgba(15, 15, 15, 0.08);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-seccion {
    margin-bottom: 0;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-grid {
    gap: 0.65rem;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-field {
    margin-bottom: 0.85rem;
    gap: 0.35rem;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-field label {
    font-size: 0.875rem;
    line-height: 1.35;
    letter-spacing: 0.01em;
    text-transform: none;
    font-weight: 600;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .cadmin-input.inputName,
  .crear-competi--legacy-onboarding .crear-competi-fiscal select.cadmin-input {
    min-height: 48px;
    font-size: 16px;
    padding: 0.55rem 0.75rem;
    border-radius: 10px;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal select.cadmin-input {
    padding-right: 2.25rem;
    background-position: right 0.75rem center;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-error {
    font-size: 0.82rem;
    padding: 0.65rem 0.75rem;
    margin-bottom: 0.75rem;
    line-height: 1.4;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-hint {
    font-size: 0.78rem;
    line-height: 1.4;
    padding: 0 0.1rem;
  }
  .crear-competi--legacy-onboarding .crear-competi-fiscal .crear-competi-seccion .validation-message {
    font-size: 0.8rem;
    margin-top: 0.25rem;
  }
}
.crear-competi-block--clasificatorio .crear-competi-pregunta-principal {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 1rem 0;
  line-height: 1.35;
}

.crear-competi-elegido-clasificatorio {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.55rem;
  margin: 1rem 0 0;
  padding: 0.75rem 1rem;
  border-radius: 12px;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 100%);
  border: 1px solid #e2e8f0;
  font-size: 0.9rem;
  line-height: 1.45;
}

.crear-competi-elegido-label {
  color: var(--negro-1);
  font-weight: 600;
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.crear-competi-elegido-valor {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.6rem;
  padding: 0.22rem 0.7rem;
  border-radius: 999px;
  font-weight: 800;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  font-family: "Public Sans", system-ui, sans-serif;
}

.crear-competi-elegido-valor--no {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.crear-competi-elegido-valor--si {
  background: rgba(76, 237, 171, 0.28);
  color: #0d4f2d;
  border: 1px solid rgba(76, 237, 171, 0.55);
}

.crear-competi-elegido-desc {
  flex: 1 1 100%;
  color: var(--negro-1);
  font-size: 0.84rem;
  font-weight: 500;
}

@media (min-width: 520px) {
  .crear-competi-elegido-desc {
    flex: 1 1 auto;
  }
}
.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .vista-previa-clasificatorio {
  font-size: 0.9rem;
  color: #0f0f0f;
  margin-top: 0.15rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .vista-previa-seccion-titulo {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0.35rem 0 0.5rem;
  letter-spacing: 0.02em;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .vista-previa-pago-titulo {
  margin-top: 0.15rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .vista-previa-pago .vista-previa-pago-total-line {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(15, 15, 15, 0.12);
  font-size: 1.02rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .vistaPrevia .vista-previa-pago-nota-admin {
  margin: 0.6rem 0 0;
  font-size: 0.82rem;
  color: var(--negro-1);
  line-height: 1.4;
}

/* Paso final: aviso pasarela Redsys (legacy / sandbox sis-t) */
.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-redsys-pasarela {
  margin-top: 1.1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: rgba(15, 15, 15, 0.04);
  border: 1px solid rgba(15, 15, 15, 0.1);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-redsys-pasarela-titulo {
  font-size: 0.92rem;
  font-weight: 700;
  margin: 0 0 0.45rem;
  color: var(--negro);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-redsys-pasarela-texto {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-redsys-pasarela-texto code {
  font-size: 0.78rem;
  word-break: break-all;
}

/* Resumen final como React Enviar.jsx (newCompetition.min.css) */
.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform {
  --legacy-enviar-arena: #4cedab;
  text-align: left;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .category {
  color: var(--legacy-enviar-arena);
  text-transform: uppercase;
  font-weight: 400;
  margin: 0.5rem 0 0 0;
  font-size: 0.813rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-h1 {
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  line-height: 1.1;
  text-align: left;
  text-transform: uppercase;
  padding: 0.75rem 0 0.5rem;
  margin: 0;
  font-size: clamp(1.75rem, 4vw, 3.125rem);
  font-weight: 700;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform--compact .legacy-enviar-h1 {
  font-size: clamp(1.35rem, 3vw, 2rem);
  padding-top: 0.35rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-vista-previa-titulo {
  font-size: 1rem;
  text-transform: uppercase;
  font-weight: 700;
  margin: 0 0 0.35rem;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-h5 {
  text-align: left;
  margin: 1rem 0 0.5rem;
  font-size: 0.938rem;
  font-weight: 700;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-wrapper {
  min-height: auto;
  margin: 0 0 0.75rem;
  padding: 0.85rem 1rem 1rem;
  background-color: #efefef;
  border-radius: 4px;
}

.newtorneo-page .crear-competi--legacy-onboarding .slider_container {
  display: flex;
  flex-flow: row nowrap;
  width: 100%;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.65rem;
  border-radius: 4px;
  padding: 0.15rem 0 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .icon_send {
  display: flex;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .slider_container .icon_send {
  flex: 0 0 1.75rem;
  min-width: 1.75rem;
  align-items: center;
  justify-content: center;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .icon_sinCirculo {
  font-family: "WodBusterArena", sans-serif;
  font-size: 1.1rem;
  width: 1.75rem;
  text-align: center;
  line-height: 1.2;
  color: var(--legacy-enviar-arena);
  margin: 0 0.35rem 0 0;
  flex-shrink: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .icon_sinCirculo.gray {
  font-size: 1.2rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .icon_sinCirculo.small {
  font-size: 0.95rem;
  width: 1.35rem;
  margin-top: 0.1rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .icon_sinCirculo.empty {
  visibility: hidden;
}

/* Columna fija de iconos en filas de fases (alineado con icon_send del tipo) */
.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-wrapper .legacy-enviar-fase-bloque .row_content {
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.28rem 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-wrapper .legacy-enviar-fase-bloque .row_content > .icon_sinCirculo.small:first-child {
  flex: 0 0 1.75rem;
  width: 1.75rem;
  min-width: 1.75rem;
  margin-right: 0;
  margin-top: 0.08rem;
  text-align: center;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-fase-bloque {
  margin-top: 0.65rem;
  padding-top: 0.5rem;
  border-top: 1px solid rgba(15, 15, 15, 0.08);
}

.newtorneo-page .crear-competi--legacy-onboarding .slider_container + .legacy-enviar-fase-bloque {
  border-top: none;
  margin-top: 0.25rem;
  padding-top: 0;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-fase-titulo {
  align-items: flex-start;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .row_content {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.35rem;
  padding: 0.2rem 0.2rem 0.2rem 0;
  font-size: 0.85rem;
  line-height: 1.35;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform .contents {
  display: flex;
  flex-direction: column;
  flex: 1;
}

.newtorneo-page .crear-competi--legacy-onboarding .background_container.colorWhite {
  display: flex;
  flex-flow: column nowrap;
  width: 100%;
  margin: 0 auto 0.75rem;
  border-radius: 4px;
  padding: 0.65rem 0.75rem;
  background-color: #efefef;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-intro {
  text-align: left;
  color: #686868;
  margin: 0.5rem 0 1rem;
  font-size: 0.9rem;
  line-height: 1.4;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices {
  width: 100%;
  max-width: min(28rem, 100%);
  margin: 0.5rem 0 0 auto;
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
  padding: 1rem;
  border-radius: 4px;
  background-color: #eeeeee;
}

.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-checkform--compact .final_prices {
  max-width: none;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .content_price {
  display: grid;
  border-bottom: 1px solid #bbbbbb;
  grid-template-columns: 1fr 1fr;
  align-items: end;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .content_price:last-child {
  border-bottom: none;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .title {
  font-size: 1rem;
  font-weight: 700;
  text-align: left;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .price_small {
  font-size: 1rem;
  font-weight: 700;
  text-align: right;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .price_big {
  font-size: 3rem;
  font-weight: 400;
  text-align: right;
  line-height: 1;
  margin-bottom: -4px;
  font-family: Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  color: #0f0f0f;
}

.newtorneo-page .crear-competi--legacy-onboarding .final_prices .cents {
  font-size: 1.25rem;
  font-weight: 600;
  color: #0f0f0f;
}

@media (max-width: 520px) {
  .newtorneo-page .crear-competi--legacy-onboarding .final_prices {
    margin-left: 0;
    margin-right: 0;
    max-width: 100%;
  }
}
.newtorneo-page .crear-competi--legacy-onboarding .legacy-enviar-admin-nota {
  margin: 0.75rem 0 0;
  font-size: 0.85rem;
  color: var(--negro-1);
}

.crear-competi-subpregunta {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(15, 15, 15, 0.08);
}

/* Pasos: lista dinámica de fases (wizard paso 2) */
.crear-competi-subpregunta--fases-dinamicas {
  margin-top: 1.25rem;
}

.crear-competi-fases-din-titulo {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--negro);
  margin: 0 0 0.4rem 0;
  line-height: 1.3;
}

.crear-competi-block--fases-torneo {
  margin-top: 0.15rem;
}

/* Tarjeta principal «Fases previstas» */
.crear-competi-fases-card {
  padding: 1rem 1.1rem 0;
  border-radius: 14px;
  background: #fff;
  border: 1px solid rgba(15, 15, 15, 0.1);
  box-shadow: 0 2px 12px rgba(15, 15, 15, 0.06);
}

.crear-competi-fases-card-header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.85rem;
  border-bottom: 1px solid rgba(15, 15, 15, 0.07);
}

.crear-competi-fases-card-head-text {
  flex: 1 1 200px;
  min-width: 0;
}

.crear-competi-fases-card-title {
  margin: 0 0 0.25rem 0;
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--negro);
  letter-spacing: -0.02em;
  line-height: 1.25;
}

.crear-competi-fases-card-subtitle {
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.crear-competi-fases-btn-anadir {
  flex-shrink: 0;
  padding: 0.55rem 1rem;
  font-size: 0.88rem;
  font-weight: 700;
  background: var(--arena);
  color: var(--negro);
  border: none;
  border-radius: 999px;
  cursor: pointer;
  box-shadow: 0 1px 4px rgba(15, 80, 60, 0.2);
  transition: background 0.15s ease, transform 0.08s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.crear-competi-fases-btn-anadir:hover:not(:disabled) {
  background: var(--arena-deep);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(15, 80, 60, 0.35);
}

.crear-competi-fases-btn-anadir:disabled {
  opacity: 0.4;
  cursor: not-allowed;
  transform: none;
}

.crear-competi-fases-card-footer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin: 0 -1.1rem;
  padding: 0.65rem 1.1rem;
  border-radius: 0 0 13px 13px;
  background: #f4f4f5;
  border-top: 1px solid rgba(15, 15, 15, 0.08);
  font-size: 0.82rem;
  color: var(--negro-1);
}

.crear-competi-fases-card-footer-total strong {
  font-variant-numeric: tabular-nums;
  color: var(--negro);
}

.crear-competi-fases-card-footer-resumen {
  font-weight: 600;
  color: #52525b;
}

.crear-competi-fases-timeline {
  list-style: none;
  margin: 0.15rem 0 0 0;
  padding: 0.35rem 0 0.35rem 1.45rem;
  position: relative;
}

.crear-competi-fases-timeline::before {
  content: "";
  position: absolute;
  left: 0.55rem;
  top: 0.65rem;
  bottom: 2.85rem;
  width: 3px;
  border-radius: 3px;
  background: linear-gradient(180deg, var(--arena) 0%, rgba(148, 163, 184, 0.55) 100%);
  opacity: 0.55;
}

.crear-competi-fases-timeline--compacta {
  padding-left: 0;
  margin-top: 0;
}

.crear-competi-fases-timeline--compacta::before {
  display: none;
}

.crear-competi-fases-card .crear-competi-fases-timeline--compacta {
  margin-bottom: 0.5rem;
}

.crear-competi-fase-din-item {
  position: relative;
  margin: 0;
  padding-bottom: 0.65rem;
}

.crear-competi-fase-din-item:last-child {
  padding-bottom: 0;
}

.crear-competi-fase-din-card {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.8rem 0.9rem;
  border-radius: 12px;
  border: 1px solid rgba(15, 15, 15, 0.1);
  background: #fff;
  box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06);
  position: relative;
  z-index: 1;
}

/* Tarjetas blancas; acento solo borde izquierdo (verde: clasif / verde más cargado: final) */
.crear-competi-fase-din-item--clasif .crear-competi-fase-din-card {
  border: 1px solid rgba(15, 15, 15, 0.1);
  border-left: 4px solid var(--arena);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 15, 15, 0.05);
}

.crear-competi-fase-din-item--final .crear-competi-fase-din-card {
  border: 1px solid rgba(15, 15, 15, 0.1);
  border-left: 4px solid var(--arena-deep);
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 15, 15, 0.05);
}

.crear-competi-fase-din-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.9rem;
  height: 1.9rem;
  border-radius: 50%;
  font-size: 0.88rem;
  font-weight: 800;
  background: #f1f5f9;
  color: #334155;
  line-height: 1;
  border: 1px solid rgba(15, 15, 15, 0.1);
  box-shadow: none;
}

.crear-competi-fase-din-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.32rem;
}

.crear-competi-fase-din-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  width: 100%;
}

.crear-competi-fase-din-nombre {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.2;
}

.crear-competi-fase-din-badge {
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 0.18rem 0.52rem;
  border-radius: 999px;
  line-height: 1.2;
}

.crear-competi-fase-din-badge--clasif {
  background: var(--arena-1);
  color: var(--arena-ink);
  border: 1px solid rgba(76, 237, 171, 0.45);
  font-weight: 700;
}

.crear-competi-fase-din-badge--final {
  background: #fff;
  color: var(--arena-deep);
  border: 1px solid var(--arena);
  font-weight: 800;
  letter-spacing: 0.03em;
}

.crear-competi-fase-din-sub {
  font-size: 0.8rem;
  color: var(--negro-1);
  line-height: 1.35;
  opacity: 0.95;
}

.crear-competi-fase-din-eliminar {
  flex-shrink: 0;
  align-self: center;
  font-size: 0.82rem;
  padding: 0.38rem 0.7rem;
  color: #64748b;
}

@media (max-width: 520px) {
  .crear-competi-fases-card-header {
    flex-direction: column;
    align-items: stretch;
  }
  .crear-competi-fases-btn-anadir {
    width: 100%;
    text-align: center;
  }
  .crear-competi-fase-din-card {
    flex-wrap: wrap;
  }
  .crear-competi-fase-din-eliminar {
    width: 100%;
    text-align: right;
    margin-left: 2.65rem;
    align-self: flex-end;
  }
  .crear-competi-fases-card-footer {
    flex-direction: column;
    align-items: flex-start;
  }
}
.crear-competi-pregunta-secundaria {
  font-size: 0.98rem;
  font-weight: 600;
  color: var(--negro);
  margin: 0 0 0.5rem 0;
  line-height: 1.35;
}

.crear-competi-fase-periodo-titulo {
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--negro-1);
  margin: 0.75rem 0 0.5rem 0;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Flujo 1 clasificatoria + 1 final — paso visual */
.crear-competi-dos-fases-flujo {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  gap: 0.65rem;
  padding: 1rem 1.1rem;
  margin-bottom: 1rem;
  background: linear-gradient(145deg, rgba(76, 237, 171, 0.1) 0%, rgba(15, 15, 15, 0.03) 55%, rgba(251, 191, 36, 0.06) 100%);
  border: 1px solid rgba(15, 15, 15, 0.09);
  border-radius: 12px;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset;
}

.crear-competi-dos-fases-flujo--rich {
  justify-content: center;
}

.crear-competi-dos-fases-flujo--paso4 {
  margin-bottom: 0.85rem;
}

.crear-competi-dos-fases-step {
  flex: 1 1 140px;
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid rgba(15, 15, 15, 0.08);
  box-shadow: 0 2px 8px rgba(15, 15, 15, 0.06);
  min-width: 0;
}

.crear-competi-dos-fases-step--clasif {
  border-top: 3px solid var(--arena, #4cedab);
}

.crear-competi-dos-fases-step--final {
  border-top: 3px solid #c4a035;
}

.crear-competi-dos-fases-step-body {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.crear-competi-dos-fases-kicker {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--negro-1);
  opacity: 0.85;
}

.crear-competi-dos-fases-num {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 800;
  background: linear-gradient(145deg, #f3f4f6, #e5e7eb);
  color: #1f2937;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.crear-competi-dos-fases-step--clasif .crear-competi-dos-fases-num {
  background: linear-gradient(145deg, rgba(76, 237, 171, 0.45), rgba(45, 212, 191, 0.35));
  color: #0f172a;
}

.crear-competi-dos-fases-step--final .crear-competi-dos-fases-num {
  background: linear-gradient(145deg, rgba(251, 191, 36, 0.45), rgba(245, 158, 11, 0.3));
  color: #0f172a;
}

.crear-competi-dos-fases-texto {
  font-weight: 700;
  font-size: 1rem;
  color: var(--negro);
  line-height: 1.2;
}

.crear-competi-dos-fases-connector {
  flex: 0 0 auto;
  align-self: center;
  width: 1.5rem;
  height: 2px;
  background: linear-gradient(90deg, var(--arena, #4cedab), #fbbf24);
  border-radius: 2px;
  opacity: 0.85;
}

/* Móvil: mismo contenido, aspecto más ligero (sin tantos degradados ni sombras) */
@media (max-width: 639px) {
  .crear-competi-dos-fases-flujo {
    background: #f0f1f3;
    box-shadow: none;
    border-radius: 8px;
    padding: 0.6rem 0.65rem;
    gap: 0.45rem;
  }
  .crear-competi-dos-fases-flujo--rich {
    flex-direction: column;
  }
  .crear-competi-dos-fases-step {
    width: 100%;
    flex: none;
    box-shadow: none;
    padding: 0.55rem 0.7rem;
    border-radius: 8px;
  }
  .crear-competi-dos-fases-step--clasif,
  .crear-competi-dos-fases-step--final {
    border-top-width: 2px;
  }
  .crear-competi-dos-fases-num {
    width: 1.55rem;
    height: 1.55rem;
    border-radius: 8px;
    font-size: 0.8rem;
    box-shadow: none;
    background: #e5e7eb;
  }
  .crear-competi-dos-fases-step--clasif .crear-competi-dos-fases-num {
    background: rgba(76, 237, 171, 0.4);
  }
  .crear-competi-dos-fases-step--final .crear-competi-dos-fases-num {
    background: rgba(251, 191, 36, 0.45);
  }
  .crear-competi-dos-fases-kicker {
    font-size: 0.62rem;
  }
  .crear-competi-dos-fases-texto {
    font-size: 0.92rem;
  }
  /* Entre pasos apilados: separador vertical discreto */
  .crear-competi-dos-fases-connector {
    width: 2px;
    height: 0.55rem;
    align-self: center;
    margin: 0;
    background: #cbd5e1;
    opacity: 1;
  }
  .crear-competi-dos-fases-callout,
  .crear-competi-dos-fases-callout--formato {
    padding: 0.65rem 0.75rem;
    background: #f8fafc;
    border-left-width: 3px;
  }
  .crear-competi-dos-fases-callout .crear-competi-hint--callout {
    font-size: 0.8rem;
  }
  .crear-competi-hint--dos-fases {
    margin-bottom: 0.85rem !important;
  }
  .crear-competi-dos-fases-panels {
    gap: 0.85rem;
  }
  .crear-competi-fase-bloque--dos-fases {
    box-shadow: none;
    border-radius: 8px;
    padding: 0.85rem 0.9rem 1rem;
    background: #fff;
  }
  .crear-competi-fase-bloque--clasificatoria,
  .crear-competi-fase-bloque--final {
    background: #fff;
  }
  .crear-competi-fase-bloque--dos-fases .crear-competi-seccion-titulo {
    font-size: 0.98rem;
  }
  .crear-competi-fase-rol {
    font-size: 0.78rem;
    padding: 0.35rem 0.45rem;
    background: #f1f5f9 !important;
    color: #334155;
  }
}
.crear-competi-hint--dos-fases {
  margin-top: 0.35rem !important;
  margin-bottom: 1rem !important;
}

.crear-competi-dos-fases-callout {
  padding: 0.85rem 1rem;
  margin-bottom: 1.1rem;
  background: rgba(76, 237, 171, 0.07);
  border-left: 4px solid var(--arena, #4cedab);
  border-radius: 0 8px 8px 0;
}

.crear-competi-dos-fases-callout--formato {
  background: rgba(15, 15, 15, 0.03);
  border-left-color: #64748b;
}

.crear-competi-dos-fases-callout .crear-competi-hint--callout {
  margin: 0 !important;
  font-size: 0.84rem;
  line-height: 1.5;
}

/* Dos columnas en paso 4; paso 3 una columna más estrecha */
.crear-competi-dos-fases-panels {
  display: flex;
  flex-direction: column;
  gap: 1.15rem;
}

@media (min-width: 900px) {
  .crear-competi-block .crear-competi-dos-fases-panels {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
    align-items: start;
  }
}
.crear-competi-fase-bloque--dos-fases {
  position: relative;
  margin-bottom: 0 !important;
  border: 1px solid rgba(15, 15, 15, 0.08);
  border-radius: 12px;
  padding: 1.1rem 1.15rem 1.3rem;
  background: #fcfdfc;
  box-shadow: 0 1px 8px rgba(15, 15, 15, 0.04);
  overflow: hidden;
}

/* Barra lateral retirada: el acento verde queda solo en la opción seleccionada */
.crear-competi-fase-bloque--clasificatoria {
  background: #fcfdfc;
}

.crear-competi-fase-bloque--final {
  background: #fcfdfc;
}

.crear-competi-fase-bloque--dos-fases .crear-competi-seccion-titulo {
  font-size: 1.05rem;
  font-weight: 700;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(15, 15, 15, 0.08);
  margin-bottom: 0.5rem;
}

.crear-competi-fase-bloque--dos-fases .crear-competi-fase-periodo-titulo {
  margin-top: 1rem;
}

.crear-competi-fase-bloque--dos-fases .crear-competi-opciones--compactas {
  margin-bottom: 0.35rem;
}

.crear-competi-fase-rol {
  font-size: 0.82rem;
  color: #475569;
  margin: -0.2rem 0 0.9rem 0;
  line-height: 1.45;
  padding: 0.45rem 0.55rem;
  background: rgba(15, 15, 15, 0.04);
  border-radius: 6px;
}

.crear-competi-fase-bloque--final .crear-competi-fase-rol {
  background: rgba(234, 179, 8, 0.09);
}

.crear-competi-fase-bloque--clasificatoria .crear-competi-fase-rol {
  background: rgba(45, 212, 191, 0.1);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.75rem;
}

@media (max-width: 640px) {
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no {
    grid-template-columns: 1fr;
  }
}
/* Paso clasificatorio: tarjetas Sí / No */
.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion--si-no-card {
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  padding: 1.15rem 1.2rem 1.3rem;
  min-height: 0;
  border-radius: 14px;
  border-width: 2px;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion-si-no-head {
  display: flex;
  justify-content: flex-start;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-respuesta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.85rem;
  padding: 0.28rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  font-family: "Public Sans", system-ui, sans-serif;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-respuesta--no {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-respuesta--si {
  background: rgba(76, 237, 171, 0.28);
  color: #0d4f2d;
  border: 1px solid rgba(76, 237, 171, 0.55);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-texto--si-no {
  gap: 0.4rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-titulo-binario {
  display: block;
  font-size: 1.08rem;
  font-weight: 700;
  color: var(--negro);
  line-height: 1.28;
  letter-spacing: -0.02em;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .opcion-desc-binario {
  display: block;
  font-size: 0.875rem;
  color: var(--negro-1);
  line-height: 1.45;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion--si-no-negativa.selected {
  border-color: #94a3b8;
  background: linear-gradient(165deg, #f8fafc 0%, #fff 100%);
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.06);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion--si-no-negativa:hover:not(.selected) {
  border-color: #cbd5e1;
  background: #fafbfc;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion--si-no-positiva:hover:not(.selected) {
  border-color: var(--arena-2);
  background: rgba(76, 237, 171, 0.07);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--si-no .crear-competi-opcion--si-no-positiva.selected {
  border-color: var(--arena);
  background: linear-gradient(165deg, rgba(76, 237, 171, 0.14) 0%, #fff 58%);
  box-shadow: 0 4px 20px rgba(76, 237, 171, 0.18);
}

/* Paso 3 multifase: online / presencial con copy de consecuencia */
.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--fase-modalidad {
  margin-bottom: 0.5rem;
  align-items: stretch;
  gap: 0.65rem;
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--fase-modalidad .crear-competi-opcion--fase-modalidad {
  align-items: flex-start;
  padding: 0.7rem 0.9rem 0.8rem;
  min-width: min(100%, 200px);
}

.newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--fase-modalidad .opcion-texto span {
  font-size: 0.8rem;
  line-height: 1.4;
}

@media (max-width: 640px) {
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--fase-modalidad {
    flex-direction: column;
  }
  .newtorneo-page .crear-competi--legacy-onboarding .crear-competi-opciones--fase-modalidad .crear-competi-opcion--fase-modalidad {
    min-width: 0;
  }
}
/* Opciones (clasificatorio, elección) */
.crear-competi-opciones {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.crear-competi-opciones--grande {
  margin-bottom: 1.5rem;
}

.crear-competi-opciones--compactas {
  flex-direction: row;
  flex-wrap: wrap;
}

.crear-competi-opciones--compactas .crear-competi-opcion {
  flex: 1;
  min-width: 140px;
}

.crear-competi-opcion {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  border: 2px solid #e8e8e8;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.crear-competi-opcion:hover {
  border-color: var(--arena-2);
  background: rgba(76, 237, 171, 0.06);
}

.crear-competi-opcion.selected {
  border-color: var(--arena);
  background: rgba(76, 237, 171, 0.1);
}

.crear-competi-opcion--grande {
  padding: 1.25rem 1.5rem;
}

.opcion-icono {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: #f0f0f0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--negro-1);
  flex-shrink: 0;
}

.crear-competi-opcion.selected .opcion-icono {
  background: var(--arena);
  color: white;
}

.opcion-icono--grande {
  width: 48px;
  height: 48px;
  font-size: 1.5rem;
  background: transparent;
}

.opcion-texto {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.opcion-texto strong {
  font-size: 0.95rem;
  color: var(--negro);
}

.opcion-texto span {
  font-size: 0.85rem;
  color: var(--negro-1);
  line-height: 1.35;
}

.opcion-precio {
  font-weight: 700;
  font-size: 1rem;
  color: var(--arena);
}

/* Menú tipos de competición + elección cliente WodBuster (paridad onboarding Legacy) */
.newtorneo-page .crear-competi--tipo-seleccion,
.newtorneo-page .crear-competi--cliente-wb-choice {
  max-width: 42rem;
  margin-left: auto;
  margin-right: auto;
  padding: 0.5rem 1rem 2rem;
  box-sizing: border-box;
}

.crear-competi-menu-tipos-header {
  text-align: center;
  margin: 0.5rem 0 1.35rem;
}

.crear-competi-menu-tipos-kicker {
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--arena);
  margin-bottom: 0.35rem;
}

.crear-competi-menu-tipos-titulo {
  margin: 0;
  font-size: clamp(1.35rem, 3.5vw, 1.85rem);
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--negro);
}

.crear-competi-menu-tipos-intro {
  margin: 0.75rem 0 0;
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--negro-1);
  max-width: 36rem;
  margin-left: auto;
  margin-right: auto;
}

.crear-competi-tipo-filas {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

a.crear-competi-tipo-fila {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  gap: 1rem;
  padding: 1rem 1.1rem 1rem 1.25rem;
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  background: #fff;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}

a.crear-competi-tipo-fila:hover {
  border-color: var(--arena-2);
  background: rgba(76, 237, 171, 0.05);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.06);
}

a.crear-competi-tipo-fila:focus-visible {
  outline: 2px solid var(--arena);
  outline-offset: 2px;
}

.crear-competi-tipo-fila-body {
  flex: 1;
  min-width: 0;
  text-align: left;
}

.crear-competi-tipo-fila-titulo {
  margin: 0 0 0.35rem;
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--negro);
}

.crear-competi-tipo-fila-desc {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.crear-competi-tipo-fila-nota {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  color: var(--negro-1);
}

.crear-competi-tipo-precio-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-width: 5.75rem;
  flex-shrink: 0;
  text-align: center;
  border-left: 1px solid #eee;
  padding-left: 1rem;
  margin-left: 0.25rem;
}

.crear-competi-tipo-precio-col--simple {
  border-left: 1px solid #eee;
  padding-left: 1rem;
}

.crear-competi-tipo-precio-col--simple .crear-competi-precio-destacado {
  font-size: 1.15rem;
}

/* Misma marca que OnBoarding Legacy: /images/logo_cuad.png + .logo */
.crear-competi-tipo-precio-col .logo,
.crear-competi-tipo-precio-col--cliente .logo {
  width: 1.5rem;
  height: auto;
  border-radius: 2px;
  display: block;
  margin: 0 auto 0.2rem;
  object-fit: contain;
}

.crear-competi-precio-destacado {
  font-weight: 800;
  font-size: 0.95rem;
  color: var(--negro);
}

.crear-competi-precio-sep {
  display: block;
  width: 72%;
  max-width: 4.5rem;
  height: 1px;
  background: #ddd;
  margin: 0.2rem 0;
}

.crear-competi-precio-secundario {
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--negro-1);
}

.crear-competi-opciones--menu-cliente-wb {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  margin-bottom: 0.25rem;
}

.crear-competi-cliente-wb-card {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  padding: 1.15rem 1.2rem 1.15rem 1.15rem;
  border: 1px solid #e0e0e0;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
  transition: border-color 0.2s, box-shadow 0.2s, background 0.2s;
}

.crear-competi-cliente-wb-card:hover {
  border-color: var(--arena-2);
  background: rgba(76, 237, 171, 0.06);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.07);
}

.crear-competi-cliente-wb-card:focus-visible {
  outline: 2px solid var(--arena);
  outline-offset: 2px;
}

.crear-competi-cliente-wb-emoji {
  font-size: 2rem;
  line-height: 1;
  flex-shrink: 0;
  width: 2.75rem;
  text-align: center;
}

.crear-competi-cliente-wb-texto {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  text-align: left;
}

.crear-competi-cliente-wb-texto strong {
  font-size: 0.98rem;
  color: var(--negro);
}

.crear-competi-cliente-wb-texto span {
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--negro-1);
}

.crear-competi-tipo-precio-col--cliente {
  min-width: 4.5rem;
  padding-left: 0.85rem;
  margin-left: 0.15rem;
}

.crear-competi-volver-atras-wrap {
  margin-top: 1.25rem;
  padding-top: 0.25rem;
}

.crear-competi-volver-atras {
  display: inline-block;
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-size: 0.92rem;
  color: var(--negro-1);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  text-align: left;
}

.crear-competi-volver-atras:hover {
  color: var(--arena);
}

@media (max-width: 520px) {
  a.crear-competi-tipo-fila {
    flex-wrap: wrap;
  }
  .crear-competi-tipo-precio-col,
  .crear-competi-tipo-precio-col--simple {
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 100%;
    border-left: none;
    border-top: 1px solid #eee;
    padding-left: 0;
    padding-top: 0.75rem;
    margin-left: 0;
    margin-top: 0.35rem;
    gap: 0.5rem 1rem;
  }
  .crear-competi-cliente-wb-card {
    flex-wrap: wrap;
  }
  .crear-competi-tipo-precio-col--cliente {
    width: 100%;
    border-left: none;
    border-top: 1px solid #eee;
    padding-top: 0.65rem;
    padding-left: 0;
    flex-direction: row;
    justify-content: flex-start;
  }
}
/* SoyCliente.jsx: roadtobox + iframe (czXfMM38kks) */
.crear-competi-roadtobox {
  text-align: left;
  margin: 0.75rem 0 0;
  font-size: 0.95rem;
  color: var(--negro-1);
}

.crear-competi-roadtobox-link {
  color: var(--arena);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.crear-competi-roadtobox-link:hover {
  opacity: 0.9;
}

/* Pantalla "Ya soy cliente" — WodBuster (crear competición) */
.crear-competi--soy-cliente-wb {
  width: calc(100% - 32px);
  max-width: 620px;
  margin-left: auto;
  margin-right: auto;
  padding: 0;
  box-sizing: border-box;
}

.crear-competi-soy-cliente-sheet {
  background: #0f0f0f;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(255, 255, 255, 0.04) inset;
  padding: 2.125rem 2.25rem 1.75rem;
  overflow: hidden;
  color: rgba(255, 255, 255, 0.88);
}

.crear-competi-soy-cliente-sheet .crear-competi-titulo {
  color: #fafafa;
}

.crear-competi-soy-cliente-head {
  text-align: center;
  margin-bottom: 1.15rem;
}

.crear-competi-soy-cliente-titulo {
  position: relative;
  padding-bottom: 0.45rem;
  margin-bottom: 0.3rem !important;
}

.crear-competi-soy-cliente-titulo::after {
  content: "";
  display: block;
  width: 2.75rem;
  height: 3px;
  margin: 0.55rem auto 0;
  border-radius: 999px;
  background: linear-gradient(90deg, var(--arena, #4cedab), #34d399);
}

.crear-competi-soy-cliente-sheet .crear-competi-badge {
  background: rgba(255, 255, 255, 0.08);
  color: #e2e8f0;
  border: 1px solid rgba(255, 255, 255, 0.16);
  box-shadow: none;
}

.crear-competi-soy-cliente-lead {
  margin-top: 0.55rem !important;
  margin-bottom: 0 !important;
  font-size: 0.97rem;
  line-height: 1.55;
  color: rgba(255, 255, 255, 0.72);
}

.crear-competi-soy-cliente-lead--principal {
  text-align: center;
  max-width: 24rem;
  margin-left: auto;
  margin-right: auto;
}

.crear-competi-soy-cliente-lead strong {
  color: #fff;
  font-weight: 700;
}

.crear-competi-soy-cliente-aclaracion {
  font-size: 0.82rem;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 0.35rem 0;
  text-align: center;
  padding: 0;
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}

.crear-competi-soy-cliente-aclaracion strong {
  color: rgba(255, 255, 255, 0.88);
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-app-panel {
  background: linear-gradient(180deg, #181818 0%, #141414 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 14px;
  padding: 0.55rem 0.85rem 0.5rem;
  margin-bottom: 0.75rem;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.04) inset;
  text-align: left;
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-panel-kicker {
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.11em;
  color: #94a3b8;
  margin: 0 0 0.32rem 0;
}

.crear-competi-wb-pasos {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.28rem 0;
  border-radius: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-paso-num {
  flex-shrink: 0;
  width: 1.38rem;
  height: 1.38rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  font-size: 0.66rem;
  font-weight: 800;
  font-family: "Public Sans", system-ui, sans-serif;
  color: #fff;
  background: linear-gradient(145deg, var(--arena, #4cedab), #34d399);
  border: none;
  box-shadow: 0 1px 6px rgba(76, 237, 171, 0.28);
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-paso-label {
  font-weight: 500;
  font-size: 0.88rem;
  color: rgba(241, 245, 249, 0.92);
  letter-spacing: -0.01em;
}

/* Destino de la ruta: Torneos un poco más marcado (misma secuencia, cierre claro) */
.crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li:last-child .crear-competi-wb-paso-num {
  width: 1.46rem;
  height: 1.46rem;
  font-size: 0.68rem;
  box-shadow: 0 2px 10px rgba(76, 237, 171, 0.38), 0 0 0 2px rgba(76, 237, 171, 0.28);
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li:last-child .crear-competi-wb-paso-label {
  font-weight: 600;
  font-size: 0.93rem;
  color: #fff;
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-panel-footer {
  margin: 0.38rem 0 0 0;
  padding-top: 0.42rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.14);
  font-size: 0.84rem;
  color: rgba(255, 255, 255, 0.65);
  line-height: 1.45;
  text-align: center;
}

.crear-competi-soy-cliente-sheet .crear-competi-wb-panel-footer strong {
  color: #fff;
}

.crear-competi-actions--soy-cliente-footer {
  margin-top: 0 !important;
  padding-top: 1.1rem !important;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: stretch;
  justify-content: stretch;
}

.crear-competi-actions--soy-cliente-footer .crear-competi-soy-cliente-btn-volver,
.crear-competi-actions--soy-cliente-footer .crear-competi-soy-cliente-btn-cta {
  flex: 1 1 10rem;
  justify-content: center;
  text-align: center;
}

/* Secundario explícito (no confundir con primario; debe ganar a reglas globales de .newtorneo-page) */
.newtorneo-page .crear-competi--soy-cliente-wb .crear-competi-soy-cliente-btn-volver.cadmin-btn--secondary {
  background: rgba(255, 255, 255, 0.1) !important;
  color: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
}

.newtorneo-page .crear-competi--soy-cliente-wb .crear-competi-soy-cliente-btn-volver.cadmin-btn--secondary:hover {
  background: rgba(255, 255, 255, 0.16) !important;
  color: #fff !important;
  border-color: rgba(255, 255, 255, 0.34) !important;
}

.newtorneo-page .crear-competi--soy-cliente-wb .crear-competi-soy-cliente-btn-volver.cadmin-btn--secondary:focus-visible {
  outline: 2px solid rgba(76, 237, 171, 0.55);
  outline-offset: 2px;
}

.crear-competi-soy-cliente-sheet .cadmin-btn--outline {
  color: var(--arena, #4cedab);
  border-color: rgba(76, 237, 171, 0.55);
}

.crear-competi-soy-cliente-sheet .cadmin-btn--outline:hover {
  background: rgba(76, 237, 171, 0.12);
  color: #a7f3d0;
  border-color: var(--arena, #4cedab);
}

.crear-competi-soy-cliente-btn-cta {
  font-weight: 600;
  box-shadow: 0 4px 18px rgba(76, 237, 171, 0.22);
}

.crear-competi-soy-cliente-btn-cta:hover {
  box-shadow: 0 6px 22px rgba(76, 237, 171, 0.3);
}

/* Desktop: una fila con flechas de secuencia (no columnas con separadores verticales) */
@media (min-width: 641px) {
  .crear-competi-soy-cliente-sheet .crear-competi-wb-app-panel {
    text-align: center;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 0.35rem 0.55rem;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li {
    flex-direction: row;
    align-items: center;
    gap: 0.38rem;
    padding: 0.12rem 0;
    text-align: left;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li:not(:last-child)::after {
    content: "→";
    display: inline-flex;
    align-items: center;
    align-self: center;
    margin-left: 0.4rem;
    padding-right: 0.05rem;
    color: rgba(203, 213, 225, 0.92);
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.03em;
  }
}
@media (max-width: 640px) {
  br.crear-competi-soy-cliente-lead-br {
    display: none;
  }
  .crear-competi-soy-cliente-sheet {
    padding: 1.25rem 1.15rem 1.15rem;
    border-radius: 14px;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.28), 0 0 0 1px rgba(255, 255, 255, 0.05) inset;
  }
  .crear-competi-soy-cliente-head {
    text-align: left;
    margin-bottom: 0.85rem;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-badge {
    margin-bottom: 0.5rem;
  }
  .crear-competi-soy-cliente-titulo::after {
    margin: 0.45rem 0 0;
  }
  .crear-competi-soy-cliente-lead--principal {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
  .crear-competi-soy-cliente-aclaracion {
    text-align: left;
    margin-left: 0;
    margin-right: 0;
    max-width: none;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-app-panel {
    text-align: left;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-panel-footer {
    text-align: left;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos {
    display: flex;
    flex-direction: column;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li:not(:last-child)::after {
    content: none;
    display: none;
  }
  .crear-competi-soy-cliente-sheet .crear-competi-wb-pasos li {
    flex-direction: row;
    align-items: center;
    padding: 0.22rem 0;
    gap: 0.45rem;
    border-right: none;
    text-align: left;
  }
  .crear-competi-actions--soy-cliente-footer-responsive {
    flex-direction: column;
    align-items: stretch;
    gap: 0.65rem;
    padding-top: 0.95rem !important;
  }
  .crear-competi-actions--soy-cliente-footer-responsive .crear-competi-soy-cliente-btn-volver,
  .crear-competi-actions--soy-cliente-footer-responsive .crear-competi-soy-cliente-btn-cta {
    flex: none;
    width: 100%;
  }
  .crear-competi-actions--soy-cliente-footer-responsive .crear-competi-soy-cliente-btn-cta {
    order: -1;
    box-shadow: 0 2px 12px rgba(76, 237, 171, 0.18);
  }
  .crear-competi-actions--soy-cliente-footer-responsive .crear-competi-soy-cliente-btn-cta:hover {
    box-shadow: 0 3px 14px rgba(76, 237, 171, 0.22);
  }
}
@media (min-width: 641px) {
  .crear-competi-actions--soy-cliente-footer {
    flex-wrap: nowrap;
  }
}
.crear-competi-video-embed {
  position: relative;
  width: 100%;
  max-width: 560px;
  margin: 0 auto 1rem;
  aspect-ratio: 16/9;
  background: #111;
  border-radius: 8px;
  overflow: hidden;
}

.crear-competi-video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.crear-competi-paso .crear-competi-intro--lista-videos {
  margin-top: 0.35rem;
  margin-bottom: 0.75rem;
}

/* Videos */
.crear-competi-videos {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.5rem;
}

.crear-competi-video {
  display: inline-block;
  padding: 0.5rem 1rem;
  background: var(--negro-3);
  color: white;
  border-radius: 8px;
  text-decoration: none;
  font-size: 0.88rem;
  transition: all 0.2s;
}

.crear-competi-video:hover {
  background: var(--arena);
}

/* Vista previa (paso 4) */
.crear-competi-preview-wrap {
  margin-bottom: 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid #eee;
}

.crear-competi-preview-titulo {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin: 0 0 0.75rem 0;
}

.crear-competi-preview {
  opacity: 0.95;
}

.crear-competi-preview .nombre {
  font-size: 1.35rem;
  min-height: auto;
}

.crear-competi-preview .primaryactions .button {
  cursor: default;
  opacity: 0.8;
}

.crear-competi-preview-logo {
  background: var(--negro-2);
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.crear-competi-preview-logo-text {
  font-size: 0.65rem;
  color: #888;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Resumen */
.crear-competi-resumen {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1rem 0;
}

.resumen-item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 0.6rem 0;
  border-bottom: 1px solid #f0f0f0;
}

.resumen-item:last-child {
  border-bottom: none;
}

.resumen-label {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--negro-1);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.resumen-valor {
  font-size: 0.95rem;
  color: var(--negro);
  font-weight: 500;
}

/* Acciones */
.crear-competi-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid #eee;
}

.crear-competi--wizard .crear-competi-actions {
  justify-content: space-between;
  align-items: center;
  margin-top: 1.75rem;
  padding-top: 1.35rem;
  border-top-color: #ececec;
}

.crear-competi--wizard .crear-competi-actions .cadmin-btn--secondary {
  order: 1;
}

.crear-competi--wizard .crear-competi-actions .cadmin-btn--primary {
  order: 2;
  min-width: 9.5rem;
}

@media (max-width: 420px) {
  .crear-competi--wizard .crear-competi-actions {
    flex-direction: column-reverse;
    align-items: stretch;
  }
  .crear-competi--wizard .crear-competi-actions .cadmin-btn--primary,
  .crear-competi--wizard .crear-competi-actions .cadmin-btn--secondary {
    order: unset;
    width: 100%;
    justify-content: center;
  }
}
/* Compatibilidad precios (events) */
.newtorneo-title {
  font-family: "Public Sans", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  font-size: 1.5rem;
  color: var(--negro);
  margin: 0 0 0.5rem 0;
  line-height: 1.3;
}

.newtorneo-desc {
  color: var(--negro-1);
  margin: 0 0 1.5rem 0;
}

@media (max-width: 600px) {
  .crear-competi {
    padding: 0 max(0.65rem, env(safe-area-inset-right, 0px)) 2rem max(0.65rem, env(safe-area-inset-left, 0px));
    margin-top: 1rem;
    margin-left: auto;
    margin-right: auto;
  }
  .crear-competi--wizard {
    max-width: 100%;
  }
  .crear-competi-titulo {
    font-size: 1.35rem;
  }
  .crear-competi-wizard-meta {
    font-size: 0.7rem;
    padding: 0 0.25rem;
  }
  .crear-competi-wizard-progress {
    margin-left: max(0.35rem, env(safe-area-inset-left, 0px));
    margin-right: max(0.35rem, env(safe-area-inset-right, 0px));
  }
  .wizard-stepper-shell {
    padding: 0.85rem 0.45rem 0.5rem;
  }
  /* Línea base: ocultar en móvil para evitar desalineación con scroll; quedan los segmentos .wizard-step-line */
  .wizard-stepper-shell::before {
    display: none;
  }
  .wizard-stepper-scroll {
    padding-left: 0.15rem;
    padding-right: 0.15rem;
  }
  .wizard-stepper {
    padding: 0 0.1rem;
  }
  .wizard-step-wrap {
    flex: 0 0 auto;
  }
  .wizard-step {
    width: 36px;
    height: 36px;
    font-size: 0.8rem;
  }
  .wizard-step.done {
    font-size: 0.95rem;
  }
  .wizard-step-line {
    flex-basis: 24px;
    min-width: 14px;
    max-width: 32px;
    margin-top: 16px;
    height: 3px;
  }
  .wizard-step-line:not(.done) {
    background: var(--blanco-2);
  }
  .wizard-step-label {
    font-size: 0.68rem;
    max-width: 4.6rem;
  }
  .crear-competi-grid {
    grid-template-columns: 1fr;
  }
  .crear-competi-opcion--grande {
    flex-wrap: wrap;
  }
  .crear-competi-paso--wizard {
    padding-left: max(1rem, env(safe-area-inset-left, 0px));
    padding-right: max(1rem, env(safe-area-inset-right, 0px));
  }
  .crear-competi--wizard-publica,
  .crear-competi--legacy-onboarding {
    max-width: 100%;
  }
  .crear-competi--publica-intro .crear-competi-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .crear-competi--publica-intro .crear-competi-actions .cadmin-btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }
  /* Pantallas de elección / vídeos (sin wizard): botones a ancho completo */
  .newtorneo-page > .crear-competi:not(.crear-competi--wizard):not(.crear-competi--wizard-publica) .crear-competi-actions {
    flex-direction: column;
    align-items: stretch;
  }
  .newtorneo-page > .crear-competi:not(.crear-competi--wizard):not(.crear-competi--wizard-publica) .crear-competi-actions .cadmin-btn {
    width: 100%;
    justify-content: center;
    min-height: 44px;
  }
}
@media (max-width: 480px) {
  .crear-competi-paso,
  .crear-competi-paso--wizard {
    padding: 1.35rem 1rem 1.5rem;
    border-radius: 12px;
  }
  .crear-competi--wizard .crear-competi-paso-titulo {
    font-size: 1.1rem;
  }
  .crear-competi-opcion {
    padding: 0.85rem 1rem;
  }
}
/* Responsive */
@media (max-width: 900px) {
  .cadmin-layout {
    flex-direction: column;
  }
  .cadmin-sidebar {
    width: 100%;
    border-right: none;
    border-bottom: 1px solid #e0e0e0;
    padding: 0.75rem;
  }
  .cadmin-nav-section {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding: 0;
    margin-bottom: 0;
  }
  .cadmin-nav-group {
    margin-bottom: 0.5rem;
  }
  .cadmin-nav-group .cadmin-nav-sub {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding-left: 0;
  }
  .cadmin-nav-group .cadmin-nav-sub .cadmin-nav-item {
    padding: 0.5rem 0.75rem;
  }
  .cadmin-nav-group-title {
    padding: 0.5rem 0.75rem !important;
  }
  .cadmin-nav-title {
    display: none;
  }
  .cadmin-nav-item {
    padding: 0.5rem 0.75rem;
    border-radius: 6px;
    border-left: none !important;
  }
  .cadmin-nav-item.active {
    border-radius: 6px;
  }
  .cadmin-grid {
    grid-template-columns: 1fr;
  }
  .cadmin-form-row {
    grid-template-columns: 1fr;
  }
  .cadmin-toggles-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 600px) {
  .cadmin-header {
    padding: 1rem;
  }
  .cadmin-header-actions {
    display: none;
  }
  .cadmin-title {
    font-size: 1.25rem;
  }
  .cadmin-main {
    padding: 1rem;
  }
  .cadmin-cards-row {
    grid-template-columns: 1fr;
  }
  .cadmin-tabs {
    gap: 0.15rem;
  }
  .cadmin-tab {
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
  }
  .cadmin-tab-content {
    padding: 1rem;
  }
  .cadmin-form-actions {
    flex-direction: column;
  }
  .cadmin-form-actions .cadmin-btn {
    width: 100%;
    justify-content: center;
  }
}
