﻿/*
 * Arquivo: assets/css/login.css
 * Descrição: Ajustes exclusivos da autenticação e recuperação do Portal do Aluno.
 * Versão: 1.4
 * Última atualização: 16/09/2026
 */

.login__erro,
.login__informacao {
    width: 100%;
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.35;
}

.login__erro {
    color: #842029;
    background-color: #f8d7da;
    border: 1px solid #f5c2c7;
}

.login__informacao {
    margin-bottom: 16px;
    color: #055160;
    background-color: #cff4fc;
    border: 1px solid #b6effb;
}

.login__erro:empty,
.login__informacao:empty {
    display: none;
}

.btn__conteudo:disabled,
.admin-portal__sair:disabled {
    cursor: wait;
    opacity: .7;
}

.form-group.tem-erro > .invalid-feedback {
    display: block;
}

.login-bg--left {
    background-image: url("../images/bg-esq.jpg");
}

.login-bg--right {
    background-image: url("../images/bg-dir.jpg");
    background-size:cover;
}

/* O texto preenchido deve se diferenciar visualmente do placeholder. */
.login__form .form-control {
    color: #000;
}

.login__form .form-control::placeholder {
    color: #919191;
    opacity: 1;
}

/* Botões secundários das telas públicas. */
.admin-portal__sair,
.login__form .btn__flex .esqueceu__link,
.recuperacao__contato,
.recuperacao__voltar {
    display: inline-flex;
    min-height: 60px;
    padding: 15px 22px;
    align-items: center;
    justify-content: center;
    border: 1px solid #3f7505;
    border-radius: 30px;
    color: #3f7505;
    background-color: transparent;
    font-family: albertextrabold;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: color .2s ease-in-out, background-color .2s ease-in-out, opacity .2s ease-in-out;
}

.admin-portal__sair:hover,
.admin-portal__sair:focus,
.login__form .btn__flex .esqueceu__link:hover,
.login__form .btn__flex .esqueceu__link:focus,
.recuperacao__contato:hover,
.recuperacao__contato:focus,
.recuperacao__voltar:hover,
.recuperacao__voltar:focus {
    color: #fff;
    background-color: #3f7505;
    text-decoration: none;
}

.admin-portal__resultados[hidden] {
    display: none !important;
}

.admin-portal__resultados {
    margin-top: 20px;
}

.admin-portal__status {
    width: 100%;
    margin-top: 16px;
    color: #055160;
    font-size: 14px;
    line-height: 1.35;
}

.admin-portal__status:empty {
    display: none;
}

.admin-portal__acoes,
.recuperacao__acoes {
    gap: 15px;
}

.recuperacao__email-box {
    width: 100%;
    margin: 22px 0 14px;
    padding: 18px;
    border: 1px solid rgba(63, 117, 5, .25);
    border-radius: 10px;
    background-color: rgba(63, 117, 5, .06);
    text-align: center;
}

.recuperacao__rotulo {
    margin-bottom: 5px;
    color: #4c4c4c;
    font-size: 15px;
    line-height: 1.4;
}

.recuperacao__email {
    color: #000;
    font-family: albertextrabold;
    font-size: 20px;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.recuperacao__contato-texto {
    margin-bottom: 12px;
    color: #4c4c4c;
    font-size: 14px;
    line-height: 1.45;
    text-align: center;
}

.recuperacao__contato {
    width: 100%;
    min-height: 48px;
    margin-bottom: 20px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.recuperacao__form {
    margin-top: 0;
}

@media (max-width: 575.98px) {
    .login__form .btn__flex,
    .admin-portal__acoes,
    .recuperacao__acoes {
        gap: 12px;
        align-items: stretch;
        flex-direction: column;
    }

    .login__form .btn__flex .esqueceu__link,
    .login__form .btn__conteudo,
    .admin-portal__sair,
    .recuperacao__contato,
    .recuperacao__voltar {
        width: 100%;
    }
}


/* Login desktop responsivo - destaque para formulário e imagem direita - 16/09/2026 */
/*
 * Mantém o layout desktop/tablet horizontal até 991.98px.
 *
 * Em resoluções menores:
 * - a imagem/faixa verde da esquerda reduz progressivamente;
 * - o formulário reduz apenas o necessário;
 * - a imagem da direita recebe mais área útil.
 *
 * Abaixo de 991.98px permanece a versão mobile original.
 */
@media (min-width: 992px) {
    .login-pagina {
        width: 100%;
        overflow: hidden;
    }

    .login-pagina .login-bg--left {
        flex: 0 0 clamp(
            96px,
            calc(39.1vw - 300px),
            450px
        );
        width: auto;
        max-width: none;
        min-width: 0;
    }

    .login-pagina .login__conteudo {
        flex: 0 0 clamp(
            500px,
            calc(8vw + 418px),
            570px
        );
        width: auto;
        max-width: none;
        min-width: 0;
        padding-left: clamp(30px, 2.1vw, 40px);
        padding-right: clamp(30px, 2.1vw, 40px);
    }

    .login-pagina .login-bg--right {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        max-width: none;
        background-position: center center;
        background-repeat: no-repeat;
        background-size: cover;
    }
}

/*
 * Ajuste intermediário para notebooks menores, ainda sem entrar
 * no layout mobile.
 */
@media (min-width: 992px) and (max-width: 1366px) {
    .login__logo {
        margin-bottom: 52px;
    }

    .titulo__login {
        margin-bottom: 26px;
        font-size: 42px;
        line-height: 46px;
    }

    .links__app {
        padding-top: 48px;
    }
}

@media (min-width: 992px) and (max-width: 1120px) {
    .login-pagina .login__conteudo {
        padding-left: 28px;
        padding-right: 28px;
    }

    .login__logo {
        margin-bottom: 38px;
    }

    .titulo__login {
        margin-bottom: 22px;
        font-size: 38px;
        line-height: 42px;
    }

    .links__app {
        padding-top: 35px;
    }
}
