:root{
    --wico-blue:#1f3768;
    --wico-blue-dark:#071832;
    --wico-blue-deep:#03112a;
    --wico-cyan:#22a7f0;
    --wico-red:#d71920;
    --wico-text:#172033;
    --wico-muted:#6c7485;
    --wico-line:rgba(255,255,255,.20);
}

*{box-sizing:border-box}

html,body{height:100%;min-height:100%;}

body.login-page{
    margin:0;
    font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    color:#fff;
    background:var(--wico-blue-dark);
    overflow-x:hidden;
}

.login-shell{
    min-height:100vh;
    position:relative;
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(420px,520px);
    isolation:isolate;
}

.login-shell::before{
    content:"";
    position:absolute;
    inset:0;
    background-image:
        linear-gradient(90deg,rgba(3,17,42,.88) 0%,rgba(3,17,42,.62) 36%,rgba(3,17,42,.26) 63%,rgba(3,17,42,.68) 100%),
        url('/custom/wico/img/login-bg.png');
    background-size:cover;
    background-position:center;
    z-index:-2;
}

.login-shell::after{
    content:"";
    position:absolute;
    inset:0;
    background:radial-gradient(circle at 20% 20%,rgba(34,167,240,.26),transparent 34%),radial-gradient(circle at 85% 85%,rgba(0,51,160,.32),transparent 38%);
    z-index:-1;
    pointer-events:none;
}

.login-brand-area{
    min-height:100vh;
    padding:48px 52px;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
}

.logo-tile{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:250px;
    min-height:108px;
    padding:18px 20px;
}

.logo-tile img{
    width:100%;
    height:auto;
    display:block;
}

.login-claim{
    max-width:680px;
    padding-bottom:38px;
}

.login-claim .eyebrow{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:9px 13px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(10px);
    font-weight:700;
    font-size:.88rem;
    letter-spacing:.02em;
    margin-bottom:18px;
}

.login-claim h1{
    font-size:clamp(2.4rem,4.5vw,5rem);
    line-height:.96;
    letter-spacing:-.06em;
    margin:0 0 22px;
    font-weight:850;
}

.login-claim p{
    font-size:1.15rem;
    line-height:1.65;
    color:rgba(255,255,255,.82);
    max-width:600px;
    margin:0;
}

.login-stats{
    display:grid;
    grid-template-columns:repeat(3,minmax(130px,1fr));
    gap:14px;
    max-width:680px;
    margin-top:28px;
}

.login-stat{
    border-radius:20px;
    padding:18px;
    background:rgba(255,255,255,.11);
    border:1px solid rgba(255,255,255,.16);
    backdrop-filter:blur(14px);
}

.login-stat strong{
    display:block;
    font-size:1.45rem;
    line-height:1;
}

.login-stat span{
    display:block;
    font-size:.82rem;
    color:rgba(255,255,255,.74);
    margin-top:7px;
}

.login-panel-wrap{
    min-height:100vh;
    padding:34px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.login-panel{
    width:100%;
    max-width:460px;
    border-radius:34px;
    padding:34px;
    background:rgba(255,255,255,.94);
    color:var(--wico-text);
    border:1px solid rgba(255,255,255,.72);
    box-shadow:0 32px 90px rgba(0,0,0,.38);
    backdrop-filter:blur(22px);
}

.panel-logo{
    display:flex;
    justify-content:center;
    margin-bottom:26px;
}

.panel-logo-box{
    width:210px;
    border-radius:20px;
    padding:16px;
    background:var(--wico-blue);
    box-shadow:0 16px 35px rgba(31,55,104,.28);
}

.panel-logo-box img{width:100%;display:block;}

.login-panel h2{
    font-size:1.72rem;
    font-weight:820;
    letter-spacing:-.04em;
    margin:0 0 6px;
    text-align:center;
}

.login-panel .subtitle{
    color:var(--wico-muted);
    text-align:center;
    margin-bottom:28px;
}

.form-label{
    font-weight:760;
    color:#263247;
    font-size:.9rem;
}

.input-group-text{
    background:#f3f6fb;
    border-color:#e4e9f2;
    color:var(--wico-blue);
    border-radius:16px 0 0 16px;
}

.form-control{
    min-height:52px;
    border-color:#e4e9f2;
    background:#f8fafc;
    border-radius:0 16px 16px 0;
    font-weight:600;
}

.form-control:focus{
    border-color:rgba(34,167,240,.75);
    box-shadow:0 0 0 .25rem rgba(34,167,240,.18);
    background:#fff;
}

.password-toggle{
    border-color:#e4e9f2;
    background:#f8fafc;
    color:var(--wico-muted);
    border-radius:0 16px 16px 0;
}

.password-input .form-control{
    border-radius:0;
}

.login-options{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    margin:18px 0 24px;
    font-size:.92rem;
}

.login-options a{
    color:var(--wico-blue);
    font-weight:760;
    text-decoration:none;
}

.form-check-input:checked{
    background-color:var(--wico-blue);
    border-color:var(--wico-blue);
}

.btn-login{
    min-height:54px;
    border:0;
    border-radius:18px;
    font-weight:820;
    color:#fff;
    background:linear-gradient(135deg,#173766,#0058c8 62%,#22a7f0);
    box-shadow:0 18px 34px rgba(0,88,200,.28);
}

.btn-login:hover{
    color:#fff;
    transform:translateY(-1px);
    box-shadow:0 22px 42px rgba(0,88,200,.34);
}

.login-separator{
    display:flex;
    align-items:center;
    gap:12px;
    color:#98a2b3;
    font-size:.82rem;
    margin:24px 0;
}

.login-separator::before,.login-separator::after{
    content:"";
    height:1px;
    flex:1;
    background:#e4e9f2;
}

.btn-sso{
    min-height:48px;
    border-radius:16px;
    border-color:#dbe3ee;
    background:#fff;
    font-weight:760;
    color:#25324a;
}

.security-note{
    display:flex;
    gap:12px;
    align-items:flex-start;
    border-radius:18px;
    padding:14px;
    background:#f4f8ff;
    color:#536078;
    margin-top:22px;
    font-size:.86rem;
}

.security-note i{
    color:var(--wico-blue);
    font-size:1.1rem;
}

.powered-by{
    margin-top:20px;
    text-align:center;
    color:#8a94a6;
    font-size:.82rem;
}

.powered-by strong{color:#52627c;}

@media (max-width: 1100px){
    .login-shell{grid-template-columns:1fr 460px;}
    .login-brand-area{padding:34px;}
    .login-stats{grid-template-columns:1fr;max-width:240px;}
    .login-claim h1{font-size:3rem;}
}

@media (max-width: 860px){
    body.login-page{overflow-y:auto;}
    .login-shell{display:block;min-height:100vh;}
    .login-brand-area{
        min-height:auto;
        padding:24px 18px 0;
        justify-content:flex-start;
        align-items:center;
        text-align:center;
    }
    .logo-tile{width:210px;min-height:auto;padding:14px;border-radius:20px;}
    .login-claim{padding:28px 0 6px;}
    .login-claim .eyebrow{font-size:.78rem;}
    .login-claim h1{font-size:2.35rem;margin-bottom:12px;}
    .login-claim p{font-size:.98rem;}
    .login-stats{display:none;}
    .login-panel-wrap{min-height:auto;padding:18px 14px 28px;}
    .login-panel{border-radius:28px;padding:24px;max-width:440px;}
    .panel-logo-box{width:175px;}
    .login-options{align-items:flex-start;flex-direction:column;}
}

@media (max-width: 420px){
    .login-panel{padding:20px;border-radius:24px;}
    .login-panel h2{font-size:1.45rem;}
}
