:root {
    --cor-primaria: #1f6f4f;
    --cor-primaria-escura: #16523a;
    --cor-primaria-clara: #e6f2ec;
    --cor-texto: #1b3b2f;
    --cor-texto-suave: #4d6b5f;
    --cor-borda: #d4e3db;
    --cor-erro: #b3261e;
    --cor-erro-fundo: #fbeceb;
    --cor-sucesso: #1e7d4f;
    --cor-sucesso-fundo: #e8f6ee;
    --cor-aviso: #8a6d1a;
    --cor-aviso-fundo: #fbf3e0;
    --sombra-cartao: 0 20px 45px rgba(22, 82, 58, 0.15);
}

* {
    box-sizing: border-box;
}

body.tela-auth {
    margin: 0;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    background: linear-gradient(160deg, var(--cor-primaria) 0%, var(--cor-primaria-escura) 45%, #0f3a28 100%);
    color: var(--cor-texto);
}

.cartao-auth {
    width: 100%;
    max-width: 480px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: var(--sombra-cartao);
    padding: 2.5rem 2.25rem;
}

.cartao-auth--largo {
    max-width: 640px;
}

.cartao-auth__cabecalho {
    text-align: center;
    margin-bottom: 1.75rem;
}

.cartao-auth__cabecalho .logo {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    object-fit: cover;
    margin-bottom: 0.75rem;
}

.cartao-auth__cabecalho h1 {
    margin: 0 0 0.25rem;
    font-size: 1.5rem;
    color: var(--cor-primaria-escura);
}

.cartao-auth__cabecalho p {
    margin: 0;
    color: var(--cor-texto-suave);
    font-size: 0.9rem;
}

.cartao-auth__titulo {
    margin: 0 0 0.25rem;
    font-size: 1.15rem;
    color: var(--cor-texto);
}

.cartao-auth__subtitulo {
    margin: 0 0 1.5rem;
    color: var(--cor-texto-suave);
    font-size: 0.9rem;
}

.alerta {
    border-radius: 10px;
    padding: 0.85rem 1rem;
    margin-bottom: 1.25rem;
    font-size: 0.9rem;
}

.alerta ul {
    margin: 0;
    padding-left: 1.1rem;
}

.alerta--erro {
    background: var(--cor-erro-fundo);
    color: var(--cor-erro);
    border: 1px solid rgba(179, 38, 30, 0.25);
}

.alerta--sucesso {
    background: var(--cor-sucesso-fundo);
    color: var(--cor-sucesso);
    border: 1px solid rgba(30, 125, 79, 0.25);
}

.alerta--aviso {
    background: var(--cor-aviso-fundo);
    color: var(--cor-aviso);
    border: 1px solid rgba(138, 109, 26, 0.25);
}

.cartao-auth__igreja {
    text-align: center;
    margin-bottom: 1.25rem;
}

.cartao-auth__igreja .logo {
    /* A logo é horizontal (marca + texto): exibe inteira, sem recorte em
       círculo, preservando a proporção. */
    width: auto;
    height: auto;
    max-width: min(260px, 80%);
    max-height: 84px;
    object-fit: contain;
    margin-bottom: 0.5rem;
}

.cartao-auth__igreja-nome {
    margin: 0;
    font-weight: 600;
    color: var(--cor-primaria-escura);
}

.formulario-auth__checkbox {
    display: flex !important;
    align-items: center;
    gap: 0.4rem;
    font-weight: 400 !important;
    margin: 0 !important;
}

.formulario-auth__checkbox input {
    width: auto;
}

.codigo-link {
    margin-top: 0.5rem;
    padding: 0.5rem 0.65rem;
    background: rgba(0, 0, 0, 0.04);
    border-radius: 6px;
    font-family: 'Courier New', monospace;
    font-size: 0.78rem;
    word-break: break-all;
}

.codigo-link a {
    color: inherit;
}

.formulario-auth__secao {
    border: 0;
    padding: 0;
    margin: 0 0 1.5rem;
}

.formulario-auth__secao legend {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--cor-primaria);
    font-weight: 600;
    margin-bottom: 0.75rem;
    padding: 0;
}

.formulario-auth label {
    display: block;
    font-size: 0.85rem;
    color: var(--cor-texto);
    margin: 0.9rem 0 0.35rem;
    font-weight: 600;
}

.formulario-auth input[type="text"],
.formulario-auth input[type="email"],
.formulario-auth input[type="password"],
.formulario-auth input[type="file"] {
    width: 100%;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--cor-borda);
    border-radius: 8px;
    font-size: 0.95rem;
    color: var(--cor-texto);
    background: #fbfdfc;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.formulario-auth input:focus {
    outline: none;
    border-color: var(--cor-primaria);
    box-shadow: 0 0 0 3px rgba(31, 111, 79, 0.15);
}

.formulario-auth__linha {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    margin: 0.75rem 0;
}

.formulario-auth__linha a {
    color: var(--cor-primaria);
    text-decoration: none;
}

.formulario-auth__linha a:hover {
    text-decoration: underline;
}

.botao {
    display: inline-block;
    width: 100%;
    padding: 0.75rem 1rem;
    border: 0;
    border-radius: 8px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    text-align: center;
    margin-top: 0.5rem;
    transition: background-color 0.15s ease, transform 0.05s ease;
}

.botao--primario {
    background: var(--cor-primaria);
    color: #ffffff;
}

.botao--primario:hover {
    background: var(--cor-primaria-escura);
}

.botao--primario:active {
    transform: translateY(1px);
}

/* Login com Google (Autenticação Institucional, Etapa 2) */
.formulario-auth__ou {
    display: flex;
    align-items: center;
    text-align: center;
    color: var(--cor-texto-suave);
    font-size: 0.8rem;
    margin: 1.25rem 0;
}

.formulario-auth__ou::before,
.formulario-auth__ou::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--cor-borda);
}

.formulario-auth__ou span {
    padding: 0 0.75rem;
}

.botao--google {
    background: #ffffff;
    color: var(--cor-texto);
    border: 1px solid var(--cor-borda);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    text-decoration: none;
    box-shadow: 0 1px 2px rgba(22, 82, 58, 0.06);
    margin-top: 0.75rem;
}

.botao--google:hover {
    background: #f5f8f6;
    border-color: var(--cor-primaria);
    box-shadow: 0 2px 8px rgba(31, 111, 79, 0.12);
}

.botao--google:active {
    transform: translateY(1px);
}

.botao--google svg {
    flex: 0 0 auto;
}

.cartao-auth__subtitulo {
    margin-top: 0;
}

.cartao-auth__nota {
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid rgba(31, 111, 79, 0.15);
    font-size: 0.82rem;
    line-height: 1.5;
    color: #5b6b64;
    text-align: center;
}

.cartao-auth__nota strong {
    color: #1f6f4f;
}

/* Escolha da caixa de e-mail no "Esqueci minha senha" (institucional x pessoal). */
.opcao-radio {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
    margin-bottom: 0.6rem;
    border: 1px solid rgba(31, 111, 79, 0.25);
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.15s, border-color 0.15s;
}

.opcao-radio:hover {
    background-color: rgba(31, 111, 79, 0.06);
}

.opcao-radio:has(input:checked) {
    border-color: rgba(31, 111, 79, 0.7);
    background-color: rgba(31, 111, 79, 0.08);
}

.opcao-radio input {
    flex: 0 0 auto;
    margin: 0;
}

.opcao-radio span {
    font-size: 0.98rem;
    letter-spacing: 0.02em;
}

@media (max-width: 480px) {
    .cartao-auth {
        padding: 2rem 1.5rem;
    }
}
