/* Login Interlaken — responsivo, inspirado no layout SGS Cobrança, com identidade oficial. */
:root{
    --il-primary:#324B4B;
    --il-secondary:#467D78;
    --il-tertiary:#825F46;
    --il-quaternary:#B4A58C;
    --il-base:#F5F5F5;
    --il-text:#0f1919;
    --il-muted:#6b7474;
    --il-danger:#8a2f2f;
    --il-display:'Didot','Bodoni 72','Bodoni MT','Libre Bodoni','Times New Roman',serif;
    --il-body:'Baskerville','Libre Baskerville',Georgia,'Times New Roman',serif;
}

*{box-sizing:border-box}

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

.interlaken-login-body{
    min-height:100vh;
    background:var(--il-base);
    color:var(--il-text);
    font-family:var(--il-body);
}

.interlaken-login-shell{
    min-height:calc(100vh - 62px);
    display:grid;
    grid-template-columns:minmax(320px,1fr) minmax(360px,1fr);
}

.interlaken-login-brand{
    background:
        radial-gradient(circle at 20% 15%, rgba(180,165,140,.22), transparent 34%),
        linear-gradient(145deg, #263838, var(--il-primary));
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:clamp(2rem,6vw,5rem);
}

.interlaken-login-brand-content{
    width:min(560px,100%);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
}

.interlaken-login-brand img{
    width:min(290px,58vw);
    height:auto;
    object-fit:contain;
    margin:0 auto clamp(1rem,3vw,2rem);
    filter:drop-shadow(0 18px 35px rgba(0,0,0,.22));
}

.interlaken-login-brand h1{
    margin:0;
    font-family:var(--il-display);
    font-size:clamp(3rem,7vw,6.25rem);
    font-weight:400;
    line-height:.95;
    letter-spacing:.01em;
    color:var(--il-base);
}

.interlaken-login-brand p{
    max-width:34rem;
    margin:1.25rem auto 0;
    color:rgba(245,245,245,.82);
    font-size:clamp(1rem,1.8vw,1.25rem);
}

.interlaken-login-card-panel{
    display:flex;
    align-items:center;
    justify-content:center;
    padding:clamp(1.5rem,5vw,4.5rem);
    background:
        linear-gradient(180deg, rgba(255,255,255,.86), rgba(245,245,245,.98)),
        var(--il-base);
}

.interlaken-login-card{
    width:min(440px,100%);
    background:#fff;
    border:1px solid rgba(50,75,75,.12);
    box-shadow:0 24px 70px rgba(50,75,75,.14);
    padding:clamp(1.5rem,4vw,2.4rem);
}

.interlaken-login-card h2{
    margin:0 0 .35rem;
    color:var(--il-tertiary);
    font-family:var(--il-display);
    font-size:clamp(2rem,3.5vw,2.55rem);
    font-weight:400;
}

.login-subtitle{
    margin:0 0 1.8rem;
    color:var(--il-muted);
}

.interlaken-login-card label{
    display:block;
    margin:.95rem 0 .4rem;
    color:var(--il-primary);
    font-weight:700;
}

.interlaken-login-card input[type="email"],
.interlaken-login-card input[type="text"],
.interlaken-login-card input[type="password"]{
    width:100%;
    min-height:46px;
    border:1px solid rgba(50,75,75,.28);
    border-radius:10px;
    padding:.72rem .9rem;
    font:inherit;
    color:var(--il-text);
    background:#fff;
}

.interlaken-login-card input:focus{
    outline:3px solid rgba(70,125,120,.18);
    border-color:var(--il-secondary);
}

.login-check{
    display:flex !important;
    align-items:center;
    gap:.55rem;
    margin:1rem 0 1.4rem !important;
    color:var(--il-muted) !important;
    font-weight:500 !important;
}

.login-check input{
    width:auto;
    accent-color:var(--il-secondary);
}

.interlaken-login-card button{
    width:100%;
    min-height:48px;
    border:0;
    border-radius:10px;
    background:var(--il-secondary);
    color:#fff;
    font:inherit;
    font-weight:700;
    cursor:pointer;
    transition:filter .2s ease, transform .2s ease;
}

.interlaken-login-card button:hover{
    filter:brightness(.95);
    transform:translateY(-1px);
}

.login-register{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:.45rem;
    margin-top:1.2rem;
    color:var(--il-muted);
}

.login-register a{
    color:var(--il-primary);
    font-weight:700;
    text-decoration:none;
}

.login-register a:hover{text-decoration:underline}

.login-validation,
.field-validation-error,
span[data-valmsg-for]:not(:empty){
    display:block;
    color:var(--il-danger);
    font-size:.92rem;
    margin-top:.35rem;
}

.interlaken-login-footer{
    min-height:62px;
    padding:1rem;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.6rem;
    color:var(--il-muted);
    background:#fff;
    border-top:1px solid rgba(50,75,75,.10);
}

.interlaken-login-footer a{
    color:var(--il-primary);
    text-decoration:none;
}

@media (max-width: 920px){
    .interlaken-login-shell{
        grid-template-columns:1fr;
    }

    .interlaken-login-brand{
        min-height:42vh;
        padding:2.4rem 1.2rem;
    }

    .interlaken-login-brand img{
        width:min(220px,52vw);
        margin-bottom:1rem;
    }

    .interlaken-login-card-panel{
        padding:1.4rem;
        align-items:flex-start;
    }
}

@media (max-width: 520px){
    .interlaken-login-brand{
        min-height:34vh;
    }

    .interlaken-login-brand h1{
        font-size:3.2rem;
    }

    .interlaken-login-brand p{
        font-size:1rem;
    }

    .interlaken-login-card{
        box-shadow:none;
        border-radius:0;
        padding:1.25rem;
    }

    .login-register{
        flex-direction:column;
        gap:.15rem;
    }
}
