/* Portada de acceso: mundo visual propio (navy nocturno), independiente del
   tema claro/oscuro del panel interno — decisión de marca deliberada
   (skill estilo-ph-transportes). Dos puertas: Equipo P&H y Portal de clientes. */
:root{
  color-scheme:dark;
  --pt-fondo:#050914; --pt-fondo-2:#0B1430;
  --pt-tinta:#EEF2FB; --pt-tinta-2:rgba(226,233,248,.74); --pt-tinta-3:rgba(226,233,248,.56);
  --pt-vidrio:rgba(255,255,255,.055); --pt-vidrio-2:rgba(255,255,255,.09);
  --pt-borde:rgba(255,255,255,.12); --pt-borde-2:rgba(255,255,255,.22);
  --pt-naranjo:#F28A45; --pt-naranjo-2:#E2632A; --pt-naranjo-tinta:#1C0D04;
  --pt-cian:#4CC9F0; --pt-cian-2:#2BA3D6; --pt-cian-tinta:#03192A;
  --pt-verde:#5BD6A0; --pt-error:#FF9C94; --pt-error-fondo:rgba(255,107,95,.12);
  --pt-font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --pt-mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,"Roboto Mono",monospace;
}
*{ box-sizing:border-box; }
html,body{ margin:0; min-height:100%; }
body{
  background:var(--pt-fondo); color:var(--pt-tinta); font-family:var(--pt-font);
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
button,input{ font:inherit; color:inherit; }
a{ color:inherit; }
:focus-visible{ outline:2px solid var(--pt-cian); outline-offset:3px; border-radius:10px; }

/* ---------- Fondo: aurora + retícula ---------- */
.pt-fondo{ position:fixed; inset:0; z-index:0; overflow:hidden; pointer-events:none;
  background:radial-gradient(120% 80% at 50% -10%, var(--pt-fondo-2) 0%, var(--pt-fondo) 62%); }
.pt-aurora{ position:absolute; border-radius:50%; filter:blur(70px); opacity:.55; will-change:transform; }
.pt-aurora.a1{ width:46vmax; height:46vmax; left:-12vmax; top:-14vmax; background:radial-gradient(circle, rgba(226,99,42,.55), rgba(226,99,42,0) 70%); animation:pt-deriva1 22s ease-in-out infinite alternate; }
.pt-aurora.a2{ width:52vmax; height:52vmax; right:-18vmax; top:8vmax; background:radial-gradient(circle, rgba(52,92,230,.6), rgba(52,92,230,0) 70%); animation:pt-deriva2 26s ease-in-out infinite alternate; }
.pt-aurora.a3{ width:40vmax; height:40vmax; left:22vmax; bottom:-22vmax; background:radial-gradient(circle, rgba(43,163,214,.45), rgba(43,163,214,0) 70%); animation:pt-deriva3 30s ease-in-out infinite alternate; }
@keyframes pt-deriva1{ to{ transform:translate(8vmax,6vmax) scale(1.08); } }
@keyframes pt-deriva2{ to{ transform:translate(-9vmax,-5vmax) scale(.94); } }
@keyframes pt-deriva3{ to{ transform:translate(-6vmax,-8vmax) scale(1.1); } }
.pt-reticula{ position:absolute; inset:0;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size:44px 44px;
  -webkit-mask-image:radial-gradient(90% 70% at 50% 35%, #000 20%, transparent 75%);
          mask-image:radial-gradient(90% 70% at 50% 35%, #000 20%, transparent 75%); }

/* ---------- Estructura ---------- */
.pt{ position:relative; z-index:1; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column;
  padding:calc(env(safe-area-inset-top,0px) + 18px) max(18px, env(safe-area-inset-right,0px)) calc(env(safe-area-inset-bottom,0px) + 18px) max(18px, env(safe-area-inset-left,0px)); }
.pt-top{ display:flex; align-items:center; justify-content:space-between; gap:12px; max-width:1180px; width:100%; margin:0 auto; }
.pt-marca{ display:flex; align-items:center; gap:11px; text-decoration:none; min-width:0; }
.pt-logo{ width:42px; height:42px; flex:none; border-radius:12px; padding:3px; background:#fff;
  border:2px solid rgba(255,255,255,.85); box-shadow:0 8px 20px -8px rgba(0,0,0,.7); }
.pt-logo img{ width:100%; height:100%; display:block; border-radius:9px; }
.pt-marca-txt{ display:flex; flex-direction:column; line-height:1.1; min-width:0; }
.pt-marca-txt b{ font-size:15.5px; font-weight:800; letter-spacing:-.01em; }
.pt-marca-txt span{ font-size:11.5px; color:var(--pt-tinta-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pt-seguro{ display:inline-flex; align-items:center; gap:7px; flex:none; padding:7px 12px; border-radius:999px;
  background:rgba(91,214,160,.09); border:1px solid rgba(91,214,160,.28); color:#BFF1D8; font-size:12px; font-weight:700; }
.pt-seguro i{ width:7px; height:7px; border-radius:50%; background:var(--pt-verde); box-shadow:0 0 0 0 rgba(91,214,160,.6); animation:pt-latido 2.4s ease-out infinite; }
@keyframes pt-latido{ 0%{ box-shadow:0 0 0 0 rgba(91,214,160,.55); } 80%,100%{ box-shadow:0 0 0 9px rgba(91,214,160,0); } }

.pt-escena{ flex:1; width:100%; max-width:1180px; margin:0 auto; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);
  gap:clamp(28px,5vw,72px); align-items:center; padding-block:clamp(24px,5vh,56px); }

/* ---------- Columna de marca ---------- */
.pt-hero{ min-width:0; display:flex; flex-direction:column; gap:22px; }
.pt-eyebrow{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; font-family:var(--pt-mono); font-size:11.5px;
  letter-spacing:.14em; text-transform:uppercase; color:var(--pt-tinta-2); padding:6px 11px; border-radius:999px;
  background:var(--pt-vidrio); border:1px solid var(--pt-borde); }
.pt-eyebrow svg{ color:var(--pt-naranjo); }
.pt-titulo{ margin:0; font-size:clamp(34px,5.4vw,62px); line-height:1.02; font-weight:850; letter-spacing:-.035em; text-wrap:balance; }
.pt-titulo em{ font-style:normal; background:linear-gradient(92deg, var(--pt-naranjo) 0%, #FFC59C 45%, var(--pt-cian) 100%);
  -webkit-background-clip:text; background-clip:text; color:transparent; }
.pt-bajada{ margin:0; max-width:52ch; font-size:clamp(15px,1.5vw,17px); line-height:1.55; color:var(--pt-tinta-2); }

.pt-mapa{ position:relative; border-radius:22px; background:linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,.02));
  border:1px solid var(--pt-borde); box-shadow:inset 0 1px 0 rgba(255,255,255,.06); overflow:hidden; }
.pt-mapa-cab{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 16px 0; font-size:11.5px; color:var(--pt-tinta-3); }
.pt-mapa-cab b{ font-family:var(--pt-mono); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--pt-tinta-2); }
.pt-mapa-ley{ display:flex; gap:12px; flex-wrap:wrap; }
.pt-mapa-ley span{ display:inline-flex; align-items:center; gap:5px; }
.pt-mapa-ley i{ width:8px; height:8px; border-radius:50%; display:inline-block; }
.pt-mapa svg{ display:block; width:100%; height:auto; }
.pt-ruta{ fill:none; stroke-width:2; stroke-linecap:round; stroke-dasharray:6 9; animation:pt-flujo 1.6s linear infinite; }
.pt-ruta-base{ fill:none; stroke:rgba(255,255,255,.08); stroke-width:6; stroke-linecap:round; }
@keyframes pt-flujo{ to{ stroke-dashoffset:-30; } }
.pt-nodo-halo{ transform-box:fill-box; transform-origin:center; animation:pt-halo 2.8s ease-out infinite; }
@keyframes pt-halo{ 0%{ transform:scale(.6); opacity:.7; } 100%{ transform:scale(2.4); opacity:0; } }
.pt-mapa text{ font-family:var(--pt-mono); font-size:11.5px; fill:rgba(226,233,248,.78); letter-spacing:.02em; }
.pt-mapa text.sub{ font-size:9.5px; fill:rgba(226,233,248,.45); letter-spacing:.08em; text-transform:uppercase; }

.pt-confianza{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px 18px; font-size:12.5px; color:var(--pt-tinta-2); }
.pt-confianza li{ display:inline-flex; align-items:center; gap:7px; }
.pt-confianza svg{ color:var(--pt-verde); flex:none; }

/* ---------- Columna de acceso ---------- */
.pt-acceso{ min-width:0; position:relative; }
.pt-paso{ display:none; }
.pt-paso.activo{ display:flex; flex-direction:column; gap:14px; animation:pt-entra .38s cubic-bezier(.2,.8,.2,1); }
@keyframes pt-entra{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.pt-acceso-tit{ margin:0 0 2px; font-size:13px; font-weight:700; color:var(--pt-tinta-3); letter-spacing:.06em; text-transform:uppercase; font-family:var(--pt-mono); }

.pt-puerta{ --c:var(--pt-naranjo); --c2:var(--pt-naranjo-2); position:relative; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:16px;
  width:100%; text-align:left; cursor:pointer; padding:20px 20px; border-radius:22px; background:var(--pt-vidrio);
  border:1px solid var(--pt-borde); box-shadow:0 24px 50px -30px rgba(0,0,0,.8), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); transition:transform .2s ease, border-color .2s ease, background .2s ease; overflow:hidden; }
.pt-puerta::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; opacity:0; transition:opacity .25s ease;
  background:radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--c) 22%, transparent), transparent 60%); }
.pt-puerta:hover{ transform:translateY(-2px); border-color:color-mix(in srgb, var(--c) 55%, transparent); background:var(--pt-vidrio-2); }
.pt-puerta:hover::before, .pt-puerta:focus-visible::before{ opacity:1; }
.pt-puerta:active{ transform:translateY(0); }
.pt-puerta.cliente{ --c:var(--pt-cian); --c2:var(--pt-cian-2); }
.pt-puerta-ico{ width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; position:relative;
  background:linear-gradient(140deg, var(--c), var(--c2)); color:var(--pt-naranjo-tinta); box-shadow:0 12px 26px -12px var(--c); }
.pt-puerta.cliente .pt-puerta-ico{ color:var(--pt-cian-tinta); }
.pt-puerta-txt{ position:relative; display:flex; flex-direction:column; gap:4px; min-width:0; }
.pt-puerta-txt b{ font-size:17.5px; font-weight:800; letter-spacing:-.01em; }
.pt-puerta-txt span{ font-size:13.5px; line-height:1.4; color:var(--pt-tinta-2); }
.pt-puerta-txt small{ margin-top:6px; display:inline-flex; align-items:center; gap:6px; font-size:13px; font-weight:800; color:var(--c); }
.pt-puerta-fl{ position:relative; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--pt-borde-2); color:var(--pt-tinta-2); transition:transform .2s ease, background .2s ease, color .2s ease; }
.pt-puerta:hover .pt-puerta-fl{ transform:translateX(3px); background:var(--c); color:var(--pt-naranjo-tinta); border-color:transparent; }
.pt-puerta.cliente:hover .pt-puerta-fl{ color:var(--pt-cian-tinta); }
.pt-puerta-tag{ position:absolute; top:12px; right:14px; font-family:var(--pt-mono); font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
  padding:3px 8px; border-radius:999px; color:var(--pt-cian); background:rgba(76,201,240,.1); border:1px solid rgba(76,201,240,.3); }

.pt-ayuda-min{ display:flex; flex-wrap:wrap; gap:8px 16px; justify-content:center; margin-top:4px; font-size:12.5px; color:var(--pt-tinta-3); }
.pt-ayuda-min a, .pt-ayuda-min button{ background:none; border:none; padding:6px 2px; cursor:pointer; color:var(--pt-tinta-2); text-decoration:none; font-weight:600;
  display:inline-flex; align-items:center; gap:6px; }
.pt-ayuda-min a:hover, .pt-ayuda-min button:hover{ color:var(--pt-tinta); }

/* ---------- Tarjeta de formulario ---------- */
.pt-tarjeta{ --c:var(--pt-naranjo); --c2:var(--pt-naranjo-2); --ct:var(--pt-naranjo-tinta);
  position:relative; border-radius:26px; padding:26px 24px 22px; background:rgba(10,17,38,.62);
  border:1px solid var(--pt-borde); box-shadow:0 40px 80px -40px rgba(0,0,0,.9), inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(24px); -webkit-backdrop-filter:blur(24px); display:flex; flex-direction:column; gap:16px; overflow:hidden; }
.pt-tarjeta::after{ content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, transparent, var(--c), transparent); opacity:.9; }
.pt-tarjeta.cliente{ --c:var(--pt-cian); --c2:var(--pt-cian-2); --ct:var(--pt-cian-tinta); }
.pt-tarjeta-cab{ display:flex; align-items:center; gap:14px; }
.pt-volver{ width:40px; height:40px; flex:none; border-radius:12px; display:flex; align-items:center; justify-content:center; cursor:pointer;
  background:var(--pt-vidrio); border:1px solid var(--pt-borde); color:var(--pt-tinta); }
.pt-volver:hover{ background:var(--pt-vidrio-2); }
.pt-tarjeta h2{ margin:0; font-size:21px; font-weight:800; letter-spacing:-.015em; }
.pt-tarjeta-cab p{ margin:2px 0 0; font-size:13px; color:var(--pt-tinta-2); }

.pt-form{ display:flex; flex-direction:column; gap:14px; }
.pt-campo{ display:flex; flex-direction:column; gap:7px; }
.pt-campo label{ font-size:12.5px; font-weight:700; color:var(--pt-tinta-2); display:flex; justify-content:space-between; gap:8px; }
.pt-campo label small{ font-weight:600; color:var(--pt-tinta-3); }
.pt-control{ position:relative; display:flex; align-items:center; }
.pt-control > svg.ico{ position:absolute; left:14px; color:var(--pt-tinta-3); pointer-events:none; transition:color .15s; }
.pt-control input{ width:100%; min-height:52px; padding:14px 16px 14px 44px; border-radius:15px; font-size:15.5px;
  background:rgba(255,255,255,.06); border:1px solid var(--pt-borde); color:var(--pt-tinta); transition:border-color .15s, background .15s, box-shadow .15s; }
.pt-control input::placeholder{ color:rgba(226,233,248,.38); }
.pt-control input:focus{ outline:none; border-color:color-mix(in srgb, var(--c) 70%, transparent); background:rgba(255,255,255,.09);
  box-shadow:0 0 0 4px color-mix(in srgb, var(--c) 18%, transparent); }
.pt-control:focus-within > svg.ico{ color:var(--c); }
.pt-control.con-chip input{ padding-right:132px; }
.pt-chip{ position:absolute; right:7px; padding:6px 9px; border-radius:10px; font-size:11.5px; font-weight:700; color:var(--pt-tinta-3);
  background:rgba(255,255,255,.07); border:1px solid var(--pt-borde); pointer-events:none; white-space:nowrap; }
.pt-control.con-ojo input{ padding-right:52px; }
.pt-ojo{ position:absolute; right:5px; width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
  background:none; border:none; cursor:pointer; color:var(--pt-tinta-3); }
.pt-ojo:hover{ color:var(--pt-tinta); background:rgba(255,255,255,.06); }
.pt-rut-estado{ position:absolute; right:14px; display:none; align-items:center; gap:5px; font-size:11.5px; font-weight:800; }
.pt-control.rut-ok .pt-rut-estado{ display:inline-flex; color:var(--pt-verde); }
.pt-control.rut-mal .pt-rut-estado{ display:inline-flex; color:var(--pt-error); }
.pt-control.rut-ok input{ border-color:rgba(91,214,160,.5); }
.pt-control.rut-mal input{ border-color:rgba(255,156,148,.55); }
.pt-control input.pt-rut{ font-family:var(--pt-mono); letter-spacing:.04em; padding-right:96px; }
.pt-aviso{ display:none; align-items:center; gap:6px; font-size:12px; font-weight:700; color:#FFD48A; }
.pt-aviso.ver{ display:flex; }

.pt-error{ display:flex; align-items:flex-start; gap:9px; padding:11px 13px; border-radius:13px; font-size:13px; line-height:1.4; font-weight:600;
  color:var(--pt-error); background:var(--pt-error-fondo); border:1px solid rgba(255,156,148,.28); }
.pt-error svg{ flex:none; margin-top:1px; }
.pt-error:empty{ display:none; }

.pt-entrar{ position:relative; min-height:54px; border:none; border-radius:16px; cursor:pointer; font-size:16px; font-weight:850; letter-spacing:.005em;
  color:var(--ct); background:linear-gradient(135deg, var(--c) 0%, var(--c2) 100%); box-shadow:0 18px 34px -18px var(--c);
  display:flex; align-items:center; justify-content:center; gap:10px; overflow:hidden; transition:transform .15s ease, filter .15s ease; }
.pt-entrar::after{ content:""; position:absolute; inset:0; background:linear-gradient(110deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  transform:translateX(-120%); transition:transform .7s ease; }
.pt-entrar:hover{ filter:brightness(1.05); }
.pt-entrar:hover::after{ transform:translateX(120%); }
.pt-entrar:active{ transform:translateY(1px); }
.pt-entrar[disabled]{ cursor:progress; filter:saturate(.75) brightness(.95); }
.pt-giro{ width:17px; height:17px; border-radius:50%; border:2.5px solid currentColor; border-right-color:transparent; display:none; animation:pt-gira .7s linear infinite; }
.pt-entrar[disabled] .pt-giro{ display:inline-block; }
@keyframes pt-gira{ to{ transform:rotate(360deg); } }

.pt-nota{ display:flex; gap:10px; align-items:flex-start; margin:0; padding:12px 13px; border-radius:14px; font-size:12.5px; line-height:1.5;
  color:var(--pt-tinta-2); background:rgba(255,255,255,.035); border:1px dashed var(--pt-borde); }
.pt-nota svg{ flex:none; margin-top:2px; color:var(--pt-verde); }
.pt-nota b{ color:var(--pt-tinta); }

.pt-acciones{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.pt-accion{ display:flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:10px 12px; border-radius:14px; cursor:pointer;
  background:var(--pt-vidrio); border:1px solid var(--pt-borde); color:var(--pt-tinta); font-size:13px; font-weight:700; text-decoration:none; text-align:center; }
.pt-accion:hover{ background:var(--pt-vidrio-2); border-color:var(--pt-borde-2); }
.pt-accion.solo{ grid-column:1 / -1; }
.pt-accion-off{ opacity:.55; cursor:default; }

.pt-pie{ max-width:1180px; width:100%; margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 16px;
  font-size:11.5px; color:var(--pt-tinta-3); letter-spacing:.02em; }

/* ---------- Modal: instalar la app ---------- */
.pt-modal-fondo{ display:none; position:fixed; inset:0; z-index:80; background:rgba(3,6,14,.78); backdrop-filter:blur(4px); }
.pt-modal-fondo.show{ display:block; }
.pt-modal{ display:none; position:fixed; z-index:81; left:50%; top:50%; transform:translate(-50%,-50%);
  width:min(92vw,420px); max-height:85vh; overflow-y:auto; background:#0D1733; border:1px solid var(--pt-borde); border-radius:22px;
  padding:22px 20px 20px; color:var(--pt-tinta); box-shadow:0 24px 60px -20px rgba(0,0,0,.8); }
.pt-modal.show{ display:block; }
.pt-modal h3{ margin:0 0 4px; font-size:18px; font-weight:800; }
.pt-modal .sub{ margin:0 0 16px; color:var(--pt-tinta-2); font-size:13px; }
.pt-tabs{ display:flex; gap:6px; margin-bottom:16px; }
.pt-tab{ flex:1; background:var(--pt-vidrio); border:1px solid var(--pt-borde); color:var(--pt-tinta-2); border-radius:12px; padding:10px; font-size:13px; font-weight:700; cursor:pointer; }
.pt-tab.active{ background:#fff; color:#0D1733; border-color:#fff; }
.pt-pasos{ list-style:none; margin:0; padding:0; display:none; flex-direction:column; gap:10px; }
.pt-pasos.active{ display:flex; }
.pt-pasos li{ display:flex; gap:10px; align-items:flex-start; font-size:13.5px; line-height:1.45; }
.pt-pasos li b{ flex:none; width:22px; height:22px; border-radius:999px; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; font-size:11.5px; font-weight:800; }
.pt-modal-cerrar{ margin-top:18px; width:100%; background:var(--pt-vidrio); border:1px solid var(--pt-borde); color:var(--pt-tinta); border-radius:14px; padding:12px; font-weight:700; font-size:13.5px; cursor:pointer; }

/* ---------- Responsivo ---------- */
@media (max-width:900px){
  .pt-escena{ grid-template-columns:minmax(0,1fr); gap:22px; align-content:start; padding-block:22px 18px; }
  /* En celular las puertas suben justo después del título: el mapa y los
     sellos de confianza quedan debajo (display:contents permite ordenarlos). */
  .pt-hero{ display:contents; }
  .pt-hero .pt-eyebrow{ order:1; } .pt-titulo{ order:2; } .pt-bajada{ order:3; }
  .pt-acceso{ order:4; margin-top:6px; } .pt-mapa{ order:5; } .pt-confianza{ order:6; }
  .pt-escena{ display:flex; flex-direction:column; align-items:stretch; gap:16px; }
  .pt-mapa-cab{ padding:10px 14px 0; }
  /* Con un formulario abierto, en celular se esconde la portada para que el
     formulario quede arriba, sin tener que bajar. */
  body[data-paso="equipo"] .pt-hero > *, body[data-paso="clientes"] .pt-hero > *{ display:none; }
}
@media (max-width:560px){
  .pt-seguro span{ display:none; }
  .pt-seguro{ padding:8px; }
  .pt-titulo{ font-size:clamp(31px,9vw,40px); }
  .pt-bajada{ font-size:14.5px; }
  .pt-mapa svg{ height:150px; }
  .pt-mapa-ley{ display:none; }
  .pt-puerta{ padding:17px 15px; gap:13px; border-radius:20px; }
  .pt-puerta-ico{ width:46px; height:46px; border-radius:14px; }
  .pt-puerta-fl{ display:none; }
  .pt-puerta-txt b{ font-size:16.5px; }
  .pt-tarjeta{ padding:22px 17px 18px; border-radius:22px; }
  .pt-pie{ justify-content:center; text-align:center; }
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
}

/* ===== Candado holográfico del ingreso del equipo (oct-2026) =====
   Cada letra de la contraseña enciende un segmento del anillo; al entrar, el arco
   salta, el candado se pone verde y suelta chispas. Con error, se pone rojo y tiembla. */
.pt-candado{ display:flex; flex-direction:column; align-items:center; gap:2px; margin:-4px 0 -2px; }
.pt-candado svg{ width:132px; height:132px; overflow:visible; }
.pt-cnd-holo{ stroke:rgba(76,201,240,.28); animation:pt-cnd-holo 3s linear infinite; }
@keyframes pt-cnd-holo{ to{ stroke-dashoffset:-60; } }
.pt-cnd-seg{ stroke:rgba(255,255,255,.14); transition:stroke .2s, filter .2s; }
.pt-cnd-seg.on{ stroke:var(--pt-cian); filter:drop-shadow(0 0 6px var(--pt-cian)); }
.pt-cnd-arco{ stroke:var(--pt-cian); transition:transform .6s cubic-bezier(.3,1.6,.5,1), stroke .3s; transform-origin:128px 70px; }
.pt-cnd-cuerpo{ fill:rgba(76,201,240,.12); stroke:var(--pt-cian); transition:fill .35s, stroke .35s; }
.pt-cnd-ojo{ stroke:var(--pt-cian); transition:stroke .35s; }
.pt-cnd-chispa{ fill:var(--pt-verde); opacity:0; }
.pt-cnd-estado{ font-family:var(--pt-mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--pt-tinta-3); min-height:16px; }
.pt-candado.abre .pt-cnd-arco{ transform:translate(0,-22px) rotate(-18deg); stroke:var(--pt-verde); }
.pt-candado.abre .pt-cnd-cuerpo{ fill:rgba(91,214,160,.18); stroke:var(--pt-verde); }
.pt-candado.abre .pt-cnd-ojo, .pt-candado.abre .pt-cnd-seg{ stroke:var(--pt-verde); filter:none; }
.pt-candado.abre .pt-cnd-chispa{ animation:pt-cnd-chispa .9s ease-out forwards; }
@keyframes pt-cnd-chispa{ 0%{ opacity:1; transform:translate(0,0) scale(.4); } 100%{ opacity:0; transform:translate(var(--dx),var(--dy)) scale(1); } }
.pt-candado.abre .pt-cnd-estado{ color:var(--pt-verde); }
.pt-candado.error .pt-cnd-cuerpo{ fill:var(--pt-error-fondo); stroke:var(--pt-error); }
.pt-candado.error .pt-cnd-arco, .pt-candado.error .pt-cnd-ojo{ stroke:var(--pt-error); }
.pt-candado.error svg{ animation:pt-cnd-no .45s ease-in-out 2; }
@keyframes pt-cnd-no{ 25%{ transform:translateX(-6px); } 75%{ transform:translateX(6px); } }
.pt-candado.error .pt-cnd-estado{ color:var(--pt-error); }
@media (max-width:520px){ .pt-candado svg{ width:104px; height:104px; } }
@media (max-height:720px){ .pt-candado svg{ width:96px; height:96px; } }
@media (prefers-reduced-motion:reduce){
  .pt-cnd-holo, .pt-candado.error svg, .pt-candado.abre .pt-cnd-chispa{ animation:none; }
  .pt-cnd-arco, .pt-cnd-seg, .pt-cnd-cuerpo{ transition:none; }
}
