/* =====================================================================================
   JetMando · entrada pública (index.html y verificacion.html)
   Hoja independiente: no carga los estilos ni los datos del sistema.
   Jerarquía: el logo oficial de KW es el protagonista; JetMando identifica la plataforma una sola vez.
   Fondo: luz líquida de KW en movimiento e interactiva (js/entrada-liquido.js); siempre oscuro.
   ===================================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body.entrada { margin: 0; min-height: 100vh; min-height: 100dvh; background: var(--l-lienzo); color: var(--l-texto); font-family: var(--l-fuente);
  font-size: var(--t-cuerpo); line-height: 1.5; letter-spacing: -0.005em; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
body.entrada :focus-visible { outline: 2px solid var(--l-foco); outline-offset: 2px; }
.ac-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- entrada: siempre el mundo de luz líquida (oscuro), elija el tema que elija el sistema ---------- */
body.entrada {
  --l-lienzo: #000710; --l-mesa: #050a18; --l-sup: #12141f; --l-sup-2: #181a27; --l-tinta: #ffffff; --l-sobre-tinta: #05060b; --l-tinta-hover: #e6e9ff;
  --l-texto: #ffffff; --l-texto-2: rgba(255, 255, 255, .78); --l-texto-3: rgba(255, 255, 255, .64);
  --l-borde: rgba(255, 255, 255, .14); --l-borde-2: rgba(255, 255, 255, .22); --l-borde-campo: rgba(255, 255, 255, .42);
  --l-hover: rgba(255, 255, 255, .08); --l-presion: rgba(255, 255, 255, .14); --l-sel: rgba(124, 135, 255, .2);
  --l-indigo: #aab2ff; --l-foco: #c9ceff; --l-foco-halo: rgba(170, 178, 255, .32);
  --l-ok-txt: #5fe3a0; --l-crit-txt: #ff9a95; --l-crit-p: #ff6b66; --l-info-t: rgba(124, 135, 255, .16);
  --l-vidrio: rgba(8, 12, 28, .5); --l-vidrio-fuerte: rgba(10, 13, 28, .9); --l-vidrio-borde: rgba(255, 255, 255, .12);
  --l-sombra-1: 0 0 0 1px rgba(255, 255, 255, .12); --l-sombra-2: 0 30px 70px -30px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .12);
  color-scheme: dark;
}

/* ---------- escena: luz líquida (js/entrada-liquido.js), grano y sello ---------- */
.ac-escena { position: fixed; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; contain: strict; view-transition-name: kw-ambiente;
  background: radial-gradient(40% 50% at 70% 40%, rgba(0, 200, 140, .5), transparent 70%), radial-gradient(55% 60% at 62% 58%, #0b4fd0 0%, #04205f 45%, #000710 80%); }
.ac-liquido { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity .45s ease; }
.ac-escena.ac-vivo .ac-liquido { opacity: 1; }
.ac-escena.ac-sin-gl .ac-liquido { display: none; }
.ac-escena.ac-sin-gl { animation: ac-respira 14s ease-in-out infinite alternate; background-size: 140% 140%; }
@keyframes ac-respira { to { background-position: 30% 40%, 70% 60%; } }
.ac-grano { position: absolute; inset: 0; opacity: .1; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.ac-sello { position: absolute; left: 40px; bottom: 36px; width: 112px; height: 112px; }
.ac-sello svg { width: 100%; height: 100%; overflow: visible; animation: ac-gira 22s linear infinite; }
.ac-sello text { font: 500 9.6px var(--l-fuente); letter-spacing: 2.4px; text-transform: uppercase; fill: rgba(255, 255, 255, .8); }
.ac-sello span { position: absolute; left: 50%; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #22e07f; box-shadow: 0 0 0 5px rgba(34, 224, 127, .18), 0 0 18px #22e07f; }
:root[data-mov="no"] .ac-sello svg { animation: none; }
:root[data-fondo="no"] .ac-liquido, :root[data-fondo="no"] .ac-grano { display: none; }
:root[data-fondo="no"] .ac-escena { animation: none; }
/* 1.6 · fondo propio de la empresa (un color o una imagen): sin fibra ni brillo animado */
:root[data-fondo-propio] .ac-escena { animation: none; }
:root[data-fondo-propio] .ac-liquido, :root[data-fondo-propio] .ac-grano, :root[data-fondo-propio] .ac-fibra { display: none; }

/* ---------- barra superior: solo utilidades ---------- */
.ac-barra { position: relative; z-index: 3; display: flex; align-items: center; gap: var(--e-2); padding: 16px clamp(16px, 4vw, 40px); }
.ac-entorno { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-meta); font-weight: 600; color: var(--l-texto-2); }
.ac-entorno[hidden], .ac-pref[hidden] { display: none !important; }
.ac-entorno b { display: inline-flex; align-items: center; height: 22px; padding: 0 9px; border-radius: var(--r-pildora); background: var(--l-lima); color: #000; font-size: 12px; font-weight: 700; letter-spacing: 0; }
.ac-barra .ac-util { margin-left: auto; display: flex; gap: 6px; }

/* ---------- composición ---------- */
.ac-main { position: relative; z-index: 2; width: 100%; max-width: 1240px; margin: 0 auto; padding: clamp(8px, 3vh, 40px) clamp(16px, 4vw, 48px) 48px;
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, 440px); gap: clamp(32px, 6vw, 96px); align-items: center; min-height: calc(100dvh - 72px); }
.ac-marca { min-width: 0; padding-bottom: 6vh; }
.ac-logo { display: block; width: clamp(160px, 17vw, 240px); height: auto; aspect-ratio: 101.48 / 76.57; margin: 0 0 clamp(26px, 4.4vh, 40px); filter: drop-shadow(0 18px 30px rgba(26, 30, 90, .14)); }
/* en oscuro se conserva el logo de color sobre su placa blanca (colores oficiales intactos) */
body.entrada .ac-logo { filter: drop-shadow(0 22px 44px rgba(0, 0, 0, .55)); }
/* el lema del producto acompaña; no compite con el logo ni repite su eslogan */
.ac-frase { margin: 0; max-width: 11.5em; font-size: clamp(44px, 3.7vw, 58px); font-weight: 480; line-height: 1.03; letter-spacing: -0.035em; color: var(--l-texto); text-wrap: balance; }
.ac-areas { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 26px; margin: clamp(22px, 4vh, 36px) 0 0; padding: 0; color: var(--l-texto-2); font-size: 15px; font-weight: 550; }
.ac-areas li { display: inline-flex; align-items: center; gap: 9px; }
.ac-areas svg { width: 18px; height: 18px; flex: none; stroke: #5fe3a0; }
.ac-frase { text-shadow: 0 2px 30px rgba(0, 0, 0, .35); }

/* ---------- tarjeta de acceso: superficie estable ---------- */
.ac-tarjeta { position: relative; background: rgba(6, 9, 22, .74); backdrop-filter: blur(22px) saturate(140%); -webkit-backdrop-filter: blur(22px) saturate(140%); border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--r-tarjeta); padding: clamp(24px, 3vw, 34px); box-shadow: 0 30px 80px -30px rgba(0, 0, 0, .75); view-transition-name: kw-acceso; }
.ac-tarjeta h1 { margin: 0; font-size: 24px; line-height: 1.2; font-weight: 640; letter-spacing: -0.025em; }
.ac-isp { font-weight: 780; letter-spacing: .015em; margin-left: .02em; }
.ac-tarjeta .ac-sub { margin: 6px 0 24px; color: var(--l-texto-2); font-size: 15px; }
.ac-campo { display: grid; gap: 7px; margin-bottom: 16px; }
.ac-campo label { font-size: 14px; font-weight: 600; color: var(--l-texto); }
.ac-entrada { position: relative; }
.ac-entrada input { width: 100%; height: 48px; padding: 0 16px; border: 1px solid var(--l-borde-campo); border-radius: var(--r-campo); background: rgba(255, 255, 255, .06); color: var(--l-texto);
  font: 500 16px/1 var(--l-fuente); letter-spacing: 0; transition: border-color var(--m-control) ease, box-shadow var(--m-control) ease; }
.ac-entrada input::placeholder { color: var(--l-texto-3); opacity: 1; }
.ac-entrada input:hover { border-color: var(--l-texto-3); }
.ac-entrada input:focus { outline: 0; border-color: var(--l-foco); box-shadow: 0 0 0 4px var(--l-foco-halo); }
.ac-entrada input[aria-invalid="true"] { border-color: var(--l-crit-p); }
.ac-entrada .ac-ojo { position: absolute; right: 4px; top: 4px; }
.ac-entrada input.con-ojo { padding-right: 52px; }
.ac-estado { min-height: 20px; margin: -4px 0 12px; font-size: 13.5px; font-weight: 550; }
.ac-estado.error { color: var(--l-crit-txt); }
.ac-estado.ok { color: var(--l-ok-txt); }
.ac-aux { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 16px; font-size: 14px; }
.ac-check { display: inline-flex; align-items: center; gap: 9px; color: var(--l-texto-2); cursor: pointer; min-height: 32px; }
.ac-check input { width: 18px; height: 18px; margin: 0; accent-color: var(--l-indigo); }
.ac-enlace { appearance: none; border: 0; background: none; padding: 6px 2px; color: var(--l-indigo); font: 600 14px var(--l-fuente); cursor: pointer; border-radius: 6px; text-decoration: underline; text-decoration-color: color-mix(in srgb, currentColor 35%, transparent); text-underline-offset: 3px; }
.ac-enlace:hover { text-decoration-color: currentColor; }
.ac-pie { margin: 22px 0 0; font-size: var(--t-meta); color: var(--l-texto-3); line-height: 1.45; }

/* demostración: separada, identificada y opcional */
.ac-demo { margin-top: 24px; padding-top: 22px; border-top: 1px solid var(--l-borde); }
.ac-demo .ac-demo-t { margin: 0 0 4px; font-size: 15px; font-weight: 650; letter-spacing: -0.01em; }
.ac-demo .ac-btn { padding: 10px 16px; line-height: 1.25; text-wrap: balance; }
.ac-etq-demo { display: inline-flex; align-items: center; height: 22px; padding: 0 10px; border-radius: var(--r-pildora); background: var(--l-lima); color: #000; font-size: 12px; font-weight: 700; }
.ac-demo p { margin: 0 0 14px; font-size: 14px; color: var(--l-texto-2); }
.ac-demo .ac-recordado { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 10px 0 0; font-size: 13.5px; color: var(--l-texto-2); }
/* sesión abierta: la decisión principal es continuar; el formulario queda recogido */
.ac-sesion { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 14px; margin: 22px 0 4px; }
.ac-sesion-av { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--l-tinta); color: var(--l-sobre-tinta); font-size: 14px; font-weight: 700; letter-spacing: .02em; }
.ac-sesion-txt { min-width: 0; }
.ac-sesion-t { margin: 0; font-size: 15.5px; font-weight: 650; letter-spacing: -0.01em; }
.ac-sesion-d { margin: 2px 0 0; font-size: 14px; color: var(--l-texto-2); }
.ac-sesion .ac-btn { grid-column: 1 / -1; margin-top: 6px; }
.ac-sesion-aux { grid-column: 1 / -1; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
body[data-sesion="abierta"] :is(#ac-form, .ac-sub, #ac-demo, .ac-pie) { display: none; }
body[data-sesion="otra"] #ac-demo { display: none; }
body[data-sesion="otra"] .ac-sesion { margin-bottom: 22px; padding-bottom: 20px; border-bottom: 1px solid var(--l-borde); }
body[data-sesion="otra"] .ac-sesion .ac-btn { display: none; }

/* ---------- botones (mismo sistema que el interior) ---------- */
.ac-btn { appearance: none; position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 20px; width: 100%; text-align: center;
  border-radius: var(--r-pildora); border: 1px solid transparent; font: 600 15px/1.2 var(--l-fuente); letter-spacing: -0.005em; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
  transition: transform var(--m-retorno) var(--m-curva), background-color var(--m-retorno) ease, box-shadow var(--m-retorno) ease, border-color var(--m-retorno) ease, color var(--m-retorno) ease; }
.ac-btn.primario { background: var(--l-tinta); color: var(--l-sobre-tinta); box-shadow: 0 12px 30px -14px rgba(120, 170, 255, .55); }
.ac-btn.primario:hover { background: var(--l-tinta-hover); }
.ac-btn.secundario { background: transparent; color: var(--l-texto); border-color: rgba(255, 255, 255, .5); }
.ac-btn.secundario:hover { background: var(--l-hover); border-color: var(--l-texto-3); }
.ac-btn:active, .ac-btn.s-presion { transform: scale(.98); transition-duration: var(--m-presion); }
.ac-btn.primario:active, .ac-btn.primario.s-presion { box-shadow: 0 4px 10px -8px rgba(0, 0, 0, .6); }
.ac-btn.secundario:active, .ac-btn.secundario.s-presion { background: var(--l-presion); }
.ac-btn:focus-visible { outline: 2px solid var(--l-foco); outline-offset: 3px; }
.ac-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; box-shadow: none; }
.ac-btn[aria-busy="true"] { cursor: progress; color: transparent !important; }
.ac-btn[aria-busy="true"]::after { content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%; border: 2px solid currentColor; border-color: var(--l-sobre-tinta) transparent var(--l-sobre-tinta) transparent; animation: ac-gira .8s linear infinite; }
.ac-btn.secundario[aria-busy="true"]::after { border-color: var(--l-texto) transparent var(--l-texto) transparent; }
.ac-icono { appearance: none; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; border: 0; background: transparent; color: var(--l-texto); cursor: pointer;
  transition: transform var(--m-retorno) var(--m-curva), background-color var(--m-retorno) ease; -webkit-tap-highlight-color: transparent; font: 650 13px var(--l-fuente); }
.ac-icono:hover { background: color-mix(in srgb, var(--l-texto) 7%, transparent); }
.ac-icono:active, .ac-icono.s-presion { transform: scale(.94); background: color-mix(in srgb, var(--l-texto) 12%, transparent); transition-duration: var(--m-presion); }
.ac-icono svg { width: 20px; height: 20px; }
.ac-barra .ac-icono { background: var(--l-vidrio); backdrop-filter: blur(14px) saturate(160%); -webkit-backdrop-filter: blur(14px) saturate(160%); box-shadow: var(--l-sombra-1); }
@keyframes ac-gira { to { transform: rotate(1turn); } }

/* ---------- presentación (tema, movimiento, fondo, texto) ---------- */
.ac-pref .ac-nota { margin: 10px 0 0; font-size: 12.5px; color: var(--l-texto-3); }
.ac-pref { position: absolute; z-index: 20; right: clamp(16px, 4vw, 40px); top: 64px; width: min(340px, calc(100vw - 32px)); padding: 16px; border-radius: var(--r-menu);
  background: var(--l-vidrio-fuerte); backdrop-filter: blur(24px) saturate(170%); -webkit-backdrop-filter: blur(24px) saturate(170%); box-shadow: var(--l-sombra-2);
  opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity var(--m-panel) ease, transform var(--m-panel) var(--m-curva), visibility 0s linear var(--m-panel); visibility: hidden; }
.ac-pref.abierto { opacity: 1; transform: none; pointer-events: auto; visibility: visible; transition-delay: 0s; }
.ac-pref h2 { margin: 0 0 12px; font-size: 15px; font-weight: 650; }
.ac-pref .ac-fila { margin-bottom: 12px; }
.ac-pref .ac-fila:last-child { margin-bottom: 0; }
.ac-pref .ac-fila > span { display: block; font-size: 12.5px; font-weight: 600; color: var(--l-texto-2); margin-bottom: 6px; }
.ac-seg { display: flex; gap: 2px; padding: 3px; border-radius: var(--r-pildora); background: color-mix(in srgb, var(--l-texto) 7%, transparent); }
.ac-seg button { appearance: none; flex: 1; min-height: 32px; padding: 0 10px; border: 0; border-radius: var(--r-pildora); background: transparent; color: var(--l-texto); font: 550 13.5px var(--l-fuente); cursor: pointer;
  transition: background-color var(--m-control) ease, box-shadow var(--m-control) ease, transform var(--m-retorno) var(--m-curva); }
.ac-seg button:hover { background: color-mix(in srgb, var(--l-sup) 60%, transparent); }
.ac-seg button:active { transform: scale(.98); transition-duration: var(--m-presion); }
.ac-seg button[aria-pressed="true"] { background: #2b2d40; font-weight: 650; box-shadow: 0 2px 8px rgba(0, 0, 0, .3), 0 0 0 1px rgba(255, 255, 255, .08); }

/* ---------- verificación en dos pasos ---------- */
.ac-cajas { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; margin: 4px 0 14px; }
.ac-cajas input { width: 100%; height: 56px; padding: 0; text-align: center; border: 1px solid var(--l-borde-campo); border-radius: 14px; background: rgba(255, 255, 255, .06); color: var(--l-texto);
  font: 650 22px/1 var(--l-fuente); font-variant-numeric: tabular-nums; transition: border-color var(--m-control) ease, box-shadow var(--m-control) ease; }
.ac-cajas input:focus { outline: 0; border-color: var(--l-foco); box-shadow: 0 0 0 4px var(--l-foco-halo); }
.ac-cajas.error input { border-color: var(--l-crit-p); }
.ac-volver { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 18px; color: var(--l-texto-2); font-size: 14px; font-weight: 600; text-decoration: none; padding: 4px 0; }
.ac-volver:hover { color: var(--l-texto); }
.ac-volver svg { width: 16px; height: 16px; }
.ac-metodos { display: flex; gap: 6px 18px; flex-wrap: wrap; margin-top: 4px; }

/* ---------- diálogo de recuperación ---------- */
.ac-dialogo { border: 0; padding: 0; border-radius: var(--r-dialogo); width: min(440px, calc(100vw - 32px)); background: var(--l-sup); color: var(--l-texto); box-shadow: var(--l-sombra-2); }
.ac-dialogo::backdrop { background: rgba(11, 12, 20, .32); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.ac-dialogo[open] { animation: ac-hoja var(--m-panel) var(--m-curva); }
.ac-dialogo .ac-dcab { display: flex; align-items: center; justify-content: space-between; padding: 18px 20px 4px 24px; }
.ac-dialogo .ac-dcab h2 { margin: 0; font-size: 18px; font-weight: 650; }
.ac-dialogo .ac-dcuerpo { padding: 8px 24px 24px; }
.ac-dialogo .ac-dcuerpo p { margin: 0 0 14px; color: var(--l-texto-2); font-size: 15px; }
.ac-dialogo .ac-radios { display: flex; gap: 18px; margin: 4px 0 16px; }
@keyframes ac-hoja { from { opacity: 0; transform: translateY(8px) scale(.985); } }

/* ---------- entrada al espacio de trabajo: el ambiente se atenúa y la tarjeta se retira ---------- */
body.entrada.ac-saliendo .ac-main { opacity: 0; transform: scale(.985); transition: opacity .22s ease, transform .22s ease; }
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .22s; }
::view-transition-group(kw-ambiente) { animation: none; }
::view-transition-old(kw-ambiente), ::view-transition-new(kw-ambiente) { animation: none; }
::view-transition-group(kw-acceso) { animation-duration: .3s; animation-timing-function: cubic-bezier(.2, .7, .2, 1); }
::view-transition-old(kw-acceso), ::view-transition-new(kw-acceso) { animation-duration: .2s; height: 100%; object-fit: cover; object-position: top; }
:root[data-mov="no"] ::view-transition-group(*), :root[data-mov="no"] ::view-transition-old(*), :root[data-mov="no"] ::view-transition-new(*) { animation: none !important; }

/* ---------- tableta y teléfono ---------- */
@media (max-width: 980px) {
  .ac-main { grid-template-columns: minmax(0, 1fr) minmax(340px, 400px); gap: 40px; }
  .ac-frase { font-size: clamp(44px, 5.4vw, 60px); }
}
@media (max-width: 820px) {
  .ac-main { grid-template-columns: 1fr; align-items: start; gap: 28px; padding-top: 4px; min-height: 0; max-width: 560px; }
  .ac-marca { padding-bottom: 0; }
  .ac-logo { width: clamp(110px, 34vw, 150px); margin-bottom: 22px; }
  .ac-frase { font-size: clamp(28px, 7.6vw, 40px); max-width: 13em; letter-spacing: -0.03em; }
  .ac-areas { margin-top: 18px; font-size: 14px; gap: 8px 20px; }
  .ac-sello { display: none; }
}
@media (max-width: 420px) {
  .ac-tarjeta { padding: 22px 18px; }
  .ac-cajas { gap: 6px; }
  .ac-cajas input { height: 50px; font-size: 20px; }
  .ac-aux { flex-direction: column; align-items: flex-start; gap: 4px; }
}
@media (max-width: 1280px), (max-height: 860px) { .ac-sello { display: none; } }
@media (max-height: 820px) and (min-width: 821px) {
  .ac-barra { padding-top: 12px; padding-bottom: 8px; }
  .ac-main { min-height: calc(100dvh - 60px); padding-bottom: 24px; }
  .ac-logo { width: clamp(180px, 18vw, 220px); margin-bottom: 24px; }
  .ac-frase { font-size: clamp(44px, 3.4vw, 52px); }
  .ac-tarjeta { padding: 26px 30px; }
  .ac-tarjeta .ac-sub { margin: 4px 0 16px; }
  .ac-campo { gap: 6px; margin-bottom: 12px; }
  .ac-entrada input { height: 44px; }
  .ac-entrada .ac-ojo { top: 2px; }
  .ac-estado { min-height: 18px; margin: -2px 0 8px; }
  .ac-btn { min-height: 44px; }
  .ac-aux { margin-top: 10px; }
  .ac-demo { margin-top: 16px; padding-top: 16px; }
  .ac-demo p { margin-bottom: 10px; }
  .ac-pie { margin-top: 14px; }
}

/* v9.10.15 · marca centrada y logo 3D sobre placa blanca */
.ac-marca { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ac-frase { margin-left: auto; margin-right: auto; }
.ac-areas { justify-content: center; }
.ac-logo.ac-logo3d { position: relative; margin-left: auto; margin-right: auto; border-radius: 8.9% / 11.8%; overflow: hidden; }
.ac-logo3d .ac-logo-fijo { display: block; width: 100%; height: 100%; }
.ac-logo3d.en-3d { background: #fff; }
.ac-logo3d.en-3d .ac-logo-fijo { visibility: hidden; }
.ac-logo3d-c { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
body.entrada .ac-logo.ac-logo3d { width: clamp(180px, 19vw, 270px); }
@media (max-width: 760px) { body.entrada .ac-logo.ac-logo3d { width: clamp(130px, 40vw, 170px); } }

/* v9.10.17 · fondo de red de fibra (canvas 2D) en lugar de la luz líquida y del logo 3D */
.ac-fibra { position: absolute; inset: 0; width: 100%; height: 100%; display: block; opacity: 0; transition: opacity .45s ease; }
.ac-escena.ac-vivo .ac-fibra { opacity: 1; }
.ac-logo { --ac-brillo: .25; transition: box-shadow .25s ease; border-radius: 8.9% / 11.8%; background: #fff; box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 0 calc(18px + 30px * var(--ac-brillo)) rgba(70,230,140, calc(.18 + .55 * var(--ac-brillo))); } /* el fondo del acceso es oscuro en los dos temas: el recuadro blanco se conserva */
.ac-logo .ac-logo-fijo { display: block; width: 100%; height: 100%; border-radius: inherit; }
.ac-logo { width: clamp(180px, 19vw, 270px); margin-left: auto; margin-right: auto; }


/* =====================================================================================
   v9.10.18 · Acceso con el estilo de la Agenda KW: fondo de fibra verde → azul, tarjeta translúcida verde agua,
   campos con borde verde agua y botón Entrar verde. Posición: marca a la izquierda, tarjeta a la derecha.
   ===================================================================================== */
body.entrada {
  --l-lienzo: #06231f; --l-indigo: #7fe3d3; --l-foco: #5fe3c0; --l-foco-halo: rgba(80, 220, 180, .22);
  --l-borde-campo: rgba(110, 210, 200, .5); --l-texto-2: rgba(232, 244, 245, .82); --l-texto-3: rgba(220, 236, 238, .62);
  --ag-tarjeta: rgba(10, 36, 52, .74); --ag-borde: rgba(130, 220, 205, .2); --ag-campo: rgba(16, 52, 70, .62);
  --ag-verde-1: #04a650; --ag-verde-2: #34cc96; --ag-sobre-verde: #062d1d;
}
.ac-escena { background: linear-gradient(135deg, #06231f 0%, #0a3a3e 38%, #0e3260 70%, #14287a 100%); }
:root[data-fondo="no"] .ac-escena { background: linear-gradient(135deg, #06231f 0%, #0a3a3e 38%, #0e3260 70%, #14287a 100%); }
.ac-grano { opacity: .05; }

/* tarjeta */
body.entrada .ac-tarjeta { background: var(--ag-tarjeta); border: 1px solid var(--ag-borde); border-radius: 24px; padding: clamp(26px, 3vw, 38px);
  backdrop-filter: blur(18px) saturate(130%); -webkit-backdrop-filter: blur(18px) saturate(130%);
  box-shadow: 0 30px 80px -28px rgba(0, 10, 20, .75), inset 0 1px 0 rgba(255, 255, 255, .05); }
body.entrada .ac-tarjeta h1 { font-size: 27px; font-weight: 760; letter-spacing: -0.03em; }
body.entrada .ac-tarjeta .ac-sub { color: var(--l-texto-2); font-size: 15.5px; }
body.entrada .ac-campo label { font-weight: 650; font-size: 14.5px; }

/* campos */
body.entrada .ac-entrada input, body.entrada .ac-cajas input { background: var(--ag-campo); border: 1px solid var(--l-borde-campo); border-radius: 12px; color: #fff; }
body.entrada .ac-entrada input { height: 52px; }
body.entrada .ac-entrada .ac-ojo { top: 6px; }
body.entrada .ac-entrada input:hover, body.entrada .ac-cajas input:hover { border-color: rgba(140, 230, 215, .75); }
body.entrada .ac-entrada input:focus, body.entrada .ac-cajas input:focus { border-color: var(--l-foco); box-shadow: 0 0 0 4px var(--l-foco-halo); background: rgba(18, 58, 78, .75); }

/* botón Entrar verde */
body.entrada .ac-btn { border-radius: 12px; }
body.entrada .ac-btn.primario { min-height: 54px; background: linear-gradient(90deg, var(--ag-verde-1), var(--ag-verde-2)); color: var(--ag-sobre-verde); font-weight: 700; font-size: 16px;
  box-shadow: 0 14px 34px -14px rgba(40, 210, 140, .7), inset 0 1px 0 rgba(255, 255, 255, .18); }
body.entrada .ac-btn.primario:hover { background: linear-gradient(90deg, #08b45a, #45d8a3); }
body.entrada .ac-btn.primario:active, body.entrada .ac-btn.primario.s-presion { box-shadow: 0 6px 14px -10px rgba(40, 210, 140, .8); }
body.entrada .ac-btn[aria-busy="true"]::after { border-color: var(--ag-sobre-verde) transparent var(--ag-sobre-verde) transparent; }
body.entrada .ac-btn.secundario { border-color: rgba(130, 220, 205, .45); border-radius: 12px; }
body.entrada .ac-btn.secundario:hover { background: rgba(80, 220, 180, .08); }

/* enlaces, casilla y mensajes */
body.entrada .ac-enlace { color: var(--l-indigo); }
body.entrada .ac-check input { accent-color: #22c98a; }
body.entrada .ac-estado:not(:empty) { display: flex; align-items: center; gap: 10px; min-height: 0; margin: 0 0 16px; padding: 11px 14px; border-radius: 12px; font-size: 14.5px; font-weight: 550; }
body.entrada .ac-estado.ok:not(:empty) { background: rgba(20, 110, 90, .3); border: 1px solid rgba(70, 210, 160, .45); color: #d8fbea; }
body.entrada .ac-estado.ok:not(:empty)::before { content: "✓"; font-weight: 700; color: #5fe3a0; }
body.entrada .ac-estado.error:not(:empty) { background: rgba(140, 30, 40, .28); border: 1px solid rgba(255, 120, 115, .45); color: #ffd9d6; }
body.entrada .ac-estado:empty { min-height: 0; margin: 0 0 10px; }
body.entrada .ac-pie { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(130, 220, 205, .16); }
body.entrada .ac-volver { color: var(--l-texto-2); }

/* barra superior (idioma y presentación) con el mismo vidrio verde agua */
body.entrada .ac-barra .ac-icono { background: rgba(10, 36, 52, .6); box-shadow: 0 0 0 1px var(--ag-borde); }
body.entrada .ac-pref, body.entrada .ac-dialogo { background: rgba(10, 34, 50, .96); border: 1px solid var(--ag-borde); }
body.entrada .ac-seg button[aria-pressed="true"] { background: #164a5a; }

/* marca a la izquierda: el logo es el destino de las fibras */
body.entrada .ac-frase { text-shadow: 0 2px 28px rgba(0, 10, 20, .45); }
body.entrada .ac-areas svg { stroke: #5fe3a0; }
.ac-sello { display: none; }
@media (max-width: 820px) { body.entrada .ac-tarjeta { padding: 24px 20px; } body.entrada .ac-tarjeta h1 { font-size: 24px; } }
body.entrada { background: linear-gradient(135deg, #06231f 0%, #0a3a3e 38%, #0e3260 70%, #14287a 100%) fixed; }

/* ---------- v9.10.48 · JetMando ----------
   Pantalla de entrada de cada empresa: abajo de la tarjeta, «Con la tecnología de JetMando».
   Entrada general (jetmando.html = app.jetmando.com): el logo de JetMando y la dirección de la empresa. */
.ac-jm { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 18px 0 0; padding-top: 14px; border-top: 1px solid rgba(130, 220, 205, .16); font-size: 12.5px; color: var(--l-texto-3); }
.ac-jm svg { width: 18px; height: 18px; flex: none; }
.ac-jm b { font-weight: 750; letter-spacing: -.01em; } .ac-jm .j { color: #fff; } .ac-jm .m { color: #2fc874; }
body[data-sesion="abierta"] .ac-jm { display: flex; }
.jm-general .jm-logo { width: clamp(96px, 9vw, 124px); aspect-ratio: 1 / 1; margin-bottom: 18px; }
.jm-general .jm-logo svg { width: 100%; height: 100%; display: block; border-radius: 26%; }
.jm-nombre { margin: 0; font-size: clamp(44px, 4vw, 60px); font-weight: 750; letter-spacing: -.03em; line-height: 1; }
.jm-nombre .j { color: #fff; } .jm-nombre .m { color: #2fc874; }
.jm-desc { margin: 10px 0 clamp(22px, 4vh, 34px); font-size: 15px; font-weight: 600; color: var(--l-texto-2); }
.jm-dir { display: flex; align-items: center; }
.jm-dir input { flex: 1; min-width: 0; }
.jm-suf { padding: 0 4px 0 12px; color: var(--l-texto-3); font-size: 15px; white-space: nowrap; }
body.jm-general .ac-logo.jm-logo { background: transparent; border-radius: 26%; margin-left: auto; margin-right: auto; }
body.jm-general .ac-marca { text-align: center; }
