/* Pantalla de código de acceso (F3A). */
.acceso { position: fixed; inset: 0; z-index: 200; display: grid; place-items: center; padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
  background: radial-gradient(120% 80% at 50% 0%, var(--azul-100, #e1efff), var(--fondo, #f2f8ff) 70%); overflow-y: auto; }
.acceso-tarjeta { width: min(400px, 100%); display: grid; gap: 14px; justify-items: center; text-align: center; padding: 28px 22px; border-radius: 20px;
  background: var(--superficie, #fff); border: 1px solid var(--borde, #dfe5ee); box-shadow: 0 12px 40px rgb(20 60 110 / .12); }
.acceso-tarjeta img { border-radius: 14px; }
.acceso-tarjeta h1 { margin: 0; font: 700 1.6rem/1.1 var(--fuente, system-ui); color: var(--azul-950, #0b2442); letter-spacing: -.01em; }
.acceso-tarjeta h1 span { color: var(--primario, #176ec4); }
.acceso-sub { margin: -6px 0 4px; color: var(--texto-2, #36445a); }
.acceso-campo { width: 100%; }
.acceso-campo input { width: 100%; min-height: 52px; padding: 0 14px; border-radius: 12px; border: 1.5px solid var(--borde-fuerte, #c6cfdc); background: var(--superficie, #fff);
  color: var(--texto, #141c2b); font: 600 1.15rem/1 var(--fuente-num, ui-monospace, monospace); letter-spacing: .06em; text-align: center; }
.acceso-campo input::placeholder { color: var(--texto-3, #5b697e); font-weight: 400; letter-spacing: .02em; }
.acceso-campo input:focus-visible { outline: 3px solid var(--enfoque, #57a8f2); outline-offset: 2px; border-color: var(--primario, #176ec4); }
.acceso-tarjeta .btn { width: 100%; min-height: 48px; }
.acceso-msg { margin: 0; min-height: 1.35em; color: var(--texto-2, #36445a); font-size: var(--t-sm, .8125rem); }
.acceso-msg.error { color: var(--peligro, #d23b3b); }
.acceso-comprar { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; color: var(--primario, #176ec4); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.acceso-pie { margin: 4px 0 0; color: var(--texto-3, #5b697e); font-size: var(--t-xs, .75rem); line-height: 1.45; }
.acceso-legal { margin: 0; font-size: var(--t-xs, .75rem); color: var(--texto-3, #5b697e); }
.acceso-legal a { color: inherit; display: inline-block; min-height: 24px; padding: 2px 0; }
.acceso .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
[data-theme="oscuro"] .acceso { background: radial-gradient(120% 80% at 50% 0%, #133d69, var(--fondo) 70%); }
[data-theme="oscuro"] .acceso-tarjeta h1 { color: var(--texto); }
@media (prefers-color-scheme: dark) { :root:not([data-theme="claro"]) .acceso { background: radial-gradient(120% 80% at 50% 0%, #133d69, var(--fondo) 70%); } :root:not([data-theme="claro"]) .acceso-tarjeta h1 { color: var(--texto); } }
/* Estado del pase (menú Más / Mi pase) */
.pase-info { display: grid; gap: 2px; padding: var(--e-3, 12px); border: 1px solid var(--borde); border-radius: var(--r-md, 10px); background: var(--superficie-2, var(--superficie)); }
.pase-info p { margin: 0; }
.pase-titulo { font-weight: 600; color: var(--texto); }
.pase-vence { color: var(--texto); font-variant-numeric: tabular-nums; }
.pase-nota { color: var(--texto-3, #5b697e); font-size: var(--t-xs, .75rem); line-height: 1.45; }
.pase-info .pase-cerrar { margin-top: 8px; min-height: 44px; color: var(--peligro, #c22f2f); }
.pase-info .pase-cerrar.confirmar { background: var(--peligro, #c22f2f); color: #fff; }
.pc-menu-lista .pase-info { border: 0; border-radius: 0; min-width: 280px; padding: 14px; }
.pc-menu-lista .pase-info .pase-cerrar { text-align: center; border: 1px solid var(--borde); border-radius: var(--r-md, 10px); }

/* F5: cuentas */
.acceso-tabs { display: flex; gap: 4px; padding: 4px; border-radius: 12px; background: var(--primario-suave, #e3eefb); margin: 4px 0 8px; }
.acceso-tabs button { flex: 1; border: 0; background: transparent; color: inherit; font: inherit; font-size: .9rem; min-height: 44px; padding: 4px 6px; border-radius: 9px; cursor: pointer; }
.acceso-tabs button[aria-selected="true"] { background: var(--superficie, #fff); color: var(--primario, #176ec4); font-weight: 600; box-shadow: 0 1px 2px rgba(0,0,0,.12); }
.acceso-form { display: grid; gap: 10px; text-align: left; }
.acceso-etq { display: grid; gap: 4px; font-size: .9rem; }
.acceso-etq input { min-height: 46px; padding: 8px 12px; border: 1px solid var(--borde, #ccd5e0); border-radius: 10px; font: inherit; background: var(--superficie, #fff); color: inherit; }
.acceso-enlace { border: 0; background: none; color: var(--primario, #176ec4); font: inherit; min-height: 44px; cursor: pointer; text-decoration: underline; }
.acceso-rec { margin: 0; padding: 12px; text-align: center; font: 600 1.1rem/1.3 ui-monospace, monospace; letter-spacing: .05em; border: 2px dashed var(--primario, #176ec4); border-radius: 10px; user-select: all; }
.acceso-ts { min-height: 65px; }
