/* ===========================================================
   NEKO · E-AWARDS

   Hereda los tokens de styles.css. La base sigue siendo la de la web:
   beige, tarjetas blancas, burdeos y Playfair.

   SOBRE EL ORO: la paleta del club es burdeos + blanco y no admite un
   tercer color, con UNA excepción anotada en el MASTER — el chip de Neko
   Member Oro y esta sección. Aquí el oro es el metal del premio, no
   decoración: se usa en el podio, en el E-Award de Oro y poco más.

   Los valores están medidos, no elegidos a ojo: sobre tarjeta blanca con
   el fondo al 9%, el texto #8A6A12 da 4.65:1 (AA) y el borde #96731B da
   3.06:1 (mínimo para elementos de interfaz). Un oro más claro se queda
   en 2:1 y no se lee. No aclararlos.
   =========================================================== */

/* ===========================================================
   LA ZONA PREMIUM — negro y oro (20/8/2026)

   Encargo del cliente: «que la parte de los e-awards sea de los mismos
   colores que tenía en la página, negro, dorado y demás, que sea como
   una zona premium».

   ⚠️ LOS COLORES NO SE HAN ELEGIDO: SE HAN MEDIDO EN LA APP ORIGINAL.
   E-Awards sigue viva en `e-awards-bd173.web.app`, así que se abrió y se
   muestrearon los valores calculados en pantalla en vez de inventar un
   negro y un oro «parecidos». Lo que se encontró:

     fondo        #0B0B0B      texto       #F2EFE7
     superficie   #141414      atenuado    #F2EFE7 al 50% / 30%
     borde        #242424      ORO         #D4AF37
     rojo         #B3181B · #D43B3E

   📌 **Qué NO se ha portado, y es una decisión.** La app original pone
   los titulares en **Noto Serif JP** y las esquinas a **radio 0**. Aquí
   se quedan Playfair y los 22px de siempre: el encargo era de COLOR, y
   cambiar además la tipografía y la forma haría que esta sección
   pareciera otra web en vez de una zona distinta de la misma. Si se
   quiere ir hasta ahí, se pide y se hace — pero que sea una decisión.

   ⚠️ ESTO NO REPINTA COMPONENTES, REDEFINE TOKENS. Todo `eawards.css`
   —y el shell entero— ya consume `--surface`, `--text`, `--border` y los
   cuatro tokens del oro, así que basta con darles otro valor dentro de
   la zona. Repintar clase por clase habría dejado la mitad clara en
   cuanto alguien añadiera un componente nuevo.

   ⚠️ Y EL ORO CAMBIA DE VALOR A PROPÓSITO. Los de abajo (#8A6A12 y
   compañía) están medidos para texto sobre TARJETA BLANCA; sobre el
   negro se hunden. Es la misma trampa que ya avisaba `mi-espacio.css`:
   un oro no vale para los dos fondos. #D4AF37 sobre #0B0B0B da 9,4:1.
   =========================================================== */
body[data-zona="eawards"]{
  --lienzo:#0B0B0B;
  --surface:#141414;
  --surface-soft:#1A1A1A;
  --surface-alt:#101010;
  --border:#242424;
  --text:#F2EFE7;
  --text-muted:rgba(242,239,231,.62);
  --on-dark:#F2EFE7;
  --on-dark-muted:rgba(242,239,231,.62);

  /* Las sombras de la web son burdeos con alfa: sobre negro no existen.
     Aquí levantan con negro macizo, que es lo que separa una tarjeta
     #141414 de un fondo #0B0B0B. */
  --shadow-sm:0 1px 2px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.4);
  --shadow-md:0 8px 28px rgba(0,0,0,.55);
  --shadow-lg:0 24px 60px rgba(0,0,0,.65);

  /* EL ORO VA EN LA ZONA, NO EN `.ea`, y esto costó un diagnóstico.

     Estaba declarado solo en `.ea`, que es el contenedor del contenido —
     pero las PESTAÑAS de la sección viven fuera de él. Las variables CSS
     se heredan hacia abajo, así que ahí `var(--oro-solido)` no existía:
     la declaración quedaba inválida y el color caía en silencio a la
     regla de debajo, que es burdeos. Se veía como «mi regla casa y no se
     aplica», medido 1,85:1 sobre negro.

     Declarándolo en el `<body>` lo tiene toda la página. */
  --oro-texto:#D4AF37;
  --oro-borde:rgba(212,175,55,.45);
  --oro-fondo:rgba(212,175,55,.10);
  --oro-solido:#D4AF37;

  /* TIPOGRAFIA DE LA ORIGINAL (20/8/2026). Las tres que usa, medidas en
     su pantalla: Noto Serif JP 700 en los titulares —con el espaciado
     abierto, que es lo que le da el aire de gala—, Cormorant Garamond
     en la prosa larga e Inter en la interfaz, que ya era la de aqui.

     `--font-display` lo consumen h1/h2/h3 y la marca, asi que cambiarlo
     aqui basta: no hay que tocar ni una regla de titulares. */
  --font-display:"Noto Serif JP", "Playfair Display", Georgia, serif;
  --font-prosa:"Cormorant Garamond", Georgia, serif;

  /* ESQUINAS RECTAS. La original no tiene un solo radio salvo en las
     pildoras, que van a 9999px. Aqui `--r-full` se queda: los chips y
     los botones pildora son de la ESTRUCTURA de la web, y cuadrarlos
     tambien habria cambiado la forma de cada boton del shell. */
  --r-sm:0px;
  --r-md:0px;
  --r-lg:0px;
}

/* EL SEIGAIHA — el patron de olas japonés del fondo, literal de la
   original: dos capas de circulos en oro al 5% y al 4%, en rejilla de
   40×20. Es «el fondo negro con los detalles» que pidio el cliente, y no
   es decoracion gratuita: es lo que evita que una pantalla entera de
   negro plano parezca un error de carga.

   Va en el `::before` que el beige usaba para su micropigmento — ese
   hueco ya existia, esta fijado al viewport y no captura clics. */
body[data-zona="eawards"]::before{
  display:block;
  opacity:1;
  mix-blend-mode:normal;
  background-image:
    radial-gradient(circle at 50% 100%, transparent 18px, rgba(212,175,55,.05) 19px, transparent 20px),
    radial-gradient(circle at 50% 100%, transparent 10px, rgba(212,175,55,.04) 11px, transparent 12px);
  background-size:40px 20px, 40px 20px;
}

/* EL HILO DE ORO DE LAS TARJETAS. En la original el borde no es gris:
   es oro a un 20% y de 0,8px — casi invisible, y es lo que separa una
   caja del fondo sin dibujar una reja. */
body[data-zona="eawards"] .panel,
body[data-zona="eawards"] .panel-tarjeta,
body[data-zona="eawards"] .ea-cat,
body[data-zona="eawards"] .ea-fila,
body[data-zona="eawards"] .ea-candidato,
body[data-zona="eawards"] .ea-resultado,
body[data-zona="eawards"] .ea-opcion,
body[data-zona="eawards"] .vacio-panel{
  border-color:rgba(212,175,55,.2);
}

/* La prosa larga en Cormorant, como la original. Solo los parrafos de
   texto corrido: en las etiquetas y las cifras esta serif se lee peor
   que la sans, que es justo el motivo por el que existe `--font-num`. */
body[data-zona="eawards"] .ea p,
body[data-zona="eawards"] .ea-hero p{
  font-family:var(--font-prosa);
  /* Cormorant tiene la x pequeña: al mismo tamaño en px se lee un punto
     por debajo del resto. Se compensa aqui en vez de tocar cada regla. */
  font-size:1.08em;
  line-height:1.62;
}

/* ⚠️ El micropigmento del beige NO se apaga: se SUSTITUYE por el seigaiha,
   arriba. Aquí estuvo un rato un `display:none` heredado de la primera
   versión —cuando se creía que la original era negro plano— y, al venir
   más abajo en el archivo con la misma especificidad, se comía el patrón
   sin dar ningún error. Si vuelves a ver el fondo liso, busca otro
   `::before` por debajo antes que un fallo en el degradado. */

/* El panel lateral entra en la zona. Es lo que hace que se note que has
   ENTRADO en algún sitio, en vez de una página oscura dentro de una web
   clara. El hilo de oro a la derecha es el borde de la sala. */
body[data-zona="eawards"] .shell-nav{
  background:linear-gradient(180deg,#141414,#0B0B0B);
  border-right:1px solid rgba(212,175,55,.22);
}
body[data-zona="eawards"] .shell-top{
  background:color-mix(in srgb, #0B0B0B 88%, transparent);
  border-bottom:1px solid rgba(212,175,55,.14);
}

/* El burdeos macizo sobre negro se apaga (1,9:1 contra el fondo): un
   botón primario dejaba de leerse como botón. En la zona sube al tono
   claro de la escala, que sigue siendo el burdeos de la marca. */
body[data-zona="eawards"] .btn-primary{
  background:var(--burgundy-500);
  border-color:var(--burgundy-500);
  color:#fff;
}
body[data-zona="eawards"] .btn-primary:hover{
  background:var(--burgundy-400);
  border-color:var(--burgundy-400);
}

/* ⚠️ EL BURDEOS NO VALE COMO TEXTO SOBRE NEGRO, Y SE USA EN MUCHOS SITIOS.

   Medido pantalla por pantalla con el fondo compuesto: la pestaña activa
   1,85:1, el enlace de normas 1,73:1, los puntos del ranking 1,73:1, el
   recuento de votaciones 1,64:1 y los rótulos de categoría 2,25:1.
   Mínimo 4,5. **26 fallos** repartidos por cuatro de las cinco pantallas.

   Se arregla en el TOKEN y no selector a selector: perseguirlos uno a uno
   deja fuera el siguiente que alguien añada, y en esta sección el acento
   YA no es el burdeos — es el oro. Es lo que hace la app original.

   📌 Solo se remapean el 700 y el 600, que son los que se usan como
   letra. El 800 y el 900 se quedan: son los fondos del hero y del panel
   lateral, y ahí el burdeos sigue siendo el burdeos. */
body[data-zona="eawards"]{
  --burgundy-700:#D4AF37;
  --burgundy-600:#E0C25C;
}

/* Los TRES sitios donde ese token pintaba un FONDO y no una letra. Al
   volverse oro, el texto blanco de encima se queda en 1,7:1: pasa a
   negro, que sobre oro da 9,4:1 y además es como se ven las medallas.

   Los tres salieron midiendo, no leyendo: el de la fecha del próximo
   evento aparece solo en la portada y se habría colado. */
body[data-zona="eawards"] .ea-estado.abierta,
body[data-zona="eawards"] .ea-pastilla[aria-pressed="true"],
body[data-zona="eawards"] .ea-proximo .fecha{
  color:#0B0B0B;
}

/* Los oros de TARJETA BLANCA, intactos. Solo se aplican fuera de la zona
   oscura: quitar el `data-zona` del <body> devuelve la sección al beige
   sin tocar una línea más.

   ⚠️ Van con el guardia `:where(...)` y no sueltos porque `.ea` está DENTRO
   del body: si declarara los oros claros sin condición, ganaría por estar
   más abajo en el árbol y se comería los de la zona. */
.ea:where(body:not([data-zona="eawards"]) *){
  --oro-texto:#8A6A12;
  --oro-borde:#96731B;
  --oro-fondo:rgba(184,145,42,.09);
  --oro-solido:#B8912A;
}

/* ---------- cabecera de sección ---------- */
.ea-hero{
  text-align:center;border-radius:var(--r-lg);
  background:linear-gradient(160deg,var(--burgundy-800),var(--burgundy-900));
  color:var(--on-dark);padding:clamp(28px,4vw,52px) clamp(20px,3vw,40px);
  box-shadow:var(--shadow-md);position:relative;overflow:hidden;
}
.ea-hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.55;
  background:radial-gradient(600px 320px at 85% -20%,rgba(184,145,42,.22),transparent 62%);
}
.ea-hero > *{position:relative;z-index:1;}
.ea-hero h1{color:#fff;font-size:clamp(2.4rem,6vw,4rem);margin:10px 0 6px;}
.ea-hero .ea-lema{
  font-family:var(--font-display);font-style:italic;
  color:var(--on-dark-muted);font-size:1.08rem;margin:0 auto;max-width:36ch;
}
.ea-et{
  display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.2em;
  text-transform:uppercase;color:#fff;background:rgba(255,255,255,.16);
  padding:5px 14px;border-radius:var(--r-full);
}
.ea-hero-acc{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:var(--space-4);}
.ea-hero .btn-fantasma{background:rgba(255,255,255,.14);color:#fff;border-color:transparent;}
.ea-hero .btn-fantasma:hover{background:rgba(255,255,255,.24);}
.ea-hero :focus-visible{outline-color:#fff;}

/* Próximo evento dentro del hero */
.ea-proximo{
  display:inline-flex;align-items:center;gap:14px;margin-top:var(--space-3);
  border:1px solid rgba(184,145,42,.35);background:rgba(0,0,0,.22);
  padding:10px 18px;border-radius:var(--r-md);text-align:left;text-decoration:none;
  transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.ea-proximo:hover{background:rgba(0,0,0,.34);border-color:var(--oro-solido);}
.ea-proximo .fecha{
  background:var(--burgundy-600);color:#fff;font-size:.66rem;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;padding:5px 10px;border-radius:var(--r-sm);white-space:nowrap;
}
.ea-proximo .tit{display:block;font-weight:700;color:var(--oro-solido);font-size:.95rem;}
.ea-proximo .sitio{display:block;font-size:.8rem;color:var(--on-dark-muted);}

/* ---------- navegación interna de la sección ---------- */
.ea-tabs{
  display:flex;gap:4px;flex-wrap:wrap;
  border-bottom:1px solid var(--border);padding-bottom:2px;
}
.ea-tabs a{
  display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;
  text-decoration:none;font-size:.92rem;font-weight:600;color:var(--text-muted);
  border-bottom:3px solid transparent;
  transition:color var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.ea-tabs a:hover{color:var(--burgundy-700);}
.ea-tabs a[aria-current="page"]{color:var(--burgundy-700);border-bottom-color:var(--burgundy-700);}

/* ---------- categorías ---------- */
.ea-cats{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-2);
}
.ea-cat{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);
  padding:var(--space-3);text-align:center;box-shadow:var(--shadow-sm);
  transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease);
}
.ea-cat:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:var(--oro-borde);}
.ea-kanji{
  display:block;font-family:var(--font-display);font-size:2.6rem;line-height:1;
  color:var(--oro-texto);margin-bottom:10px;
}
.ea-cat h3{font-size:1.05rem;margin-bottom:12px;}
.ea-cat ul{
  list-style:none;margin:0;padding:12px 0 0;border-top:1px solid var(--border);
  display:grid;gap:5px;font-size:.82rem;color:var(--text-muted);
}

/* ---------- sistema de puntos ---------- */
.ea-puntos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.ea-punto{
  text-align:center;padding:var(--space-2) 8px;border-radius:var(--r-md);
  border:1px solid var(--border);background:var(--surface);
}
.ea-punto .et{
  display:block;font-size:.66rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--text-muted);margin-bottom:6px;
}
.ea-punto .n{display:block;font-family:var(--font-num);font-size:1.7rem;font-weight:800;}
/* El primer puesto es el único con oro: es el premio, no un adorno. */
.ea-punto.es-oro{background:var(--oro-fondo);border-color:var(--oro-borde);}
.ea-punto.es-oro .n,.ea-punto.es-oro .et{color:var(--oro-texto);}

/* ---------- ranking ---------- */
.ea-filtros{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--space-3);}
.ea-lista{list-style:none;margin:0;padding:0;display:grid;gap:8px;}
.ea-fila{
  display:flex;align-items:center;gap:var(--space-2);
  background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);
  padding:12px 16px;
}
.ea-fila.es-podio{border-color:var(--oro-borde);background:var(--oro-fondo);}
.ea-pos{
  flex:none;width:36px;text-align:center;font-family:var(--font-num);
  font-size:1.5rem;font-weight:700;color:var(--text-muted);
}
.ea-fila.es-podio .ea-pos{color:var(--oro-texto);font-size:1.9rem;}
.ea-fila > div{flex:1;min-width:0;}
.ea-nick{
  font-weight:700;font-size:.98rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
}
.ea-eventos{font-size:.8rem;color:var(--text-muted);margin:2px 0 0;}
.ea-juego{
  font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:3px 8px;border-radius:var(--r-full);
  border:1px solid var(--border);color:var(--text-muted);background:var(--surface-alt);
}
.ea-jurado{
  flex:none;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--r-full);
  border:1px solid var(--oro-borde);color:var(--oro-texto);background:var(--oro-fondo);
}
.ea-total{flex:none;text-align:right;}
.ea-total .n{display:block;font-family:var(--font-num);font-size:1.6rem;font-weight:800;color:var(--burgundy-700);line-height:1;}
.ea-fila.es-podio .ea-total .n{color:var(--oro-texto);}
.ea-total .u{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}

/* ---------- votaciones ---------- */
.ea-votacion{margin-bottom:var(--space-3);}
.ea-votacion-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:var(--space-3);}
.ea-estado{
  flex:none;font-size:.66rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:5px 12px;border-radius:var(--r-full);border:1px solid var(--border);
}
.ea-estado.abierta{background:var(--burgundy-700);color:#fff;border-color:var(--burgundy-700);}
.ea-estado.cerrada{background:var(--oro-fondo);color:var(--oro-texto);border-color:var(--oro-borde);}

.ea-candidatos{display:grid;gap:8px;}
.ea-candidato{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:52px;padding:12px 16px;text-align:left;
  border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);
  font:inherit;font-size:.95rem;font-weight:600;color:var(--text);cursor:pointer;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.ea-candidato:hover:not(:disabled){border-color:var(--burgundy-600);background:var(--surface-soft);}
.ea-candidato:disabled{cursor:not-allowed;opacity:.55;}
.ea-candidato.es-mio{border-color:var(--oro-borde);background:var(--oro-fondo);color:var(--oro-texto);}
.ea-candidato .nota{font-size:.8rem;font-weight:400;color:var(--text-muted);}
.ea-candidato .marca{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--oro-texto);}

.ea-ya-votado{
  border:1px solid var(--burgundy-600);background:var(--surface-soft);
  border-radius:var(--r-md);padding:12px 16px;margin-bottom:var(--space-2);
  font-size:.9rem;font-weight:600;color:var(--burgundy-700);
  display:flex;align-items:center;gap:10px;
}
.ea-ya-votado svg{width:20px;height:20px;flex:none;}

/* Resultados: la barra va detrás del texto, nunca encima. */
.ea-resultado{
  position:relative;overflow:hidden;
  border:1px solid var(--border);border-radius:var(--r-md);
  padding:12px 16px;background:var(--surface);
}
.ea-resultado .barra{position:absolute;inset:0 auto 0 0;background:var(--oro-fondo);}
.ea-resultado .fila{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;}
.ea-resultado .nom{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ea-resultado .n{flex:none;font-weight:800;font-variant-numeric:tabular-nums;}
.ea-resultado.es-ganador{border-color:var(--oro-borde);}
.ea-resultado.es-ganador .nom,.ea-resultado.es-ganador .n{color:var(--oro-texto);}

/* ---------- unirse ---------- */
.ea-opciones{display:grid;gap:8px;}
.ea-opcion{
  display:flex;align-items:center;gap:14px;width:100%;min-height:56px;
  padding:12px 16px;text-align:left;cursor:pointer;
  border:1.5px solid var(--border);border-radius:var(--r-md);background:var(--surface);
  font:inherit;font-size:.98rem;font-weight:600;color:var(--text);
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease);
}
.ea-opcion:hover{border-color:var(--burgundy-600);background:var(--surface-soft);}
.ea-opcion[aria-pressed="true"]{border-color:var(--oro-borde);background:var(--oro-fondo);}
.ea-opcion .k{font-family:var(--font-display);font-size:1.5rem;color:var(--oro-texto);flex:none;width:28px;text-align:center;}
.ea-opcion .t{flex:1;}
.ea-opcion .caja{
  flex:none;width:22px;height:22px;border-radius:6px;border:2px solid var(--border);
  display:grid;place-items:center;font-size:.8rem;font-weight:800;color:transparent;
}
.ea-opcion[aria-pressed="true"] .caja{background:var(--oro-solido);border-color:var(--oro-borde);color:#fff;}

.ea-pastillas{display:flex;flex-wrap:wrap;gap:8px;}
.ea-pastilla{
  min-height:44px;padding:0 16px;border-radius:var(--r-full);cursor:pointer;
  border:1.5px solid var(--border);background:var(--surface);color:var(--text);
  font:inherit;font-size:.88rem;font-weight:600;
  transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease);
}
.ea-pastilla:hover{border-color:var(--burgundy-600);}
.ea-pastilla[aria-pressed="true"]{background:var(--burgundy-700);color:#fff;border-color:var(--burgundy-700);}

/* ---------- torneo ---------- */
.ea-bracket{display:flex;gap:var(--space-3);overflow-x:auto;padding-bottom:var(--space-2);}
.ea-ronda{flex:none;width:230px;display:grid;gap:10px;align-content:start;}
.ea-ronda > h3{
  font-family:var(--font-ui);font-size:.72rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--text-muted);margin:0 0 2px;text-align:center;
}
.ea-partida{
  border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);
  overflow:hidden;font-size:.9rem;
}
.ea-jugador{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;
}
.ea-jugador + .ea-jugador{border-top:1px solid var(--border);}
.ea-jugador .n{font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-muted);}
.ea-jugador.gana{background:var(--oro-fondo);}
.ea-jugador.gana span{color:var(--oro-texto);font-weight:700;}
.ea-jugador.vacio{color:var(--text-muted);font-style:italic;}

.ea-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-3);}
.ea-grupo table{width:100%;border-collapse:collapse;}
.ea-grupo th,.ea-grupo td{
  text-align:left;padding:9px 8px;border-bottom:1px solid var(--border);font-size:.86rem;
}
.ea-grupo th{
  font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-muted);font-weight:600;
}
.ea-grupo td:not(:first-child),.ea-grupo th:not(:first-child){text-align:center;width:44px;}
.ea-grupo tr:last-child td{border-bottom:0;}
.ea-grupo tbody tr:first-child td{font-weight:700;color:var(--oro-texto);}

/* ---------- normas ---------- */
.ea-norma{margin-bottom:var(--space-2);}
.ea-norma h3{font-family:var(--font-ui);font-size:1.02rem;margin-bottom:10px;}
.ea-norma p,.ea-norma li{color:var(--text-muted);font-size:.95rem;}
.ea-norma ul{margin:0;padding-left:20px;display:grid;gap:6px;}
.ea-destacado-oro{
  border:1px solid var(--oro-borde);background:var(--oro-fondo);
  border-radius:var(--r-md);padding:var(--space-2) var(--space-3);
}
.ea-destacado-oro strong{color:var(--oro-texto);}
.ea-premios{display:grid;gap:10px;}
.ea-premio{
  border:1px solid var(--border);border-radius:var(--r-md);
  padding:var(--space-2) var(--space-3);background:var(--surface-alt);
}
.ea-premio.oro{border-color:var(--oro-borde);background:var(--oro-fondo);}
.ea-premio strong{display:block;margin-bottom:4px;}
.ea-premio.oro strong{color:var(--oro-texto);}

/* ---------- colaboradores ---------- */
.ea-colabora{text-align:center;padding-top:var(--space-3);border-top:1px solid var(--border);}
.ea-colabora .et{
  font-size:.7rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:12px;
}
.ea-marcas{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-bottom:10px;}
.ea-marcas span{font-size:.9rem;font-weight:700;letter-spacing:.04em;color:var(--oro-texto);}
.ea-espacios{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;}
.ea-espacios span{font-size:.78rem;font-weight:600;color:var(--text-muted);}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width:700px){
  .ea-puntos{grid-template-columns:repeat(2,1fr);}
  .ea-votacion-cab{flex-direction:column;}
  .ea-fila{flex-wrap:wrap;}
  .ea-jurado{order:3;}
  .ea-proximo{flex-direction:column;align-items:flex-start;gap:8px;}
  /* Nada por debajo de 11px: en este proyecto ya hubo una queja por
     texto ilegible en móvil. */
  .ea-punto .et,.ea-juego,.ea-jurado,.ea-estado{font-size:.72rem;}
}
