body{overflow:auto}
.zy-auth-page,.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:radial-gradient(circle at 18% 18%,rgba(13,110,253,.18),transparent 34%),radial-gradient(circle at 82% 80%,rgba(0,212,255,.10),transparent 32%),linear-gradient(180deg,#06101c,#081522)}
.auth-page{display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,rgba(13,110,253,.18),transparent 35%),linear-gradient(180deg,#06101c,#081522)}
.zy-auth-card{width:min(460px,100%);padding:28px;border:1px solid #22364d;border-radius:20px;background:linear-gradient(180deg,rgba(13,27,43,.98),rgba(8,19,34,.98));box-shadow:0 26px 70px rgba(0,0,0,.38),0 0 40px rgba(13,110,253,.10)}
.auth-card{width:min(500px,100%);padding:28px;border:1px solid #29425f;border-radius:20px;background:linear-gradient(180deg,rgba(13,27,43,.98),rgba(8,19,34,.98));box-shadow:0 26px 70px rgba(0,0,0,.36)}
.zy-auth-brand{display:flex;align-items:center;justify-content:center;min-height:112px;margin-bottom:10px;overflow:hidden}
.zy-auth-brand img{max-width:310px;max-height:108px;object-fit:contain}
.zy-auth-fallback{font-size:34px;font-weight:950;letter-spacing:2px}
.zy-auth-card h2{margin:0;text-align:center;font-size:22px}
.zy-auth-card>p{text-align:center;margin:7px 0 22px}
.zy-auth-form{display:grid;gap:15px}
.zy-auth-form label{display:block}
.zy-auth-form input,.auth-card input{text-transform:none!important}
.auth-card h1{margin:0 0 8px;font-size:25px}
.password-field-wrap,.password-wrap{position:relative;display:flex;align-items:center;width:100%;margin-top:7px}
.password-wrap{display:block}
.password-field-wrap input,.password-wrap input{margin-top:0;padding-right:50px!important}
.password-wrap input{padding-right:48px!important}
.password-eye-btn,.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:36px;height:36px;border:1px solid #2a3d55;border-radius:9px;background:#0b1726;color:#dbeafe;cursor:pointer}
.password-toggle{color:#fff}
.auth-links{display:flex;justify-content:center;margin-top:18px;font-size:12px}
.auth-links a,.auth-actions a{color:#5fd7ff;font-weight:800}
.auth-links a:hover{text-decoration:underline}
.auth-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-top:16px}
.auth-actions.auth-actions-split{justify-content:space-between}
.auth-actions a{font-size:12px}
.auth-footnote{font-size:11px;margin-top:18px}

/* ZYTRONIX UPDATE 478 · INSTALACIÓN PWA SOLO CUANDO EL NAVEGADOR CONFIRMA DISPONIBILIDAD */
.zy-auth-install-472[hidden]{display:none!important}
.zy-auth-install-472{display:grid;gap:5px;margin-top:12px;padding-top:11px;border-top:1px solid color-mix(in srgb,var(--primary,#38bdf8) 20%,rgba(255,255,255,.08));text-align:center}
.zy-auth-install-472 .pwa-install-btn{width:100%;min-height:38px;justify-content:center!important}
.zy-auth-install-472 small{color:#8299b1;font-size:8.5px;font-weight:800;letter-spacing:.025em}


/* ZYTRONIX · AJUSTE VISUAL LOGIN · ICONO DE CONTRASEÑA Y BOTÓN INGRESAR */
.password-eye-btn{
  right:10px;
  width:24px;
  height:24px;
  min-width:24px;
  min-height:24px;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  outline:none;
  padding:0;
  color:transparent;
  display:flex;
  align-items:center;
  justify-content:center;
}
.password-eye-btn:hover,
.password-eye-btn:focus,
.password-eye-btn:active{
  border:none;
  background:transparent;
  box-shadow:none;
  color:transparent;
}
.password-eye-btn::before{
  content:'';
  display:block;
  width:19px;
  height:19px;
  background-color:#ffffff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 5c5.5 0 9.6 4.1 10.9 6.2a1.5 1.5 0 0 1 0 1.6C21.6 14.9 17.5 19 12 19S2.4 14.9 1.1 12.8a1.5 1.5 0 0 1 0-1.6C2.4 9.1 6.5 5 12 5Zm0 2C8 7 4.8 9.7 3.2 12 4.8 14.3 8 17 12 17s7.2-2.7 8.8-5C19.2 9.7 16 7 12 7Zm0 2.3A2.7 2.7 0 1 1 12 14.7 2.7 2.7 0 0 1 12 9.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M12 5c5.5 0 9.6 4.1 10.9 6.2a1.5 1.5 0 0 1 0 1.6C21.6 14.9 17.5 19 12 19S2.4 14.9 1.1 12.8a1.5 1.5 0 0 1 0-1.6C2.4 9.1 6.5 5 12 5Zm0 2C8 7 4.8 9.7 3.2 12 4.8 14.3 8 17 12 17s7.2-2.7 8.8-5C19.2 9.7 16 7 12 7Zm0 2.3A2.7 2.7 0 1 1 12 14.7 2.7 2.7 0 0 1 12 9.3Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.password-eye-btn.is-visible::before{
  width:20px;
  background-color:#ffffff;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3.3 4.7a1 1 0 1 1 1.4-1.4l15.9 15.9a1 1 0 0 1-1.4 1.4l-2.4-2.4A11.9 11.9 0 0 1 12 19C6.5 19 2.4 14.9 1.1 12.8a1.5 1.5 0 0 1 0-1.6 16.5 16.5 0 0 1 5.1-4.9L3.3 4.7Zm4.4 4.4A5 5 0 0 0 12 17c1 0 1.9-.3 2.7-.8l-1.5-1.5a2.7 2.7 0 0 1-3.9-3.9L7.7 9.1ZM12 5c5.5 0 9.6 4.1 10.9 6.2a1.5 1.5 0 0 1 0 1.6 16 16 0 0 1-4.5 4.4l-1.5-1.5c1.7-1 3-2.4 3.9-3.7C19.2 9.7 16 7 12 7c-1.3 0-2.5.3-3.6.8L6.8 6.2A12 12 0 0 1 12 5Zm0 4.3a2.7 2.7 0 0 1 2.7 2.7c0 .5-.1 1-.4 1.4l-3.7-3.7c.4-.3.9-.4 1.4-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M3.3 4.7a1 1 0 1 1 1.4-1.4l15.9 15.9a1 1 0 0 1-1.4 1.4l-2.4-2.4A11.9 11.9 0 0 1 12 19C6.5 19 2.4 14.9 1.1 12.8a1.5 1.5 0 0 1 0-1.6 16.5 16.5 0 0 1 5.1-4.9L3.3 4.7Zm4.4 4.4A5 5 0 0 0 12 17c1 0 1.9-.3 2.7-.8l-1.5-1.5a2.7 2.7 0 0 1-3.9-3.9L7.7 9.1ZM12 5c5.5 0 9.6 4.1 10.9 6.2a1.5 1.5 0 0 1 0 1.6 16 16 0 0 1-4.5 4.4l-1.5-1.5c1.7-1 3-2.4 3.9-3.7C19.2 9.7 16 7 12 7c-1.3 0-2.5.3-3.6.8L6.8 6.2A12 12 0 0 1 12 5Zm0 4.3a2.7 2.7 0 0 1 2.7 2.7c0 .5-.1 1-.4 1.4l-3.7-3.7c.4-.3.9-.4 1.4-.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.zy-auth-form .btn{
  font-size:20px;
  line-height:1.1;
  font-weight:900;
  letter-spacing:.015em;
}
