:root {
    /* Tema: Baseado no Protótipo LifePlanner.Pro */
    --life-primary: #2c4a6b;           /* Azul escuro principal */
    --life-primary-hover: #1e3549;     /* Azul mais escuro para hover */
    --life-secondary: #3d5a7d;         /* Azul intermediário */
    --life-accent: #4a90e2;            /* Azul claro de destaque */
    --life-background: #2c4a6b;        /* Azul escuro (fundo principal) */
    --life-surface: #FFFFFF;           /* Branco para superfícies */
    --life-surface-transparent: rgba(255, 255, 255, 0.9);  /* Branco com transparência para cards */
    --life-text: #ffffff;              /* Texto branco para fundos escuros */
    --life-text-dark: #1f2937;         /* Texto escuro para fundos claros */
    
    /* Cores de acento do protótipo */
    --life-blue: #2563eb;
    --life-teal: #14b8a6;
    --life-purple: #9333ea;
    --life-amber: #f59e0b;
    --life-green: #10b981;
    
    /* Sobrescrever variáveis Bootstrap para o tema */
    --bs-primary: #2c4a6b;
    --bs-primary-rgb: 44, 74, 107;
}

body {
    background-color: var(--life-background);
    color: var(--life-text);
    font-family: "Segoe UI", "Roboto", "Helvetica Neue", Arial, sans-serif;
    min-height: 100vh;
}

/* Wrapper para páginas que precisam do fundo azul do protótipo */
body.prototype-theme {
    background-color: var(--life-background);
}

body.prototype-theme main {
    background-color: transparent;
}

/* Ajustar cor do texto para áreas com fundo branco */
main, .container, .card, .card-body {
    color: var(--life-text-dark);
}

main .card, main .card-body, main .container {
    color: var(--life-text-dark);
}

/* Texto branco quando estiver sobre fundo azul */
body.prototype-theme .hero-title,
body.prototype-theme .hero-tagline {
    color: var(--life-text) !important;
}

/* Manter cores de texto normais em cards e containers brancos */
body.prototype-theme .card,
body.prototype-theme .card-body,
body.prototype-theme .container {
    color: var(--life-text-dark);
}

body.prototype-theme .card h1,
body.prototype-theme .card h2,
body.prototype-theme .card h3,
body.prototype-theme .card h4,
body.prototype-theme .card h5,
body.prototype-theme .card h6,
body.prototype-theme .card p,
body.prototype-theme .card span,
body.prototype-theme .card div {
    color: var(--life-text-dark) !important;
}

/* Exceção: badges devem manter suas cores definidas (não sobrescrever) */
body.prototype-theme .card .badge,
body.prototype-theme .card span.badge,
body.prototype-theme .card .badge-conjuge,
body.prototype-theme .card .badge.bg-secondary,
body.prototype-theme .card .badge.text-white,
body.prototype-theme .card .badge-conjuge.text-white {
    color: inherit !important;
}

/* Forçar badge Cônjuge a ter texto branco mesmo dentro de cards */
body.prototype-theme .card .badge-conjuge,
body.prototype-theme .card span.badge-conjuge,
body.prototype-theme .card .badge.badge-conjuge,
.card .badge-conjuge,
.card span.badge-conjuge,
.card .badge.badge-conjuge,
.card-body .badge-conjuge,
.card-body span.badge-conjuge {
    color: #ffffff !important;
    background-color: #6f42c1 !important;
}

/* Exceção: badges devem manter suas cores originais */
body.prototype-theme .card .badge,
body.prototype-theme .card span.badge,
body.prototype-theme .card .badge-conjuge,
body.prototype-theme .card .badge.text-white,
body.prototype-theme .card .badge-conjuge.text-white {
    color: inherit !important;
}

body.prototype-theme .card .h1,
body.prototype-theme .card .h2,
body.prototype-theme .card .h3,
body.prototype-theme .card .h4,
body.prototype-theme .card .h5,
body.prototype-theme .card .h6,
body.prototype-theme .card .text-dark,
body.prototype-theme .card .text-muted,
body.prototype-theme .card .text-secondary,
body.prototype-theme .card .lead {
    color: var(--life-text-dark) !important;
}

body.prototype-theme main dl dt,
body.prototype-theme main dl dd,
body.prototype-theme main dl dt span,
body.prototype-theme main dl dd span {
    color: rgba(255, 255, 255, 0.94) !important;
}

body.prototype-theme .card dl dt,
body.prototype-theme .card dl dd,
body.prototype-theme .card dl dt span,
body.prototype-theme .card dl dd span {
    color: var(--life-text-dark) !important;
}

.badge-sim,
.badge-nao {
    font-weight: 600;
    letter-spacing: 0.2px;
}

.badge-sim {
    color: #0f5132 !important;
    background-color: rgba(25, 135, 84, 0.15) !important;
    border: 1px solid rgba(25, 135, 84, 0.35) !important;
}

.badge-nao {
    color: #842029 !important;
    background-color: rgba(220, 53, 69, 0.15) !important;
    border: 1px solid rgba(220, 53, 69, 0.35) !important;
}

.badge-sim-dark,
.badge-nao-dark {
    padding: 0.35rem 0.6rem;
    border-radius: 999px;
    font-weight: 600;
}

.badge-sim-dark {
    color: #ffffff !important;
    background-color: #2f9d64 !important;
}

.badge-nao-dark {
    color: #ffffff !important;
    background-color: #d9534f !important;
}

body.prototype-theme main h1,
body.prototype-theme main h2,
body.prototype-theme main h3,
body.prototype-theme main h4,
body.prototype-theme main h5,
body.prototype-theme main h6,
body.prototype-theme main .h1,
body.prototype-theme main .h2,
body.prototype-theme main .h3,
body.prototype-theme main .h4,
body.prototype-theme main .h5,
body.prototype-theme main .h6 {
    color: rgba(255, 255, 255, 0.97) !important;
}

a {
    color: var(--life-accent);
    text-decoration: none;
}

a:hover,
a:focus {
    color: var(--life-blue);
    text-decoration: underline;
}

.navbar-brand {
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--life-primary) !important;
}

/* Estilização do brand como botão */
.btn-navbar-brand {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0.5rem 1.25rem;
    margin: 0;
    min-width: auto;
    height: 38px;
    border-radius: 0.5rem;
    border: 1px solid transparent;
    background-color: transparent;
    color: #1f2937 !important;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-decoration: none !important;
    transition: all 0.2s ease-in-out;
    white-space: nowrap;
    gap: 0.75rem;
}

.btn-navbar-brand:hover,
.btn-navbar-brand:focus {
    background-color: transparent;
    color: #111827 !important;
    border-color: transparent;
    text-decoration: none !important;
}

.navbar-light .navbar-nav .nav-link {
    color: #374151;
    font-weight: 500;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus,
.navbar-light .navbar-nav .nav-link.active {
    color: #111827;
}

/* Estilização dos menus do navbar como botões - estilo do protótipo */
.btn-navbar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    margin: 0 0.25rem;
    min-width: 120px;
    height: 38px;
    border-radius: 0.5rem;
    border: none;
    background-color: transparent;
    color: #374151 !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: all 0.2s ease-in-out;
    white-space: nowrap;
}

.btn-navbar:hover,
.btn-navbar:focus {
    background-color: transparent;
    color: #111827 !important;
    border-color: transparent;
    text-decoration: none !important;
}

.btn-navbar.active {
    background-color: transparent;
    color: #111827 !important;
    font-weight: 600;
    border-color: transparent;
    text-decoration: none !important;
}

.btn-navbar-dropdown {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    margin: 0 0.25rem;
    min-width: 120px;
    height: 38px;
    border-radius: 0.5rem;
    border: none;
    background-color: transparent;
    color: #374151 !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: all 0.2s ease-in-out;
    white-space: nowrap;
}

.btn-navbar-dropdown:hover,
.btn-navbar-dropdown:focus,
.btn-navbar-dropdown.show {
    background-color: transparent;
    color: #111827 !important;
    border-color: transparent;
    text-decoration: none !important;
}

.btn-navbar-user {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1.25rem;
    margin: 0 0.25rem;
    min-width: 120px;
    height: 38px;
    border-radius: 0.5rem;
    border: none;
    background-color: transparent;
    color: #374151 !important;
    font-weight: 500;
    text-decoration: none !important;
    transition: all 0.2s ease-in-out;
    white-space: nowrap;
}

.btn-navbar-user:hover,
.btn-navbar-user:focus,
.btn-navbar-user.show {
    background-color: transparent;
    color: #111827 !important;
    border-color: transparent;
    text-decoration: none !important;
}

.btn-navbar-user:hover i,
.btn-navbar-user:focus i,
.btn-navbar-user.show i {
    color: #ffffff !important;
}

/* Melhorar o dropdown menu */
.navbar-nav .dropdown-menu {
    border-radius: 0.5rem;
    border: 1px solid rgba(0, 0, 0, 0.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-top: 0.5rem;
    padding: 0.5rem 0;
}

.navbar-nav .dropdown-item {
    padding: 0.5rem 1rem;
    transition: all 0.15s ease-in-out;
    border-radius: 0.25rem;
    margin: 0.125rem 0.5rem;
}

.navbar-nav .dropdown-item:hover,
.navbar-nav .dropdown-item:focus {
    background-color: rgba(74, 144, 226, 0.1);
    color: var(--life-accent);
}

/* Garantir que dropdown-menu tenha texto escuro visível */
.dropdown-menu,
.dropdown-menu .dropdown-item-text,
.dropdown-menu .dropdown-item-text.text-muted,
.dropdown-menu .text-muted,
.dropdown-menu small,
.dropdown-menu .small {
    color: #212529 !important;
}

.dropdown-menu .dropdown-item-text strong {
    color: #212529 !important;
    font-weight: 600;
}

/* Ajustar espaçamento dos itens do navbar */
.navbar-nav {
    gap: 0.25rem;
}

/* Estilo do navbar no protótipo - branco com transparência */
.navbar-prototype {
    background-color: rgba(255, 255, 255, 0.8) !important;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    position: relative;
    z-index: 1100;
}

.navbar-prototype .dropdown-menu {
    z-index: 1110;
}

/* Modal deve aparecer acima do menu */
.modal {
    z-index: 1120 !important;
}

.modal-backdrop {
    z-index: 1115 !important;
}

@media (max-width: 991.98px) {
    .btn-navbar,
    .btn-navbar-dropdown,
    .btn-navbar-user,
    .btn-navbar-brand {
        margin: 0.25rem 0;
        width: 100%;
        text-align: left;
    }
    
    .navbar-nav {
        gap: 0;
    }
}

.hero-banner {
    background: transparent;
}

.hero-title {
    color: var(--life-text);
    font-weight: 700;
    letter-spacing: 0.01em;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.hero-tagline {
    color: rgba(255, 255, 255, 1) !important;
    font-size: 1.05rem;
}

/* Textos descritivos mais claros sobre fundo azul */
body.prototype-theme .lead,
body.prototype-theme p.lead {
    color: rgba(255, 255, 255, 1) !important;
}

/* Texto secondary mais claro sobre fundo azul - excluindo cards brancos e seções com bg-white */
body.prototype-theme .text-secondary:not(.card .text-secondary):not(.card-body .text-secondary):not(.bg-white .text-secondary),
body.prototype-theme section:not(.bg-white) .text-secondary:not(.card .text-secondary):not(.card-body .text-secondary),
body.prototype-theme > main > .container > section:not(.bg-white) .text-secondary:not(.card .text-secondary):not(.card-body .text-secondary) {
    color: rgba(255, 255, 255, 1) !important;
}

/* Texto secondary em lead - deve ser bem claro */
body.prototype-theme .lead.text-secondary,
body.prototype-theme p.lead.text-secondary {
    color: rgba(255, 255, 255, 1) !important;
    font-weight: 400;
}

/* Texto muted mais claro sobre fundo azul - excluindo cards brancos e seções com bg-white */
body.prototype-theme .text-muted:not(.card .text-muted):not(.card-body .text-muted):not(.bg-white .text-muted),
body.prototype-theme > main > .container > section:not(.bg-white) .text-muted:not(.card .text-muted):not(.card-body .text-muted),
body.prototype-theme section:not(.bg-white) .text-muted:not(.card .text-muted):not(.card-body .text-muted) {
    color: rgba(255, 255, 255, 0.9) !important;
}

/* Parágrafos gerais mais claros sobre fundo azul - excluindo cards e seções com bg-white */
body.prototype-theme > main > .container > section:not(.bg-white) p:not(.card p):not(.card-body p),
body.prototype-theme section:not(.bg-white) p:not(.card p):not(.card-body p),
body.prototype-theme > main > .container > section:not(.bg-white) > .row p:not(.card p):not(.card-body p) {
    color: rgba(255, 255, 255, 0.95) !important;
}

/* Textos dentro de listas sobre fundo azul - excluindo seções com bg-white */
body.prototype-theme section:not(.bg-white) ul:not(.card ul):not(.card-body ul) li,
body.prototype-theme section:not(.bg-white) ul:not(.card ul):not(.card-body ul) li strong,
body.prototype-theme section:not(.bg-white) ul:not(.card ul):not(.card-body ul) li div {
    color: rgba(255, 255, 255, 0.95) !important;
}

/* Descrições de planos - textos normais sobre fundo azul */
body.prototype-theme section:not(.bg-white) ul li div:not(.card div):not(.card-body div) {
    color: rgba(255, 255, 255, 0.95) !important;
}

/* Ajuste específico para textos lead sobre fundo azul */
body.prototype-theme .lead.text-secondary {
    color: rgba(255, 255, 255, 1) !important;
}

/* Textos secondary em seções sobre fundo azul */
body.prototype-theme section .text-secondary:not(.card .text-secondary) {
    color: rgba(255, 255, 255, 0.95) !important;
}

.navbar-logo {
    height: 28px;
    width: auto;
    display: block;
}

.hero-logo {
    max-height: 52px;
    width: auto;
    display: block;
}

.page-title {
    color: var(--life-text);
    font-weight: 600;
    margin-bottom: 1.5rem;
}

body.prototype-theme .page-title {
    color: var(--life-text) !important;
}

.card,
.panel,
.modal-content {
    background-color: var(--life-surface-transparent);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 0.75rem;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
}

/* Cards com fundo totalmente branco quando necessário */
.card.bg-white, .panel.bg-white {
    background-color: var(--life-surface) !important;
}

.form-control {
    border-radius: 0.5rem;
    border: 1px solid rgba(0, 0, 0, 0.12);
    padding: 0.625rem 0.75rem;
    background-color: #fff;
}

.form-control:focus {
    border-color: var(--life-accent);
    box-shadow: 0 0 0 0.25rem rgba(74, 144, 226, 0.25);
}

.btn-primary {
    background-color: var(--life-accent);
    border-color: var(--life-accent);
    color: #ffffff !important;
    border-radius: 0.5rem;
    font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--life-blue);
    border-color: var(--life-blue);
    color: #ffffff !important;
}

/* Garantir que botões primary em fundos escuros tenham texto visível */
.bg-primary .btn-primary,
section.bg-primary .btn-primary {
    background-color: var(--life-accent) !important;
    border-color: var(--life-accent) !important;
    color: #ffffff !important;
}

.bg-primary .btn-primary:hover,
section.bg-primary .btn-primary:hover {
    background-color: var(--life-blue) !important;
    border-color: var(--life-blue) !important;
    color: #ffffff !important;
}

.btn-outline-primary {
    color: var(--life-accent);
    border-color: var(--life-accent);
    border-radius: 0.5rem;
    font-weight: 600;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus {
    background-color: var(--life-accent);
    border-color: var(--life-accent);
    color: #ffffff;
}

/* Botão de sucesso customizado para o tema */
.btn-success {
    background-color: #198754;
    border-color: #198754;
    color: #ffffff;
    border-radius: 0.5rem;
    font-weight: 600;
}

.btn-success:hover,
.btn-success:focus {
    background-color: #157347;
    border-color: #146c43;
    color: #ffffff;
}

.bg-dark {
    background-color: var(--life-primary) !important;
}

.btn-dark {
    background-color: var(--life-primary);
    border-color: var(--life-primary);
    color: #ffffff;
}

.btn-dark:hover,
.btn-dark:focus {
    background-color: var(--life-primary-hover);
    border-color: var(--life-primary-hover);
    color: #ffffff;
}

.table thead th {
    background-color: rgba(74, 144, 226, 0.1);
    color: var(--life-text-dark) !important;
    font-weight: 600;
    border-bottom: 2px solid rgba(74, 144, 226, 0.3);
}

.table thead th.text-end {
    color: var(--life-primary) !important;
}

.table-light th {
    color: #212529 !important;
    background-color: #f8f9fa !important;
}

.alert-success {
    background-color: #e8f8ef;
    border-color: #b7e7c6;
    color: #19713a;
}

/* Alerta de erro vermelho claro - aplicado globalmente */
.alert-danger {
    background-color: #ffebee !important; /* Vermelho bem claro */
    border: 2px solid #f8bbd0 !important; /* Borda vermelha clara */
    border-left: 4px solid #e91e63 !important; /* Borda esquerda mais escura para destaque */
    color: #c62828 !important; /* Texto vermelho escuro para boa legibilidade */
    padding: 1rem 1.25rem !important;
    border-radius: 0.375rem !important;
    box-shadow: 0 2px 4px rgba(233, 30, 99, 0.1) !important;
}

/* Para asp-validation-summary que usa text-danger */
div[asp-validation-summary].text-danger,
div.text-danger[asp-validation-summary],
.validation-summary-errors,
.validation-summary-errors.text-danger {
    background-color: #ffebee !important;
    border: 2px solid #f8bbd0 !important;
    border-left: 4px solid #e91e63 !important;
    color: #c62828 !important;
    padding: 1rem 1.25rem !important;
    border-radius: 0.375rem !important;
    box-shadow: 0 2px 4px rgba(233, 30, 99, 0.1) !important;
    display: block !important;
}

/* Para mensagens de erro em ModelState */
div.alert.text-danger,
div[class*="alert"].text-danger {
    background-color: #ffebee !important;
    border: 2px solid #f8bbd0 !important;
    border-left: 4px solid #e91e63 !important;
    color: #c62828 !important;
    padding: 1rem 1.25rem !important;
    border-radius: 0.375rem !important;
    box-shadow: 0 2px 4px rgba(233, 30, 99, 0.1) !important;
}

.modal-header,
.modal-footer {
    border-color: rgba(0, 0, 0, 0.08);
}

.app-footer {
    color: rgba(255, 255, 255, 0.8);
    background-color: transparent;
}

body.prototype-theme footer {
    background-color: transparent !important;
    border-top-color: rgba(255, 255, 255, 0.2);
}

@media (max-width: 767.98px) {
    .hero-banner {
        text-align: center;
    }

    .navbar-brand {
        font-size: 1.1rem;
    }

    .hero-title {
        justify-content: center;
    }

    .navbar-logo {
        height: 24px;
    }

    .hero-logo {
        max-height: 44px;
        margin: 0 auto;
    }
}

.icon-circle,
.icon-circle-sm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: rgba(74, 144, 226, 0.15);
    color: var(--life-accent);
}

/* Ícones em seções brancas devem ter cor azul escura */
.bg-white .icon-circle,
.bg-white .icon-circle-sm,
section.bg-white .icon-circle,
section.bg-white .icon-circle-sm {
    background-color: rgba(74, 144, 226, 0.15) !important;
}

.bg-white .icon-circle.text-primary,
.bg-white .icon-circle-sm.text-primary,
section.bg-white .icon-circle.text-primary,
section.bg-white .icon-circle-sm.text-primary {
    color: var(--life-primary) !important;
}

.bg-white .icon-circle.bg-primary-subtle.text-primary,
.bg-white .icon-circle-sm.bg-primary-subtle.text-primary,
section.bg-white .icon-circle.bg-primary-subtle.text-primary,
section.bg-white .icon-circle-sm.bg-primary-subtle.text-primary {
    background-color: rgba(74, 144, 226, 0.15) !important;
    color: var(--life-primary) !important;
}

.icon-circle {
    width: 56px;
    height: 56px;
    font-size: 1.5rem;
}

.icon-circle-sm {
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
}

/* Garantir visibilidade de textos em tabelas e cards */
.table {
    color: #212529 !important;
}

.table td,
.table th {
    color: #212529 !important;
}

.table tbody tr {
    color: #212529 !important;
}

.table tbody tr td {
    color: #212529 !important;
}

.table tbody tr td strong {
    color: #212529 !important;
}

.table tbody tr td .text-muted {
    color: #6c757d !important;
}

.table tbody tr td .small {
    color: #6c757d !important;
}

.table tbody tr td .small.text-muted {
    color: #6c757d !important;
}

.card-body {
    color: #212529;
}

.card-body * {
    color: inherit;
}

.card-body .text-muted {
    color: #6c757d !important;
}

/* Garantir que textos em badges sejam visíveis */
.badge {
    color: #fff !important;
}

.badge.text-bg-info {
    background-color: #0dcaf0 !important;
    color: #000 !important;
}

.badge.text-bg-success {
    background-color: #198754 !important;
    color: #fff !important;
}

.badge.text-bg-primary {
    background-color: var(--life-primary) !important;
    color: var(--life-accent) !important;
}

/* Badge bg-primary com texto branco */
.badge.bg-primary.text-white {
    background-color: var(--life-primary) !important;
    color: #ffffff !important;
}

.badge.text-bg-warning {
    background-color: #ffc107 !important;
    color: #000 !important;
}

.badge.text-bg-secondary {
    background-color: #6c757d !important;
    color: #fff !important;
}

.badge.text-bg-dark {
    background-color: #000000 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Garantir visibilidade em formulários */
.form-label {
    color: #212529;
}

.form-label.text-muted {
    color: #6c757d !important;
}

body.prototype-theme .form-label,
body.prototype-theme label.form-label,
body.prototype-theme .form-check-label,
body.prototype-theme label {
    color: rgba(255, 255, 255, 0.94) !important;
}

body.prototype-theme .form-text,
body.prototype-theme small.form-text,
body.prototype-theme .form-label .text-muted,
body.prototype-theme .form-check-label .text-muted {
    color: rgba(255, 255, 255, 0.85) !important;
}

body.prototype-theme .card .form-label,
body.prototype-theme .card-body .form-label,
body.prototype-theme .card .form-check-label,
body.prototype-theme .card-body .form-check-label,
body.prototype-theme .card label,
body.prototype-theme .card-body label {
    color: var(--life-text-dark) !important;
}

body.prototype-theme .card .form-text,
body.prototype-theme .card-body .form-text {
    color: #6c757d !important;
}

/* Garantir visibilidade em links */
a {
    color: var(--life-accent);
}

a.text-muted {
    color: #6c757d !important;
}

a.text-muted:hover {
    color: var(--life-accent) !important;
}

/* Garantir visibilidade geral de textos */
h1, h2, h3, h4, h5, h6 {
    color: #212529;
}

/* Textos em seções com bg-white devem ser escuros */
.bg-white,
section.bg-white {
    color: #212529 !important;
}

.bg-white h1,
.bg-white h2,
.bg-white h3,
.bg-white h4,
.bg-white h5,
.bg-white h6,
.bg-white p,
.bg-white span,
.bg-white div,
section.bg-white h1,
section.bg-white h2,
section.bg-white h3,
section.bg-white h4,
section.bg-white h5,
section.bg-white h6,
section.bg-white p,
section.bg-white span,
section.bg-white div {
    color: #212529 !important;
}

/* Text-secondary em seções brancas deve ser escuro e bem visível */
.bg-white .text-secondary,
section.bg-white .text-secondary {
    color: #212529 !important;
}

/* Regra EXTRA ESPECÍFICA para "Benefícios práticos no dia a dia" - deve aparecer escuro */
section.bg-white .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
section.bg-white .container .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
section.bg-white h2.fw-bold.text-secondary.mb-2,
body.prototype-theme section.bg-white .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
body.prototype-theme section.bg-white h2.fw-bold.text-secondary.mb-2 {
    color: #212529 !important;
    font-weight: 700 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* Títulos h2 e h3 com text-secondary em seções brancas - devem ser bem escuros */
section.bg-white h2.text-secondary,
section.bg-white h3.text-secondary,
section.bg-white h2.fw-bold.text-secondary,
section.bg-white h3.fw-bold.text-secondary,
.bg-white h2.text-secondary,
.bg-white h3.text-secondary,
.bg-white h2.fw-bold.text-secondary,
.bg-white h3.fw-bold.text-secondary,
section#fluxo h3.text-secondary,
section#fluxo h3.fw-bold.text-secondary,
section#recursos h2.text-secondary,
section#recursos h3.text-secondary,
section.bg-white#recursos h2.text-secondary,
section.bg-white#recursos h2.fw-bold.text-secondary,
section.bg-white h2.fw-bold.text-secondary.mb-2 {
    color: #212529 !important;
    font-weight: 700 !important;
}

/* Display-6 em cards brancos deve ser escuro e bem visível */
.bg-white .card .display-6,
.bg-white .card .display-6.text-secondary,
section.bg-white .card .display-6,
section.bg-white .card .display-6.text-secondary,
.card .display-6.text-secondary {
    color: #212529 !important;
    font-weight: 700;
}

/* Valores dos planos em cards - devem ser bem visíveis (escuros em cards brancos) */
.card .display-6.fw-bold.text-secondary,
.card-body .display-6.text-secondary,
.card .display-6.text-secondary {
    color: #212529 !important;
    font-weight: 700;
}

/* Textos em cards brancos devem ser escuros */
.card,
.card-body {
    color: #212529 !important;
}

.card h1, .card h2, .card h3, .card h4, .card h5, .card h6,
.card-body h1, .card-body h2, .card-body h3, .card-body h4, .card-body h5, .card-body h6 {
    color: #212529 !important;
}

.card .text-secondary,
.card-body .text-secondary {
    color: #6c757d !important;
}

.card .text-primary,
.card-body .text-primary {
    color: var(--life-primary) !important;
}

/* Badge em seções brancas */
.bg-white .badge.text-primary,
section.bg-white .badge.text-primary,
.bg-white .badge.bg-primary-subtle.text-primary,
section.bg-white .badge.bg-primary-subtle.text-primary {
    color: var(--life-primary) !important;
}

/* Ícones em seções brancas - devem aparecer */
.bg-white .icon-circle-sm.bg-primary-subtle.text-primary i,
section.bg-white .icon-circle-sm.bg-primary-subtle.text-primary i,
.bg-white .icon-circle.bg-primary-subtle.text-primary i,
section.bg-white .icon-circle.bg-primary-subtle.text-primary i {
    color: var(--life-primary) !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Text-muted em seções brancas */
.bg-white .text-muted,
section.bg-white .text-muted {
    color: #6c757d !important;
}

/* Títulos em áreas com fundo azul */
body.prototype-theme > main > .container > h1:first-child,
body.prototype-theme > main > .container > h2:first-child,
body.prototype-theme .page-title {
    color: var(--life-text) !important;
}

/* Títulos h2, h3, h4 sobre fundo azul - mais claros */
body.prototype-theme section h2:not(.card h2):not(.card-body h2),
body.prototype-theme section h3:not(.card h3):not(.card-body h3),
body.prototype-theme section h4:not(.card h4):not(.card-body h4),
body.prototype-theme section h5:not(.card h5):not(.card-body h5) {
    color: rgba(255, 255, 255, 0.95) !important;
}

/* Display headings sobre fundo azul */
body.prototype-theme .display-5,
body.prototype-theme .display-6,
body.prototype-theme h2.display-5,
body.prototype-theme h2.display-5.text-primary {
    color: rgba(255, 255, 255, 1) !important;
}

h1.text-muted,
h2.text-muted,
h3.text-muted,
h4.text-muted,
h5.text-muted,
h6.text-muted {
    color: #6c757d !important;
}

p {
    color: #212529;
}

p.text-muted {
    color: #6c757d !important;
}

/* Garantir visibilidade em listas */
ul, ol, li {
    color: #212529;
}

/* Garantir visibilidade em dl (definition lists) */
dl, dt, dd {
    color: #212529;
}

dt.text-end {
    color: #212529 !important;
}

/* Garantir visibilidade em spans e divs */
span.text-muted {
    color: #6c757d !important;
}

div.text-muted {
    color: #6c757d !important;
}

/* Garantir que ícones em botões sejam visíveis */
.btn i {
    color: inherit;
}

.btn-outline-secondary i {
    color: #6c757d;
}

.btn-outline-primary i {
    color: var(--life-accent);
}

.btn-outline-danger i {
    color: #dc3545;
}

.btn-outline-secondary:hover i,
.btn-outline-primary:hover i,
.btn-outline-danger:hover i {
    color: var(--life-primary);
}

/* Sobrescrever classes Bootstrap text-primary e bg-primary */
.text-primary {
    color: var(--life-accent) !important;
}

/* Texto primary sobre fundo azul deve ser branco */
body.prototype-theme .text-primary:not(.card .text-primary):not(.card-body .text-primary),
body.prototype-theme section .text-primary:not(.card .text-primary):not(.card-body .text-primary) {
    color: rgba(255, 255, 255, 1) !important;
}

.bg-primary {
    background-color: var(--life-primary) !important;
}

/* Cor de texto para fundos azuis */
.bg-primary,
body.prototype-theme {
    color: var(--life-text) !important;
}

/* Garantir texto branco em seções com bg-primary e text-white */
.bg-primary.text-white,
section.bg-primary.text-white,
.card-header.bg-primary.text-white {
    color: #ffffff !important;
}

.bg-primary.text-white h1,
.bg-primary.text-white h2,
.bg-primary.text-white h3,
.bg-primary.text-white h4,
.bg-primary.text-white h5,
.bg-primary.text-white h6,
.bg-primary.text-white p,
.bg-primary.text-white span,
.bg-primary.text-white div,
.bg-primary.text-white *:not(.btn):not(.btn *) {
    color: #ffffff !important;
}

.card-header.bg-primary.text-white h1,
.card-header.bg-primary.text-white h2,
.card-header.bg-primary.text-white h3,
.card-header.bg-primary.text-white h4,
.card-header.bg-primary.text-white h5,
.card-header.bg-primary.text-white h6,
.card-header.bg-primary.text-white p,
.card-header.bg-primary.text-white span,
.card-header.bg-primary.text-white div,
.card-header.bg-primary.text-white *:not(.btn):not(.btn *) {
    color: #ffffff !important;
}

/* Garantir que links em seções bg-primary text-white sejam visíveis */
.bg-primary.text-white a:not(.btn) {
    color: var(--life-accent) !important;
    text-decoration: underline;
}

.bg-primary.text-white a:not(.btn):hover {
    color: #ffffff !important;
}

/* Corrigir botões btn-light e btn-outline-light em fundos escuros */
.bg-primary .btn-light,
section.bg-primary .btn-light {
    background-color: #ffffff !important;
    color: var(--life-primary) !important;
    border-color: #ffffff !important;
}

.bg-primary .btn-light:hover,
section.bg-primary .btn-light:hover {
    background-color: var(--life-accent) !important;
    color: var(--life-primary) !important;
    border-color: var(--life-accent) !important;
}

.bg-primary .btn-outline-light,
section.bg-primary .btn-outline-light {
    color: #ffffff !important;
    border-color: #ffffff !important;
    background-color: transparent !important;
}

.bg-primary .btn-outline-light:hover,
section.bg-primary .btn-outline-light:hover {
    background-color: #ffffff !important;
    color: var(--life-primary) !important;
    border-color: #ffffff !important;
}

/* Garantir texto visível em todas as seções com fundo escuro */
.bg-primary p,
.bg-primary h1,
.bg-primary h2,
.bg-primary h3,
.bg-primary h4,
.bg-primary h5,
.bg-primary h6,
.bg-primary span,
.bg-primary div:not(.btn):not(.btn *):not(.card) {
    color: #ffffff !important;
}

/* Garantir que texto em seções similares também seja visível */
section.bg-primary *:not(.btn):not(.btn *):not(a.btn):not(.card):not(.card *) {
    color: #ffffff !important;
}

/* Garantir que cards dentro de seções bg-primary mantenham contraste adequado */
.bg-primary .card,
section.bg-primary .card {
    background-color: var(--life-surface) !important;
}

.bg-primary .card .text-secondary,
section.bg-primary .card .text-secondary {
    color: var(--life-secondary) !important;
}

.bg-primary .card .text-muted,
section.bg-primary .card .text-muted {
    color: #6c757d !important;
}

.bg-primary-subtle {
    background-color: rgba(74, 144, 226, 0.1) !important;
}

/* Badge com bg-primary-subtle em seções brancas - texto deve ser azul escuro */
.bg-white .bg-primary-subtle,
section.bg-white .bg-primary-subtle {
    background-color: rgba(74, 144, 226, 0.1) !important;
}

.bg-white .bg-primary-subtle.text-primary,
section.bg-white .bg-primary-subtle.text-primary,
.bg-white .badge.bg-primary-subtle.text-primary,
section.bg-white .badge.bg-primary-subtle.text-primary {
    color: var(--life-primary) !important;
    font-weight: 500;
}

/* Banner de Cookies */
#cookieBanner {
    background-color: #ffffff !important;
    border-top: 3px solid var(--life-accent) !important;
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1) !important;
    animation: slideUp 0.3s ease-out;
}

@keyframes slideUp {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

#cookieBanner .alert-heading {
    color: var(--life-primary) !important;
    font-weight: 600;
}

/* Alert heading dentro de alert-info - deve ser visível */
.alert-info .alert-heading {
    color: var(--life-primary) !important;
    font-weight: 600;
}

#cookieBanner p {
    color: var(--life-secondary) !important;
    font-size: 0.95rem;
}

#cookieBanner .alert-link {
    color: var(--life-accent) !important;
    text-decoration: underline;
}

#cookieBanner .alert-link:hover {
    color: var(--life-primary) !important;
}

#cookieBanner .fa-cookie-bite {
    color: var(--life-accent) !important;
}

@media (max-width: 991.98px) {
    #cookieBanner {
        padding: 1rem !important;
    }
    
    #cookieBanner .col-lg-10,
    #cookieBanner .col-lg-2 {
        text-align: center;
    }
    
    #cookieBanner .btn {
        width: 100%;
        margin-bottom: 0.5rem;
    }
}

/* Ajuste para numeração inline na lista de fluxo */
.fluxo-list.list-group-numbered > .list-group-item {
    padding-left: 0;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    position: relative;
}

.fluxo-list.list-group-numbered > .list-group-item::before {
    position: absolute;
    left: 0;
    top: 0.5rem;
    width: 2rem;
    text-align: right;
    padding-right: 0.75rem;
    display: inline-block;
    vertical-align: top;
    line-height: 1.5;
    font-weight: 600;
    color: var(--life-primary);
}

.fluxo-list.list-group-numbered > .list-group-item > * {
    margin-left: 2.75rem;
}

/* ============================================
   CORREÇÕES ESPECÍFICAS PARA PROBLEMAS IDENTIFICADOS
   ============================================ */

/* 1. Badge "Tudo em um só lugar" - deve ser visível */
.bg-white .badge.bg-primary-subtle.text-primary,
section.bg-white .badge.bg-primary-subtle.text-primary {
    color: var(--life-primary) !important;
    background-color: rgba(74, 144, 226, 0.1) !important;
}

/* 2. Valores dos planos em cards - devem aparecer bem (escuros) - PÁGINA DE PLANOS */
.card .display-6,
.card .display-6.text-secondary,
.card .display-6.fw-bold.text-secondary,
.card-body .display-6,
.card-body .display-6.text-secondary,
.card-body .display-6.fw-bold.text-secondary,
section .card .display-6.text-secondary,
section .card-body .display-6.text-secondary {
    color: #212529 !important;
    font-weight: 700 !important;
}

/* Garantir que textos em cards sempre sejam escuros */
.card .text-secondary,
.card-body .text-secondary {
    color: #6c757d !important;
}

.card .text-primary,
.card-body .text-primary {
    color: var(--life-primary) !important;
}

/* 3. Ícones na seção "Fluxo de trabalho" - devem aparecer */
.bg-white .icon-circle-sm.bg-primary-subtle.text-primary,
section.bg-white .icon-circle-sm.bg-primary-subtle.text-primary,
.bg-white .icon-circle.bg-primary-subtle.text-primary,
section.bg-white .icon-circle.bg-primary-subtle.text-primary {
    background-color: rgba(74, 144, 226, 0.15) !important;
}

.bg-white .icon-circle-sm.bg-primary-subtle.text-primary i,
section.bg-white .icon-circle-sm.bg-primary-subtle.text-primary i,
.bg-white .icon-circle.bg-primary-subtle.text-primary i,
section.bg-white .icon-circle.bg-primary-subtle.text-primary i {
    color: var(--life-primary) !important;
}

/* Textos e títulos em seções brancas - devem ser bem visíveis */
section.bg-white h2.fw-bold.text-secondary,
section.bg-white h3.fw-bold.text-secondary,
section.bg-white h3.text-secondary,
.bg-white h2.fw-bold.text-secondary,
.bg-white h3.fw-bold.text-secondary,
.bg-white h3.text-secondary,
section#fluxo h3.text-secondary,
section#fluxo h3.fw-bold.text-secondary {
    color: #212529 !important;
    font-weight: 700 !important;
}

section.bg-white p.text-muted {
    color: #6c757d !important;
}

/* Correção específica para título "Fluxo de trabalho" na home */
section#fluxo h3.fw-bold.text-secondary,
section#fluxo.bg-white h3.text-secondary,
section#fluxo.bg-white h3.fw-bold.text-secondary {
    color: #212529 !important;
    font-weight: 700 !important;
}

/* Correção específica para título "Benefícios práticos" na página Recursos */
section.bg-white h2.fw-bold.text-secondary.mb-2,
section.bg-white .text-center h2.fw-bold.text-secondary,
section.bg-white .container h2.fw-bold.text-secondary,
section.bg-white .text-center.mb-5 h2.fw-bold.text-secondary,
section.bg-white .text-center h2,
.bg-white .text-center h2.fw-bold.text-secondary,
section.bg-white h2,
section.bg-white h2.fw-bold.text-secondary,
.bg-white h2.fw-bold.text-secondary,
section.bg-white h2.text-secondary,
.bg-white h2.text-secondary,
/* Regra SUPER ESPECÍFICA para garantir que o h2 "Benefícios práticos" apareça */
section.bg-white .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
section.bg-white .container .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
body.prototype-theme section.bg-white .text-center.mb-5 h2.fw-bold.text-secondary.mb-2,
body.prototype-theme section.bg-white .container .text-center.mb-5 h2.fw-bold.text-secondary.mb-2 {
    color: #212529 !important;
    font-weight: 700 !important;
    visibility: visible !important;
    opacity: 1 !important;
    display: block !important;
}

section.bg-white h6.fw-semibold {
    color: #212529 !important;
}

body.prototype-theme .btn-outline-secondary {
    color: rgba(255, 255, 255, 0.95) !important;
    border-color: rgba(255, 255, 255, 0.85) !important;
    background-color: transparent !important;
}

body.prototype-theme .btn-outline-secondary:hover,
body.prototype-theme .btn-outline-secondary:focus {
    background-color: rgba(255, 255, 255, 0.95) !important;
    color: var(--life-primary) !important;
    border-color: rgba(255, 255, 255, 0.95) !important;
}

body.prototype-theme .card .btn-outline-secondary,
body.prototype-theme .card-body .btn-outline-secondary,
body.prototype-theme .modal-content .btn-outline-secondary,
body.prototype-theme .dropdown-menu .btn-outline-secondary {
    color: var(--life-secondary) !important;
    border-color: var(--life-secondary) !important;
    background-color: transparent !important;
}

body.prototype-theme .card .btn-outline-secondary:hover,
body.prototype-theme .card-body .btn-outline-secondary:hover,
body.prototype-theme .modal-content .btn-outline-secondary:hover,
body.prototype-theme .dropdown-menu .btn-outline-secondary:hover,
body.prototype-theme .card .btn-outline-secondary:focus,
body.prototype-theme .card-body .btn-outline-secondary:focus,
body.prototype-theme .modal-content .btn-outline-secondary:focus,
body.prototype-theme .dropdown-menu .btn-outline-secondary:focus {
    background-color: var(--life-secondary) !important;
    color: #ffffff !important;
    border-color: var(--life-secondary) !important;
}

/* Garantir que título do modal com text-dark fique preto */
body.prototype-theme .modal-content .modal-title.text-dark,
body.prototype-theme .modal-content h5.text-dark,
body.prototype-theme .modal-content h4.text-dark,
body.prototype-theme .modal-content h3.text-dark,
body.prototype-theme .modal-content h2.text-dark,
body.prototype-theme .modal-content h1.text-dark {
    color: #212529 !important;
}

/* Garantir que badges dentro de card-header bg-primary tenham contraste */
.card-header.bg-primary .badge.bg-light,
.card-header.bg-primary .badge.text-dark {
    color: #212529 !important;
    background-color: #f8f9fa !important;
}

/* ============================================
   ESTILOS PARA CAIXINHAS DE SOMATÓRIOS
   ============================================ */

/* Estilos para caixinhas de somatórios */
#containerSomatorios .card {
    transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    border: 1px solid rgba(0, 0, 0, 0.125);
    background-color: #ffffff;
}

#containerSomatorios .card:hover {
    transform: translateY(-4px);
    box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15) !important;
    border-color: var(--life-accent);
}

#containerSomatorios .card-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 0.5rem;
}

#containerSomatorios .card-body {
    padding: 1rem;
}

#containerSomatorios .text-success {
    color: #198754 !important;
    font-weight: 700;
}

#containerSomatorios .fa-2x {
    font-size: 2rem;
    margin-bottom: 0.5rem;
    transition: transform 0.2s ease-in-out;
}

#containerSomatorios .card:hover .fa-2x {
    transform: scale(1.1);
}

#containerSomatorios .text-muted {
    color: #6c757d !important;
    font-size: 0.85rem;
}

#containerSomatorios .card-body small {
    display: block;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
}

/* Responsividade para caixinhas de somatórios */
@media (max-width: 991.98px) {
    #containerSomatorios .col-md-4 {
        margin-bottom: 1rem;
    }
}

@media (max-width: 575.98px) {
    #containerSomatorios .col-md-4,
    #containerSomatorios .col-lg-3 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    #containerSomatorios .card-body {
        padding: 0.75rem;
    }
    
    #containerSomatorios .fa-2x {
        font-size: 1.5rem;
    }
    
    #containerSomatorios .card-title {
        font-size: 0.85rem;
    }
    
    #containerSomatorios .text-success {
        font-size: 1.25rem !important;
    }
}

/* Animação suave ao carregar as caixinhas */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

#containerSomatorios .card {
    animation: fadeInUp 0.3s ease-out;
}

/* Estilo para o card de somatórios quando vazio */
#cardSomatorios:empty {
    display: none !important;
}

/* Garantir visibilidade de labels em modais com fundo claro */
.modal-body.bg-light .form-label,
.modal-body.bg-light label,
.modal-body.bg-light .form-label * {
    color: #212529 !important;
}

.modal-body.bg-light {
    color: #212529 !important;
}

/* ============================================
   BADGE CÔNJUGE - COR MAIS LEGÍVEL COM TEXTO BRANCO FORÇADO
   ============================================ */
.badge-conjuge,
.badge.badge-conjuge,
span.badge-conjuge,
span.badge.badge-conjuge,
td .badge-conjuge,
td .badge.badge-conjuge,
table td span.badge-conjuge,
table td .badge.badge-conjuge {
    background-color: #6f42c1 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

.badge-conjuge:hover,
.badge.badge-conjuge:hover,
span.badge-conjuge:hover,
span.badge.badge-conjuge:hover,
td .badge-conjuge:hover,
td .badge.badge-conjuge:hover {
    background-color: #5a32a3 !important;
    color: #ffffff !important;
}

/* Forçar texto branco no badge Cônjuge - regra mais específica */
table td span.badge-conjuge,
table td .badge.badge-conjuge,
td span.badge-conjuge.text-white,
td .badge.badge-conjuge.text-white {
    color: #ffffff !important;
}

table td span.badge-conjuge *,
table td .badge.badge-conjuge * {
    color: #ffffff !important;
}

/* ============================================
   BADGES DE SEXO - TEXTO BRANCO FORÇADO
   ============================================ */
.badge.bg-secondary,
.badge.text-bg-secondary,
.badge.bg-secondary.text-white,
.badge.text-bg-secondary.text-white,
span.badge.bg-secondary,
span.badge.text-bg-secondary,
td .badge.bg-secondary,
td .badge.text-bg-secondary,
dd .badge.bg-secondary,
dd .badge.text-bg-secondary,
table .badge.bg-secondary,
table .badge.text-bg-secondary {
    background-color: #6c757d !important;
    color: #ffffff !important;
    font-weight: 500 !important;
}

/* Regra geral para garantir texto branco em todos os badges com classe text-white */
.badge.text-white,
.badge-conjuge.text-white,
.badge.bg-secondary.text-white,
table .badge.text-white,
td .badge.text-white,
dd .badge.text-white {
    color: #ffffff !important;
}

/* FORÇAR texto branco no badge Cônjuge - regra máxima prioridade */
table tbody td span.badge-conjuge,
table tbody td .badge.badge-conjuge,
table tbody tr td span.badge-conjuge,
table tbody tr td .badge.badge-conjuge,
.card table tbody td span.badge-conjuge,
.card table tbody td .badge.badge-conjuge,
body.prototype-theme .card table tbody td span.badge-conjuge,
body.prototype-theme .card table tbody td .badge.badge-conjuge,
.card-body table tbody td span.badge-conjuge,
.card-body table tbody td .badge.badge-conjuge {
    background-color: #6f42c1 !important;
    color: #ffffff !important;
    font-weight: 600 !important;
}

/* Forçar texto branco no badge Cônjuge mesmo dentro de cards */
body.prototype-theme .card .badge-conjuge,
body.prototype-theme .card span.badge-conjuge,
body.prototype-theme .card .badge.badge-conjuge,
.card .badge-conjuge,
.card span.badge-conjuge,
.card .badge.badge-conjuge {
    color: #ffffff !important;
    background-color: #6f42c1 !important;
}

/* ============================================
   BOTÃO PLANOS - FUNDO BRANCO E TEXTO ESCURO
   ============================================ */
.btn-light {
    background-color: #ffffff !important;
    border-color: #dee2e6 !important;
    color: #212529 !important;
    font-weight: 500 !important;
}

.btn-light:hover,
.btn-light:focus,
.btn-light:active {
    background-color: #f8f9fa !important;
    border-color: #dee2e6 !important;
    color: #000000 !important;
}

/* REGRA FINAL - Forçar badge Cônjuge com texto branco (sobrescreve tudo) */
span.badge-conjuge,
.badge-conjuge,
table td span.badge-conjuge,
table tbody td span.badge-conjuge,
.card table td span.badge-conjuge,
.card-body table td span.badge-conjuge,
body.prototype-theme .card table td span.badge-conjuge,
body.prototype-theme .card-body table td span.badge-conjuge {
    color: #ffffff !important;
    background-color: #6f42c1 !important;
    font-weight: 600 !important;
}

/* ============================================
   CABEÇALHOS DE CARDS - TEXTO LEGÍVEL
   ============================================ */
.card-header.bg-warning-subtle h6,
.card-header.bg-warning-subtle .h6,
.card-header.bg-warning-subtle h6 * {
    color: #212529 !important;
    font-weight: 600 !important;
}

.card-header.bg-info-subtle h6,
.card-header.bg-info-subtle .h6 {
    color: #212529 !important;
    font-weight: 600 !important;
}

.card-header.bg-secondary-subtle h6,
.card-header.bg-secondary-subtle .h6 {
    color: #212529 !important;
    font-weight: 600 !important;
}

.card-header.bg-success-subtle h6,
.card-header.bg-success-subtle .h6 {
    color: #212529 !important;
    font-weight: 600 !important;
}

.card-header.bg-danger-subtle h6,
.card-header.bg-danger-subtle .h6 {
    color: #212529 !important;
    font-weight: 600 !important;
}

/* ============================================
   ANIMAÇÃO DE ÍCONES CHEVRON NOS COLLAPSES
   ============================================ */
.card-header[data-bs-toggle="collapse"] {
    transition: background-color 0.2s ease;
}

.card-header[data-bs-toggle="collapse"]:hover {
    background-color: rgba(0, 0, 0, 0.05) !important;
}

.card-header .fa-chevron-down,
.card-header .fa-chevron-up {
    transition: transform 0.3s ease;
    font-size: 0.875rem;
}

/* ============================================
   DASHBOARD - ESPAÇAMENTO LATERAL PARA MOSTRAR FUNDO
   ============================================ */
.dashboard-container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

@media (min-width: 992px) {
    .dashboard-container {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
}

@media (min-width: 1200px) {
    .dashboard-container {
        padding-left: 3rem;
        padding-right: 3rem;
    }
}

/* ============================================
   DASHBOARD - FIX PARA GRÁFICO DE EVOLUÇÃO
   ============================================ */
.dashboard-container canvas {
    max-width: 100% !important;
}

.dashboard-container div[style*="position: relative"] {
    min-height: 400px;
}

/* ============================================
   DASHBOARD - BADGES DAS LISTAS TOP 5
   ============================================ */
#listaTopProfissoes .badge,
#listaTopCidades .badge {
    color: #ffffff !important;
}

/* ============================================
   DASHBOARD - BORDAS NOS CARDS PRINCIPAIS
   ============================================ */
.dashboard-container > .row > div > section {
    border: 2px solid var(--life-background);
    border-radius: 8px;
    padding: 1rem;
    background-color: #ffffff;
}

