/**
 * LyA Soft — Login profesional
 * Hoja dedicada para Views/modules/Login/login.php
 * Carga tras style.css y mystyle.css. Solo gradientes CSS.
 */
:root{--lya-navy:#27394F;--lya-navy-deep:#1E2E44;--lya-blue:#2D9CDB;--lya-sky:#F4FBFF;--lya-accent:#68B0AB;--lya-card:#fff;--lya-muted:#8B9BA6;--lya-shadow:0 1.5rem 3.5rem rgba(30,46,68,.35);--lya-radius:12px}
.login-form-bg{min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,var(--lya-navy) 0%,var(--lya-navy-deep) 45%,var(--lya-blue) 130%);background-color:var(--lya-navy);position:relative;overflow:hidden}
.login-form-bg::before{content:"";position:absolute;inset:0;background:radial-gradient(42rem 26rem at 85% 8%,rgba(244,251,255,.14),rgba(244,251,255,0) 62%),radial-gradient(36rem 24rem at 8% 92%,rgba(104,176,171,.2),rgba(104,176,171,0) 60%),radial-gradient(30rem 20rem at 50% 55%,rgba(45,156,219,.16),rgba(45,156,219,0) 68%);pointer-events:none}
.login-form-bg .container,.login-form-bg .row{position:relative;z-index:1}
.login-form-bg .login-form{border:0;border-radius:var(--lya-radius);background:var(--lya-card);box-shadow:var(--lya-shadow)}
.login-form-bg .login-form .card-body{padding:2.25rem 2rem 2rem}
.login-form-bg .login-form h4{color:var(--lya-navy);font-weight:600;margin-bottom:.25rem}
.login-form-bg .login-form a.text-center{text-decoration:none}
.login-form-bg .login-form a.text-center:hover h4{color:var(--lya-blue)}
.login-form-bg .login-subtitle{color:var(--lya-muted);font-size:.875rem;line-height:1.45;margin:.35rem 0 0}
.login-form-bg .login-form img.mb-2{max-width:7.5rem;height:auto;border-radius:8px}
.login-form-bg .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.login-form-bg .input-group-text{background:var(--lya-sky);border:1px solid #ced4da;border-right:0;color:var(--lya-navy)}
.login-form-bg .input-group-text i.fa{font-size:1.125rem;width:1.125rem;text-align:center}
.login-form-bg .form-control{border:1px solid #ced4da;border-left:0;color:var(--lya-navy)}
.login-form-bg .form-control::placeholder{color:var(--lya-muted);opacity:1}
.login-form-bg .form-control:focus{border-color:var(--lya-blue);box-shadow:0 0 0 .2rem rgba(45,156,219,.25);outline:0;color:var(--lya-navy)}
.login-form-bg .btn-primary.submit{background:var(--lya-navy);border-color:var(--lya-navy);font-weight:500;letter-spacing:.01em;padding:.65rem 1rem;border-radius:8px;transition:background .18s,border .18s,box-shadow .18s}
.login-form-bg .btn-primary.submit:hover{background:var(--lya-blue);border-color:var(--lya-blue);color:#fff}
.login-form-bg .btn-primary.submit:focus-visible{outline:3px solid rgba(45,156,219,.55);outline-offset:2px}
.login-form-bg .btn-primary.submit:active{background:var(--lya-navy-deep);border-color:var(--lya-navy-deep)}
.login-form-bg form#login .form-group{margin-bottom:1rem;text-align:left}
@media(max-width:576px){.login-form-bg .login-form .card-body{padding:1.75rem 1.25rem 1.5rem}.login-form-bg .login-subtitle{font-size:.8125rem}.login-form-bg .btn-primary.submit{padding:.6rem .9rem}}
@media(prefers-reduced-motion:reduce){.login-form-bg .btn-primary.submit,.login-form-bg .form-control{transition:none}}
@keyframes login-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.login-form-bg .login-form{animation:login-card-in 520ms ease-out both}
@keyframes login-bg-drift{from{transform:translate3d(-1.5%,-1%,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.03)}}
.login-form-bg::before{animation:login-bg-drift 12s ease-in-out infinite alternate;will-change:transform}
.login-form-bg .btn-primary.submit{transition:background .18s,border .18s,box-shadow .18s,transform .18s}
.login-form-bg .btn-primary.submit:hover{transform:translateY(-1px)}
@media(prefers-reduced-motion:reduce){.login-form-bg .login-form,.login-form-bg::before,.login-form-bg .btn-primary.submit,.login-form-bg .form-control{animation:none!important;transition:none!important}}
.login-split{display:grid;grid-template-columns:1.08fr .92fr;min-height:100vh;min-height:100dvh;width:100%}
.login-split .login-brand,.login-split .login-panel{min-width:0}
.login-brand{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:3rem 2.75rem;color:var(--lya-sky);background:linear-gradient(150deg,var(--lya-navy-deep) 0%,var(--lya-navy) 48%,var(--lya-blue) 135%);background-color:var(--lya-navy-deep)}
.login-brand::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(244,251,255,.1) 0,rgba(244,251,255,0) 38%),radial-gradient(28rem 18rem at 82% 8%,rgba(244,251,255,.12),rgba(244,251,255,0) 62%),radial-gradient(26rem 20rem at 12% 88%,rgba(104,176,171,.22),rgba(104,176,171,0) 60%);pointer-events:none}
.login-brand-inner{position:relative;width:100%;max-width:26rem}
.login-brand-logo{max-width:5.5rem;height:auto;border-radius:10px;background:#fff;padding:.25rem}
.login-brand-title{font-size:clamp(1.9rem,1.2rem+2.4vw,2.9rem);line-height:1.08;font-weight:700;letter-spacing:-.01em;margin:1rem 0 .6rem;color:#fff}
.login-brand-lead{font-size:clamp(1rem,.92rem+.4vw,1.125rem);line-height:1.55;margin:0 0 1.4rem;color:rgba(244,251,255,.88)}
.login-brand-list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.login-brand-list li{display:flex;align-items:flex-start;gap:.6rem;font-size:.95rem;line-height:1.5;color:rgba(244,251,255,.92)}
.login-brand-list li span{flex:0 0 1.5rem;width:1.5rem;height:1.5rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--lya-navy-deep);background:var(--lya-accent)}
.login-panel{display:flex;align-items:center;justify-content:center;padding:2.75rem 2rem;background:var(--lya-card)}
.login-panel .form-input-content{width:100%;max-width:26rem;margin:auto}
.login-panel .login-form{width:100%}
@media(max-width:992px){.login-split{grid-template-columns:1fr}.login-split .login-brand{display:none}.login-split .login-panel{padding:2rem 1.25rem}}
@media(prefers-reduced-motion:reduce){.login-split .login-brand::before,.login-split .login-brand-inner,.login-split .login-panel,.login-split .login-panel .login-form{animation:none;transition:none}}
@supports not(display:grid){.login-split{display:block}.login-split .login-brand{display:none}.login-split .login-panel{display:block;max-width:26rem;margin:auto}}
.login-form-bg .login-stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:100vh;min-height:100dvh;padding:2rem 1.25rem}
.login-form-bg .login-stage .login-card{width:100%;max-width:1000px;display:grid;grid-template-columns:1.08fr .92fr;min-height:0;border-radius:var(--lya-radius);background:var(--lya-card);box-shadow:var(--lya-shadow);overflow:hidden;animation:login-card-in 520ms ease-out both}
.login-form-bg .login-stage .login-split{min-height:0;width:100%}
.login-brand::after{content:"";position:absolute;width:24rem;height:24rem;right:-8rem;top:-8rem;background:radial-gradient(circle,rgba(244,251,255,.16) 0 22%,rgba(244,251,255,0) 23%),radial-gradient(circle at 35% 65%,rgba(104,176,171,.2) 0 28%,rgba(104,176,171,0) 29%),radial-gradient(circle at 70% 30%,rgba(45,156,219,.18) 0 20%,rgba(45,156,219,0) 21%);pointer-events:none;animation:login-bg-drift 12s ease-in-out infinite alternate;will-change:transform}
.login-brand-inner{z-index:1}
.login-form-bg .input-group:focus-within .input-group-text{border-color:var(--lya-blue);background:var(--lya-card);color:var(--lya-blue)}
.login-form-bg .input-group:focus-within .form-control{border-color:var(--lya-blue)}
.login-form-bg :is(.input-group:has(.form-control.is-invalid),.input-group.is-invalid) .input-group-text{border-color:#ff5e5e;color:#ff5e5e}
@media(max-width:992px){.login-form-bg .login-stage{padding:1.25rem .75rem}.login-form-bg .login-stage .login-card{grid-template-columns:1fr;max-width:26rem}.login-stage .login-brand{display:none}}
@media(prefers-reduced-motion:reduce){.login-stage .login-card,.login-brand::after{animation:none!important;transition:none!important}}
@supports not(display:grid){.login-stage .login-card{display:block;max-width:26rem}.login-stage .login-brand{display:none}}
@media(forced-colors:active){.login-form-bg .input-group-text i.fa{color:CanvasText}}