/* ============================================================================
   00 PUERTA AFB — el aspecto del modal de planes y del distintivo
   ----------------------------------------------------------------------------
   Se hereda del tema de la app que lo hospeda. Por eso todo color sale de una
   variable con respaldo: si la app define `--fondo` o `--texto`, la puerta se
   ve como la app; si no, cae en los tonos de la casa —tinta, teal y oro— que
   son los mismos de `00 SUITE AFB`.

   `.afb-marca-doc` es la única regla que también se imprime: es la marca de
   agua del documento. Las demás llevan `no-imprimir` de facto porque el modal
   no existe cuando se manda a la impresora.
   ========================================================================== */

.afb-planes-ov{
  position:fixed; inset:0; z-index:99999;
  background:rgba(8,12,20,.95);
  display:flex; align-items:flex-start; justify-content:center;
  padding:18px; overflow-y:auto;
  font-family:var(--sans,system-ui,'Segoe UI',sans-serif);
}
.afb-planes-caja{ max-width:380px; width:100%; margin:auto; padding:8px 0; }

.afb-planes-tit{
  color:var(--puerta-tit,#fff);
  font-size:1.3rem; font-weight:700; line-height:1.2;
  margin:0 0 6px;
}
.afb-planes-razon{
  color:var(--puerta-oro,#e0a127);
  font-size:.82rem; line-height:1.45; margin:0 0 12px;
}
.afb-planes-benef{
  color:var(--puerta-texto,#cbd5e1);
  font-size:.86rem; line-height:1.5;
  text-align:left; padding-left:18px; margin:0 0 16px;
}
.afb-planes-benef li{ margin-bottom:6px; }

.afb-planes-rejilla{ display:grid; gap:8px; margin-bottom:18px; }

.afb-plan{
  border:1px solid var(--puerta-borde,rgba(201,138,0,.35));
  border-radius:10px; padding:12px; text-align:left;
}
.afb-plan-nombre{
  color:var(--puerta-oro,#e0a127);
  font-size:.72rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase;
}
.afb-plan-precio{
  color:var(--puerta-tit,#fff);
  font-size:1.5rem; font-weight:800; line-height:1.1; margin-top:2px;
  font-variant-numeric:tabular-nums;
}
.afb-plan-periodo{ font-size:.72rem; font-weight:500; color:var(--puerta-tenue,#8ab8b8); }
.afb-plan-nota{ color:var(--puerta-tenue,#8ab8b8); font-size:.72rem; margin-top:2px; }

.afb-pago{
  display:block; width:100%;
  padding:13px; margin-bottom:9px;
  border:none; border-radius:10px;
  color:#fff; font-size:1rem; font-weight:700;
  font-family:inherit; cursor:pointer;
}
.afb-pago:active{ transform:scale(.99); }
.afb-pago-mp{ background:#00b1ea; }
.afb-pago-pp{ background:#003087; }
.afb-pago-wa{ background:#25d366; margin-bottom:0; }

.afb-planes-pie{
  color:var(--puerta-tenue2,#3a5a68);
  font-size:.72rem; margin:14px 0 0;
}
.afb-planes-seguir{
  display:block; width:100%;
  padding:11px; margin-top:14px;
  background:rgba(255,255,255,.08);
  color:var(--puerta-texto,#cbd5e1);
  border:1px solid rgba(255,255,255,.15);
  border-radius:10px;
  font-family:inherit; font-size:.92rem; cursor:pointer;
}

.afb-pago:focus-visible,
.afb-planes-seguir:focus-visible,
.afb-puerta-badge:focus-visible{
  outline:2px solid var(--puerta-oro,#e0a127);
  outline-offset:2px;
}

/* ── El distintivo de la barra ── */
.afb-puerta-badge{
  display:inline-flex; align-items:center; gap:4px;
  background:var(--puerta-badge,#b45309);
  color:#fff; border:none; border-radius:6px;
  padding:3px 8px;
  font-family:inherit; font-size:.72rem; font-weight:700;
  white-space:nowrap; cursor:pointer;
}

/* ── La marca de agua del documento: esto SÍ se imprime ── */
.afb-marca-doc{
  font-size:8.5px; font-style:italic;
  color:#c98a00;
  margin:-8px 0 12px;
}

@media (prefers-reduced-motion:reduce){
  .afb-pago:active{ transform:none; }
}

/* ── Donde el comprador pega su licencia ── */
.afb-planes-tengo{
  display:block; width:100%;
  padding:11px; margin-top:14px;
  background:transparent;
  color:var(--puerta-oro,#e0a127);
  border:1px solid var(--puerta-borde,rgba(201,138,0,.35));
  border-radius:10px;
  font-family:inherit; font-size:.92rem; font-weight:600; cursor:pointer;
}
.afb-lic{ margin-top:12px; text-align:left; }
.afb-lic-rot{
  display:block;
  color:var(--puerta-tenue,#8ab8b8);
  font-size:.74rem; font-weight:600;
  letter-spacing:.06em; text-transform:uppercase;
  margin-bottom:6px;
}
.afb-lic-campo{
  width:100%; padding:10px;
  background:rgba(255,255,255,.06);
  color:var(--puerta-tit,#fff);
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:.78rem; line-height:1.4;
  resize:vertical; word-break:break-all;
}
.afb-lic-campo:focus-visible{ outline:2px solid var(--puerta-oro,#e0a127); outline-offset:1px; }
.afb-lic-msj{ font-size:.78rem; line-height:1.4; margin:8px 0 0; min-height:1.2em; color:var(--puerta-tenue,#8ab8b8); }
.afb-lic-mal{ color:#e0796a; }
.afb-lic-bien{ color:#5fbc86; }
.afb-lic-btn{
  display:block; width:100%;
  padding:12px; margin-top:10px;
  background:var(--puerta-oro,#c98a00); color:#fff;
  border:none; border-radius:10px;
  font-family:inherit; font-size:.95rem; font-weight:700; cursor:pointer;
}

/* ── El código de aparato ──
   Va ARRIBA de la caja de pegar, y numerado 1 y 2, porque el orden importa:
   primero nos manda su correo y su código, y sólo entonces recibe la licencia
   que le corresponde. Al revés, pega una cadena que no va a abrir. */
.afb-lic-correo{
  width:100%; padding:10px; margin-bottom:8px;
  background:rgba(255,255,255,.06);
  color:var(--puerta-tit,#fff);
  border:1px solid rgba(255,255,255,.15);
  border-radius:8px;
  font-family:inherit; font-size:.9rem;
}
.afb-lic-correo:focus-visible{ outline:2px solid var(--puerta-oro,#e0a127); outline-offset:1px; }
.afb-lic-btn2{
  display:inline-block; padding:8px 14px;
  background:transparent; color:var(--puerta-oro,#e0a127);
  border:1px solid rgba(255,255,255,.18); border-radius:8px;
  font-family:inherit; font-size:.8rem; font-weight:600;
  cursor:pointer; text-decoration:none;
}
.afb-lic-btn2:hover{ border-color:var(--puerta-oro,#e0a127); }
.afb-cod{
  margin:12px 0 16px; padding:13px 14px;
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.14); border-radius:10px;
  text-align:center;
}
.afb-cod-rot{ margin:0 0 7px; font-size:.78rem; color:var(--puerta-tenue,#8ab8b8); }
.afb-cod-n{
  display:block; margin-bottom:11px;
  font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:1.32rem; font-weight:700; letter-spacing:.06em;
  color:var(--puerta-oro,#e0a127);
  user-select:all;
}
.afb-cod-btns{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.afb-cod-pie{ margin:10px 0 0; font-size:.71rem; line-height:1.5; color:var(--puerta-tenue,#8ab8b8); }

/* El pie del que ya pagó: esto SÍ se imprime, como la marca de agua */
.afb-lic-doc{
  font-size:7.5px;
  color:#9aa6b3;
  margin:-8px 0 12px;
}

/* ── El cerrojo de app entera ── */
.afb-cerrojo{
  position:fixed; inset:0; z-index:99998;
  background:var(--puerta-cerrojo,#0e1520);
  display:flex; align-items:center; justify-content:center;
  padding:24px; text-align:center;
  font-family:var(--sans,system-ui,'Segoe UI',sans-serif);
}
.afb-cerrojo-caja{max-width:360px;width:100%}
.afb-cerrojo-rot{
  display:inline-block;
  font-size:10px; font-weight:800; letter-spacing:.14em;
  text-transform:uppercase; color:var(--puerta-oro,#e0a127);
  border:1px solid var(--puerta-borde,rgba(201,138,0,.4));
  border-radius:999px; padding:4px 12px; margin:0 0 18px;
}
.afb-cerrojo-tit{
  color:var(--puerta-tit,#fff);
  font-size:1.5rem; font-weight:800; line-height:1.2;
  letter-spacing:-.02em; margin:0 0 12px;
}
.afb-cerrojo-txt{
  color:var(--puerta-texto,#cbd5e1);
  font-size:.94rem; line-height:1.55; margin:0 0 26px;
}
.afb-cerrojo-btn{
  display:block; width:100%; padding:14px;
  background:var(--puerta-oro,#c98a00); color:#fff;
  border:none; border-radius:10px;
  font-family:inherit; font-size:1rem; font-weight:700; cursor:pointer;
}
.afb-cerrojo-btn:focus-visible{outline:2px solid #fff;outline-offset:3px}
.afb-cerrojo-sitio{
  display:inline-block; margin-top:18px;
  color:var(--puerta-tenue,#8ab8b8);
  font-size:.8rem; text-decoration:none;
  border-bottom:1px solid currentColor;
}
