/* Nova Connection: parche de UX. Se carga DESPUÉS de nova-brand.css */
/* Login sin desplazamiento en escritorio: los espacios se adaptan a la altura disponible. */
html:has(.nova-login-page), body:has(.nova-login-page){height:100%;min-height:0}
body:has(.nova-login-page){margin:0;overflow:hidden}
body:has(.nova-login-page) .nova-login-page{
  box-sizing:border-box; height:100dvh; min-height:0; padding:clamp(12px,2vh,22px);
  display:grid; place-items:center; overflow:hidden;
}
body:has(.nova-login-page) .nova-login-shell{
  width:min(1120px,100%); height:min(740px,calc(100dvh - 44px)); min-height:0;
  overflow:hidden; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
}
.nova-login-form-panel{min-width:0;min-height:0;overflow-y:auto; padding:clamp(18px,3.3vh,43px) clamp(20px,4vw,55px)}
.nova-login-inner{max-width:420px}
.nova-login-brand{height:auto;min-height:0; margin-bottom:clamp(8px,2vh,19px)}
.nova-login-brand img{width:min(270px,100%);height:auto;max-height:73px;object-fit:contain;object-position:left center}
.nova-login-inner h1{font-size:clamp(23px,2.6vw,33px);margin:8px 0}
.nova-login-subtitle{line-height:1.48;margin-bottom:clamp(10px,2vh,22px)}
.nova-login-form{gap:6px}
.nova-login-form label{margin-top:6px}
.nova-login-form input{height:46px;min-height:46px}
.nova-login-submit{height:48px;margin-top:10px}
.nova-login-note{margin-top:14px}
.nova-login-hero{min-height:0;padding:clamp(24px,3.5vw,54px)}
.nova-hero-star{width:clamp(95px,13vh,160px);height:clamp(95px,13vh,160px)}
.nova-hero-footer{margin-top:20px}
/* Botón de visibilidad: no heredar estilos de botones generales del sitio. */
.nova-login-form .nova-password-field{position:relative;width:100%;display:block}
.nova-login-form .nova-password-field input{display:block;width:100%;padding-inline:15px 56px;margin:0}
.nova-login-form .nova-password-field #nova-password-toggle{
 position:absolute;top:50%;right:7px;left:auto;bottom:auto;transform:translateY(-50%);
 display:inline-flex;align-items:center;justify-content:center;
 width:38px;height:36px;min-width:38px;min-height:36px;
 margin:0;padding:0;border:0;border-radius:9px;box-shadow:none;
 background:transparent;color:var(--nc-muted);cursor:pointer;z-index:2;line-height:1;
}
.nova-login-form .nova-password-field #nova-password-toggle:hover{background:var(--nc-border);color:var(--nc-text)}
.nova-login-form .nova-password-field #nova-password-toggle svg{display:block;width:19px;height:19px;flex:none}
/* En móvil esconder panel decorativo; sin scroll salvo pantallas realmente muy bajas. */
@media(max-width:850px){
 body:has(.nova-login-page) .nova-login-shell{grid-template-columns:minmax(0,1fr);width:min(500px,100%);height:min(680px,calc(100dvh - 26px))}
 body:has(.nova-login-page) .nova-login-page{padding:13px}
 .nova-login-hero{display:none}
 .nova-login-form-panel{padding:clamp(18px,4vh,40px) clamp(20px,6vw,40px)}
}
@media(max-height:580px){
 /* Cuando físicamente falta altura, priorizar acceso al formulario. */
 body:has(.nova-login-page){overflow:auto}
 body:has(.nova-login-page) .nova-login-page{min-height:100dvh;height:auto;overflow:visible}
 body:has(.nova-login-page) .nova-login-shell{height:auto;min-height:0}
 .nova-login-form-panel{overflow:visible}
 .nova-login-brand img{max-height:55px}
}
