/* =====================================================================
   VERSIÓN 2 — ESTRUCTURA «NEXUS» (la consola del entrenador)
   v2.css pone la paleta; aquí va la DISPOSICIÓN que separa la versión 2
   de la 1: raíl de sección, canal de color por sección, paneles con
   esquinas de visor y plantillas (dossier, listado, consola).
   Solo lo carga layouts/main_v2.php.
   ===================================================================== */

/* ---------- Canales: un color por sección ---------- */
.nx-canal-rojo     { --nx-canal: #ef4444; --nx-canal-txt: #c62828; }
.nx-canal-amarillo { --nx-canal: #ffd52a; --nx-canal-txt: #8a6500; }
.nx-canal-naranja  { --nx-canal: #fb8c2b; --nx-canal-txt: #b4540a; }
.nx-canal-morado   { --nx-canal: #a78bfa; --nx-canal-txt: #6d28d9; }
.nx-canal-cian     { --nx-canal: #26d7e9; --nx-canal-txt: #0a6873; }
.nx-canal-violeta  { --nx-canal: #c084fc; --nx-canal-txt: #7e22ce; }
.nx-canal-verde    { --nx-canal: #4ade80; --nx-canal-txt: #15803d; }
.nx-canal-azul     { --nx-canal: #3b9bff; --nx-canal-txt: #1259c3; }
[data-theme="dark"] .nx-canal-rojo     { --nx-canal-txt: #ff8a8a; }
[data-theme="dark"] .nx-canal-amarillo { --nx-canal-txt: #ffd52a; }
[data-theme="dark"] .nx-canal-naranja  { --nx-canal-txt: #ffb066; }
[data-theme="dark"] .nx-canal-morado   { --nx-canal-txt: #c4b5fd; }
[data-theme="dark"] .nx-canal-cian     { --nx-canal-txt: #5ee6f2; }
[data-theme="dark"] .nx-canal-violeta  { --nx-canal-txt: #d8b4fe; }
[data-theme="dark"] .nx-canal-verde    { --nx-canal-txt: #86efac; }
[data-theme="dark"] .nx-canal-azul     { --nx-canal-txt: #8cc4ff; }

/* ---------- Esquinas de visor (firma visual de los paneles) ---------- */
.nx-visor { position: relative; }
.nx-visor::before, .nx-visor::after {
    content: ""; position: absolute; width: 14px; height: 14px; pointer-events: none;
    border-color: var(--nx-canal, var(--v2-amarillo)); border-style: solid; opacity: .9;
}
.nx-visor::before { top: -1px; left: -1px; border-width: 2px 0 0 2px; border-top-left-radius: 6px; }
.nx-visor::after { bottom: -1px; right: -1px; border-width: 0 2px 2px 0; border-bottom-right-radius: 6px; }

/* ---------- Raíl de sección ---------- */
.nx-shell { display: grid; grid-template-columns: 236px minmax(0, 1fr); gap: 30px; align-items: start; }
.nx-cont { min-width: 0; }
.nx-rail {
    position: sticky; top: calc(var(--header-h, 72px) + 16px);
    max-height: calc(100vh - var(--header-h, 72px) - 32px); overflow: auto; scrollbar-width: thin;
    padding: 14px 10px 12px; border-radius: 16px;
    background: var(--v2-superficie); border: 1px solid var(--border-color);
}
[data-theme="dark"] .nx-rail { background: linear-gradient(180deg, #0f1b2d, #0b1524); border-color: #1e2e45; }
.nx-rail::before {   /* barra de canal arriba */
    content: ""; position: absolute; left: 18px; right: 18px; top: 0; height: 3px; border-radius: 0 0 3px 3px;
    background: var(--nx-canal);
}
.nx-rail-cab { display: flex; align-items: center; gap: 12px; padding: 6px 8px 14px; margin-bottom: 8px; text-decoration: none; color: var(--text-main); border-bottom: 1px dashed var(--border-color); }
.nx-rail-ico { flex: 0 0 40px; height: 40px; display: grid; place-items: center; border-radius: 11px; font-size: 18px;
    color: var(--nx-canal-txt); background: color-mix(in srgb, var(--nx-canal) 16%, transparent); border: 1px solid color-mix(in srgb, var(--nx-canal) 40%, transparent); }
.nx-rail-cab small { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-rail-cab b { display: block; font: 800 16px/1.2 var(--font-display); }
.nx-rail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.nx-rail li a { position: relative; display: flex; align-items: center; gap: 11px; padding: 9px 10px 9px 12px; border-radius: 9px;
    text-decoration: none; color: var(--v2-texto-2); font: 600 14px/1.3 var(--font-primary); transition: background var(--transition-fast), color var(--transition-fast); }
.nx-rail li a i { flex: 0 0 18px; text-align: center; font-size: 14px; color: var(--v2-texto-3); transition: color var(--transition-fast); }
.nx-rail li a:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.nx-rail li a:hover i { color: var(--nx-canal-txt); }
.nx-rail li a.activo { color: var(--text-main); font-weight: 700; background: color-mix(in srgb, var(--nx-canal) 13%, transparent); }
.nx-rail li a.activo i { color: var(--nx-canal-txt); }
.nx-rail li a.activo::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 3px; background: var(--nx-canal); }

/* Con raíl, los envoltorios de página que se centraban solos (900-1200px en
   la versión 1) ocupan su columna; los bloques de lectura (FAQ, avisos) se
   quedan con su ancho de texto pero alineados a la izquierda, no flotando. */
.nx-cont :is(.v2-ficha, .pkx, .wallpapers-container, .ch-zona, .pk, .tn-wrap, .co-wrap, .cp-zona, .cp-wrap, .albp-pagina, .alb-pagina, .albs-pagina,
    .wk-page, .ex-wrap, .pkd-page, .trivia-page, .cv-hero, .mk-zona, .p3-wrap, .wg, .tp-pagina, .booster-container, .iv-pagina) { max-width: none; margin-left: 0; margin-right: 0; }
.nx-cont > .container, .nx-cont > * > .container { max-width: none; padding-left: 0; padding-right: 0; }
.nx-cont :is(.cv-hero, .cv-faq, .cv-credito, .fc-guia, .cries-faq, .cries-copyright, .artworks-copyright, .chat-info, .rz-about, .val-guide, .pk-aviso) { margin-left: 0; margin-right: 0; }

/* ---------- Móvil y tableta: el raíl pasa a pestañas deslizables ---------- */
@media (max-width: 1180px) {
    .nx-shell { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .nx-rail {
        position: sticky; top: var(--header-h, 64px); z-index: 40; max-height: none; overflow: visible;
        display: flex; align-items: center; gap: 10px; margin: -14px -16px 0; padding: 8px 16px;
        border-radius: 0; border-width: 0 0 1px; background: var(--v2-cabecera);
    }
    [data-theme="dark"] .nx-rail { background: var(--v2-cabecera); border-color: var(--v2-cabecera-borde); }
    .nx-rail::before { left: 0; right: 0; top: auto; bottom: -1px; height: 2px; border-radius: 0; }
    .nx-rail-cab { flex: 0 0 auto; padding: 0; margin: 0; border: 0; }
    .nx-rail-cab > span:last-child { display: none; }   /* el icono basta: el nombre ya va en la pestaña activa */
    .nx-rail-ico { flex-basis: 34px; height: 34px; font-size: 15px; }
    .nx-rail ul { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; scroll-snap-type: x proximity; }
    .nx-rail ul::-webkit-scrollbar { display: none; }
    .nx-rail li { flex: 0 0 auto; scroll-snap-align: start; }
    .nx-rail li a { padding: 7px 12px; white-space: nowrap; border: 1px solid var(--border-color); border-radius: 999px; font-size: 13px; }
    .nx-rail li a.activo { border-color: var(--nx-canal); }
    .nx-rail li a.activo::before { display: none; }
}
@media (min-width: 761px) and (max-width: 1180px) {
    .nx-rail { margin: -22px -30px 0; padding: 8px 30px; }
}

/* =====================================================================
   PLANTILLA «DOSSIER» — ficha Pokédex. La vista es la de la versión 1;
   aquí .pkx se disuelve (display: contents) y sus piezas se recolocan:
   el Pokémon fijo a la izquierda (imagen, tipos, grito, descripción) y
   todos los datos en la columna de la derecha.
   ===================================================================== */
@media (min-width: 1181px) {
    .v2-ficha { display: grid; grid-template-columns: 340px minmax(0, 1fr); column-gap: 26px; align-items: start; }
    .v2-ficha > .pkx { display: contents; }
    .v2-ficha > * { grid-column: 2; min-width: 0; }
    .v2-ficha .pkx-back { grid-column: 1 / -1; margin: 0 0 14px; }
    .v2-ficha .pkx-hero {
        grid-column: 1; grid-row: 2 / span 30; position: sticky; top: calc(var(--header-h, 72px) + 16px);
        grid-template-columns: 1fr; gap: 6px; padding: 22px 22px 24px; text-align: left;
        border-top-width: 0; border-radius: 18px;
    }
    .v2-ficha .pkx-hero::after {   /* franja con los colores de sus tipos */
        content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; z-index: 2;
        background: linear-gradient(90deg, var(--tc) 0 50%, var(--tc2) 50% 100%);
    }
    .v2-ficha .pkx-art img { max-width: 250px; }
    .v2-ficha .pkx-dexwm { top: 92px; right: -6px; transform: none; font-size: 150px; }
    .v2-ficha .pkx-meta { align-items: flex-start; }
    .v2-ficha .pkx-name { font-size: 36px; }
    .v2-ficha .pkx-cry { flex-wrap: wrap; justify-content: flex-start; }
    .v2-ficha .pkx-flavor { max-width: none; font-size: 14.5px; }
    .v2-ficha .pkx-body { margin-top: 0; }
    .v2-ficha .artworks-card, .v2-ficha .evo-card, .v2-ficha .pkx-faq-card, .v2-ficha .pkx-tcg { margin-top: 0; margin-bottom: 22px; }
    .v2-ficha .pkx-body { margin-bottom: 22px; }
    /* Rejillas a medida de la columna (6 cartas = 1 fila, 4 relacionados = 1 fila). */
    .v2-ficha .pkx-tcg-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .v2-ficha .pokedex-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* =====================================================================
   CABECERAS DE ZONA dentro del raíl: todas con la misma firma Nexus
   (esquinas de visor + franja del color de la sección), sea cual sea su
   diseño propio de la versión 1.
   ===================================================================== */
.nx-cont :is(.pg-hero, .ch-hero, .cv-hero, .co-hero, .cp-hero, .cries-hero, .ep-hero, .eps-hero, .evt-hero, .fc-hero, .qz-hero, .rz-hero, .artworks-hero, .games-banner, .forum-banner, .wallpapers-header, .v2-pag-cab-img) {
    position: relative; border-radius: 16px;
    box-shadow: inset 0 3px 0 var(--nx-canal), 0 0 0 1px color-mix(in srgb, var(--nx-canal) 22%, transparent);
}
.nx-cont .v2-pag-cab:not(.v2-pag-cab-img) h1::after {   /* subrayado corto del color de la sección */
    content: ""; display: block; width: 56px; height: 4px; margin-top: 12px; border-radius: 4px; background: var(--nx-canal);
}

/* =====================================================================
   POKÉMON GO — portada «radar»
   ===================================================================== */
.nx-pulso { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: #22c55e; box-shadow: 0 0 0 0 rgba(34,197,94,.6); animation: nxPulso 1.8s infinite; vertical-align: middle; }
@keyframes nxPulso { 70% { box-shadow: 0 0 0 9px rgba(34,197,94,0); } 100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); } }
.nx-go-cab { display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 26px; align-items: stretch; margin-bottom: 26px; }
.nx-go-titulo h1 { margin: 6px 0 10px; font: 800 clamp(30px, 3.4vw, 46px)/1.05 var(--font-display); letter-spacing: -.02em; }
.nx-go-titulo h1::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 12px; border-radius: 4px; background: var(--nx-canal); }
.nx-go-vivo { margin: 14px 0 0; font-weight: 800; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--nx-canal-txt); display: flex; align-items: center; gap: 9px; }
.nx-go-intro { margin: 0; max-width: 64ch; font-size: 16px; line-height: 1.6; color: var(--v2-texto-2); }
.nx-go-estado { display: flex; flex-direction: column; gap: 14px; padding: 18px; border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .nx-go-estado { background: radial-gradient(120% 90% at 100% 0%, color-mix(in srgb, var(--nx-canal) 16%, #0f1b2d), #0b1524); border-color: #1e2e45; }
.nx-go-cifras { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nx-go-cifras div { padding: 12px; border-radius: 12px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); }
.nx-go-cifras b { display: block; font: 800 34px/1 var(--font-display); font-variant-numeric: tabular-nums; color: var(--nx-canal-txt); }
.nx-go-cifras span { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-go-sig { display: grid; gap: 3px; padding: 12px 14px; border-radius: 12px; text-decoration: none; color: var(--text-main); border: 1px dashed color-mix(in srgb, var(--nx-canal) 55%, transparent); }
.nx-go-sig:hover { background: var(--v2-tarjeta-hover); }
.nx-go-sig small { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-go-sig b { font: 700 15px/1.3 var(--font-display); }
.nx-go-sig span { font-size: 13px; color: var(--nx-canal-txt); font-weight: 700; }
.nx-go-act { margin: auto 0 0; font-size: 12px; color: var(--v2-texto-3); }
.nx-go-act a { color: var(--nx-canal-txt); font-weight: 700; text-decoration: none; }

.nx-go-sec { margin-bottom: 30px; }
.nx-go-sec h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font: 800 22px var(--font-display); }
.nx-go-sec h2 > i { color: var(--nx-canal-txt); font-size: 18px; }
.nx-go-sec h2 small { padding: 2px 9px; border-radius: 999px; font: 800 12px var(--font-primary); background: color-mix(in srgb, var(--nx-canal) 18%, transparent); color: var(--nx-canal-txt); }

/* En curso: la primera tarjeta grande y el resto en mosaico */
.nx-go-curso { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.nx-go-ev { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; text-decoration: none; color: var(--text-main); background: var(--v2-superficie); border: 1px solid var(--border-color); transition: border-color var(--transition-fast), transform var(--transition-fast); }
[data-theme="dark"] .nx-go-ev { background: #0f1b2d; border-color: #1e2e45; }
.nx-go-ev:hover { border-color: var(--nx-canal); transform: translateY(-2px); }
.nx-go-ev-img { aspect-ratio: 16 / 7; background: #0b1426; overflow: hidden; }
.nx-go-ev-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nx-go-ev-txt { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; flex: 1 1 auto; }
.nx-go-cat { align-self: flex-start; padding: 2px 8px; border-radius: 5px; font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; background: color-mix(in srgb, var(--nx-canal) 18%, transparent); color: var(--nx-canal-txt); }
.nx-go-ev-txt b { font: 700 15.5px/1.3 var(--font-display); }
.nx-go-ev-txt small { font-size: 12px; color: var(--v2-texto-3); }
.nx-go-barra { display: block; height: 6px; margin-top: auto; border-radius: 6px; background: var(--v2-tarjeta); overflow: hidden; }
.nx-go-barra span { display: block; height: 100%; border-radius: 6px; background: linear-gradient(90deg, var(--nx-canal), #22c55e); }
.nx-go-quedan { font-size: 12.5px; font-weight: 700; color: var(--nx-canal-txt); }
.nx-go-ev-grande { grid-column: span 2; grid-row: span 2; }
.nx-go-ev-grande .nx-go-ev-img { aspect-ratio: auto; flex: 1 1 auto; min-height: 220px; }
.nx-go-ev-grande .nx-go-ev-txt b { font-size: 22px; }

/* Lo que llega (línea temporal) + accesos */
.nx-go-dos { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 26px; align-items: start; }
.nx-go-linea { list-style: none; margin: 0 0 12px; padding: 0; position: relative; }
.nx-go-linea::before { content: ""; position: absolute; left: 31px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--nx-canal), transparent); opacity: .5; }
.nx-go-dia { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; margin-bottom: 14px; }
.nx-go-fecha { position: relative; z-index: 1; align-self: start; display: grid; justify-items: center; padding: 8px 4px; border-radius: 12px; background: var(--v2-superficie); border: 1px solid color-mix(in srgb, var(--nx-canal) 45%, var(--border-color)); text-align: center; }
[data-theme="dark"] .nx-go-fecha { background: #0f1b2d; }
.nx-go-fecha b { font: 800 22px/1 var(--font-display); }
.nx-go-fecha span { font-size: 11px; font-weight: 800; text-transform: uppercase; color: var(--nx-canal-txt); }
.nx-go-fecha small { font-size: 10.5px; color: var(--v2-texto-3); }
.nx-go-dia ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.nx-go-dia a { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 12px; text-decoration: none; color: var(--text-main); background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .nx-go-dia a { background: #0f1b2d; border-color: #1e2e45; }
.nx-go-dia a:hover { border-color: var(--nx-canal); }
.nx-go-dia img { flex: 0 0 96px; width: 96px; height: 54px; border-radius: 8px; object-fit: cover; }
.nx-go-dia b { display: block; font: 700 14.5px/1.3 var(--font-display); }
.nx-go-dia small { display: block; margin-top: 2px; font-size: 12px; color: var(--v2-texto-3); }
.nx-go-accesos { list-style: none; margin: 0; padding: 6px; display: grid; gap: 2px; border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .nx-go-accesos { background: #0f1b2d; border-color: #1e2e45; }
.nx-go-accesos a { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 11px; text-decoration: none; color: var(--text-main); }
.nx-go-accesos a:hover { background: var(--v2-tarjeta-hover); }
.nx-go-accesos a > i { margin-left: auto; color: var(--v2-texto-3); font-size: 12px; }
.nx-go-acc-ico { flex: 0 0 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: var(--nx-canal-txt); background: color-mix(in srgb, var(--nx-canal) 14%, transparent); }
.nx-go-accesos b { display: block; font: 700 14.5px var(--font-display); }
.nx-go-accesos small { display: block; font-size: 12.5px; line-height: 1.4; color: var(--v2-texto-3); }
.nx-go .pg-credit { margin-top: 10px; }

@media (max-width: 1180px) {
    .nx-go-cab, .nx-go-dos { grid-template-columns: minmax(0, 1fr); }
    .nx-go-curso { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    /* En móvil, «En curso» es un carrusel: 8 tarjetas apiladas eran 3 pantallas. */
    .nx-go-curso { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 12px; margin: 0 -16px; padding: 0 16px 6px; scrollbar-width: none; }
    .nx-go-curso::-webkit-scrollbar { display: none; }
    .nx-go-ev, .nx-go-ev-grande { flex: 0 0 82%; scroll-snap-align: start; }
    .nx-go-ev-grande .nx-go-ev-img { aspect-ratio: 16 / 7; min-height: 0; flex: 0 0 auto; }
    .nx-go-ev-grande .nx-go-ev-txt b { font-size: 15.5px; }
    .nx-go-dia img { flex-basis: 72px; width: 72px; height: 44px; }
}
@media (prefers-reduced-motion: reduce) { .nx-pulso { animation: none; } }

/* =====================================================================
   POKÉMON CHAMPIONS — «cartel de combate». La vista es la de la versión 1;
   aquí la cabecera y la arena (el VS) se juntan en un cartel a dos
   columnas, y los bloques de la guía pasan a capítulos numerados con el
   número en grande al margen (son una explicación que se lee en orden).
   ===================================================================== */
@media (min-width: 1181px) {
    .nx-cont .ch-zona { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); column-gap: 26px; align-items: stretch; }
    .nx-cont .ch-zona > * { grid-column: 1 / -1; }
    .nx-cont .ch-zona > .ch-hero { grid-column: 1; margin: 0 0 28px; padding: 26px 28px; display: flex; flex-direction: column; justify-content: center;
        border: 1px solid var(--border-color); border-radius: 18px; background: var(--v2-superficie); }
    [data-theme="dark"] .nx-cont .ch-zona > .ch-hero { background: radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--nx-canal) 14%, #0f1b2d), #0b1524); border-color: #1e2e45; }
    .nx-cont .ch-zona > .ch-hero:not(:has(+ .ch-arena)) { grid-column: 1 / -1; }   /* subpáginas sin cartel */
    .nx-cont .ch-zona > .ch-hero + .ch-arena, .nx-cont .ch-zona > .ch-arena:nth-child(2) { grid-column: 2; margin: 0 0 28px; }
    .nx-cont .ch-zona > .ch-arena { display: flex; flex-direction: column; justify-content: flex-end; border-radius: 18px; }
}
.nx-cont .ch-doble > :not(aside) { counter-reset: nxcap; }
.nx-cont .ch-bloque { position: relative; padding-left: 64px; }
.nx-cont .ch-bloque::before {
    counter-increment: nxcap; content: counter(nxcap, decimal-leading-zero);
    position: absolute; left: 0; top: 0; width: 48px; text-align: center;
    font: 800 30px/1 var(--font-display); letter-spacing: -.02em;
    color: transparent; -webkit-text-stroke: 1.5px var(--nx-canal);
}
.nx-cont .ch-bloque::after { content: ""; position: absolute; left: 23px; top: 40px; bottom: 6px; width: 2px; background: linear-gradient(var(--nx-canal), transparent); opacity: .35; }
.nx-cont .ch-bloque h2::before { display: none; }
.nx-cont .ch-doble aside { position: sticky; top: calc(var(--header-h, 72px) + 16px); }
@media (max-width: 760px) {
    .nx-cont .ch-bloque { padding-left: 46px; }
    .nx-cont .ch-bloque::before { width: 34px; font-size: 22px; }
    .nx-cont .ch-bloque::after { left: 16px; top: 30px; }
    .nx-cont .ch-doble aside { position: static; }
}

/* =====================================================================
   POKOPIA — «tablero de construcción». La vista es la de la versión 1.
   La cabecera pasa a un tablero a dos columnas (título, entradilla y
   buscador | las cifras en bloque 2×2) con el paisaje pixel a lo ancho
   abajo; las rejillas de la portada pasan a estantes deslizables.
   ===================================================================== */
@media (min-width: 1181px) {
    .nx-cont .pk-paisaje { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr); column-gap: 30px; align-items: start; padding: 30px 30px 150px; }
    .nx-cont .pk-paisaje > * { grid-column: 1; }
    .nx-cont .pk-paisaje > .pk-cifras { grid-column: 2; grid-row: 1 / span 3; align-self: start; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; }
    .nx-cont .pk-paisaje .pk-cifra { margin: 0; padding: 14px 16px; }
    .nx-cont .pk-paisaje .pk-cifra b { font-size: 30px; }
}
.nx-cont .pk-paisaje { border-radius: 18px; }
.nx-cont .pk-paisaje h1 { letter-spacing: -.02em; }

/* Estantes: una fila deslizable con flechas implícitas (el borde se funde) */
.nx-cont .pk > .pk-seccion > .pk-rejilla:not(.pk-ancha) {
    display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x proximity; padding: 4px 2px 12px;
    scrollbar-width: thin; scrollbar-color: var(--nx-canal) transparent;
    -webkit-mask-image: linear-gradient(90deg, #000 92%, transparent); mask-image: linear-gradient(90deg, #000 92%, transparent);
}
.nx-cont .pk > .pk-seccion > .pk-rejilla:not(.pk-ancha) > * { flex: 0 0 168px; scroll-snap-align: start; }
.nx-cont .pk-seccion > h2 { display: flex; align-items: center; gap: 10px; }
.nx-cont .pk-seccion > h2::before { content: ""; width: 12px; height: 12px; border-radius: 3px; background: var(--nx-canal); box-shadow: 0 2px 0 color-mix(in srgb, var(--nx-canal) 55%, #000); }

/* =====================================================================
   CÓDIGOS DE REGALO — «bóveda». Cabecera alineada a la izquierda y, en
   PC, el índice de juegos pasa de fila de chips a columna fija a la
   derecha (con su contador), al lado de los códigos.
   ===================================================================== */
.nx-cont .cv-hero { text-align: left; padding: 28px 30px; }
.nx-cont .cv-hero .cv-lead { margin-left: 0; margin-right: 0; }
.nx-cont .cv-hero .cv-stats, .nx-cont .cv-hero .cv-eyebrow { justify-content: flex-start; }
@media (min-width: 1181px) {
    .nx-cont .cvault { display: grid; grid-template-columns: minmax(0, 1fr) 250px; column-gap: 26px; align-items: start; }
    .nx-cont .cvault > * { grid-column: 1; min-width: 0; }
    .nx-cont .cvault > .cv-hero { grid-column: 1 / -1; }
    .nx-cont .cvault > .cv-chips {
        grid-column: 2; grid-row: 2 / span 30; position: sticky; top: calc(var(--header-h, 72px) + 16px);
        flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 4px; margin: 0; padding: 10px;
        border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color);
    }
    [data-theme="dark"] .nx-cont .cvault > .cv-chips { background: #0f1b2d; border-color: #1e2e45; }
    .nx-cont .cvault > .cv-chips::before { content: "Ir a un juego"; padding: 4px 8px 8px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-3); }
    .nx-cont .cvault > .cv-chips .cv-chip { justify-content: flex-start; border-radius: 10px; padding: 9px 10px; }
}

/* =====================================================================
   COMPAÑERO — «centro de adopción». Las generaciones dejan de ir una
   debajo de otra (tres tarjetas y mucho hueco por fila): en PC se
   reparten en un mosaico de dos columnas de generaciones, cada una con
   sus iniciales en fila compacta.
   ===================================================================== */
.nx-cont .cp-hero { padding-top: 10px; }
@media (min-width: 1181px) {
    .nx-cont .cp-doble--portada > div:first-child { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; align-content: start; }
    .nx-cont .cp-doble--portada > div:first-child > :not(.cp-grupo) { grid-column: 1 / -1; }
    .nx-cont .cp-grupo { margin: 0; padding: 14px; border-radius: 14px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
    [data-theme="dark"] .nx-cont .cp-grupo { background: #0f1b2d; border-color: #1e2e45; }
    .nx-cont .cp-grupo .cp-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
    .nx-cont .cp-grupo-cab { margin-bottom: 10px; }
    .nx-cont .cp-grupo .cp-carta { padding: 10px 8px; }
    /* «Otros que también empiezan de cero» es el grupo largo: a lo ancho, en 6 columnas. */
    .nx-cont .cp-grupo:last-child { grid-column: 1 / -1; }
    .nx-cont .cp-grupo:last-child .cp-rejilla { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}

/* =====================================================================
   FORO — «plaza». La barra lateral (buscador, temas recientes, actividad)
   sube y se convierte en una franja de tres columnas bajo la cabecera:
   lo que se mueve se ve primero. Las categorías pasan a un mosaico de dos
   columnas con la última actividad al pie de cada tarjeta.
   ===================================================================== */
.nx-cont .forum-layout { grid-template-columns: minmax(0, 1fr); gap: 22px; }
.nx-cont .forum-sidebar { order: -1; display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.1fr) minmax(0, 1.1fr); gap: 14px; align-items: stretch; }
.nx-cont .forum-sidebar .sidebar-widget { margin: 0; border-radius: 14px; }
.nx-cont .forum-sidebar .sidebar-list { max-height: 210px; overflow: auto; scrollbar-width: thin; }
.nx-cont .categories-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.nx-cont .category-card { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; gap: 10px 16px; padding: 18px; border-radius: 14px; transition: border-color var(--transition-fast); }
.nx-cont .category-card:hover { border-color: var(--nx-canal); }
.nx-cont .category-card .category-last-post { grid-column: 1 / -1; display: flex; flex-direction: row; justify-content: flex-start; flex-wrap: wrap; align-items: center; gap: 4px 12px; padding-top: 10px; border-top: 1px dashed var(--border-color); border-left: 0; padding-left: 0; text-align: left; min-width: 0; max-width: none; }
.nx-cont .category-card .category-last-post-title { flex: 1 1 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1180px) {
    .nx-cont .forum-sidebar { grid-template-columns: minmax(0, 1fr); }
    .nx-cont .forum-sidebar .sidebar-widget:not(:first-child) { display: none; }   /* en móvil, solo el buscador arriba */
    .nx-cont .categories-list { grid-template-columns: minmax(0, 1fr); }
}

/* =====================================================================
   EVENTOS — «agenda». En PC la cabecera y «Lo próximo» van lado a lado,
   y cada mes es una fila de la agenda: el nombre del mes fijo en una
   columna a la izquierda (se queda pegado mientras bajas) y sus eventos
   a la derecha, en una sola columna de billetes.
   ===================================================================== */
@media (min-width: 1181px) {
    .nx-cont .evt { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); column-gap: 24px; align-items: stretch; }
    .nx-cont .evt > * { grid-column: 1 / -1; min-width: 0; }
    .nx-cont .evt > .evt-head { grid-column: 1; align-self: center; margin-bottom: 22px; }
    .nx-cont .evt > .evt-head + .evt-hero { grid-column: 2; margin-top: 0; margin-bottom: 22px; }
    .nx-cont .evt-month { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 22px; align-items: start; margin-bottom: 26px; }
    .nx-cont .evt-month-head {
        position: sticky; top: calc(var(--header-h, 72px) + 16px); flex-direction: column; align-items: flex-start; gap: 4px;
        margin: 0; padding: 14px 16px; border: 0; border-left: 3px solid var(--nx-canal); border-radius: 0 12px 12px 0;
        background: color-mix(in srgb, var(--nx-canal) 10%, transparent);
    }
    .nx-cont .evt-month-head h2 { font-size: 1.3rem; line-height: 1.15; }
    .nx-cont .evt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* =====================================================================
   EPISODIOS — «parrilla». En PC la cabecera y «El orden, en corto» van
   lado a lado, y las ocho sagas dejan la línea vertical para formar una
   parrilla de dos columnas (siguen numeradas: el orden importa).
   ===================================================================== */
.nx-cont .ep { padding-top: 0; }
.nx-cont .ep .ep-crumb { margin-top: 0; }
@media (min-width: 1181px) {
    .nx-cont .ep > .container { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); column-gap: 22px; align-items: stretch; }
    .nx-cont .ep > .container > * { grid-column: 1 / -1; min-width: 0; }
    .nx-cont .ep > .container > .ep-hero { grid-column: 1; margin-bottom: 26px; }
    .nx-cont .ep > .container > .ep-hero + .ep-quick { grid-column: 2; margin-top: 0; margin-bottom: 26px; }
    .nx-cont .ep-quick ol, .nx-cont .ep-quick ul { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .nx-cont .ep-time { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
    .nx-cont .ep-time::before, .nx-cont .ep-node::before { display: none !important; }
    .nx-cont .ep-node { padding-left: 0 !important; margin: 0 !important; }
    .nx-cont .ep-card { height: 100%; }
}

/* =====================================================================
   COLOREAR — «mesa de dibujo». En PC las colecciones dejan de ser una
   fila de chips y pasan a una columna fija a la izquierda del catálogo
   (como los cajones de una mesa): eliges grupo y ves las láminas al lado.
   ===================================================================== */
.nx-cont .co-hero { padding: 24px 28px; margin-bottom: 22px; background: var(--v2-superficie); }
[data-theme="dark"] .nx-cont .co-hero { background: #0b1524; }
@media (min-width: 1181px) {
    .nx-cont .co-wrap { display: grid; grid-template-columns: 220px minmax(0, 1fr); column-gap: 24px; align-items: start; }
    .nx-cont .co-wrap > * { grid-column: 1 / -1; min-width: 0; }
    .nx-cont .co-wrap > .co-colecciones {
        grid-column: 1; grid-row: span 2; position: sticky; top: calc(var(--header-h, 72px) + 16px); margin: 0;
        padding: 14px; border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color);
    }
    [data-theme="dark"] .nx-cont .co-wrap > .co-colecciones { background: #0f1b2d; border-color: #1e2e45; }
    .nx-cont .co-wrap > .co-colecciones .co-col-chips { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 4px; }
    .nx-cont .co-wrap > .co-colecciones .co-col-chip { justify-content: flex-start; border-radius: 9px; }
    .nx-cont .co-wrap > .co-colecciones ~ .co-lista, .nx-cont .co-wrap > .co-colecciones ~ .co-empezadas { grid-column: 2; }
    .nx-cont .co-wrap .co-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
}

/* =====================================================================
   FONDOS DE PANTALLA — «muro». Filtros como barra pegada bajo la
   cabecera (se quedan a mano mientras bajas) y la rejilla en un muro más
   denso, de tarjetas más pequeñas con la imagen protagonista.
   ===================================================================== */
.nx-cont .filters-wrapper {
    position: sticky; top: calc(var(--header-h, 72px) + 8px); z-index: 30; justify-content: flex-start; gap: 6px;
    margin: 0 0 20px; padding: 8px; border-radius: 14px;
    background: color-mix(in srgb, var(--v2-cabecera) 88%, transparent); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border: 1px solid var(--border-color);
}
.nx-cont .filters-wrapper .filter-btn { padding: 7px 13px; font-size: 13px; border-radius: 999px; }
.nx-cont .wallpapers-grid { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 16px; }
.nx-cont .wallpaper-card { border-radius: 14px; box-shadow: none; }
.nx-cont .wallpaper-card:hover { border-color: var(--nx-canal); }
@media (max-width: 1180px) {
    .nx-cont .filters-wrapper { top: calc(var(--header-h, 64px) + 58px); flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
    .nx-cont .filters-wrapper .filter-btn { flex: 0 0 auto; }
}


/* =====================================================================
   JUEGOS (Pokédle, trivia) — «consola». En PC el juego es lo primero:
   título y explicación a la izquierda, en columna estrecha, y el tablero
   a la derecha con todo el alto; las instrucciones largas quedan debajo.
   ===================================================================== */
@media (min-width: 1181px) {
    .nx-cont :is(.pkd-page, .trivia-page) { max-width: none; padding-top: 0; display: grid; grid-template-columns: 300px minmax(0, 1fr); column-gap: 26px; align-items: start; }
    .nx-cont :is(.pkd-page, .trivia-page) > * { grid-column: 1 / -1; min-width: 0; }
    .nx-cont :is(.pkd-page, .trivia-page) > :is(.breadcrumbs, .pkd-head, .tv-head) { grid-column: 1; }
    .nx-cont :is(.pkd-page, .trivia-page) > .breadcrumbs { grid-row: 1; }
    .nx-cont :is(.pkd-page, .trivia-page) > :is(.pkd-head, .tv-head) { grid-row: 2 / span 3; position: sticky; top: calc(var(--header-h, 72px) + 16px); }
    .nx-cont .pkd-page > :is(.pkd-game, .pkd-result), .nx-cont .trivia-page > :is(.tv-gens, .tv-device, .tv-over) { grid-column: 2; }
    .nx-cont .pkd-page > .pkd-game { grid-row: 1 / span 3; }
    .nx-cont .trivia-page > .tv-gens { grid-row: 1 / span 2; }
    .nx-cont .trivia-page > .tv-device { grid-row: 3; }
    .nx-cont :is(.pkd-head, .tv-head) h1 { font-size: 30px; line-height: 1.12; }
    .nx-cont :is(.pkd-head, .tv-head) h1::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 12px; border-radius: 4px; background: var(--nx-canal); }
}

/* =====================================================================
   PÁGINAS DE LA WEB — plantilla «documento»: páginas de la web a la
   izquierda, el texto en columna de lectura y el índice de apartados a
   la derecha (fijos los dos al bajar).
   ===================================================================== */
.nx-doc { display: grid; grid-template-columns: 220px minmax(0, 1fr) 240px; gap: 30px; align-items: start; }
.nx-doc-paginas, .nx-doc-indice { position: sticky; top: calc(var(--header-h, 72px) + 16px); padding: 14px 10px; border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .nx-doc-paginas, [data-theme="dark"] .nx-doc-indice { background: #0f1b2d; border-color: #1e2e45; }
.nx-doc-paginas > p, .nx-doc-indice > p { margin: 0 8px 8px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-doc-paginas ul, .nx-doc-indice ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.nx-doc-paginas a { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 9px; text-decoration: none; color: var(--v2-texto-2); font-weight: 600; font-size: 14px; }
.nx-doc-paginas a i { width: 16px; text-align: center; color: var(--v2-texto-3); }
.nx-doc-paginas a:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.nx-doc-paginas a.activo { background: color-mix(in srgb, var(--v2-amarillo) 16%, transparent); color: var(--text-main); }
.nx-doc-paginas a.activo i { color: var(--v2-activo); }
.nx-doc-indice ol { counter-reset: nxdoc; }
.nx-doc-indice li { counter-increment: nxdoc; }
.nx-doc-indice a { display: flex; gap: 8px; padding: 6px 8px; border-radius: 8px; font-size: 13px; line-height: 1.35; color: var(--v2-texto-2); text-decoration: none; }
.nx-doc-indice a::before { content: counter(nxdoc); font-weight: 800; color: var(--v2-texto-3); }
.nx-doc-indice a:hover { background: var(--v2-tarjeta-hover); color: var(--text-main); }
.nx-doc-texto .legal-container { max-width: none; margin: 0; padding: 0; }
.nx-doc-texto .section-title { text-align: left; font-size: clamp(28px, 3vw, 38px); margin: 0 0 6px; }
.nx-doc-texto .section-title::after { content: ""; display: block; width: 56px; height: 4px; margin-top: 12px; border-radius: 4px; background: var(--v2-amarillo); }
.nx-doc-texto .legal-intro { text-align: left; margin: 0 0 20px; color: var(--v2-texto-3); }
.nx-doc-texto .legal-card { max-width: 880px; border-radius: 16px; }
.nx-doc-texto h3 { scroll-margin-top: calc(var(--header-h, 72px) + 16px); }
@media (max-width: 1360px) { .nx-doc { grid-template-columns: 210px minmax(0, 1fr); } .nx-doc-indice { display: none; } }
@media (max-width: 980px) {
    .nx-doc { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .nx-doc-paginas { position: static; order: 2; }
}

/* ---------- Cabeceras que en la versión 1 iban centradas ---------- */
.nx-cont :is(.artworks-hero, .cries-hero, .shop-portada, .compare-header, .val-hero) { text-align: left; }
.nx-cont :is(.artworks-hero, .cries-hero, .shop-portada, .compare-header, .val-hero) > :is(p, div) { margin-left: 0; margin-right: 0; }
.nx-cont :is(.artworks-hero, .cries-hero, .compare-header, .val-hero) h1, .nx-cont .shop-titulo { justify-content: flex-start; }
.nx-cont :is(.artworks-hero, .cries-hero, .compare-header, .val-hero) h1 i { color: var(--nx-canal-txt); }
.nx-cont .shop-portada :is(.shop-kicker, .shop-cifras, .shop-nota, nav) { justify-content: flex-start; text-align: left; }
.nx-cont .val-top h2, .nx-cont .val-top-sub, .nx-cont .val-top-ranking-link { text-align: left; }

.nx-cont .shop-portada { max-width: none; margin-left: 0; }
.nx-cont .shop-portada, .nx-cont .shop-portada * { text-align: left; }
.nx-cont .shop-portada :is(.shop-kicker, .shop-cifras, .shop-filtros, nav, ul) { justify-content: flex-start; margin-left: 0; margin-right: 0; }
.nx-cont .val-top .val-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.nx-cont .shop-kicker { justify-content: flex-start; }
.nx-cont .shop-kicker::before { display: none; }
.nx-cont .shop-catnav { justify-content: flex-start; }

/* =====================================================================
   ALINEACIÓN DE TARJETAS (revisado con d:/tmp/v2alinea.py)
   - Conjuntos de tamaño fijo: columnas que dividen el total, para que la
     última fila no se quede con una tarjeta suelta.
   - Paneles que van lado a lado: misma altura (se estiran al más alto).
   ===================================================================== */
@media (min-width: 1181px) {
    .v2-tarjetas-guias { grid-template-columns: repeat(3, minmax(0, 1fr)); }              /* 9 guías = 3 × 3 */
    .nx-cont .artworks-collections { grid-template-columns: repeat(5, minmax(0, 1fr)); }  /* 5 colecciones */
    .nx-cont .tn-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }               /* 20 tonos = 4 × 5 */
    .nx-cont .co-wrap .co-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }      /* 48 por página = 6 × 8 */
    .nx-cont .val-top .val-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }     /* top 6 = 3 × 2 */
    .nx-cont .val-shop-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }         /* 6 productos */
    .nx-cont .ch-vias { grid-template-columns: repeat(2, minmax(0, 1fr)); }               /* 4 vías = 2 × 2 */
    .nx-cont .cv-seguir { grid-template-columns: repeat(4, minmax(0, 1fr)); }             /* 4 redes */
    .nx-cont .cp-grupo:last-child .cp-rejilla { grid-template-columns: repeat(8, minmax(0, 1fr)); } /* 16 = 8 × 2 */
    .nx-cont .wallpapers-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Paneles lado a lado con la misma altura */
.v2-ficha .pkx-body, .nx-cont .comparison-board { align-items: stretch; }
.v2-ficha .pkx-body > *, .nx-cont .comparison-board > * { height: 100%; box-sizing: border-box; }
.v2-home .v2-dos-col { align-items: stretch; }
/* Galería de la ficha: si queda un grupo suelto al final, ocupa la fila entera (sin caja, no se ve más grande). */
.v2-ficha .artworks-card > .artg-group:last-child:nth-child(even) { grid-column: 1 / -1; }
@media (min-width: 761px) and (max-width: 1180px) {
    [data-version="2"] .pokedex-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }   /* 6 filtros = 3 × 2 */
    .nx-cont .co-wrap .co-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }        /* 48 = 4 × 12 */
    .nx-cont .val-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nx-cont .cv-seguir { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .nx-cont .ch-modos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .nx-cont .cp-grupo:last-child .cp-rejilla { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
    .nx-cont .cp-grupo .cp-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }      /* 3 iniciales por generación */
    .nx-cont .cp-grupo:last-child .cp-rejilla { grid-template-columns: repeat(2, minmax(0, 1fr)); }   /* 16 = 2 × 8 */
    .nx-cont .cp-grupo .cp-carta { padding: 8px 4px; min-width: 0; }
}
/* Artworks: en 5 columnas la tarjeta va en vertical (portada arriba, texto debajo). */
@media (min-width: 1181px) {
    .nx-cont .artwork-collection-card { flex-direction: column; align-items: flex-start; text-align: left; }
    .nx-cont .artwork-collection-card .acc-body h2 { font-size: 17px; }
}
/* ¿Cuánto vale?: la guía y la tienda a todo el ancho y alineadas a la izquierda. */
.nx-cont :is(.val-guide, .val-shop, .val-faq) { max-width: none; margin-left: 0; margin-right: 0; }
.nx-cont :is(.val-guide, .val-shop, .val-faq) h2, .nx-cont .val-guide > p { text-align: left; margin-left: 0; }
@media (min-width: 1181px) { .nx-cont .val-guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.nx-cont :is(.val-shop, .val-faq) > p { text-align: left; margin-left: 0; }

/* =====================================================================
   PORTADA — paneles de abajo (eventos, TCG, X, curiosidad, directo,
   apoyo y lo más leído). Todos con el mismo marco: título dentro, misma
   altura en cada fila y el contenido de cada uno sin marcos propios.
   ===================================================================== */
.nx-paneles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.nx-panel { display: flex; flex-direction: column; min-width: 0; padding: 18px; border-radius: 16px; background: var(--v2-superficie); border: 1px solid var(--border-color); }
[data-theme="dark"] .nx-panel { background: #0f1b2d; border-color: #1e2e45; }
.nx-panel > * { min-width: 0; }
.nx-panel :is(.section-title, .evw > h2, .mr-title) { margin: 0 0 14px !important; padding: 0 !important; font: 800 18px var(--font-display) !important; text-align: left !important; border: 0 !important; }
.nx-panel .section-title::before, .nx-panel .section-title::after { display: none !important; }
.nx-panel > :is(section, div):only-child, .nx-panel > .evw { display: flex; flex-direction: column; flex: 1 1 auto; margin: 0 !important; }
/* Fuera los marcos internos: el panel ya es la tarjeta */
.nx-panel .card, .nx-panel .curio-bloque, .nx-panel .tw-bloque { margin-bottom: 0 !important; box-shadow: none !important; }
.nx-panel > div > .card:only-of-type, .nx-panel .tw-bloque, .nx-panel .curio-bloque { background: transparent !important; border: 0 !important; padding: 0 !important; }
.nx-panel .evw-all, .nx-panel .tw-bloque > :last-child { margin-top: auto; }
/* El tuit de X puede ser alto: se recorta y hace scroll dentro */
.nx-panel .card:has(.twitter-tweet, iframe) { max-height: 520px; overflow: auto; scrollbar-width: thin; }

/* Apoyo (Ko-fi) */
.nx-kofi { text-align: center; }
.nx-kofi-cuerpo { display: flex; flex-direction: column; align-items: center; gap: 10px; flex: 1 1 auto; justify-content: center; }
.nx-kofi-cuerpo img { width: 110px; height: 110px; object-fit: contain; filter: drop-shadow(0 8px 14px rgba(0,0,0,.3)); }
.nx-kofi-cuerpo p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--v2-texto-2); }
.nx-kofi-btn { margin: 14px auto 8px; height: 46px; padding: 0 22px; font-size: 15px; }
.nx-kofi small { font-size: 12px; color: var(--v2-texto-3); }

.nx-anuncio { display: flex; justify-content: center; }

/* Foro: las listas arriba, sin repartir el hueco entre filas */
.v2-home .v2-fila-dos { align-items: start; }
.v2-home .v2-fila-dos .v2-lista { align-content: start; }
.v2-home .v2-dos-col > .nx-panel { height: auto; }

@media (max-width: 1180px) { .nx-paneles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .nx-paneles { grid-template-columns: minmax(0, 1fr); } }
/* Foro de la portada: temas y comentarios en una sola lista (con pocos temas,
   en dos columnas quedaba un hueco grande bajo la primera). */
.v2-home .v2-panel-bloque .v2-fila-dos { grid-template-columns: minmax(0, 1fr); gap: 0; }
.v2-home .v2-panel-bloque .v2-fila-dos .v2-lista + .v2-lista { border-top: 1px solid var(--border-color); }
.nx-panel :is(.mr-list, .most-read, .mr-card) { border: 0 !important; background: transparent !important; padding: 0 !important; box-shadow: none !important; }
@media (min-width: 1181px) {
    .nx-cont .cl-climas { grid-template-columns: repeat(7, minmax(0, 1fr)); }    /* los 7 climas del juego */
    .nx-cont .cl-rejilla { grid-template-columns: repeat(6, minmax(0, 1fr)); }   /* 12 ciudades = 6 × 2 */
    .nx-cont .rz-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }      /* 6 juegos = 3 × 2 */
}
/* Pokémon GO: las pestañas de la versión 1 repiten el raíl de sección. */
.nx-cont .pg-tabs { display: none; }

/* Barra «Estás probando la nueva versión» (layouts/comun/aviso_v2.php) */
.av2b { position: fixed; left: 16px; bottom: 16px; z-index: 96; width: min(340px, calc(100vw - 32px)); padding: 14px 16px; border-radius: 14px;
    background: var(--v2-cabecera); border: 1px solid var(--border-color); box-shadow: var(--shadow-lg); font-size: 14px; }
.av2b[hidden], .av2b-form[hidden], .av2b-ok[hidden] { display: none; }
.av2b p { margin: 0 28px 10px 0; color: var(--v2-texto-2); }
.av2b p b { color: var(--text-main); }
.av2b-btns { display: flex; gap: 8px; }
.av2b-op, .av2b-vuelta { flex: 1 1 auto; height: 38px; padding: 0 12px; border-radius: 9px; font: 700 13.5px var(--font-primary); cursor: pointer; }
.av2b-op { border: 0; background: var(--v2-amarillo); color: #141005; }
.av2b-vuelta { border: 1px solid var(--border-color); background: transparent; color: var(--text-main); }
.av2b-form { display: grid; gap: 8px; margin-top: 12px; }
.av2b-form label { font-size: 12.5px; color: var(--v2-texto-3); }
.av2b-form textarea { width: 100%; box-sizing: border-box; padding: 8px 10px; border-radius: 9px; border: 1px solid var(--border-color); background: var(--bg-input); color: var(--text-main); font: 14px var(--font-primary); resize: vertical; }
.av2b-ok { margin: 0 !important; font-weight: 700; color: var(--ok-text); }
.av2b .av2-cerrar { position: absolute; top: 6px; right: 8px; width: 32px; height: 32px; border: 0; background: none; color: var(--v2-texto-3); font-size: 22px; cursor: pointer; }
@media (max-width: 760px) { .av2b { bottom: calc(76px + env(safe-area-inset-bottom, 0px)); } }

/* =====================================================================
   BUSCADOR RÁPIDO (layouts/v2/paleta.php)
   ===================================================================== */
.nx-paleta { position: fixed; inset: 0; z-index: 2000; display: flex; justify-content: center; align-items: flex-start; padding: 10vh 16px 16px; }
.nx-paleta[hidden] { display: none; }
.nx-paleta-fondo { position: absolute; inset: 0; background: rgba(3, 8, 16, .62); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
.nx-paleta-caja { position: relative; width: min(640px, 100%); max-height: 76vh; display: flex; flex-direction: column; border-radius: 16px; overflow: hidden;
    background: var(--v2-cabecera); border: 1px solid var(--border-color); box-shadow: 0 30px 80px rgba(0,0,0,.45); }
.nx-paleta-caja::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: linear-gradient(90deg, var(--v2-amarillo), var(--v2-azul)); }
.nx-paleta-campo { display: flex; align-items: center; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--border-color); }
.nx-paleta-campo > i { color: var(--v2-texto-3); font-size: 17px; }
.nx-paleta-campo input { flex: 1 1 auto; min-width: 0; border: 0; outline: 0; background: none; color: var(--text-main); font: 500 17px var(--font-primary); }
.nx-paleta-campo input::-webkit-search-cancel-button { display: none; }
.nx-paleta kbd { display: inline-block; min-width: 22px; padding: 2px 6px; border-radius: 5px; border: 1px solid var(--border-color); border-bottom-width: 2px; background: var(--v2-tarjeta); color: var(--v2-texto-2); font: 700 11px var(--font-primary); text-align: center; }
.nx-paleta-lista { overflow: auto; padding: 6px 8px 10px; scrollbar-width: thin; }
.nx-paleta-grupo { margin: 10px 10px 4px; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-paleta-it { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border-radius: 10px; text-decoration: none; color: var(--text-main); }
.nx-paleta-it.activo, .nx-paleta-it:hover { background: var(--v2-tarjeta-hover); }
.nx-paleta-it.activo { box-shadow: inset 3px 0 0 var(--v2-amarillo); }
.nx-paleta-vis { flex: 0 0 40px; height: 40px; display: grid; place-items: center; border-radius: 9px; background: var(--v2-tarjeta); overflow: hidden; color: var(--v2-activo); }
.nx-paleta-vis img { width: 100%; height: 100%; object-fit: contain; }
.nx-paleta-it b { display: block; font: 600 14.5px/1.3 var(--font-primary); }
.nx-paleta-it small { display: block; font-size: 12px; color: var(--v2-texto-3); }
.nx-paleta-todo b { color: var(--v2-activo); }
.nx-paleta-vacio { margin: 18px; text-align: center; color: var(--v2-texto-3); }
.nx-paleta-pie { display: flex; gap: 16px; flex-wrap: wrap; margin: 0; padding: 10px 16px; border-top: 1px solid var(--border-color); font-size: 12px; color: var(--v2-texto-3); }
.nx-paleta-pie span { display: inline-flex; gap: 4px; align-items: center; }
html.nx-paleta-abierta { overflow: hidden; }
@media (max-width: 760px) {
    .nx-paleta { padding: 0; align-items: stretch; }
    .nx-paleta-caja { max-height: none; height: 100%; border-radius: 0; }
    .nx-paleta-pie { display: none; }
}
.nx-paleta-campo input:focus, .nx-paleta-campo input:focus-visible { outline: none; box-shadow: none; }
.nx-paleta-cerrar { flex: 0 0 auto; min-width: 34px; height: 30px; padding: 0 8px; border-radius: 7px; border: 1px solid var(--border-color); border-bottom-width: 2px; background: var(--v2-tarjeta); color: var(--v2-texto-2); font: 700 11px var(--font-primary); cursor: pointer; }
.nx-solo-movil { display: none; }
@media (max-width: 760px) { .nx-solo-pc { display: none; } .nx-solo-movil { display: inline; font-size: 15px; } .nx-paleta-cerrar { height: 38px; min-width: 38px; } }

/* Portada: «Lo tuyo» (solo con cuenta) */
.nx-tuyo-rejilla { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.nx-tuyo-caja { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; text-decoration: none; color: var(--text-main);
    background: var(--v2-superficie); border: 1px solid var(--border-color); transition: border-color var(--transition-fast), transform var(--transition-fast); }
[data-theme="dark"] .nx-tuyo-caja { background: #0f1b2d; border-color: #1e2e45; }
.nx-tuyo-caja:hover { border-color: var(--v2-amarillo); transform: translateY(-2px); }
.nx-tuyo-vis { flex: 0 0 72px; height: 72px; display: grid; place-items: center; border-radius: 14px; background: var(--v2-tarjeta); color: var(--v2-activo); font-size: 26px; overflow: hidden; }
.nx-tuyo-vis img { width: 72px; height: 72px; object-fit: contain; image-rendering: auto; }
.nx-tuyo-favs { display: flex; gap: 0; }
.nx-tuyo-favs img { width: 36px; height: 36px; margin: 0 -6px; }
.nx-tuyo-txt { display: grid; gap: 2px; min-width: 0; }
.nx-tuyo-txt small { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-tuyo-txt b { font: 800 17px/1.2 var(--font-display); }
.nx-tuyo-txt span { font-size: 13px; color: var(--v2-texto-2); }
@media (max-width: 980px) { .nx-tuyo-rejilla { grid-template-columns: minmax(0, 1fr); } }
/* Artículo: sin la animación de entrada (opacidad 0): con ella el titular y la
   portada no contaban como «contenido principal» (LCP) y salía la miga de pan. */
[data-version="2"] .art-head, [data-version="2"] .art-cover { animation: none; }

/* =====================================================================
   ACCESO — «pase de entrenador» (v2/community/_pase.php)
   ===================================================================== */
.nx-pase-fondo { position: fixed; inset: 0; z-index: 0; pointer-events: none; background:
    radial-gradient(60% 50% at 50% 40%, transparent, var(--bg-body) 85%),
    linear-gradient(180deg, color-mix(in srgb, var(--bg-body) 30%, transparent), var(--bg-body)),
    url('/assets/uploads/v2/hero-nexus.webp?v=1') center 30% / cover no-repeat;
    filter: saturate(1.1); opacity: .7; }
[data-theme="light"] .nx-pase-fondo { opacity: .35; }
.nx-pase-zona { position: relative; z-index: 1; display: grid; place-items: center; min-height: calc(100vh - var(--header-h, 72px) - 120px); padding: 10px 0 30px; }
.nx-pase { position: relative; width: min(480px, 100%); border-radius: 22px; overflow: hidden;
    background: color-mix(in srgb, var(--v2-cabecera) 92%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
    border: 1px solid var(--border-color); box-shadow: 0 30px 70px -20px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06); }
.nx-pase::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: linear-gradient(90deg, #ef4444 0 33%, var(--v2-amarillo) 33% 66%, var(--v2-azul) 66%); }
.nx-pase-cab { display: flex; align-items: center; gap: 12px; padding: 20px 24px 14px; }
.nx-pase-cab small { display: block; font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--v2-texto-3); }
.nx-pase-cab b { display: block; font: 800 17px var(--font-display); }
.nx-pase-chip { margin-left: auto; width: 42px; height: 32px; border-radius: 7px;   /* «chip» del carné */
    background: linear-gradient(135deg, #f4be19, #ffe37a 45%, #c99a0e); box-shadow: inset 0 0 0 1px rgba(0,0,0,.25);
    -webkit-mask: repeating-linear-gradient(90deg, #000 0 9px, rgba(0,0,0,.75) 9px 10px); mask: repeating-linear-gradient(90deg, #000 0 9px, rgba(0,0,0,.75) 9px 10px); }
.nx-pase-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 0 24px; padding: 4px; border-radius: 12px; background: var(--v2-tarjeta); border: 1px solid var(--border-color); }
.nx-pase-tabs a { display: flex; align-items: center; justify-content: center; gap: 8px; height: 40px; border-radius: 9px; text-decoration: none; font: 700 14px var(--font-display); color: var(--v2-texto-2); }
.nx-pase-tabs a:hover { color: var(--text-main); }
.nx-pase-tabs a.activo { background: var(--v2-amarillo); color: #141005; }
.nx-pase-cuerpo { padding: 20px 24px 6px; }
.nx-pase-cuerpo h1 { margin: 0 0 6px; font: 800 28px/1.15 var(--font-display); letter-spacing: -.02em; }
.nx-pase-sub { margin: 0 0 18px; font-size: 14.5px; line-height: 1.5; color: var(--v2-texto-2); }
.nx-pase-form { display: grid; gap: 14px; }
.nx-campo { display: grid; gap: 6px; min-width: 0; }
.nx-campo > span:first-child { font-size: 13px; font-weight: 700; color: var(--text-main); }
.nx-campo-fila { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.nx-campo-fila a { font-size: 12.5px; font-weight: 700; color: var(--v2-activo); text-decoration: none; }
.nx-campo-in { position: relative; display: flex; align-items: center; }
.nx-campo-in > i { position: absolute; left: 14px; color: var(--v2-texto-3); font-size: 14px; pointer-events: none; }
.nx-campo-in input { width: 100%; height: 48px; box-sizing: border-box; padding: 0 44px 0 40px; border-radius: 12px; border: 1px solid var(--border-color);
    background: var(--bg-input); color: var(--text-main); font: 15px var(--font-primary); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.nx-campo-in input:focus { outline: none; border-color: var(--v2-amarillo); box-shadow: 0 0 0 3px color-mix(in srgb, var(--v2-amarillo) 30%, transparent); }
.nx-campo-in input:user-invalid { border-color: #ef4444; }
.nx-pase-ver { position: absolute; right: 6px; width: 36px; height: 36px; border: 0; border-radius: 9px; background: none; color: var(--v2-texto-3); cursor: pointer; }
.nx-pase-ver:hover { color: var(--text-main); background: var(--v2-tarjeta-hover); }
.nx-campo-par { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.nx-pase-btn { display: flex; align-items: center; justify-content: center; gap: 10px; height: 50px; margin-top: 4px; border: 0; border-radius: 12px; cursor: pointer;
    background: var(--v2-amarillo); color: #141005; font: 800 16px var(--font-display); box-shadow: 0 10px 22px -10px rgba(255,213,42,.7); transition: background var(--transition-fast), transform var(--transition-fast); }
.nx-pase-btn:hover { background: var(--v2-amarillo-2); transform: translateY(-1px); }
.nx-pase-avisos { list-style: none; margin: 0; padding: 12px 14px; display: grid; gap: 6px; border-radius: 12px; background: var(--v2-tarjeta); font-size: 13px; color: var(--v2-texto-2); }
.nx-pase-avisos i { width: 18px; color: var(--v2-activo); }
.nx-pase-pie { margin: 18px 0 4px; text-align: center; font-size: 14px; color: var(--v2-texto-2); }
.nx-pase-pie a, .nx-pase-nota a { color: var(--v2-activo); font-weight: 700; text-decoration: none; }
.nx-pase-nota { margin: 6px 0 0; text-align: center; font-size: 12px; color: var(--v2-texto-3); }
.nx-pase-ventajas { list-style: none; margin: 14px 24px 0; padding: 14px 0 0; display: grid; gap: 10px; border-top: 1px dashed var(--border-color); }
.nx-pase-ventajas li { display: flex; gap: 12px; align-items: center; }
.nx-pase-ventajas i { flex: 0 0 34px; height: 34px; display: grid; place-items: center; border-radius: 9px; background: var(--v2-tarjeta); color: var(--v2-activo); }
.nx-pase-ventajas b { display: block; font-size: 14px; }
.nx-pase-ventajas small { display: block; font-size: 12.5px; color: var(--v2-texto-3); }
.nx-pase-banda { display: flex; justify-content: space-between; gap: 12px; white-space: nowrap; margin-top: 18px; padding: 10px 24px; font: 700 11px var(--font-primary); letter-spacing: .1em; text-transform: uppercase;
    color: var(--v2-texto-3); background: repeating-linear-gradient(135deg, var(--v2-tarjeta) 0 10px, transparent 10px 20px); border-top: 1px solid var(--border-color); }
@media (max-width: 520px) {
    .nx-pase-zona { min-height: 0; padding-top: 0; }
    .nx-pase-cab, .nx-pase-cuerpo { padding-left: 18px; padding-right: 18px; }
    .nx-pase-tabs, .nx-pase-ventajas { margin-left: 18px; margin-right: 18px; }
    .nx-campo-par { grid-template-columns: minmax(0, 1fr); }
    .nx-pase-cuerpo h1 { font-size: 24px; }
}

/* =====================================================================
   SISTEMA DE ESQUINAS: la versión 1 usa esquinas asimétricas (16px 5px 16px 5px)
   en casi todo; la versión 2, esquinas iguales. Lista generada con d:/tmp/asim.py
   a partir de las hojas y vistas de la versión 1.
   ===================================================================== */
[data-version="2"] :is(
    .art-cover .news-banner,
    .art-cover img,
    .booster-faq details,
    .booster-pack,
    .booster-panel,
    .card-face,
    .chat-avatar img,
    .chat-fijado-media img,
    .chat-panel,
    .chat-w-lanzador,
    .chat-w-panel,
    .chat-w-salas-menu,
    .cl-clima,
    .cl-efectos li,
    .cl-especie,
    .cl-hora,
    .cl-jefe,
    .cl-tarjeta,
    .cl-vacio,
    .comments-pag a,
    .comments-pag span,
    .ep-card,
    .ep-faq details,
    .ep-quick li,
    .ep-watch-card,
    .eps-ep,
    .eps-ficha,
    .eps-hero,
    .eps-mon,
    .eps-temp,
    .eps-temp-n,
    .gs-card,
    .hc-afin,
    .hc-ahora,
    .hc-compartir a,
    .hc-ficha,
    .hc-hoy-etiqueta,
    .hc-papel,
    .hc-tabla-caja,
    .hwc-bloque,
    .hwc-cab,
    .news-banner,
    .pack-option,
    .pack-option-img-wrapper,
    .pg-art-fig img,
    .pg-art-sub,
    .pg-bonus,
    .pg-cat,
    .pg-cover,
    .pg-ev-hero,
    .pg-fr-task,
    .pg-nav-card,
    .pg-rw,
    .pg-spot,
    .pg-task,
    .pkd-info section,
    .pkd-result-box,
    .pkd-search,
    .pkd-stat,
    .pkx-card,
    .poke-emotes-cell,
    .poke-emotes-panel,
    .product-card,
    .qz-back,
    .qz-sh,
    .reply-card,
    .rz-card,
    .rz-emu-shell,
    .rz-info-card,
    .rz-modal-box,
    .rz-panel,
    .shop-seguir-rejilla a,
    .tv-over-box,
    .vc-box,
    .wk-info section,
    .wk-search,
    .wk-tool,
    .tw-marco,
    .ep-card-poster,
    .chat-menu,
    .curio-bloque,
    .pg-credit,
    .article .news-body img,
    .tv-skeleton,
    .chat-w-sala,
    .pg-event,
    .chat-staff,
    .rz-wall
) { border-radius: 14px; }
[data-version="2"] :is(
    .art-share .btn-share,
    .booster-step,
    .booster-step .num,
    .btn-primary,
    .btn-share,
    .btn-tv-ghost,
    .btn-tv-start,
    .card-caption-btn,
    .chat-borrar,
    .chat-enviar,
    .chat-redactor textarea,
    .chat-w-icono,
    .cl-otras a,
    .cl-tipo,
    .co-btn-1,
    .co-btn-2,
    .ep-btn,
    .ep-chip,
    .ep-dot,
    .ep-fact,
    .ep-start,
    .eps-badge,
    .eps-ep-num,
    .eps-nav a,
    .eps-num,
    .fc-btn,
    .gen-pill,
    .gs-form button,
    .gs-form input,
    .gs-group-ico,
    .gs-type,
    .hc .hc-btn,
    .hc .hc-campo select,
    .hc-compartir button,
    .hc-tipo,
    .hero-cta-btn,
    .kofi-btn,
    .ks-btn,
    .news-category-badge,
    .news-pagination .pagination-item,
    .pack-tag,
    .pagination-item,
    .pg-cta,
    .pg-cta .pg-btn,
    .pg-ev-panel-ico,
    .pg-nav-card .pg-nav-ico,
    .pg-sec-ico,
    .pg-step,
    .pg-tab,
    .pkd-guess-btn,
    .pkd-share-btn,
    .pkx-chip,
    .pkx-cry-btn,
    .pkx-fact,
    .qz-opt-letter,
    .rank-cta,
    .rz-slot-btn,
    .shop-catnav a,
    .shop-section-ico,
    .tn-btn-1,
    .tn-btn-2,
    .tv-options button,
    .wk-chip,
    .curio-otra,
    .zd-crit-ico,
    .tw-btn
) { border-radius: 10px; }

/* =====================================================================
   CABECERA DE PÁGINA ÚNICA («masthead» Nexus). Las cabeceras de texto que
   cada zona traía de la versión 1 (cada una con su estilo) pasan a ser la
   misma pieza: panel con el brillo del color de la sección, franja de color
   a la izquierda, título en la tipografía de la versión 2 y entradilla a
   ancho de lectura. Las cabeceras con arte propio (fotos, paisaje de
   Pokopia, ficha Pokédex, carné, zodiaco, horóscopo, Cuaderno) se respetan.
   ===================================================================== */
[data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) {
    position: relative; overflow: hidden; text-align: left;
    margin-top: 0; margin-bottom: 24px; padding: 26px 30px 26px 34px;
    border: 1px solid var(--border-color); border-radius: 18px; box-shadow: none;
    background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--nx-canal, var(--v2-azul)) 13%, transparent), transparent 60%), var(--v2-superficie);
}
[data-theme="dark"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) {
    background: radial-gradient(120% 140% at 100% 0%, color-mix(in srgb, var(--nx-canal, var(--v2-azul)) 18%, transparent), transparent 60%), #0c1729;
    border-color: #1e2e45;
}
[data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header)::before {
    content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 4px; border-radius: 0 4px 4px 0; background: var(--nx-canal, var(--v2-amarillo));
}
[data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) h1 {
    font-family: var(--font-display) !important; font-weight: 700 !important; letter-spacing: -.01em !important;
    font-size: clamp(28px, 3.3vw, 42px) !important; line-height: 1.08 !important; text-align: left !important;
    color: var(--text-main) !important; -webkit-text-fill-color: currentColor; background: none !important; text-shadow: none !important; margin-left: 0 !important;
}
[data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) h1 i {
    color: var(--nx-canal-txt, var(--v2-activo)); -webkit-text-fill-color: currentColor;
}
[data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
    .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
    .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) h1 + p {
    max-width: 70ch; margin-left: 0; margin-right: 0; text-align: left; color: var(--v2-texto-2); font-size: 15.5px; line-height: 1.6;
}
/* El subrayado de título que puse antes queda de más con la franja lateral */
.nx-cont :is(.pkd-head, .tv-head) h1::after { display: none; }
@media (max-width: 760px) {
    [data-version="2"] :is(.wk-head, .iv-cab, .ex-head, .ex-set-head, .booster-header, .rank-head, .chat-head, .evt-head, .wg-cab, .gs-head,
        .pb-cab, .pkd-head, .tv-head, .cc-head, .albp-cab, .shop-portada, .compare-header, .val-hero, .artworks-hero, .cries-hero,
        .caras-hero, .mk-cabecera, .ep-hero, .eps-hero, .ch-hero, .cv-hero, .pg-hero, .tn-hero, .co-hero, .cp-hero, .qz-hero, .rz-hero, .forum-header) {
        padding: 20px 18px 20px 22px; border-radius: 14px;
    }
}

/* =====================================================================
   ACCESO v2 (rehecho): panel partido arte | formulario
   ===================================================================== */
.nx-acc { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); max-width: 1080px; min-height: 600px; margin: 8px auto 30px;
    border-radius: 22px; overflow: hidden; border: 1px solid var(--border-color); background: var(--v2-superficie); box-shadow: 0 30px 70px -30px rgba(3, 8, 16, .45); }
[data-theme="dark"] .nx-acc { background: #0c1729; border-color: #1e2e45; }
.nx-acc-arte { position: relative; display: flex; align-items: flex-end; padding: 40px; color: #f5f7fc; isolation: isolate;
    background: url('/assets/uploads/v2/hero-nexus.webp?v=1') 35% center / cover no-repeat, #07101e; }
.nx-acc-arte::before { content: ""; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(180deg, rgba(5, 11, 20, .15) 0%, rgba(5, 11, 20, .55) 45%, rgba(5, 11, 20, .94) 100%); }
.nx-acc-kicker { margin: 0 0 8px; font: 700 clamp(26px, 2.6vw, 34px)/1.1 var(--font-display); letter-spacing: -.01em; }
.nx-acc-lema { margin: 0 0 24px; max-width: 42ch; font-size: 15.5px; line-height: 1.55; color: #c9d3e2; }
.nx-acc-ventajas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nx-acc-ventajas li { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.nx-acc-ventajas i { flex: 0 0 auto; margin-top: 2px; color: #ffd52a; }
.nx-acc-ventajas b { display: block; font-size: 13.5px; }
.nx-acc-ventajas small { display: block; font-size: 12px; line-height: 1.4; color: #b4c1d4; }
.nx-acc-panel { display: flex; flex-direction: column; justify-content: center; padding: 44px 48px; }
.nx-acc-tabs { display: flex; gap: 26px; margin: 0 0 30px; border-bottom: 1px solid var(--border-color); }
.nx-acc-tabs a { position: relative; padding: 0 0 12px; text-decoration: none; font: 700 15px var(--font-display); color: var(--v2-texto-3); }
.nx-acc-tabs a:hover { color: var(--text-main); }
.nx-acc-tabs a.activo { color: var(--text-main); }
.nx-acc-tabs a.activo::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 3px; border-radius: 3px 3px 0 0; background: var(--v2-amarillo); }
.nx-acc-panel h1 { margin: 0 0 8px; font: 700 clamp(26px, 2.4vw, 32px)/1.15 var(--font-display); letter-spacing: -.01em; }
.nx-acc-sub { margin: 0 0 24px; font-size: 15px; line-height: 1.55; color: var(--v2-texto-2); }
.nx-acc-pie { margin: 22px 0 0; font-size: 14px; color: var(--v2-texto-2); }
.nx-acc-pie a, .nx-acc-nota a { color: var(--v2-activo); font-weight: 700; text-decoration: none; }
.nx-acc-pie a:hover, .nx-acc-nota a:hover { text-decoration: underline; }
.nx-acc-nota { margin: 8px 0 0; font-size: 12.5px; color: var(--v2-texto-3); }
.nx-acc .nx-pase-form { gap: 16px; }
.nx-acc .nx-pase-btn { box-shadow: none; }
@media (max-width: 900px) {
    .nx-acc { grid-template-columns: minmax(0, 1fr); min-height: 0; margin-top: 0; }
    .nx-acc-arte { min-height: 170px; padding: 24px; }
    .nx-acc-lema, .nx-acc-ventajas { display: none; }
    .nx-acc-kicker { margin: 0; font-size: 24px; }
    .nx-acc-panel { padding: 28px 22px 32px; }
}
