/* css/style.css (Versão Final e Compilada) */

/* --- 1. CONFIGURAÇÕES GLOBAIS E VARIÁVEIS --- */
:root {
    --primary-color: #008C45; /* Verde principal */
    --secondary-color: #5EE68C; /* Verde vibrante */
    --background-color: #f0f2f5; /* Um cinza levemente azulado para o fundo */
    --text-color: #333;
    --card-bg-color: #ffffff;
    --border-color: #ddd;
}

body {
    font-family: Arial, sans-serif;
    background-color: var(--background-color);
    color: var(--text-color);
    margin: 0;
}

/* --- 2. LAYOUT PRINCIPAL (HEADER, FOOTER, CONTAINER) --- */
.main-container {
    width: 90%;
    max-width: 960px;
    margin: 20px auto;
    background-color: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
}

.page-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 15px;
    border-bottom: 2px solid var(--border-color);
    padding-bottom: 20px;
    margin-bottom: 30px;
}

.page-header img {
    max-width: 750px;
    height: auto;
}

.page-header h1 {
    font-size: 1.5rem;
    color: var(--primary-color);
    margin: 0;
}

.header-admin-link a {
    color: var(--primary-color);
    font-weight: bold;
    text-decoration: none;
    font-size: 0.9rem;
    padding: 8px 15px;
    border: 1px solid var(--border-color);
    border-radius: 5px;
    transition: all 0.3s ease;
}

.header-admin-link a:hover {
    background-color: var(--primary-color);
    color: #fff;
}

.page-footer {
    background-color: var(--primary-color);
    color: #ffffff;
    padding: 1.5rem 1rem;
    margin-top: 40px;
    text-align: center;
    font-size: 0.9rem;
    line-height: 1.5;
    border-top: none;
}

.page-footer p {
    margin: 5px 0;
}

.page-footer a {
    color: #ffffff;
    font-weight: bold;
    text-decoration: underline;
}

/* --- 3. COMPONENTES GERAIS (BOTÕES, INPUTS, ALERTAS) --- */
.input-group { margin-bottom: 1.5rem; text-align: left; }
.input-group label { display: block; margin-bottom: 0.5rem; font-weight: bold; }
.input-group input, .input-group select { width: 100%; padding: 0.8rem; border: 1px solid var(--border-color); border-radius: 4px; box-sizing: border-box; }
.input-group-checkbox { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 1rem; }
.input-group-checkbox input[type="checkbox"] { flex-shrink: 0; margin-top: 4px; }

.btn { width: 100%; padding: 1rem; border: none; background-color: var(--primary-color); color: white; font-size: 1rem; font-weight: bold; border-radius: 4px; cursor: pointer; transition: background-color 0.3s; text-decoration: none; }
.btn:hover { background-color: #006b36; /* Verde mais escuro */ }
.btn.btn-secondary { background-color: var(--secondary-color); color: #212529; }
.btn.btn-secondary:hover { background-color: #4ed97c; }

.alert { padding: 15px; margin-bottom: 20px; border: 1px solid transparent; border-radius: 4px; text-align: center; }
.alert-success { color: #155724; background-color: #d4edda; border-color: #c3e6cb; }
.alert-danger { color: #721c24; background-color: #f8d7da; border-color: #f5c6cb; }
.alert-warning { color: #856404; background-color: #fff3cd; border-color: #ffeeba; }
.alert-info { color: #0c5460; background-color: #d1ecf1; border-color: #bee5eb; }

/* --- 4. ESTILOS DE PÁGINAS ESPECÍFICAS --- */

/* PÁGINA DE LOGIN E RECUPERAÇÃO DE SENHA */
body:has(.container-login), body:has(.recuperar-senha-container) {
    display: flex;
    justify-content: center;
    align-items: center;
}
.container-login { width: 100%; max-width: 450px; padding: 2rem; }
.login-options { margin-top: 1.5rem; display: flex; flex-direction: column; gap: 1rem; }
.login-options a { color: var(--primary-color); text-decoration: none; }
.recuperar-senha-container { max-width: 500px; padding: 30px; background-color: #f9f9f9; border: 1px solid var(--border-color); border-radius: 8px; }

/* FORMULÁRIO DE CADASTRO */
.form-container-full { max-width: 800px; padding: 20px; margin: 20px auto; }
.form-section { border: 1px solid var(--border-color); border-radius: 5px; padding: 1.5rem; margin-bottom: 2rem; }
.form-section legend { font-size: 1.2rem; font-weight: bold; color: var(--primary-color); padding: 0 10px; }
.morador-resumo, .morador-adicional { border: 1px solid #e0e0e0; border-radius: 8px; padding: 1rem; margin-bottom: 1.5rem; background-color: #f9f9f9; }
.morador-resumo h4, .morador-adicional h4 { margin-top: 0; color: var(--primary-color); border-bottom: 1px solid #ccc; padding-bottom: 0.5rem; }
input.auto-filled { background-color: #e9ecef; font-weight: bold; }

/* PÁGINA DE STATUS */
.status-container { max-width: 600px; padding: 30px; }
.status-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 25px; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; }
.btn-logout { background-color: #dc3545; color: white; padding: 8px 15px; border-radius: 4px; text-decoration: none; font-weight: bold; transition: background-color 0.3s; }
.status-box { text-align: center; }
.status-display { font-size: 1.8rem; font-weight: bold; padding: 20px; border-radius: 5px; margin: 15px 0; color: #fff; text-transform: uppercase; letter-spacing: 1px; }
.status-em-analise { background-color: #007bff; }
.status-deferido { background-color: var(--primary-color); }
.status-indeferido { background-color: #dc3545; }
.status-em-recurso { background-color: #ffc107; color: #333; }
.status-contemplado { background-color: var(--secondary-color); }
.status-impedido { background-color: #721c24; }
.status-desconhecido { background-color: #6c757d; }

/* COMPROVANTE */
.comprovante-container { max-width: 700px; margin: 20px auto; padding: 20px; }
.comprovante-box { border: 2px solid var(--primary-color); border-radius: 8px; padding: 25px; background-color: #fff; }
.comprovante-header { text-align: center; border-bottom: 1px solid var(--border-color); padding-bottom: 15px; margin-bottom: 20px; }
.info-item { margin-bottom: 1.2rem; }
.info-label { font-weight: bold; display: block; color: var(--text-color); font-size: 0.9rem; text-transform: uppercase; margin-bottom: 2px; }
.info-value-destaque { font-size: 2rem; font-weight: bold; color: var(--primary-color); background-color: #e9ecef; padding: 10px; border-radius: 5px; text-align: center; letter-spacing: 2px; display: block; margin-top: 5px; }
.botoes-acao { text-align: center; margin-top: 30px; display: flex; gap: 15px; justify-content: center; }
.btn-print { width: auto; padding: 0.8rem 1.5rem; }

/* --- 5. ESTILOS DE IMPRESSÃO --- */
@media print {
    body * { visibility: hidden; }
    #area-impressao, #area-impressao * { visibility: visible; }
    #area-impressao { position: absolute; left: 0; top: 0; width: 100%; border: none; box-shadow: none; }
    .comprovante-box { border-color: #000; }
    .numero-inscricao-destaque { color: #000; background-color: #eee !important; }
}