.login-page{
  margin:0;
  min-height:100vh;
  overflow:hidden;
  display:grid;
  place-items:center;
  position:relative;
  background:#061b2a;
  color:#fff;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

/*
 * El fondo aprobado se muestra COMPLETO, sin recortar frases ni elementos.
 * La copia desenfocada de atrás rellena los márgenes que puedan aparecer
 * en pantallas con una relación de aspecto distinta a la imagen original.
 */
.login-bg{
  position:fixed;
  inset:-24px;
  z-index:-4;
  background-image:url('../img/login-yakusense-final-20260922.png?v=20260923-3');
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
  filter:blur(18px) brightness(.58) saturate(.9);
  transform:scale(1.06);
}
.login-overlay{
  position:fixed;
  inset:0;
  z-index:-3;
  pointer-events:none;
  background:rgba(2,14,23,.12);
}
.login-stage{
  position:relative;
  width:min(100vw,calc(100vh * 1.776833));
  height:min(100vh,calc(100vw / 1.776833));
  aspect-ratio:1672 / 941;
  flex:none;
  overflow:hidden;
  background:url('../img/login-yakusense-final-20260922.png?v=20260923-3') center center / 100% 100% no-repeat;
  box-shadow:0 0 70px rgba(0,0,0,.26);
}
.login-stage::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:linear-gradient(90deg,rgba(1,16,27,.11) 0%,rgba(1,19,27,.045) 38%,rgba(0,0,0,0) 61%);
}

/* Caja real de login superpuesta, inspirada en la composición aprobada. */
.login-card{
  position:absolute;
  left:7.2%;
  top:50%;
  transform:translateY(-50%);
  width:clamp(390px,31.2%,535px);
  z-index:2;
  box-sizing:border-box;
  background:linear-gradient(155deg,rgba(5,41,57,.88),rgba(4,45,38,.76));
  border:1px solid rgba(193,248,241,.42);
  box-shadow:0 22px 60px rgba(0,0,0,.34);
  -webkit-backdrop-filter:blur(14px) saturate(1.08);
  backdrop-filter:blur(14px) saturate(1.08);
  border-radius:18px;
  padding:33px 34px 22px;
}
.eyebrow{font-size:12px;letter-spacing:.34em;color:#a6eff3;font-weight:700}
.eyebrow-line{height:2px;width:43px;background:linear-gradient(90deg,#21c7ff,#29e1ba);margin:14px 0 23px}
.login-card h1{font-size:clamp(35px,2.45vw,45px);line-height:1.03;margin:0 0 11px;font-weight:800;letter-spacing:-.03em}
.login-card h1 span{background:linear-gradient(90deg,#17b9ff,#24e2c8);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-copy{color:#cfdee5;font-size:13px;margin:0 0 24px}
.login-card form>label{display:block;font-size:12px;font-weight:700;margin:12px 0 8px;color:#eef7fb}
.input-shell{height:50px;border:1px solid rgba(172,224,230,.5);border-radius:9px;background:rgba(4,31,40,.66);display:flex;align-items:center;gap:12px;padding:0 14px;transition:.2s}
.input-shell:focus-within{border-color:#25dfe0;box-shadow:0 0 0 3px rgba(37,223,224,.09)}
.input-shell i{color:#8edfe7;width:17px}
.input-shell input{flex:1;height:100%;border:0;outline:0;background:transparent;color:#fff;min-width:0;font:inherit;font-size:13px}
.input-shell input::placeholder{color:#91aab5}
.password-toggle{border:0;background:transparent;font-size:15px;color:#9ecbd5!important;cursor:pointer;padding:6px}
.field-error{height:11px;margin:3px 0 0;font-size:10px;color:#ff8f98}
.remember-row{display:flex!important;align-items:center;gap:8px;margin:8px 0 14px!important;color:#c6d9df!important;font-weight:500!important;font-size:12px!important;cursor:pointer}
.remember-row input{position:absolute;opacity:0}
.custom-check{width:17px;height:17px;border:1px solid rgba(202,237,240,.48);border-radius:4px;display:grid;place-items:center;background:rgba(3,27,37,.7)}
.custom-check i{opacity:0;color:#052033;font-size:10px}
.remember-row input:checked+.custom-check{background:#25d9de;border-color:#25d9de}
.remember-row input:checked+.custom-check i{opacity:1}
.primary-btn{width:100%;height:53px;border:0;border-radius:8px;background:linear-gradient(90deg,#14aef2,#28e4ca);display:flex;align-items:center;justify-content:center;gap:30px;font-weight:800;color:#061e2e;cursor:pointer;font-size:14px;box-shadow:0 9px 24px rgba(0,185,219,.16)}
.primary-btn:hover{filter:brightness(1.05)}
.login-message{min-height:18px;font-size:11px;color:#ff8e97;text-align:center;padding-top:5px}
.login-footer-row{border-top:1px solid rgba(189,229,234,.18);margin-top:10px;padding-top:14px;display:flex;justify-content:space-between;align-items:flex-end;gap:12px;color:#afc7d0;font-size:9.5px;line-height:1.5}
.login-footer-row i{margin-right:5px;color:#83e4c2}
.realtime-stamp{text-align:right;max-width:53%}
.realtime-stamp strong{color:#eefcff;font-weight:600}

/* Estas tarjetas tapan únicamente las tarjetas impresas en el fondo y muestran datos actuales. */
.cochabamba-weather{
  position:absolute;
  right:4.45%;
  top:53.8%;
  width:clamp(140px,9.7%,176px);
  display:grid;
  gap:4px;
  z-index:4;
}
.weather-card{
  height:59px;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:23px 1fr;
  grid-template-rows:1fr 1.25fr;
  column-gap:7px;
  align-items:center;
  padding:6px 10px;
  color:white;
  border-radius:8px;
  background:linear-gradient(100deg,rgba(7,66,53,.98),rgba(44,101,62,.95));
  border:1px solid rgba(236,255,244,.62);
  box-shadow:0 4px 14px rgba(0,0,0,.24),inset 0 0 0 1px rgba(255,255,255,.035);
  -webkit-backdrop-filter:blur(5px);
  backdrop-filter:blur(5px);
}
.weather-card i{grid-row:1/3;grid-column:1;font-size:18px;color:#e5fff8;align-self:center}
.weather-card span{grid-column:2;grid-row:1;font-size:9px;color:#eafff7;align-self:end;white-space:nowrap}
.weather-card strong{grid-column:2;grid-row:2;font-size:17px;white-space:nowrap;align-self:start;line-height:1.05}
.weather-status{display:none}

@media(max-width:1150px){
  .login-card{left:5vw;width:450px}
  .cochabamba-weather{right:3.5vw;width:154px}
}
@media(max-width:900px){
  .login-page{overflow:auto;display:block}
  .login-bg{background-position:60% center}
  .login-overlay{background:rgba(0,17,27,.38)}
  .login-stage{width:100%;height:auto;min-height:100vh;aspect-ratio:auto;display:flex;align-items:center;justify-content:center;padding:22px;box-sizing:border-box;background-size:cover;background-position:center}
  .login-card{position:relative;left:auto;top:auto;transform:none;width:min(500px,100%);min-width:0;z-index:2}
  .cochabamba-weather{display:none}
}
@media(max-width:520px){
  .login-card{padding:27px 20px 20px}
  .login-card h1{font-size:34px}
  .login-footer-row{flex-direction:column;align-items:flex-start}
  .realtime-stamp{text-align:left;max-width:100%}
}
