/* =========================================================
   IECJS — E7.5B
   Entrada pública / autenticação
   Login, cadastro e redefinição de senha.
   ========================================================= */

:root {
    --auth-noite: #09131D;
    --auth-azul-profundo: #102F49;
    --auth-azul-petroleo: #173F5D;
    --auth-azul: #22B8EF;
    --auth-azul-claro: #46C3F1;
    --auth-marfim: #F8F6F0;
    --auth-areia: #EDDDC7;
    --auth-dourado: #D7B07C;
    --auth-texto: #17324A;
    --auth-texto-secundario: #6F8090;
    --auth-borda: rgba(23, 50, 74, .13);
    --auth-sucesso: #2FBF71;
    --auth-erro: #E5484D;
    --auth-sombra: 0 28px 70px rgba(3, 17, 28, .28);
}

html {
    min-height: 100%;
    background: var(--auth-noite);
}

body.auth-public-body {
    min-height: 100svh;
    margin: 0;
    display: block;
    padding: 0;
    overflow-x: hidden;
    color: var(--auth-texto);
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    background:
        radial-gradient(circle at 84% 16%, rgba(70, 195, 241, .19), transparent 31%),
        radial-gradient(circle at 14% 84%, rgba(215, 176, 124, .11), transparent 30%),
        linear-gradient(135deg, #07131E 0%, #0E2E46 54%, #173F5D 100%);
}

body.auth-public-body::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    opacity: .28;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px);
    background-size: 42px 42px;
    mask-image: linear-gradient(to bottom, #000, transparent 78%);
}

.auth-public-layout {
    position: relative;
    z-index: 1;
    width: min(1180px, calc(100% - 48px));
    min-height: 100svh;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(280px, .86fr) minmax(390px, 1fr);
    align-items: center;
    gap: clamp(42px, 7vw, 92px);
    padding: clamp(38px, 6vw, 74px) 0;
}

.auth-public-layout--wide {
    grid-template-columns: minmax(260px, .68fr) minmax(520px, 1.22fr);
}

.auth-public-brand {
    max-width: 470px;
    color: #fff;
}

.auth-public-brand-logo {
    width: 74px;
    height: 74px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 28px;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: 20px;
    background: rgba(255,255,255,.07);
    box-shadow: 0 14px 40px rgba(0,0,0,.16);
}

.auth-public-brand-logo img {
    width: 64px;
    height: 64px;
    display: block;
    object-fit: contain;
}

.auth-public-brand-kicker,
.auth-public-eyebrow {
    display: block;
    color: var(--auth-azul-claro);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .15em;
    text-transform: uppercase;
}

.auth-public-brand h2 {
    margin: 10px 0 16px;
    color: #fff;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(38px, 5vw, 68px);
    font-weight: 400;
    line-height: .98;
    letter-spacing: -.035em;
}

.auth-public-brand p {
    max-width: 430px;
    margin: 0;
    color: rgba(248,246,240,.76);
    font-size: 15px;
    line-height: 1.75;
}

.auth-public-brand-note {
    width: fit-content;
    max-width: 430px;
    margin-top: 28px;
    padding: 13px 16px;
    border: 1px solid rgba(70,195,241,.18);
    border-radius: 12px;
    background: rgba(7, 26, 40, .30);
    color: rgba(248,246,240,.76);
    font-size: 12px;
    line-height: 1.55;
}

.auth-public-card,
body.auth-public-body.login .container,
body.auth-public-body .cadastro-publico-shell,
body.auth-public-body .reset-senha-card {
    width: 100%;
    min-width: 0;
    margin: 0;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 20px;
    background: rgba(248, 246, 240, .975);
    color: var(--auth-texto);
    box-shadow: var(--auth-sombra);
    backdrop-filter: blur(12px);
}

body.auth-public-body.login .container {
    max-width: 500px;
    justify-self: end;
    padding: clamp(28px, 4vw, 42px);
}

.auth-public-card--wide,
body.auth-public-body .cadastro-publico-shell {
    max-width: 760px;
    justify-self: end;
}

.auth-public-back {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 24px;
    padding: 0 2px;
    color: #49647B;
    font-size: 12px;
    font-weight: 750;
    text-decoration: none;
}

.auth-public-back:hover {
    color: #0F6FA1;
}

.auth-public-card .titulo,
body.auth-public-body .cadastro-publico-topo h1,
body.auth-public-body .reset-senha-card h1 {
    margin: 8px 0 8px;
    color: var(--auth-texto);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(34px, 5vw, 46px);
    font-weight: 500;
    line-height: 1.08;
    text-align: left;
    letter-spacing: -.025em;
}

.auth-public-card-intro,
body.auth-public-body .cadastro-publico-topo p,
body.auth-public-body .reset-senha-introducao {
    margin: 0 0 24px;
    color: var(--auth-texto-secundario);
    font-size: 14px;
    line-height: 1.65;
}

body.auth-public-body.login #loginForm {
    display: grid;
    gap: 17px;
}

body.auth-public-body.login .input_box {
    width: 100%;
    height: auto;
    display: grid;
    gap: 7px;
    margin: 0;
}

body.auth-public-body.login .input_box > span,
body.auth-public-body .cadastro-publico-campo label,
body.auth-public-body .reset-senha-campo span,
body.auth-public-body .login-recuperacao-campo span {
    color: #29465F;
    font-size: 12px;
    font-weight: 800;
}

body.auth-public-body.login .input_box input,
body.auth-public-body .cadastro-publico-campo input,
body.auth-public-body .reset-senha-campo input,
body.auth-public-body .login-recuperacao-campo input {
    width: 100%;
    min-height: 50px;
    padding: 12px 14px;
    border: 1px solid #C7D4DF;
    border-radius: 10px;
    outline: none;
    background: #FFFDFC;
    color: var(--auth-texto);
    font: inherit;
    font-size: 16px;
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}

body.auth-public-body.login .input_box input:focus,
body.auth-public-body .cadastro-publico-campo input:focus,
body.auth-public-body .reset-senha-campo input:focus,
body.auth-public-body .login-recuperacao-campo input:focus {
    border-color: var(--auth-azul);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(34,184,239,.13);
}

body.auth-public-body.login .entrar,
body.auth-public-body .cadastro-publico-submit,
body.auth-public-body .reset-senha-botao,
body.auth-public-body .login-btn-primario {
    min-height: 50px;
    border: 1px solid #178FBE;
    border-radius: 10px;
    background: linear-gradient(135deg, #168FC0 0%, #22B8EF 100%);
    color: #fff;
    font: inherit;
    font-size: 14px;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(34,184,239,.16);
    cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

body.auth-public-body.login .entrar:hover:not(:disabled),
body.auth-public-body .cadastro-publico-submit:hover:not(:disabled),
body.auth-public-body .reset-senha-botao:hover:not(:disabled),
body.auth-public-body .login-btn-primario:hover:not(:disabled) {
    transform: translateY(-1px);
    filter: brightness(1.035);
    box-shadow: 0 13px 28px rgba(34,184,239,.22);
}

body.auth-public-body.login .login-esqueci-senha {
    margin: -5px 0 0 auto;
    color: #146C99;
    font-family: inherit;
    font-size: 12px;
    text-decoration: none;
}

body.auth-public-body.login .login-esqueci-senha:hover {
    color: #0E557A;
    text-decoration: none;
}

body.auth-public-body.login .login-conta-publica,
body.auth-public-body .cadastro-publico-login {
    margin: 18px 0 0;
    color: var(--auth-texto-secundario);
    font-family: inherit;
    font-size: 13px;
    text-align: center;
}

body.auth-public-body.login .login-conta-publica a,
body.auth-public-body .cadastro-publico-login a,
body.auth-public-body .reset-senha-voltar {
    color: #0E6E9D;
    font-weight: 800;
    text-decoration: none;
}

body.auth-public-body.login .login-conta-publica a:hover,
body.auth-public-body .cadastro-publico-login a:hover,
body.auth-public-body .reset-senha-voltar:hover {
    color: #084E72;
    text-decoration: none;
}

body.auth-public-body.login #statusLogin,
body.auth-public-body .cadastro-publico-status,
body.auth-public-body .reset-senha-status {
    min-height: 22px;
    margin-top: 12px;
    padding: 0;
    color: var(--auth-erro);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    text-align: left;
}

body.auth-public-body .cadastro-publico-status.sucesso,
body.auth-public-body .reset-senha-status.sucesso {
    color: #17864D;
}

body.auth-public-body .reset-senha-status.erro {
    color: #B9373E;
}

/* Cadastro */
body.auth-public-body .cadastro-publico-topo {
    padding: 32px 34px 25px;
    border-bottom: 1px solid var(--auth-borda);
    background: linear-gradient(180deg, #FFFDF9 0%, #F8F6F0 100%);
}

body.auth-public-body .cadastro-publico-voltar {
    display: none;
}

body.auth-public-body .cadastro-publico-etiqueta {
    color: #1285B4;
}

body.auth-public-body .cadastro-publico-form {
    gap: 17px;
    padding: 28px 34px 34px;
}

body.auth-public-body .cadastro-publico-campo small,
body.auth-public-body .cadastro-publico-nota {
    color: #738394;
}

body.auth-public-body .cadastro-publico-nota {
    border-color: rgba(215,176,124,.28);
    background: #F7F1E7;
    color: #5E6F7E;
}

/* Reset */
body.auth-public-body .reset-senha-card {
    max-width: 500px;
    justify-self: end;
    padding: clamp(28px, 4vw, 42px);
}

body.auth-public-body .reset-senha-etiqueta {
    color: #1285B4;
    letter-spacing: .15em;
}

body.auth-public-body .reset-senha-email {
    border-color: rgba(34,184,239,.16);
    background: #EDF7FB;
    color: #345469;
}

body.auth-public-body .reset-senha-voltar {
    min-height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: 14px;
}

/* Recuperação dentro do Login */
body.auth-public-body .login-modal {
    padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));
    background: rgba(4, 15, 24, .72);
    backdrop-filter: blur(6px);
}

body.auth-public-body .login-modal-card {
    max-height: calc(100dvh - 32px);
    overflow: auto;
    border-color: rgba(255,255,255,.72);
    border-radius: 18px;
    background: #F8F6F0;
    color: var(--auth-texto);
    box-shadow: 0 28px 70px rgba(0,0,0,.34);
}

body.auth-public-body .login-modal-etiqueta {
    color: #1285B4;
}

body.auth-public-body .login-modal-card h2 {
    color: var(--auth-texto);
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 500;
}

body.auth-public-body .login-modal-card > p,
body.auth-public-body .login-recuperacao-status {
    color: var(--auth-texto-secundario);
}

body.auth-public-body .login-modal-fechar {
    border-color: #D6E0E7;
    background: #EEF3F6;
    color: #244057;
}

body.auth-public-body .login-btn-secundario {
    min-height: 44px;
    border: 1px solid #C9D5DF;
    border-radius: 9px;
    background: transparent;
    color: #315067;
}

body.auth-public-body .login-btn-secundario:hover:not(:disabled) {
    background: #EEF3F6;
}

@media (max-width: 900px) {
    .auth-public-layout,
    .auth-public-layout--wide {
        width: min(760px, calc(100% - 32px));
        grid-template-columns: 1fr;
        gap: 26px;
        padding: 30px 0;
    }

    .auth-public-brand {
        max-width: none;
        display: grid;
        grid-template-columns: 58px minmax(0, 1fr);
        column-gap: 16px;
        align-items: center;
    }

    .auth-public-brand-logo {
        width: 58px;
        height: 58px;
        grid-row: 1 / span 2;
        margin: 0;
        border-radius: 16px;
    }

    .auth-public-brand-logo img {
        width: 50px;
        height: 50px;
    }

    .auth-public-brand-kicker {
        align-self: end;
        font-size: 9px;
    }

    .auth-public-brand h2 {
        align-self: start;
        margin: 3px 0 0;
        font-size: clamp(28px, 7vw, 40px);
    }

    .auth-public-brand p,
    .auth-public-brand-note {
        display: none;
    }

    body.auth-public-body.login .container,
    body.auth-public-body .cadastro-publico-shell,
    body.auth-public-body .reset-senha-card {
        max-width: none;
        justify-self: stretch;
    }
}

@media (max-width: 640px) {
    body.auth-public-body {
        min-height: 100dvh;
    }

    .auth-public-layout,
    .auth-public-layout--wide {
        width: 100%;
        min-height: 100dvh;
        gap: 14px;
        padding: max(18px, env(safe-area-inset-top)) 14px max(18px, env(safe-area-inset-bottom));
    }

    .auth-public-brand {
        padding: 0 6px;
    }

    body.auth-public-body.login .container,
    body.auth-public-body .cadastro-publico-shell,
    body.auth-public-body .reset-senha-card {
        border-radius: 16px;
    }

    body.auth-public-body.login .container,
    body.auth-public-body .reset-senha-card {
        padding: 25px 20px 22px;
    }

    body.auth-public-body .cadastro-publico-topo,
    body.auth-public-body .cadastro-publico-form {
        padding-left: 20px;
        padding-right: 20px;
    }

    body.auth-public-body .cadastro-publico-topo {
        padding-top: 25px;
    }

    .auth-public-card .titulo,
    body.auth-public-body .cadastro-publico-topo h1,
    body.auth-public-body .reset-senha-card h1 {
        font-size: 34px;
    }

    .auth-public-back {
        margin-bottom: 18px;
    }
}

@media (max-width: 420px) {
    .auth-public-layout,
    .auth-public-layout--wide {
        padding-inline: 10px;
    }

    .auth-public-brand {
        grid-template-columns: 50px minmax(0, 1fr);
        column-gap: 12px;
    }

    .auth-public-brand-logo {
        width: 50px;
        height: 50px;
        border-radius: 14px;
    }

    .auth-public-brand-logo img {
        width: 44px;
        height: 44px;
    }

    .auth-public-brand h2 {
        font-size: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.auth-public-body.login .entrar,
    body.auth-public-body .cadastro-publico-submit,
    body.auth-public-body .reset-senha-botao,
    body.auth-public-body .login-btn-primario,
    body.auth-public-body.login .input_box input,
    body.auth-public-body .cadastro-publico-campo input,
    body.auth-public-body .reset-senha-campo input {
        transition: none;
    }
}


/* =========================================================
   IECJS — E7.5C
   Fechamento desktop do Login + recuperação de senha.
   ========================================================= */

/*
 * Em notebooks/desktop com altura intermediária, reduzimos
 * apenas os espaços verticais. Evita a pequena barra de
 * rolagem em 100% sem esconder conteúdo em telas menores.
 */
@media (min-width: 901px) and (max-height: 820px) {
    .auth-public-layout {
        min-height: 100dvh;
        gap: clamp(34px, 5vw, 62px);
        padding-top: 18px;
        padding-bottom: 18px;
    }

    body.auth-public-body.login .container,
    body.auth-public-body .reset-senha-card {
        padding: 26px 32px;
    }

    .auth-public-brand-logo {
        width: 64px;
        height: 64px;
        margin-bottom: 18px;
    }

    .auth-public-brand-logo img {
        width: 56px;
        height: 56px;
    }

    .auth-public-brand h2 {
        margin-top: 7px;
        margin-bottom: 12px;
        font-size: clamp(38px, 4.5vw, 58px);
    }

    .auth-public-brand-note {
        margin-top: 18px;
    }

    .auth-public-back {
        min-height: 32px;
        margin-bottom: 14px;
    }

    .auth-public-card .titulo,
    body.auth-public-body .reset-senha-card h1 {
        margin-top: 6px;
        font-size: 38px;
    }

    .auth-public-card-intro,
    body.auth-public-body .reset-senha-introducao {
        margin-bottom: 16px;
    }

    body.auth-public-body.login #loginForm {
        gap: 12px;
    }

    body.auth-public-body.login .input_box input,
    body.auth-public-body .login-recuperacao-campo input,
    body.auth-public-body .reset-senha-campo input {
        min-height: 46px;
    }

    body.auth-public-body.login .entrar,
    body.auth-public-body .login-btn-primario,
    body.auth-public-body .reset-senha-botao {
        min-height: 46px;
    }

    body.auth-public-body.login .login-conta-publica {
        margin-top: 12px;
    }

    body.auth-public-body.login #statusLogin {
        margin-top: 7px;
    }
}

/* Recuperação: leitura mais clara do estado após o envio. */
body.auth-public-body .login-recuperacao-status.sucesso,
body.auth-public-body .login-recuperacao-status.erro {
    margin-top: 12px;
    padding: 11px 12px;
    border-radius: 9px;
    font-weight: 700;
    line-height: 1.45;
}

body.auth-public-body .login-recuperacao-status.sucesso {
    border: 1px solid rgba(47, 191, 113, .24);
    background: rgba(47, 191, 113, .09);
    color: #147647;
}

body.auth-public-body .login-recuperacao-status.erro {
    border: 1px solid rgba(229, 72, 77, .22);
    background: rgba(229, 72, 77, .08);
    color: #A92F35;
}
