/* ===================================================================
   Telas de acesso — login, primeiro acesso, recuperação e definição de senha.
   Paleta institucional da ABREE.
   =================================================================== */

/* A paleta e os dois temas moram em tema.css. */

* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: 'Nunito Sans', 'Segoe UI', Roboto, Arial, sans-serif;
    background: var(--cinza-bg);
    color: var(--texto);
}

h1, h2, h3 {
    font-family: 'Poppins', 'Segoe UI', Arial, sans-serif;
}

.topbar-stripe {
    position: fixed;
    top: 0; left: 0; right: 0;
    height: 6px;
    display: flex;
    z-index: 999;
}
.topbar-stripe span { display: block; }
.topbar-stripe .b1 { background: var(--amarelo); flex: 0 0 22%; }
.topbar-stripe .b2 { background: var(--navy); flex: 0 0 20%; }
.topbar-stripe .b3 { background: var(--verde); flex: 1; }

.tela-acesso {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--acesso-fundo);
    padding: 20px;
    padding-top: 26px;
}

.login-card {
    position: relative;
    background: var(--superficie);
    border-radius: 16px;
    width: 100%;
    max-width: 400px;
    padding: 36px 32px 28px;
    box-shadow: 0 20px 50px rgba(0, 0, 0, .25);
    text-align: center;
}

.login-logo {
    height: 52px;
    width: auto;
    display: block;
    margin: 0 auto 16px;
}

div.login-logo {
    width: 116px;
    height: auto;
    border-radius: 14px;
    background: var(--verde);
    padding: 12px 14px;
    display: flex;
    align-items: center;
    justify-content: center;
}
div.login-logo img { width: 100%; height: auto; display: block; }

.login-card h1 { font-size: 19px; margin: 0 0 4px; }
.login-card p.sub { color: var(--texto-suave); font-size: 13px; margin: 0 0 24px; line-height: 1.5; }

.campo { text-align: left; margin-bottom: 16px; }
.campo label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--texto-rotulo);
}
.campo input {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px;
    border: 1px solid var(--cinza-borda);
    font-size: 14px;
    background: var(--campo-fundo);
    font-family: inherit;
    color: var(--texto);
}
.campo input:focus {
    outline: none;
    border-color: var(--verde);
    background: var(--superficie);
}
.campo input[aria-invalid="true"] {
    border-color: var(--vermelho);
    background: var(--superficie);
}
.campo .erro-campo {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    color: var(--vermelho);
}
.campo .dica {
    display: block;
    margin-top: 6px;
    font-size: 11.5px;
    color: var(--texto-suave);
}

.lembrar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 18px;
    font-size: 12.5px;
    color: var(--texto-suave);
}
.lembrar input { width: auto; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: var(--verde);
    color: #fff;
    border: none;
    padding: 11px 18px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    transition: .15s;
}
.btn:hover { background: var(--verde-escuro); }
.btn.full { width: 100%; }

/* Política de bloqueio: aviso permanente, e não alerta de erro. */
.login-aviso {
    font-size: 11.5px;
    color: var(--texto-suave);
    text-align: center;
    margin: 14px 0 0;
}

.login-foot {
    font-size: 12px;
    color: var(--texto-suave);
    margin-top: 18px;
    line-height: 1.8;
}
.login-foot a {
    color: var(--verde-tinta);
    text-decoration: none;
    font-weight: 600;
}
.login-foot a:hover { text-decoration: underline; }

/* ---------- Avisos ---------- */
.alerta {
    text-align: left;
    border-radius: 8px;
    padding: 12px 14px;
    font-size: 13px;
    line-height: 1.55;
    margin-bottom: 18px;
    border: 1px solid transparent;
}
.alerta-erro {
    background: var(--vermelho-claro);
    border-color: var(--perigo-borda);
    color: var(--perigo-tinta-forte);
}
.alerta-sucesso {
    background: var(--verde-claro);
    border-color: var(--sucesso-borda);
    color: var(--verde-tinta);
}
.alerta-aviso {
    background: var(--atencao-fundo);
    border-color: var(--atencao-borda);
    color: var(--atencao-tinta);
}

/* Canto do cartão: a tela de acesso não tem barra onde pendurar o seletor. */
.login-card .seletor-tema {
    position: absolute;
    top: 14px;
    right: 14px;
}

@media (max-width: 480px) {
    .login-card { padding: 28px 20px 22px; }
}
