/*
 * OTIMIZA A56-R21 — Login 18086
 * Escopo visual: somente a página que contém #login-form.
 * O arquivo é servido apenas pelo vhost Otimiza 18086.
 */

body:has(#login-form) {
    min-height: 100vh;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px 16px;
    background:
        radial-gradient(circle at 16% 14%, rgba(25, 183, 189, .13), transparent 29%),
        radial-gradient(circle at 86% 88%, rgba(10, 102, 119, .12), transparent 32%),
        linear-gradient(135deg, #eef8f8 0%, #f8fbfb 52%, #e8f3f5 100%);
    color: #17363d;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
}

body:has(#login-form)::before {
    content: "";
    position: fixed;
    inset: 0 0 auto 0;
    height: 8px;
    background: linear-gradient(90deg, #076d7d 0%, #0c8998 55%, #17aeb5 100%);
    pointer-events: none;
}

#login-form.form-signin {
    width: min(92vw, 410px);
    max-width: 410px;
    margin: 0 !important;
    padding: 0 32px 30px !important;
    overflow: hidden;
    border: 1px solid rgba(7, 109, 125, .16);
    border-radius: 22px;
    background: rgba(255, 255, 255, .98);
    box-shadow:
        0 24px 60px rgba(9, 70, 80, .14),
        0 4px 16px rgba(9, 70, 80, .08);
}

#login-form #logo.form-signin-heading {
    position: relative;
    height: 148px;
    margin: 0 -32px 28px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 22px 22px 0 0;
    background:
        radial-gradient(circle at 78% 16%, rgba(255, 255, 255, .13), transparent 27%),
        linear-gradient(135deg, #065f70 0%, #087d8d 48%, #0e9baa 100%);
}

#login-form #logo img {
    display: none !important;
}

#login-form #logo::before {
    content: "";
    display: block;
    width: 225px;
    height: 72px;
    background: url("/otimiza-assets/img/otimiza-final.webp") center / contain no-repeat;
}

#login-form #logo::after {
    content: "Portal Otimiza · Saúde";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 15px;
    text-align: center;
    color: rgba(255, 255, 255, .84);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
}

#login-form .form-control {
    height: 48px;
    margin: 0 0 12px !important;
    padding: 12px 14px;
    border: 1px solid #cfe0e3;
    border-radius: 11px !important;
    background: #fbfdfd;
    color: #17363d;
    font-size: 14px;
    box-shadow: none !important;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

#login-form .form-control::placeholder {
    color: #748b91;
}

#login-form .form-control:focus {
    border-color: #0b8c9b;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(11, 140, 155, .12) !important;
}

#login-form .btn.btn-primary {
    width: 100%;
    min-height: 48px;
    margin-top: 4px;
    border: 0;
    border-radius: 11px;
    background: linear-gradient(135deg, #076d7d 0%, #0b93a2 100%);
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    letter-spacing: .01em;
    box-shadow: 0 9px 22px rgba(7, 109, 125, .22);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}

#login-form .btn.btn-primary:hover,
#login-form .btn.btn-primary:focus {
    background: linear-gradient(135deg, #065f70 0%, #087f8f 100%);
    color: #fff;
    filter: brightness(1.02);
    box-shadow: 0 11px 25px rgba(7, 109, 125, .27);
}

#login-form .btn.btn-primary:active {
    transform: translateY(1px);
}

#login-form .alert {
    margin: 0 0 14px;
    border-radius: 10px;
    font-size: 13px;
}

@media (max-width: 480px) {
    body:has(#login-form) {
        padding: 18px 12px;
    }

    #login-form.form-signin {
        width: 100%;
        padding: 0 22px 24px !important;
        border-radius: 18px;
    }

    #login-form #logo.form-signin-heading {
        height: 136px;
        margin: 0 -22px 24px !important;
        border-radius: 18px 18px 0 0;
    }

    #login-form #logo::before {
        width: 205px;
        height: 66px;
    }
}

/*
 * OTIMIZA A56-R21-R1 — Centralização robusta do login
 *
 * Não depende de :has() para posicionar o formulário. Isso evita que
 * regras legadas do login nativo ou diferenças de engine mantenham o
 * card encostado à esquerda.
 */
#login-form.form-signin {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translate(-50%, -50%) !important;
    margin: 0 !important;
    width: min(92vw, 410px) !important;
    max-width: 410px !important;
    box-sizing: border-box !important;
}

/* Cabeçalho ocupa toda a largura útil do card e mantém marca central. */
#login-form #logo.form-signin-heading {
    width: calc(100% + 64px) !important;
    max-width: none !important;
    box-sizing: border-box !important;
    margin-left: -32px !important;
    margin-right: -32px !important;
    text-align: center !important;
}

#login-form #logo::before {
    margin-left: auto !important;
    margin-right: auto !important;
}

#login-form #logo::after {
    width: 100% !important;
    box-sizing: border-box !important;
}

@media (max-width: 480px) {
    #login-form.form-signin {
        width: calc(100vw - 24px) !important;
        max-width: 410px !important;
    }

    #login-form #logo.form-signin-heading {
        width: calc(100% + 44px) !important;
        margin-left: -22px !important;
        margin-right: -22px !important;
    }
}
