/* Login profesional responsive - ElectroRiego */
.login-pro-body{
    min-height:100vh;
    margin:0;
    overflow-x:hidden;
    background:
        radial-gradient(circle at 12% 10%, rgba(45,212,191,.28), transparent 30%),
        radial-gradient(circle at 88% 18%, rgba(34,197,94,.18), transparent 28%),
        linear-gradient(135deg,#07111f 0%,#0f172a 44%,#0f766e 130%);
    color:#0f172a;
}
.login-pro-shell{
    min-height:100vh;
    display:grid;
    grid-template-columns:minmax(420px,1.05fr) minmax(360px,.95fr);
    align-items:stretch;
    position:relative;
}
.login-pro-shell:before,
.login-pro-shell:after{
    content:"";
    position:absolute;
    border-radius:999px;
    pointer-events:none;
    filter:blur(.2px);
}
.login-pro-shell:before{
    width:280px;
    height:280px;
    left:-85px;
    bottom:-95px;
    background:rgba(20,184,166,.18);
}
.login-pro-shell:after{
    width:170px;
    height:170px;
    right:8%;
    top:6%;
    background:rgba(255,255,255,.10);
}
.login-pro-hero,
.login-pro-panel{
    position:relative;
    z-index:1;
}
.login-pro-hero{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:42px clamp(28px,5vw,72px);
    color:#fff;
}
.login-brand-box,
.mobile-brand{
    display:flex;
    align-items:center;
    gap:12px;
}
.login-brand-icon{
    width:54px;
    height:54px;
    border-radius:18px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,#14b8a6,#22c55e);
    box-shadow:0 18px 40px rgba(20,184,166,.32);
    font-size:27px;
}
.login-brand-box strong,
.mobile-brand strong{
    display:block;
    font-size:22px;
    line-height:1;
}
.login-brand-box span,
.mobile-brand span{
    display:block;
    margin-top:4px;
    font-size:12px;
    color:rgba(226,232,240,.78);
}
.login-hero-content{
    max-width:640px;
    padding:50px 0;
}
.login-pill{
    display:inline-flex;
    align-items:center;
    gap:8px;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.10);
    color:#dffdf6;
    border-radius:999px;
    padding:9px 13px;
    font-size:13px;
    font-weight:800;
    backdrop-filter:blur(12px);
}
.login-hero-content h1{
    margin:18px 0 14px;
    font-size:clamp(34px,5vw,58px);
    line-height:1.03;
    letter-spacing:-.045em;
}
.login-hero-content p{
    max-width:560px;
    margin:0;
    color:#cbd5e1;
    font-size:17px;
    line-height:1.65;
}
.login-feature-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    max-width:760px;
}
.login-feature-card{
    border:1px solid rgba(255,255,255,.13);
    background:rgba(255,255,255,.08);
    border-radius:18px;
    padding:15px;
    backdrop-filter:blur(12px);
}
.login-feature-card b{
    display:block;
    font-size:14px;
    margin-bottom:5px;
}
.login-feature-card span{
    display:block;
    color:#cbd5e1;
    font-size:12px;
    line-height:1.45;
}
.login-pro-panel{
    display:grid;
    place-items:center;
    padding:32px;
}
.login-card-pro{
    width:min(455px,100%);
    border:1px solid rgba(255,255,255,.68);
    background:rgba(255,255,255,.96);
    box-shadow:0 30px 90px rgba(0,0,0,.26);
    border-radius:30px;
    padding:30px;
    backdrop-filter:blur(18px);
}
.mobile-brand{
    display:none;
    margin-bottom:24px;
}
.mobile-brand span{color:#64748b;}
.login-card-head span{
    display:inline-flex;
    border-radius:999px;
    background:#ecfdf5;
    color:#047857;
    padding:7px 11px;
    font-size:12px;
    font-weight:900;
}
.login-card-head h2{
    margin:12px 0 6px;
    font-size:32px;
    line-height:1.1;
    letter-spacing:-.03em;
}
.login-card-head p{
    margin:0 0 22px;
    color:#64748b;
    line-height:1.55;
}
.login-alert{
    margin-bottom:18px;
}
.login-form{
    display:grid;
    gap:16px;
}
.login-field label{
    font-size:13px;
    color:#334155;
}
.login-input-icon{
    position:relative;
    display:flex;
    align-items:center;
}
.login-input-icon > span{
    position:absolute;
    left:14px;
    top:50%;
    transform:translateY(-50%);
    z-index:1;
    opacity:.75;
    font-size:16px;
}
.login-input-icon .form-control{
    min-height:52px;
    border-radius:16px;
    padding-left:44px;
    padding-right:48px;
    font-size:15px;
    background:#f8fafc;
}
.login-input-icon .form-control:focus{
    background:#fff;
}
.login-eye{
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    width:38px;
    height:38px;
    border:0;
    border-radius:12px;
    background:transparent;
    cursor:pointer;
    display:grid;
    place-items:center;
    font-size:16px;
}
.login-eye:hover{
    background:#e2e8f0;
}
.login-btn{
    width:100%;
    min-height:54px;
    justify-content:center;
    border-radius:16px;
    font-size:15px;
    margin-top:4px;
    box-shadow:0 14px 34px rgba(15,118,110,.28);
}
.login-btn b{
    font-size:20px;
    line-height:1;
}
.login-btn.is-loading{
    opacity:.82;
    pointer-events:none;
}
.login-security-note{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-top:18px;
    border:1px solid #dbeafe;
    background:#eff6ff;
    color:#1e3a8a;
    border-radius:16px;
    padding:12px;
}
.login-security-note b{
    white-space:nowrap;
    font-size:13px;
}
.login-security-note span{
    display:block;
    font-size:12px;
    line-height:1.45;
}

@media(max-width:1024px){
    .login-pro-shell{
        grid-template-columns:1fr;
        min-height:100svh;
    }
    .login-pro-hero{
        display:none;
    }
    .login-pro-panel{
        min-height:100svh;
        padding:34px 22px;
    }
    .login-card-pro{
        width:min(520px,100%);
    }
    .mobile-brand{
        display:flex;
    }
}
@media(max-width:560px){
    .login-pro-body{
        background:linear-gradient(180deg,#0f172a 0%,#0f766e 150%);
    }
    .login-pro-panel{
        align-items:start;
        padding:14px;
        padding-top:calc(14px + env(safe-area-inset-top));
        padding-bottom:calc(14px + env(safe-area-inset-bottom));
    }
    .login-card-pro{
        min-height:calc(100svh - 28px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
        border-radius:24px;
        padding:22px;
        display:flex;
        flex-direction:column;
        justify-content:center;
    }
    .login-brand-icon{
        width:48px;
        height:48px;
        border-radius:16px;
        font-size:24px;
    }
    .mobile-brand strong{
        font-size:20px;
    }
    .login-card-head h2{
        font-size:28px;
    }
    .login-card-head p{
        font-size:14px;
        margin-bottom:18px;
    }
    .login-input-icon .form-control{
        min-height:54px;
        font-size:16px;
    }
    .login-btn{
        min-height:56px;
    }
    .login-security-note{
        flex-direction:column;
        gap:4px;
    }
}
@media(max-width:360px){
    .login-card-pro{padding:18px;border-radius:20px;}
    .login-card-head h2{font-size:25px;}
}
@media(orientation:landscape) and (max-height:560px) and (max-width:1024px){
    .login-pro-panel{padding:14px;align-items:start;}
    .login-card-pro{padding:20px;}
    .mobile-brand{margin-bottom:14px;}
    .login-card-head h2{font-size:26px;}
    .login-card-head p{margin-bottom:12px;}
    .login-form{gap:10px;}
    .login-security-note{display:none;}
}

/* Solicitud de acceso */
.login-access-actions{
    margin-top:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    border:1px dashed #cbd5e1;
    background:#f8fafc;
    color:#475569;
    border-radius:16px;
    padding:12px 14px;
    font-size:13px;
}
.login-access-actions a{
    color:#0f766e;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap;
}
.login-access-actions a:hover{text-decoration:underline;}
.access-register-shell{
    min-height:100svh;
    display:grid;
    place-items:center;
    padding:28px;
    background:
        radial-gradient(circle at 15% 15%, rgba(45,212,191,.22), transparent 30%),
        radial-gradient(circle at 85% 18%, rgba(34,197,94,.16), transparent 26%),
        linear-gradient(135deg,#07111f 0%,#0f172a 48%,#0f766e 140%);
}
.access-register-card{
    width:min(980px,100%);
    border:1px solid rgba(255,255,255,.62);
    background:rgba(255,255,255,.96);
    box-shadow:0 30px 90px rgba(0,0,0,.26);
    border-radius:30px;
    padding:28px;
}
.access-register-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    margin-bottom:20px;
}
.access-register-head h1{
    margin:0 0 6px;
    font-size:30px;
    letter-spacing:-.03em;
}
.access-register-head p{
    margin:0;
    color:#64748b;
    line-height:1.5;
}
.access-back-link{
    color:#0f766e;
    font-weight:900;
    text-decoration:none;
    white-space:nowrap;
}
.access-back-link:hover{text-decoration:underline;}
.access-info-box{
    margin-top:18px;
    border:1px solid #dbeafe;
    background:#eff6ff;
    color:#1e3a8a;
    border-radius:16px;
    padding:14px;
    line-height:1.55;
}
@media(max-width:760px){
    .access-register-shell{padding:14px;align-items:start;}
    .access-register-card{border-radius:22px;padding:18px;}
    .access-register-head{flex-direction:column;gap:10px;}
    .access-register-head h1{font-size:25px;}
    .login-access-actions{flex-direction:column;align-items:flex-start;}
}


/* Copyright público */
.login-copyright-public{
    position:fixed;
    left:0;
    right:0;
    bottom:12px;
    z-index:20;
    text-align:center;
    color:rgba(255,255,255,.72);
    font-size:12px;
    font-weight:600;
    letter-spacing:.01em;
    padding:0 14px;
    pointer-events:none;
}
@media(max-width:560px){
    .login-copyright-public{
        bottom:6px;
        font-size:11px;
    }
}
@media print{
    .login-copyright-public{display:none!important;}
}
