.auth-gate {
  --mesh-x: 0px;
  --mesh-y: 0px;
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  overflow: auto;
  padding: 44px 32px 28px;
  color: #eef3ff;
  background:
    radial-gradient(circle at 72% 28%, rgba(58, 44, 154, .13), transparent 27%),
    radial-gradient(circle at 12% 80%, rgba(10, 91, 214, .16), transparent 30%),
    #020713 !important;
}
.auth-gate[hidden] { display: none !important; }
.auth-gate::before {
  content: "" !important;
  position: fixed !important;
  inset: auto -8% -17% -8% !important;
  width: auto !important;
  height: 44% !important;
  transform: perspective(460px) rotateX(62deg) translate3d(var(--mesh-x), var(--mesh-y), 0) !important;
  opacity: .52;
  background:
    repeating-linear-gradient(90deg, transparent 0 28px, rgba(41, 87, 255, .25) 29px 30px),
    repeating-linear-gradient(0deg, transparent 0 18px, rgba(113, 34, 255, .24) 19px 20px);
  mask-image: linear-gradient(to top, #000, transparent 82%);
  pointer-events: none;
  transition: transform .35s cubic-bezier(.2,.8,.2,1);
  animation: authMeshDrift 8s ease-in-out infinite alternate;
}
.auth-gate::after {
  content: "";
  position: fixed;
  left: -8%;
  right: -8%;
  bottom: 2%;
  height: 17%;
  opacity: .8;
  background: radial-gradient(ellipse at center, rgba(36, 72, 255, .35), transparent 60%);
  filter: blur(18px);
  pointer-events: none;
}
.auth-layout {
  position: relative;
  z-index: 1;
  width: min(1260px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 500px);
  align-items: center;
  gap: clamp(72px, 10vw, 170px);
}
.auth-presentation { max-width: 600px; }
.auth-brand { display: flex; align-items: center; gap: 20px; margin-bottom: 40px; }
.auth-logo {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border: 2px solid #126dff;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(125, 30, 255, .18), 0 0 32px rgba(30, 103, 255, .35);
}
.auth-logo svg { width: 58px; height: 34px; overflow: visible; }
.auth-logo path { fill: none; stroke: url(#authSignal); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 4px #206dff); }
.auth-wordmark strong { display: block; font-size: 34px; line-height: 1; letter-spacing: .12em; color: #fff; }
.auth-wordmark b { display: block; margin-top: 8px; font-size: 15px; letter-spacing: .34em; color: #9f56ff; }
.auth-wordmark small { display: block; margin-top: 7px; font-size: 9px; letter-spacing: .24em; color: #8994aa; }
.auth-presentation h1 { max-width: 520px; margin: 0 0 14px; font-size: clamp(27px, 2.2vw, 38px); line-height: 1.16; letter-spacing: -.035em; color: #f7f9ff; }
.auth-presentation h1 span { color: #6d75ff; }
.auth-presentation > p { max-width: 520px; margin: 0 0 30px; color: #98a3b8; font-size: 14px; line-height: 1.7; }
.auth-capabilities { display: grid; gap: 19px; }
.auth-capability { display: grid; grid-template-columns: 42px 1fr; gap: 14px; align-items: center; }
.auth-capability i { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(56, 96, 180, .2); border-radius: 9px; background: rgba(10, 25, 50, .75); color: #25a5ff; font-style: normal; font-size: 20px; box-shadow: inset 0 0 18px rgba(27, 76, 171, .1); }
.auth-capability:nth-child(2) i { color: #39d5c7; }
.auth-capability:nth-child(3) i { color: #b13bff; }
.auth-capability:nth-child(4) i { color: #d7a62d; }
.auth-capability strong { display: block; margin-bottom: 4px; color: #dfe6f5; font-size: 13px; }
.auth-capability small { display: block; max-width: 410px; color: #7d899e; font-size: 11px; line-height: 1.45; }
.auth-login-column { display: grid; gap: 25px; }
.auth-card {
  width: 100% !important;
  padding: 42px 43px 34px !important;
  border: 1px solid rgba(122, 143, 185, .18) !important;
  border-radius: 15px !important;
  background: linear-gradient(145deg, rgba(10, 18, 37, .94), rgba(5, 12, 27, .94)) !important;
  box-shadow: 0 26px 80px rgba(0, 0, 0, .42), inset 0 1px rgba(255, 255, 255, .025) !important;
  backdrop-filter: blur(18px);
}
.auth-card::before { display: none !important; }
.auth-card h2 { margin: 0 0 8px !important; color: #fff !important; font-size: 25px !important; letter-spacing: -.025em !important; }
.auth-card > p { margin: 0 0 30px !important; color: #7e8aa0 !important; font-size: 12px !important; }
.auth-card label { display: grid !important; gap: 9px !important; margin: 0 0 19px !important; color: #c2cada !important; font-size: 11px !important; font-weight: 600 !important; text-transform: none !important; }
.auth-input { position: relative; }
.auth-input > span { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); color: #71809a; font-size: 16px; pointer-events: none; }
.auth-card input[type="email"], .auth-card input[type="password"], .auth-card input[type="text"] { width: 100%; height: 48px !important; padding: 0 42px !important; border: 1px solid rgba(91, 114, 156, .16) !important; border-radius: 8px !important; background: #0b162b !important; color: #eaf0fa !important; outline: none; }
.auth-card input:focus { border-color: #286bff !important; box-shadow: 0 0 0 3px rgba(40, 107, 255, .12) !important; }
.auth-card input::placeholder { color: #68758c; }
.auth-password-toggle { position: absolute; right: 11px; top: 50%; transform: translateY(-50%); padding: 6px; border: 0; background: transparent; color: #8290a7; cursor: pointer; }
.auth-options { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin: -2px 0 24px; color: #8793a8; font-size: 11px; }
.auth-remember { display: inline-flex !important; grid-template-columns: none !important; align-items: center; gap: 8px !important; margin: 0 !important; font-weight: 500 !important; }
.auth-remember input { width: 14px; height: 14px !important; margin: 0; accent-color: #286bff; }
.auth-help { color: #4b77d7; text-decoration: none; }
.auth-card .auth-submit { width: 100%; height: 48px; justify-content: center; margin: 0 !important; border: 0 !important; border-radius: 7px !important; color: #fff; background: linear-gradient(90deg, #176bff, #8527e9) !important; box-shadow: 0 9px 26px rgba(75, 47, 228, .24); }
.auth-card #loginError { display: block; min-height: 18px; margin-top: 12px; color: #ff7d83; font-size: 11px; }
.auth-contact { display: flex; align-items: center; justify-content: center; gap: 11px; padding-top: 19px; border-top: 1px solid rgba(108, 126, 160, .13); color: #77849a; font-size: 11px; text-align: center; }
.auth-contact i { color: #3884ff; font-style: normal; font-size: 18px; }
.auth-contact a { color: #4670c8; text-decoration: none; }
.auth-footer { color: #68748a; font-size: 10px; line-height: 1.8; text-align: center; }
.auth-footer a { color: #596b91; text-decoration: none; }
@media (max-width: 900px) {
  .auth-gate { padding: 28px 20px; }
  .auth-layout { grid-template-columns: 1fr; max-width: 500px; gap: 28px; }
  .auth-presentation { display: none; }
}
@media (max-width: 520px) {
  .auth-gate { place-items: start center; padding: 22px 14px; }
  .auth-card { padding: 30px 22px 24px !important; }
  .auth-login-column { width: 100%; }
  .auth-options { align-items: flex-start; }
}

.auth-grid-wave{position:fixed;inset:auto 0 0;height:34%;z-index:0;overflow:hidden;pointer-events:none}.auth-grid-wave span{position:absolute;left:-10%;width:120%;height:52%;border-radius:50%;filter:blur(28px);opacity:.34;transform:translate3d(var(--mesh-back-x, 0px),var(--mesh-back-y, 0px),0);transition:transform .45s cubic-bezier(.2,.8,.2,1)}.auth-grid-wave span:first-child{bottom:5%;background:linear-gradient(90deg,transparent,#0668ff 28%,#4322ff 58%,transparent 86%);animation:authWavePulse 6s ease-in-out infinite}.auth-grid-wave span:last-child{bottom:-8%;background:linear-gradient(90deg,#132fff,transparent 35%,#8c1eff 68%,transparent);animation:authWavePulse 8s 1.2s ease-in-out infinite reverse}@keyframes authMeshDrift{from{background-position:0 0,0 0}to{background-position:34px 8px,-22px 24px}}@keyframes authWavePulse{0%,100%{opacity:.22;transform:translate3d(var(--mesh-back-x, 0px),var(--mesh-back-y, 0px),0) scaleY(.82)}50%{opacity:.5;transform:translate3d(var(--mesh-back-x, 0px),var(--mesh-back-y-raised, -8px),0) scaleY(1.12)}}@media(prefers-reduced-motion:reduce){.auth-gate::before,.auth-grid-wave span{animation:none!important;transition:none!important}}

/* Señales vivas del acceso */
.auth-logo{position:relative;animation:authLogoBeat 2.15s cubic-bezier(.22,.8,.3,1) infinite}.auth-logo::after{content:"";position:absolute;inset:-7px;border:1px solid rgba(34,116,255,.5);border-radius:50%;animation:authLogoRing 2.15s ease-out infinite}.auth-logo .auth-pulse-track{stroke:rgba(70,111,177,.28);filter:none}.auth-logo .auth-pulse-signal{stroke-dasharray:18 105;stroke-dashoffset:123;animation:authPulseTravel 2.15s linear infinite}.auth-capability i svg{width:25px;height:25px;overflow:visible}.auth-capability i svg path,.auth-capability i svg circle{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.auth-capability{border-radius:10px;transition:transform .25s ease,background .25s ease}.auth-capability:hover{transform:translateX(5px);background:linear-gradient(90deg,rgba(26,55,105,.16),transparent)}.capability-data .icon-motion{stroke-dasharray:30;stroke-dashoffset:30;animation:authDrawData 3s ease-in-out infinite}.capability-data circle{fill:currentColor!important;stroke:none!important;animation:authPointGlow 1.5s ease-in-out infinite alternate}.capability-analysis .icon-orbit{stroke-dasharray:5 4;transform-origin:center;animation:authOrbit 5s linear infinite}.capability-analysis .icon-core{fill:currentColor!important;stroke:none!important;transform-origin:center;animation:authCore 1.8s ease-in-out infinite}.capability-territory .icon-radar{transform-origin:center;animation:authRadar 2.1s ease-out infinite}.capability-territory .icon-pin{animation:authPin 2.1s ease-in-out infinite}.capability-security .icon-shield{stroke-dasharray:65;animation:authShield 3.4s ease-in-out infinite}.capability-security .icon-check{stroke-dasharray:14;stroke-dashoffset:14;animation:authCheck 3.4s ease-in-out infinite}@keyframes authPulseTravel{to{stroke-dashoffset:0}}@keyframes authLogoBeat{0%,42%,100%{transform:scale(1)}8%{transform:scale(1.045)}15%{transform:scale(1)}22%{transform:scale(1.025)}}@keyframes authLogoRing{0%,35%{opacity:0;transform:scale(.92)}12%{opacity:.7}55%,100%{opacity:0;transform:scale(1.18)}}@keyframes authDrawData{0%,15%{stroke-dashoffset:30}50%,78%{stroke-dashoffset:0}100%{stroke-dashoffset:-30}}@keyframes authPointGlow{to{opacity:.35;filter:drop-shadow(0 0 4px currentColor)}}@keyframes authOrbit{to{transform:rotate(360deg)}}@keyframes authCore{50%{transform:scale(1.65);opacity:.4}}@keyframes authRadar{0%{transform:scale(.4);opacity:1}75%,100%{transform:scale(2.2);opacity:0}}@keyframes authPin{50%{transform:translateY(-1.5px)}}@keyframes authShield{0%,15%{stroke-dashoffset:65}45%,100%{stroke-dashoffset:0}}@keyframes authCheck{0%,42%{stroke-dashoffset:14}62%,100%{stroke-dashoffset:0}}@media(prefers-reduced-motion:reduce){.auth-logo,.auth-logo::after,.auth-logo .auth-pulse-signal,.auth-capability svg *{animation:none!important}.auth-capability:hover{transform:none}}
