/* V5.9: Inicio de sesión vehicular alineado al Portal de Patrimonio Municipal.
   Reglas encapsuladas: no alteran inventario, siniestros, ni autenticación. */
.login-body{background:#f4f7f4}
.pv-login{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:#f5f8f5;color:#203328}
.pv-login-header{height:92px;flex-shrink:0;background:#fff;border-bottom:1px solid #e5ece6;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(23px,5.6vw,95px);position:relative;z-index:2}
.pv-login-brand{display:inline-flex;align-items:center;justify-content:center;min-width:0;flex-shrink:0}
.pv-login-brand img{display:block;width:184px;height:62px;object-fit:contain}
.pv-login-header-actions{display:flex;align-items:center;gap:28px}
.pv-login-institution{color:#82958a;font-size:.67rem;letter-spacing:.15em;font-weight:800}
.pv-login-back{display:inline-flex;align-items:center;gap:11px;padding:10px 16px;border:1px solid #dbe7dd;border-radius:11px;color:#355842;font-size:.82rem;font-weight:730;background:#fff;white-space:nowrap;transition:background .18s ease,border-color .18s ease}
.pv-login-back:hover,.pv-login-back:focus-visible{background:#f0f6f1;border-color:#afc7b7}
.pv-login-back span{font-size:1.18rem;line-height:1}
.pv-login-stage{position:relative;isolation:isolate;flex:1;display:flex;align-items:center;min-height:620px;padding:40px clamp(24px,5vw,90px) 36px}
.pv-login-ambient{position:absolute;inset:0 0 auto 0;height:clamp(305px,47vh,470px);z-index:-2;pointer-events:none;background-image:linear-gradient(90deg,#f3f7f4 0%,#f3f7f4f5 21%,#f3f7f4ce 42%,#edf3eed9 66%,#f3f7f4c2 100%),url('../img/portal/portada_municipal.webp');background-position:center,right center;background-repeat:no-repeat;background-size:cover,70% 100%}
.pv-login-stage:after{content:"";position:absolute;z-index:-1;inset:260px 0 0;pointer-events:none;background:linear-gradient(180deg,#f5f8f500 0%,#f5f8f5 31%)}
.pv-login-content{width:min(1300px,100%);margin:0 auto;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(360px,.88fr);gap:clamp(34px,6vw,100px);align-items:center}
.pv-login-intro{padding:15px 0 10px;min-width:0}
.pv-login-accent{display:block;width:51px;height:5px;border-radius:999px;background:#91b59e;margin-bottom:25px}
.pv-login-eyebrow{color:#427159;font-size:.68rem;letter-spacing:.16em;font-weight:840;line-height:1.5}
.pv-login-intro h1{font-size:clamp(2.7rem,4.6vw,4.7rem);line-height:1.065;letter-spacing:-.058em;margin:19px 0 19px;color:#173829;font-weight:830}
.pv-login-intro h1 span{color:#527862}
.pv-login-intro>p{font-size:clamp(.94rem,1.07vw,1.08rem);line-height:1.68;color:#6c8073;margin:0;max-width:515px}
.pv-login-vehicle{display:flex;align-items:center;gap:20px;max-width:495px;margin-top:42px;padding:10px 18px 10px 10px;border:1px solid #dfebe2;border-radius:17px;background:#ffffffeb;box-shadow:0 17px 42px #21452c0c}
.pv-login-vehicle img{width:168px;height:103px;object-fit:cover;object-position:48% center;flex-shrink:0;border-radius:12px}
.pv-login-vehicle div{min-width:0}
.pv-login-vehicle strong{display:block;font-size:.91rem;color:#254737;line-height:1.45;font-weight:780}
.pv-login-vehicle small{display:block;font-size:.74rem;color:#899c90;line-height:1.6;margin-top:5px}
.pv-login-auth{background:#fff;border:1px solid #dfe9e0;border-radius:24px;padding:clamp(30px,3.2vw,53px);box-shadow:0 22px 70px #284b3414;max-width:535px;width:100%;justify-self:end}
.pv-login-auth-inner{width:100%}
.pv-login-auth h2{font-size:clamp(2.04rem,2.8vw,2.65rem);letter-spacing:-.05em;line-height:1.15;margin:12px 0 8px;color:#20382b;font-weight:810}
.pv-login-auth-hint{font-size:.89rem;color:#82948a;line-height:1.6;margin-bottom:29px}
.pv-login-auth form{display:flex;flex-direction:column;gap:11px}
.pv-login-auth form label{display:block;font-size:.8rem;font-weight:750;color:#506656;margin:2px 0 0}
.pv-login-auth form input{display:block;padding:14px 15px;height:53px;border-radius:11px;font-size:.91rem;border:1px solid #d4e1d7;background:#fcfdfc;transition:border-color .15s,box-shadow .15s}
.pv-login-auth form input::placeholder{color:#acb9af}
.pv-login-auth form input:focus{border-color:#89ad93;box-shadow:0 0 0 4px #edf5ef;background:#fff}
.pv-login-password{position:relative}
.pv-login-password input{padding-right:58px!important}
.pv-login-password button{position:absolute;right:10px;top:8px;width:38px;height:38px;border:0;border-radius:9px;background:transparent;color:#758d7d;display:grid;place-items:center;transition:background .15s}
.pv-login-password button:hover,.pv-login-password button:focus-visible{background:#edf4ee;color:#2f5b41}
.pv-login-password button svg{width:20px;height:20px}
.pv-login-auth .form-error{margin:4px 0 0;font-size:.78rem}
.pv-login-submit{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:16px 20px;min-height:56px;margin-top:12px;border:1px solid #315541;border-radius:12px;background:#315541;color:white;font-size:.91rem;font-weight:780;box-shadow:0 7px 20px #3155411e;transition:transform .17s ease,background .17s ease}
.pv-login-submit:hover{background:#244a36;transform:translateY(-1px)}
.pv-login-submit:disabled{opacity:.65;cursor:wait;transform:none}
.pv-login-submit span{font-size:1.5rem;font-weight:350;line-height:1}
.pv-login-secure{display:flex;align-items:center;gap:12px;padding-top:23px;margin-top:28px;border-top:1px solid #edf1ed}
.pv-login-lock{width:41px;height:41px;flex-shrink:0;border:1px solid #e1ece4;border-radius:12px;display:grid;place-items:center;background:#eef5ef;color:#446f53}
.pv-login-lock svg{width:21px;height:21px}
.pv-login-secure strong{display:block;color:#41614d;font-size:.8rem;font-weight:780}
.pv-login-secure small{display:block;font-size:.71rem;color:#8a9b8f;margin-top:4px;line-height:1.55}
.pv-login-footer{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;padding:0 clamp(24px,5.6vw,95px) 20px;color:#96a79a;font-size:.68rem;line-height:1.5}
/* Botón de regreso al portal junto a la campana, disponible en todos los perfiles. */
@media(max-width:1070px){.pv-login-stage{padding:42px 28px;min-height:590px}.pv-login-content{gap:28px;grid-template-columns:minmax(0,1fr) minmax(350px,.94fr)}.pv-login-intro h1{font-size:clamp(2.6rem,4.8vw,3.7rem)}.pv-login-auth{padding:34px}.pv-login-vehicle{margin-top:34px}}
@media(max-width:820px){.pv-login-header{height:79px;padding:0 26px}.pv-login-brand img{width:157px;height:54px}.pv-login-institution{display:none}.pv-login-stage{padding:44px 24px;min-height:initial}.pv-login-ambient{height:420px;background-size:cover,100% auto;background-position:center,center}.pv-login-content{grid-template-columns:1fr;max-width:580px;gap:28px}.pv-login-intro{padding:0 6px}.pv-login-intro h1{font-size:clamp(2.5rem,6vw,3.65rem);margin:14px 0 12px}.pv-login-intro>p{max-width:510px}.pv-login-vehicle{display:none}.pv-login-auth{justify-self:center;max-width:580px}.pv-login-footer{padding:0 24px 22px}}
@media(max-width:520px){.pv-login-header{padding:0 16px;height:72px}.pv-login-brand img{width:138px;height:48px}.pv-login-back{font-size:.73rem;padding:10px 11px;gap:7px}.pv-login-stage{padding:30px 15px 28px}.pv-login-ambient{height:355px}.pv-login-intro{padding:0 6px}.pv-login-intro h1{font-size:clamp(2.18rem,8.5vw,2.8rem)}.pv-login-intro>p{font-size:.86rem;line-height:1.55}.pv-login-eyebrow{font-size:.61rem}.pv-login-accent{margin-bottom:18px}.pv-login-content{gap:25px}.pv-login-auth{padding:27px 22px;border-radius:18px}.pv-login-auth h2{font-size:2rem}.pv-login-auth-hint{margin-bottom:23px}.pv-login-footer{font-size:.62rem;gap:4px;padding:0 18px 22px}}
@media(prefers-reduced-motion:reduce){.pv-login *{transition:none!important}}
