/* EXPPO XV · Mi acceso — impresión y «Guardar o imprimir» (PDF). listo.html lo carga con media="print", después de v2.css,
   acceso.css y sus estilos propios, así que sus reglas ganan a las de @media print de esos archivos (las de acceso.css
   —frente plano en blanco y negro, sin arte— se anulan desde aquí con más especificidad e !important; acceso.css no se toca).
   Objetivo: que el papel y el PDF se vean como el acceso real. Un acceso por hoja, en un solo bloque centrado que cabe en
   Carta y A4 vertical: encabezado chico propio («EXPPO XV · Mi acceso»), el acceso vertical completo con su arte a color
   (logo, fecha, sede, talón con tipo en su color, «Admite…», folio y el QR grande sobre recuadro blanco, módulos negros) y
   debajo la ficha de datos (acceso, folio, días, horario, lugar) y, en el Meet & Greet, su tarjeta. Sin cabecera de la
   página, botones, Wallet, calendario, beneficios, avisos, deco ni pie; sin brillos, sombras, animación ni muescas.
   Las medidas del acceso siguen en --u (1 % de su ancho, acceso.css): a 9.2 cm el QR mide 4.2 cm de lado. */
@page{margin:11mm}
html,body{background:#fff!important;color:#000!important;margin:0!important;padding:0!important;min-width:0}
*,::before,::after{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}

/* Fuera del papel: cabecera, estado («¡Tu acceso está listo!» se partía: va un encabezado propio por hoja), compras del
   teléfono, avisos, tarjeta y barra de Wallet, acciones, datos del evento, consejo de iPhone, beneficios, pendientes,
   recuperación, bloques de Wallet, avisos flotantes, celebración, calendario/mapa, título de grupo, foto del M&G y pie. */
header.top,.mine,#offline,#aviso,#wdest,#wbar,.actions,#info,#iosHint,#beneficios,#pendientes,#recover,.wallet,.wallet-toast,
.xv-celebra,.pase-links,.grp,.mg-ava,.no-print,.spinner,.st-ico,.toast,.foot,.foot-sky{display:none!important}
main:has(.pase-3d) #state{display:none!important}
/* Sin accesos (error o búsqueda): el estado sí se imprime, en negro. */
.state,.state h1,.state p,.state p a,.state p b{color:#000!important;text-shadow:none!important}
.state{display:block;max-width:none;margin:0 0 6mm}

main.done{padding:0!important;margin:0!important;text-align:left}
.tickets{display:block!important;max-width:none!important;gap:0!important}
/* Cada acceso: un bloque de 9.2 cm centrado y una hoja para él (salto después, salvo el último). */
.pase-3d{display:block!important;width:100%!important;max-width:9.2cm!important;margin:0 auto!important;padding:0!important;
  break-inside:avoid;page-break-inside:avoid;break-after:page;page-break-after:always}
.pase-3d:last-of-type{break-after:auto;page-break-after:auto}
.pase-3d::before{content:"EXPPO XV · Mi acceso";display:block;margin:0 0 3mm;text-align:center;
  font:800 9pt/1.2 Archivo,"Archivo Fallback",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#5c5662}
/* .p3d-arte es el mismo elemento que .xa (acceso.js monta sobre él): una sola regla para los dos. */
.pase-3d>.p3d-arte,.pase-3d .xa{position:static!important;width:100%!important;max-width:none!important;margin:0 0 4mm!important;gap:0!important;top:auto!important}

/* ---- El acceso, plano: sólo el frente, sin 3D, vaivén, halo, sombra, holograma, canto, botón ni pista ---- */
.pase-3d .xa .xa-flota,.pase-3d .xa .xa-sombra,.pase-3d .xa .xa-chispa{animation:none!important}
.pase-3d .xa .xa-escena{perspective:none!important;transform:none!important;cursor:auto!important}
.pase-3d .xa .xa-carta{transform:none!important;transform-style:flat!important;will-change:auto!important}
.pase-3d .xa .xa-escena .xa-frente{visibility:visible!important;transform:none!important;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}
.pase-3d .xa .xa-reverso,.pase-3d .xa .xa-halo,.pase-3d .xa .xa-sombra,.pase-3d .xa .xa-voltear,.pase-3d .xa .xa-pista,
.pase-3d .xa .xa-tinte,.pase-3d .xa .xa-foil,.pase-3d .xa .xa-chispa,.pase-3d .xa .xa-brillo,.pase-3d .xa .xa-borde{display:none!important}
/* Fondo negro sin muescas (sin máscara) y con las esquinas redondas; el arte a sangre y el velo que oscurece arriba y en
   el talón para que se lea todo: así es el acceso real. */
.pase-3d .xa .xa-fondo{-webkit-mask:none!important;mask:none!important;background:var(--xa-negro,#07050a)!important;border:0!important;overflow:hidden!important}
.pase-3d .xa .xa-fondo>.xa-arte{display:block!important;filter:none!important;opacity:1!important}
.pase-3d .xa .xa-fondo>.xa-velo{display:block!important;mix-blend-mode:normal!important;opacity:1!important}
/* Arriba: «Acceso oficial», el logo holográfico tal cual (sobre el velo oscuro se lee; en negro o sobre blanco se lavaba),
   fecha y sede; perforación en claro. */
.pase-3d .xa .xa-sup{padding-top:calc(var(--u)*4.6)!important}
.pase-3d .xa .xa-logo{filter:none!important;opacity:1!important}
.pase-3d .xa .xa-oficial,.pase-3d .xa .xa-fecha,.pase-3d .xa .xa-folio{color:#fff!important;text-shadow:none!important}
.pase-3d .xa .xa-sede{color:var(--xa-claro,#f4f0f6)!important;background:rgba(0,0,0,.72)!important;border:0!important;text-shadow:none!important}
.pase-3d .xa .xa-perf{height:max(1px,calc(var(--u)*.38))!important;border:0!important;
  background:repeating-linear-gradient(90deg,rgba(255,255,255,.6) 0 calc(var(--u)*1.7),transparent calc(var(--u)*1.7) calc(var(--u)*2.9))!important}
/* Talón: tipo y pie en el color del tipo (--ta, lo pone acceso.js), rótulos en gris claro, subtítulo y folio en claro;
   sin sombras de texto. */
.pase-3d .xa .xa-talon{text-shadow:none!important}
.pase-3d .xa .xa-k{color:var(--xa-gris,#ada5b4)!important;text-shadow:none!important}
.pase-3d .xa .xa-tipo,.pase-3d .xa .xa-pie{color:var(--ta,#fff)!important;text-shadow:none!important}
.pase-3d .xa .xa-sub{color:var(--xa-claro,#f4f0f6)!important;text-shadow:none!important}
.pase-3d .xa .xa-escanea{display:block!important;color:var(--xa-claro,#f4f0f6)!important;text-shadow:none!important}
/* QR: recuadro blanco con un filo blanco extra (sin halo ni sombra), módulos negro puro: el máximo contraste en papel. */
.pase-3d .xa .xa-qr{background:#fff!important;box-shadow:none!important;outline:max(2px,calc(var(--u)*.6)) solid #fff!important;outline-offset:0!important}
.pase-3d .xa .xa-qr>svg{image-rendering:crisp-edges}
.pase-3d .xa .xa-qr>svg rect{fill:#fff!important}
.pase-3d .xa .xa-qr>svg path{fill:#000!important}
.pase-3d .xa .xa-sinqr{color:#000!important}

/* ---- Debajo: «Acceso i de n», la ficha y la tarjeta del Meet & Greet, en blanco con línea negra ---- */
.pase-3d .p3d-datos{display:grid!important;width:100%!important;max-width:none!important;margin:0!important;gap:3mm!important}
.pase-3d .pase-num{margin:0!important;color:#000!important}
.pase-3d .ficha{border:1px solid #000!important;border-radius:3mm!important;background:#fff!important;break-inside:avoid;page-break-inside:avoid}
.pase-3d .ficha>div{border-color:#000!important;padding:2mm 3.5mm!important}
.pase-3d .ficha dt{color:#444!important}
.pase-3d .ficha dd{color:#000!important}
/* Tarjeta del M&G compacta (sin la foto): con la ficha y el acceso debe caber en Carta con holgura. */
.pase-3d .pase-mg{grid-template-columns:minmax(0,1fr)!important;gap:2px 0!important;border:1px solid #000!important;border-radius:3mm!important;
  background:#fff!important;box-shadow:none!important;padding:3mm 4mm!important;break-inside:avoid;page-break-inside:avoid}
.pase-3d .pase-mg,.pase-3d .pase-mg *{color:#000!important;background:#fff!important;text-shadow:none!important}
.pase-3d .pase-mg .mg-hora{font-size:22px!important}
.pase-3d .pase-mg .mg-donde{margin-top:2mm!important;padding-top:2mm!important;border-top-color:#000!important}
.pase-3d .pase-mg .mg-llega{margin-top:1mm!important;padding:0!important}
/* Versión plana (si acceso.js o el QR no cargaron): blanco con línea negra. */
.pase,.pase>div{background:#fff!important;border:1px solid #000!important}
.pase h2,.pase .folio,.pase small{color:#000!important}
.pase .qr{border:1px solid #000}
