/* Importando a fonte Poppins e Inter do Google Fonts */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&family=Inter:wght@300;400;500&display=swap');

/* Variáveis de Cor e Fonte para todo o sistema */
:root {
    --cor-primaria: #004d40;
    --cor-secundaria: #00695c;
    --cor-fundo: #f0f2f5;
    --cor-fundo-publico: #e8f5e9;
    --cor-fundo-secao: #f8fbf8;
    --cor-balao-whatsapp: #E1F7CB;
    --fonte-principal: 'Poppins', sans-serif;
    --fonte-tech: 'Inter', sans-serif;
}

/* Estilo base para todo o sistema */
body { background-color: var(--cor-fundo); font-family: var(--fonte-principal); color: #333; }
body.public-page { background-color: var(--cor-fundo-publico); }

/* --- CONTAINERS --- */
.container { max-width: 700px; }
@media (min-width: 992px) { .container-painel { max-width: 1140px; } }
.container-painel { width: 100%; padding-right: 0.75rem; padding-left: 0.75rem; margin-right: auto; margin-left: auto; }

/* --- COMPONENTES GERAIS --- */
.logo-container { display: flex; align-items: center; gap: 12px; color: white; font-size: 1.5rem; font-weight: 600; text-decoration: none; }
.logo-icon { height: 40px; width: auto; }
.card { margin-bottom: 1.5rem; border: none; border-radius: 0.5rem; box-shadow: 0 1px 3px rgba(0,0,0,0.04); }
.card-header { background-color: var(--cor-primaria); color: white; padding: 1rem 1.5rem; text-align: center; border-bottom: none; border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; }
.public-page .card-header { padding: 1.5rem; }
.titulo-secao { border-bottom: 2px solid var(--cor-primaria); padding-bottom: 0.5rem; margin-bottom: 1.5rem !important; font-weight: 600; font-size: 1.1rem; }
.btn-primary { background-color: var(--cor-primaria); border-color: var(--cor-primaria); font-weight: 500; }
.btn-primary:hover { background-color: var(--cor-secundaria); border-color: var(--cor-secundaria); }
.form-check-input:checked { background-color: var(--cor-primaria); border-color: var(--cor-primaria); }

/* --- COMPONENTES DO PAINEL ADMIN --- */
body.painel-admin { display: flex; }
.sidebar { width: 260px; background-color: #212529; color: #fff; min-height: 100vh; position: fixed; top: 0; left: 0; padding: 1.5rem; display: flex; flex-direction: column; }
.sidebar .logo-container { font-size: 1.3rem; margin-bottom: 2rem; }
.sidebar .nav-pills .nav-link { color: #adb5bd; padding: 0.75rem 1rem; font-weight: 500; }
.sidebar .nav-pills .nav-link:hover, .sidebar .nav-pills .nav-link.active { background-color: var(--cor-primaria); color: #fff; }
.sidebar .user-info { margin-top: auto; padding-top: 1.5rem; border-top: 1px solid #495057; }
.main-content { margin-left: 260px; width: calc(100% - 260px); padding: 2rem; }
.main-content .header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 2rem; }

/* --- RODAPÉ --- */
.footer-final { text-align: center; padding: 2rem 0; border-top: 1px solid #ddd; margin-top: 3rem; }
.footer-final .logo-container-footer { display: flex; justify-content: center; align-items: center; gap: 8px; color: var(--cor-primaria); font-size: 1rem; font-weight: 600; text-decoration: none; margin-bottom: 0.5rem; }
.footer-final .logo-icon-footer { height: 24px; }
.footer-final .tech-credit-footer { font-family: var(--fonte-tech); font-size: 0.8rem; color: #888; }
.footer-final .tech-credit-footer .brand { font-weight: 500; color: var(--cor-secundaria); }

/* --- ANIMAÇÕES --- */
@keyframes fadeInUp { from { opacity: 0; transform: translateY(15px); } to { opacity: 1; transform: translateY(0); } }