/* public/css/style.css (VERSÃO FINAL COM MENUS RETRÁTEIS) */

/* ======================================================= */
/* == VARIÁVEIS GLOBAIS
/* ======================================================= */
/* =======================================================
   == TEMA ÚNICO DO SOCIALSYS (tokens)
   =======================================================
   Um só conjunto de variáveis para o sistema inteiro. As telas antigas
   nasceram com três famílias diferentes (--social-*, --blueprint-*, --s-*,
   --azul/--borda/--mudo…) e cada uma com o seu azul. Aqui todas viram
   apelido do mesmo valor: a tela que ainda declara `var(--blueprint-primary)`
   já sai na cor da marca sem que ninguém precise editá-la.

   Regras: cor nova só entra aqui; template não declara :root; status usa
   os pares --ok/--aviso/--erro/--info (texto, fundo, borda). Veja docs/DESIGN.md.
   ======================================================= */
:root {
    /* As cores (--social-*, --ok/--aviso/--erro/--info/--neutro, --tom-*) moram em
       public/css/tokens.css, carregado antes deste arquivo e também pelos portais. */

    /* Forma */
    --raio-sm: 8px; --raio: 14px; --raio-lg: 22px; --raio-pill: 40px;
    --sombra-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --sombra:    0 6px 18px rgba(32, 68, 96, .08);
    --fonte: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;


    /* ---- Apelidos das famílias antigas (não usar em código novo) ---- */
    --blueprint-primary: var(--social-blue); --blueprint-border: var(--social-line); --blueprint-bg: var(--social-bg);
    --blueprint-text: var(--social-text); --blueprint-muted: var(--social-gray);
    --s-primary: var(--social-blue); --s-primary-hover: var(--social-blue-dark); --s-dark: var(--social-text);
    --s-accent: var(--social-cyan); --s-bg: var(--social-bg); --s-border: var(--social-line);
    --s-text-main: var(--social-text-2); --s-text-muted: var(--social-gray);
    --azul: var(--social-blue); --borda: var(--social-line); --fio: var(--social-line); --mudo: var(--social-gray);
    --ardosia: var(--social-gray); --cor-forte: var(--social-blue);
    --cor-primaria-entidade: var(--social-blue);   /* o portal público sobrescreve com a cor da OSC */

    /* ---- Bootstrap passa a usar a marca ---- */
    --bs-primary: #204460; --bs-primary-rgb: 32, 68, 96;
    --bs-secondary: #64748B; --bs-secondary-rgb: 100, 116, 139;
    --bs-success: #15803D; --bs-success-rgb: 21, 128, 61;
    --bs-danger: #B91C1C; --bs-danger-rgb: 185, 28, 28;
    --bs-warning: #B45309; --bs-warning-rgb: 180, 83, 9;
    --bs-info: #0369A1; --bs-info-rgb: 3, 105, 161;
    --bs-body-bg: #F8FAFC; --bs-body-color: #1E293B;
    --bs-border-color: #E2E8F0; --bs-link-color: #204460; --bs-link-hover-color: #1A3850;
    --bs-body-font-family: var(--fonte);

    /* Sidebar */
    --sidebar-bg: #ffffff;
    --sidebar-border: var(--social-line);
    --sidebar-text: var(--social-text-3);
    --sidebar-heading-text: var(--social-gray);
    --sidebar-icon-color: var(--social-gray);
    --sidebar-active-bg: #EAF2F8;
    --sidebar-active-text: var(--social-blue);
    --sidebar-active-icon: var(--social-blue);
    --sidebar-hover-bg: var(--social-bg);
    --sidebar-hover-text: var(--social-blue);
    --sidebar-hover-icon: var(--social-blue);
    --sidebar-brand-text: var(--social-blue);
    --sidebar-brand-icon: var(--social-blue);

    /* Dimensões da Sidebar */
    --sidebar-width-expanded: 260px;
    --sidebar-width-collapsed: 80px;
    --sidebar-transition-speed: 0.25s;

    /* Outros */
    --navbar-height: 56px;
}

/* ======================================================= */
/* == ESTILOS GLOBAIS
/* ======================================================= */
html, body {
    height: 100%;
}
body {
    font-family: var(--bs-body-font-family);
    background-color: var(--bs-body-bg);
    overflow-x: hidden;
    padding-top: var(--navbar-height);
}
body.sidebar-mobile-open {
    overflow-y: hidden;
}

/* ======================================================= */
/* == ESTRUTURA PRINCIPAL (SIDEBAR + CONTEÚDO)
/* ======================================================= */
.sidebar {
    width: var(--sidebar-width-expanded);
    background-color: var(--sidebar-bg);
    border-right: 1px solid var(--sidebar-border);
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
    transition: all var(--sidebar-transition-speed) ease-in-out;
    display: flex;
    flex-direction: column;
}

.content-wrapper {
    transition: margin-left var(--sidebar-transition-speed) ease-in-out;
    margin-left: var(--sidebar-width-expanded);
    width: calc(100% - var(--sidebar-width-expanded));
    padding: 1.5rem;
    min-height: calc(100vh - var(--navbar-height));
}

/* ======================================================= */
/* == ESTADO RECOLHIDO (DESKTOP)                          == */
/* ======================================================= */
.sidebar.collapsed {
    width: var(--sidebar-width-collapsed);
}

body.sidebar-collapsed .content-wrapper {
    margin-left: var(--sidebar-width-collapsed);
    width: calc(100% - var(--sidebar-width-collapsed));
}

.sidebar.collapsed .sidebar-brand span,
.sidebar.collapsed .user-info .flex-grow-1,
.sidebar.collapsed .nav-link .sidebar-text,
.sidebar.collapsed .sidebar-heading,
.sidebar.collapsed .btn-toggler span,
.sidebar.collapsed .sidebar-arrow { /* Esconde a seta quando recolhido */
    opacity: 0;
    visibility: hidden;
    width: 0;
    transition: opacity 0.1s linear, width 0s 0.1s, visibility 0s 0.1s;
}

.sidebar.collapsed .nav-link {
    justify-content: center;
}

.sidebar.collapsed .nav-link .fa-fw {
    margin-right: 0;
    font-size: 1.25rem;
}

/* Esconde submenus quando a sidebar está recolhida */
.sidebar.collapsed .nav-submenu {
    display: none !important;
}

/* ======================================================= */
/* == COMPONENTES INTERNOS DA SIDEBAR
/* ======================================================= */
.sidebar-brand {
    padding: 0.75rem 1.5rem;
    height: var(--navbar-height);
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--sidebar-border);
    flex-shrink: 0;
    overflow: hidden;
}
.sidebar-brand a {
    color: var(--sidebar-brand-text);
    font-weight: 700;
    font-size: 1.4rem;
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}
.sidebar-brand i { color: var(--sidebar-brand-icon); }
.sidebar-brand span { transition: opacity var(--sidebar-transition-speed) ease; }

.sidebar-menu-wrapper {
    overflow-y: auto;
    flex-grow: 1;
}
.sidebar-menu-wrapper::-webkit-scrollbar { width: 5px; }
.sidebar-menu-wrapper::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px;}

.sidebar-heading {
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--sidebar-heading-text);
    letter-spacing: .07rem;
    font-weight: 700;
    padding: 1.25rem 1.5rem 0.5rem;
    white-space: nowrap;
    transition: opacity var(--sidebar-transition-speed) ease;
}

.nav-link {
    font-weight: 500;
    color: var(--sidebar-text);
    padding: 0.6rem 1.5rem;
    display: flex;
    align-items: center;
    white-space: nowrap;
    border-left: 4px solid transparent;
    transition: all 0.15s ease-in-out;
}
.nav-link:hover {
    background-color: var(--sidebar-hover-bg);
    color: var(--sidebar-hover-text);
    border-left-color: rgba(var(--bs-primary-rgb), 0.3);
}
.nav-link:hover .fa-fw { color: var(--sidebar-hover-icon); }
.nav-link.active {
    color: var(--sidebar-active-text);
    background-color: var(--sidebar-active-bg);
    font-weight: 700;
    border-left-color: var(--bs-primary);
}
.nav-link.active .fa-fw { color: var(--sidebar-active-icon); }
.nav-link .fa-fw {
    width: 1.3em;
    text-align: center;
    margin-right: 0.8rem;
    color: var(--sidebar-icon-color);
    transition: all 0.15s ease-in-out;
}

/* ======================================================= */
/* == ESTILOS PARA SIDEBAR RETRÁTIL (DROPDOWN/ACCORDION)  == */
/* ======================================================= */

.sidebar .nav-item.has-submenu .nav-link {
    position: relative; /* Necessário para posicionar a seta */
    cursor: pointer; /* Indica que o item é clicável */
}

.sidebar .sidebar-arrow {
    position: absolute;
    right: 1.5rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.7rem;
    transition: transform 0.2s ease-in-out;
    color: #adb5bd;
}

/* Gira a seta quando o menu está expandido */
.sidebar .nav-item.has-submenu .nav-link[aria-expanded="true"] .sidebar-arrow {
    transform: translateY(-50%) rotate(90deg);
}

/* Estilo do submenu */
.nav-submenu {
    background-color: var(--tom-fundo-1); /* Um cinza bem claro para diferenciar */
    padding-left: 1.5rem; /* Indentação para os itens */
    list-style: none; /* Remove bullets da ul */
    margin: 0 1rem;
    border-left: 3px solid var(--tom-fundo-4);
}

/* Estilo dos links dentro do submenu */
.nav-submenu .nav-link {
    padding: 0.5rem 1rem 0.5rem 0.8rem; /* Padding ajustado para o submenu */
    font-size: 0.9rem; /* Fonte um pouco menor */
    border-left: none !important; /* Remove a borda de item ativo dos sub-itens */
    color: var(--tom-texto-cinza);
}

.nav-submenu .nav-link:hover {
    color: var(--sidebar-hover-text);
    background-color: transparent; /* Evita o fundo cinza no hover */
}

/* Estilo do link do submenu quando está ativo */
.nav-submenu .nav-link.active {
    font-weight: bold;
    color: var(--bs-primary);
    background-color: transparent;
}

/* Destaca o link PAI quando um de seus filhos está ativo */
.nav-item.has-submenu .nav-link[aria-expanded="true"] {
    background-color: var(--sidebar-hover-bg);
    color: var(--sidebar-hover-text);
}


/* ======================================================= */
/* == BOTÃO TOGGLER (RECOLHER/EXPANDIR)
/* ======================================================= */
.sidebar-toggler-wrapper {
    border-top: 1px solid var(--sidebar-border);
    flex-shrink: 0;
    padding: 0.5rem;
    margin-top: auto;
}
.btn-toggler {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    width: 100%;
    text-align: left;
    padding: 0.5rem 1rem;
    color: var(--sidebar-text);
    background-color: transparent;
    border: none;
    border-radius: 0.375rem;
    transition: all 0.2s ease-in-out;
    white-space: nowrap;
    overflow: hidden;
}
.btn-toggler:hover { background-color: var(--sidebar-hover-bg); color: var(--sidebar-hover-text); }
.btn-toggler i {
    width: 1.3em;
    text-align: center;
    margin-right: 0.8rem;
    transition: transform var(--sidebar-transition-speed) ease-in-out;
}
.sidebar.collapsed .btn-toggler {
    justify-content: center;
}
.sidebar.collapsed .btn-toggler i {
    transform: rotate(180deg);
    margin-right: 0;
}

/* ======================================================= */
/* == RESPONSIVO (MOBILE)
/* ======================================================= */
@media (max-width: 991.98px) {
    .sidebar {
        width: 280px !important;
        transform: translateX(-280px);
    }
    .sidebar.show {
        transform: translateX(0);
        box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
    }
    .sidebar.collapsed {
        transform: translateX(-280px);
    }
    .content-wrapper {
        margin-left: 0 !important;
        width: 100% !important;
    }
    .sidebar-toggler-wrapper { display: none; }
    .body-overlay {
        position: fixed; top: 0; left: 0; width: 100%; height: 100%;
        background-color: rgba(0,0,0,0.5);
        z-index: 1029;
        display: none; opacity: 0;
        transition: opacity var(--sidebar-transition-speed) ease-in-out;
    }
    .body-overlay.show { display: block; opacity: 1; }
}


/* ======================================================= */
/* == ESTILOS GERAIS PARA O PAINEL (BLUEPRINT)
/* ======================================================= */
:root {
    --blueprint-primary: var(--tom-azul-bootstrap);
    --blueprint-border: var(--tom-borda-2);
}
.page-header-blueprint h1 { font-weight: 700; color: var(--tom-texto-escuro); }
.page-header-blueprint i { color: var(--blueprint-primary); }
.btn-primary-blueprint {
    background-color: var(--blueprint-primary); border-color: var(--blueprint-primary);
    color: #fff; transition: all 0.2s ease;
}
.btn-primary-blueprint:hover { background-color: #084aa3; border-color: #084aa3; }

.table-container-blueprint {
    background-color: var(--social-white); border: 1px solid var(--blueprint-border);
    border-radius: .375rem;
}
.table-container-blueprint .card-header {
    background-color: var(--social-white); font-weight: 600; color: var(--tom-texto-escuro);
    border-bottom: 1px solid var(--blueprint-border);
}
.table-blueprint-v2 thead { background-color: var(--social-white); }
.table-blueprint-v2 thead th {
    font-size: .75rem; text-transform: uppercase; letter-spacing: 0.5px;
    color: var(--tom-texto-cinza); border-bottom: 2px solid var(--blueprint-border);
    padding: 1rem;
}
.table-blueprint-v2 tbody tr:hover { background-color: var(--tom-fundo-1); }
.table-blueprint-v2 tbody td { padding: 1rem; }
.table-blueprint-v2 .inactive-row {
    background-color: var(--tom-fundo-1);
    color: var(--tom-texto-cinza);
}
.empty-state-container { padding: 3rem; text-align: center; }
.empty-state-container i { color: #ced4da; }
.badge.bg-success-soft { background-color: rgba(25, 135, 84, 0.1); }
.text-success-emphasis { color: var(--tom-ok-escuro) !important; }
.badge.bg-secondary-soft { background-color: rgba(108, 117, 128, 0.1); }
.text-secondary-emphasis { color: var(--tom-texto-escuro-2) !important; }

/* ======================================================= */
/* == ESTILOS DO DASHBOARD (SEU CÓDIGO ANTIGO)
/* ======================================================= */
.dashboard-row { margin-bottom: 1.5rem !important; }
.quick-action-card .card { transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; border: 1px solid var(--tom-fundo-4); }
.quick-action-card .card:hover { transform: translateY(-4px); box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important; border-color: var(--bs-primary); }
.quick-action-card .card-body { padding: 1rem 0.75rem; }
.quick-action-card .card-icon { font-size: 1.8rem; margin-bottom: 0.5rem; }
.quick-action-card .card-label { font-size: 0.8rem; font-weight: 500; margin-bottom: 0; color: var(--bs-body-color); text-transform: uppercase; letter-spacing: 0.03em; }
.quick-action-card.color-projeto .card-icon, .quick-action-card.color-projeto .card-label { color: var(--lpg-color-projeto); }
.quick-action-card.color-despesa .card-icon, .quick-action-card.color-despesa .card-label { color: var(--lpg-color-despesa); }
.quick-action-card.color-receita .card-icon, .quick-action-card.color-receita .card-label { color: var(--lpg-color-receita); }
.quick-action-card.color-rendimento .card-icon, .quick-action-card.color-rendimento .card-label { color: var(--lpg-color-rendimento); }
.quick-action-card.color-conta .card-icon, .quick-action-card.color-conta .card-label { color: var(--lpg-color-conta); }
.quick-action-card.color-fornecedor .card-icon, .quick-action-card.color-fornecedor .card-label { color: var(--lpg-color-fornecedor); }
.dashboard-stat-card .card { min-height: 150px; }
.border-lpg-saldo { border-left: 5px solid var(--lpg-blue) !important; }
.border-lpg-receitas { border-left: 5px solid var(--lpg-green-leaf) !important; }
.border-lpg-despesas { border-left: 5px solid var(--lpg-red) !important; }
.border-lpg-rendimentos { border-left: 5px solid var(--lpg-orange) !important; }
.card-icon-lpg-saldo { color: var(--lpg-blue); }
.card-icon-lpg-receitas { color: var(--lpg-green-leaf); }
.card-icon-lpg-despesas { color: var(--lpg-red); }
.card-icon-lpg-rendimentos { color: var(--lpg-orange); }
.text-lpg-red { color: var(--lpg-red) !important; }
.text-lpg-green-leaf { color: var(--lpg-green-leaf) !important; }

/* =======================================================
   == COMPONENTES CANÔNICOS
   =======================================================
   Um botão, um selo, uma tabela, um cartão, um estado vazio — os mesmos em
   toda tela, inclusive nas que ainda usam classes do Bootstrap puras.
   ======================================================= */

/* Botões: o primário do Bootstrap e o .btn-social viram a mesma coisa */
.btn { font-weight: 700; border-radius: var(--raio-pill); }
.btn-primary, .btn-social, .btn-primary-elevated, .btn-primary-blueprint {
    background: var(--social-blue); border: 1px solid var(--social-blue); color: #fff;
    padding: .5rem 1.3rem; font-size: .85rem; box-shadow: none; transition: background .15s, transform .15s;
}
.btn-primary:hover, .btn-social:hover, .btn-primary-elevated:hover, .btn-primary-blueprint:hover,
.btn-primary:focus, .btn-primary:active { background: var(--social-blue-dark); border-color: var(--social-blue-dark); color: #fff; transform: none; box-shadow: none; }
.btn-outline-primary { color: var(--social-blue); border-color: var(--social-blue); }
.btn-outline-primary:hover { background: var(--social-blue); border-color: var(--social-blue); color: #fff; }
.btn-secondary, .btn-outline-secondary, .btn-social-claro, .btn-light, .btn-white {
    background: var(--social-white); color: var(--social-gray); border: 1px solid var(--social-line); font-size: .85rem;
}
.btn-secondary:hover, .btn-outline-secondary:hover, .btn-social-claro:hover, .btn-light:hover, .btn-white:hover {
    background: var(--social-white); color: var(--social-blue); border-color: var(--social-blue);
}
.btn-success { background: #15803D; border-color: #15803D; } .btn-success:hover { background: #166534; border-color: #166534; }  /* fundo fixo: --ok é cor de texto e clareia no noturno */
.btn-danger { background: #B91C1C; border-color: #B91C1C; } .btn-danger:hover { background: #991B1B; border-color: #991B1B; }
.btn-outline-danger { color: var(--erro); border-color: var(--erro-line); } .btn-outline-danger:hover { background: #B91C1C; border-color: #B91C1C; }
.btn-sm { padding: .3rem .9rem; font-size: .78rem; }
.btn:focus-visible { outline: 3px solid var(--social-cyan); outline-offset: 2px; }

/* Selos de status: badge do Bootstrap, .status-pill e .selo com as mesmas cores */
.badge, .status-pill, .selo {
    display: inline-flex; align-items: center; gap: .3em; font-size: .62rem; font-weight: 800;
    letter-spacing: .04em; text-transform: uppercase; padding: 3px 10px; border-radius: 100px;
    border: 1px solid transparent; line-height: 1.5;
}
.badge.bg-success, .bg-success.badge, .selo-ok,     .status-ok     { background: var(--ok-bg) !important;     color: var(--ok) !important;     border-color: var(--ok-line); }
.badge.bg-warning, .selo-aviso, .status-aviso { background: var(--aviso-bg) !important;  color: var(--aviso) !important;  border-color: var(--aviso-line); }
.badge.bg-danger,  .selo-erro,  .status-erro  { background: var(--erro-bg) !important;   color: var(--erro) !important;   border-color: var(--erro-line); }
.badge.bg-info, .badge.bg-primary, .selo-info, .status-info { background: var(--info-bg) !important; color: var(--info) !important; border-color: var(--info-line); }
.badge.bg-secondary, .badge.bg-light, .badge.bg-dark, .selo-neutro, .status-neutro { background: var(--neutro-bg) !important; color: var(--neutro) !important; border-color: var(--neutro-line); }

/* Cartões e tabelas */
.card { border: 1px solid var(--social-line); border-radius: var(--raio-lg); box-shadow: none; }
.card-header { background: var(--social-white); border-bottom: 1px solid var(--social-line); font-weight: 800; color: var(--social-blue); }
.table { --bs-table-bg: transparent; color: var(--social-text); }
.table thead th, .table > :not(caption) > * > th {
    background: var(--social-sub); color: var(--social-gray); font-size: .68rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .06em; border-bottom: 1px solid var(--social-line); vertical-align: middle;
}
.table > :not(caption) > * > td { border-bottom-color: var(--social-sub); vertical-align: middle; }
.table-hover > tbody > tr:hover > * { background: #F8FBFE; }
.table-container, .table-container-blueprint { background: var(--social-white); border: 1px solid var(--social-line); border-radius: var(--raio-lg); overflow: hidden; box-shadow: none; }

/* Formulários */
.form-control, .form-select, .input-premium {
    border: 1px solid var(--social-line); border-radius: var(--raio); background: var(--social-white); color: var(--social-text);
    font-size: .9rem; padding: .55rem .9rem;
}
.form-control:focus, .form-select:focus, .input-premium:focus {
    border-color: var(--social-blue); box-shadow: 0 0 0 .2rem rgba(96, 207, 255, .3); background: var(--social-white);
}
.form-label, .form-label-top { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; color: var(--social-gray); margin-bottom: .4rem; }

/* Cabeçalho de página e trilha */
.page-title, h1.h2, .content-wrapper h1 { font-weight: 800; color: var(--social-blue); letter-spacing: -.02em; }
.breadcrumb { font-size: .8rem; font-weight: 600; }
.breadcrumb a { color: var(--social-gray); text-decoration: none; } .breadcrumb a:hover { color: var(--social-blue); }
.breadcrumb-item.active { color: var(--social-blue); }
.breadcrumb.bg-white.shadow-sm { box-shadow: none !important; border: 1px solid var(--social-line); }

/* Estado vazio único */
.empty, .empty-state { text-align: center; padding: 3rem 1rem; color: var(--social-gray); }
.empty i, .empty-state i { font-size: 2rem; color: var(--social-gray-2); margin-bottom: .75rem; display: block; }
.empty h3, .empty-state h3 { font-size: 1rem; font-weight: 800; color: var(--social-blue); margin: 0 0 .25rem; }
.empty p, .empty-state p { font-size: .85rem; margin: 0; }

/* Utilitários que as telas repetem */
.bg-opacity-5 { --bs-bg-opacity: .05; }  /* o Bootstrap não tem o 5: sem isto a cor saía sólida */
.fw-800 { font-weight: 800; } .fw-600 { font-weight: 600; }
.num-tab { font-variant-numeric: tabular-nums; }
.rot { font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--social-gray); }
.shadow-xs { box-shadow: var(--sombra-sm); }
.animate__fadeIn { animation: none; }


/* =======================================================
   MODO NOTURNO
   Ligado por public/js/tema.js, que marca <html data-tema="escuro">
   (e data-bs-theme="dark", para o Bootstrap). Mesma regra do tema claro:
   cor nova só entra aqui. Os tokens mudam; o que já usa token muda junto.
   ======================================================= */
html[data-tema="escuro"] {
    color-scheme: dark;

    --social-blue:      #3A7DB5;   /* claro o bastante para título sobre o fundo escuro e ainda aguenta texto branco em botão */
    --social-blue-dark: #2F6A9A;
    --social-cyan:      #60CFFF;
    --social-cyan-soft: #0C2A3D;

    --social-bg:     #0B1220;  /* fundo da página */
    --social-sub:    #172336;  /* cabeçalho de tabela, chips */
    --social-line:   #243247;
    --social-line-2: #334155;
    --social-gray:   #94A3B8;
    --social-gray-2: #64748B;
    --social-text:   #E2E8F0;
    --social-text-2: #CBD5E1;
    --social-text-3: #A5B4C8;
    --social-white:  #111A2B;  /* "branco" é a superfície dos cartões */

    --ok:        #4ADE80; --ok-bg:    #0B2A1A; --ok-line:    #14532D;
    --aviso:     #FBBF24; --aviso-bg: #2A1F06; --aviso-line: #78350F;
    --erro:      #F87171; --erro-bg:  #2A0F12; --erro-line:  #7F1D1D;
    --info:      #38BDF8; --info-bg:  #0A2233; --info-line:  #0C4A6E;
    --neutro:    #A5B4C8; --neutro-bg:#172336; --neutro-line:#334155;

    --sombra-sm: 0 1px 2px rgba(0, 0, 0, .4);
    --sombra:    0 6px 18px rgba(0, 0, 0, .45);

    --titulo-escuro: #8EC3EC;  /* texto que no claro era o azul da marca */

    --tom-fundo-1: #111A2B; --tom-fundo-2: #111A2B; --tom-fundo-3: #111A2B; --tom-fundo-4: #172336;
    --tom-azul-claro: #0A2233; --tom-ciano-claro: #0C2A3D;
    --tom-ok-claro: #0B2A1A; --tom-ok-claro-2: #0B2A1A; --tom-aviso-claro: #2A1F06; --tom-erro-claro: #2A0F12;
    --tom-texto-cinza: #94A3B8; --tom-texto-cinza-2: #94A3B8;
    --tom-texto-escuro: #E2E8F0; --tom-texto-escuro-2: #CBD5E1; --tom-texto-escuro-3: #CBD5E1;
    --tom-aviso-escuro: #FBBF24; --tom-erro-escuro: #F87171; --tom-info-escuro: #38BDF8;
    --tom-ok-escuro: #4ADE80; --tom-ok-escuro-2: #4ADE80; --tom-ok-escuro-3: #4ADE80;
    --tom-borda-1: #243247; --tom-borda-2: #243247; --tom-ok-borda: #14532D;
    --tom-azul-bootstrap: #8EC3EC;
    --tom-azul-link: #8EC3EC; --tom-ciano-escuro: #67E8F9; --tom-texto-bs: #E2E8F0;

    --bs-primary: #3A7DB5; --bs-primary-rgb: 58, 125, 181;
    --bs-secondary: #94A3B8; --bs-secondary-rgb: 148, 163, 184;
    --bs-success: #22C55E; --bs-success-rgb: 34, 197, 94;
    --bs-danger: #EF4444; --bs-danger-rgb: 239, 68, 68;
    --bs-warning: #F59E0B; --bs-warning-rgb: 245, 158, 11;
    --bs-info: #0EA5E9; --bs-info-rgb: 14, 165, 233;
    --bs-body-bg: #0B1220; --bs-body-bg-rgb: 11, 18, 32;
    --bs-body-color: #E2E8F0; --bs-body-color-rgb: 226, 232, 240;
    --bs-emphasis-color: #F8FAFC; --bs-emphasis-color-rgb: 248, 250, 252;
    --bs-secondary-color: #94A3B8; --bs-tertiary-color: #64748B;
    --bs-secondary-bg: #172336; --bs-tertiary-bg: #111A2B;
    --bs-border-color: #243247; --bs-border-color-translucent: rgba(148, 163, 184, .15);
    --bs-link-color: #8EC3EC; --bs-link-color-rgb: 142, 195, 236; --bs-link-hover-color: #B9DBF5;
    --bs-light: #172336; --bs-light-rgb: 23, 35, 54;
    --bs-dark: #E2E8F0; --bs-dark-rgb: 226, 232, 240;
    --bs-white-rgb: 17, 26, 43;

    --sidebar-bg: #0E1626;
    --sidebar-border: #1C2940;
    --sidebar-text: #A5B4C8;
    --sidebar-heading-text: #64748B;
    --sidebar-icon-color: #64748B;
    --sidebar-active-bg: #16324A;
    --sidebar-active-text: #8EC3EC;
    --sidebar-active-icon: #8EC3EC;
    --sidebar-hover-bg: #172336;
    --sidebar-hover-text: #E2E8F0;
    --sidebar-hover-icon: #8EC3EC;
    --sidebar-brand-text: #E2E8F0;
    --sidebar-brand-icon: #8EC3EC;
}

/* Títulos e links que usavam o azul da marca como TEXTO: no escuro, o azul-claro. */
html[data-tema="escuro"] .page-title,
html[data-tema="escuro"] h1.h2,
html[data-tema="escuro"] .content-wrapper h1,
html[data-tema="escuro"] .breadcrumb-item.active,
html[data-tema="escuro"] .empty h3, html[data-tema="escuro"] .empty-state h3,
html[data-tema="escuro"] .text-primary { color: var(--titulo-escuro) !important; }

/* Classes utilitárias do Bootstrap que continuam claras no tema escuro dele */
html[data-tema="escuro"] .bg-white,
html[data-tema="escuro"] .bg-body { background-color: var(--social-white) !important; }
html[data-tema="escuro"] .bg-light,
html[data-tema="escuro"] .bg-body-tertiary,
html[data-tema="escuro"] .bg-body-secondary { background-color: var(--social-sub) !important; }
html[data-tema="escuro"] .text-dark,
html[data-tema="escuro"] .text-black,
html[data-tema="escuro"] .text-body,
html[data-tema="escuro"] .link-dark { color: var(--social-text) !important; }
html[data-tema="escuro"] .text-muted,
html[data-tema="escuro"] .text-secondary { color: var(--social-gray) !important; }
html[data-tema="escuro"] .border,
html[data-tema="escuro"] .border-top, html[data-tema="escuro"] .border-bottom,
html[data-tema="escuro"] .border-start, html[data-tema="escuro"] .border-end,
html[data-tema="escuro"] .border-light { border-color: var(--social-line) !important; }
html[data-tema="escuro"] .btn-light {
    --bs-btn-bg: var(--social-sub); --bs-btn-border-color: var(--social-line); --bs-btn-color: var(--social-text);
    --bs-btn-hover-bg: #1F2E45; --bs-btn-hover-border-color: var(--social-line-2); --bs-btn-hover-color: #fff;
    --bs-btn-active-bg: #1F2E45; --bs-btn-active-color: #fff;
}
html[data-tema="escuro"] .btn-outline-dark { --bs-btn-color: var(--social-text); --bs-btn-border-color: var(--social-line-2); }
html[data-tema="escuro"] .btn-outline-primary { --bs-btn-color: var(--titulo-escuro); --bs-btn-border-color: #3A7DB5; }
html[data-tema="escuro"] .table-light {
    --bs-table-bg: var(--social-sub); --bs-table-color: var(--social-text-2); --bs-table-border-color: var(--social-line);
}
html[data-tema="escuro"] .table { --bs-table-bg: transparent; --bs-table-color: var(--social-text); --bs-table-border-color: var(--social-line); }
html[data-tema="escuro"] .table > thead th { color: var(--social-gray); }

/* Superfícies */
html[data-tema="escuro"] body { background-color: var(--social-bg); color: var(--social-text); }
html[data-tema="escuro"] .card,
html[data-tema="escuro"] .modal-content,
html[data-tema="escuro"] .dropdown-menu,
html[data-tema="escuro"] .list-group-item,
html[data-tema="escuro"] .offcanvas,
html[data-tema="escuro"] .popover,
html[data-tema="escuro"] .toast,
html[data-tema="escuro"] .accordion-item,
html[data-tema="escuro"] .accordion-button {
    background-color: var(--social-white); color: var(--social-text); border-color: var(--social-line);
}
html[data-tema="escuro"] .card-header,
html[data-tema="escuro"] .card-footer,
html[data-tema="escuro"] .modal-header,
html[data-tema="escuro"] .modal-footer { background-color: transparent; border-color: var(--social-line); }
html[data-tema="escuro"] .accordion-button:not(.collapsed) { background-color: var(--social-sub); color: var(--titulo-escuro); }
html[data-tema="escuro"] .dropdown-item { color: var(--social-text-2); }
html[data-tema="escuro"] .dropdown-item:hover,
html[data-tema="escuro"] .dropdown-item:focus { background-color: var(--social-sub); color: #fff; }
html[data-tema="escuro"] .nav-tabs { border-color: var(--social-line); }
html[data-tema="escuro"] .nav-tabs .nav-link.active { background-color: var(--social-white); color: var(--titulo-escuro); border-color: var(--social-line) var(--social-line) var(--social-white); }
html[data-tema="escuro"] .nav-pills .nav-link:not(.active) { color: var(--social-text-2); }
html[data-tema="escuro"] .page-link { background-color: var(--social-white); border-color: var(--social-line); color: var(--titulo-escuro); }
html[data-tema="escuro"] .page-item.active .page-link { background-color: #3A7DB5; border-color: #3A7DB5; color: #fff; }
html[data-tema="escuro"] .progress { background-color: var(--social-sub); }
html[data-tema="escuro"] .alert { border-color: var(--social-line); }
html[data-tema="escuro"] .alert-light { background-color: var(--social-sub); color: var(--social-text); }
html[data-tema="escuro"] hr { border-color: var(--social-line-2); opacity: .6; }
html[data-tema="escuro"] .shadow-sm { box-shadow: var(--sombra-sm) !important; }
html[data-tema="escuro"] .shadow, html[data-tema="escuro"] .shadow-lg { box-shadow: var(--sombra) !important; }

/* Formulários */
html[data-tema="escuro"] .form-control,
html[data-tema="escuro"] .form-select,
html[data-tema="escuro"] .input-premium,
html[data-tema="escuro"] .input-group-text {
    background-color: #0E1626; color: var(--social-text); border-color: var(--social-line-2);
}
html[data-tema="escuro"] .form-control:focus,
html[data-tema="escuro"] .form-select:focus,
html[data-tema="escuro"] .input-premium:focus { background-color: #0E1626; color: #fff; }
html[data-tema="escuro"] .form-control::placeholder { color: var(--social-gray-2); }
html[data-tema="escuro"] .form-control:disabled,
html[data-tema="escuro"] .form-control[readonly],
html[data-tema="escuro"] .form-select:disabled { background-color: var(--social-sub); color: var(--social-gray); }
html[data-tema="escuro"] .form-check-input { background-color: #0E1626; border-color: var(--social-line-2); }
html[data-tema="escuro"] .form-check-input:checked { background-color: #3A7DB5; border-color: #3A7DB5; }

/* Selos do padrão (uiSelo) já usam os pares semânticos; aqui só o contraste do neutro. */
html[data-tema="escuro"] .selo { border-color: transparent; }

/* Imagens de conteúdo com fundo branco (logos) ganham um respiro claro em vez de sumir. */
html[data-tema="escuro"] img.logo-entidade,
html[data-tema="escuro"] .logo-parceiro img { background: #fff; border-radius: 6px; }

/* Rótulos de seção do menu lateral: no escuro, a cor de linha some. */
html[data-tema="escuro"] .nav-separador { color: var(--social-gray-2); }

/* ---- Rede de proteção: cores fixas em style="" das telas antigas ----
   Enquanto a migração para os tokens não termina, as cores claras mais usadas
   nos atributos style são trocadas aqui. A ordem importa: as de status vêm
   depois das superfícies porque "background: #fff" também casa com "#fffbeb". */
html[data-tema="escuro"] [style*="background: #fff" i],
html[data-tema="escuro"] [style*="background:#fff" i],
html[data-tema="escuro"] [style*="background-color:#fff" i],
html[data-tema="escuro"] [style*="background-color: #fff" i],
html[data-tema="escuro"] [style*="background: #ffffff" i],
html[data-tema="escuro"] [style*="background:#ffffff" i],
html[data-tema="escuro"] [style*="background-color: #ffffff" i],
html[data-tema="escuro"] [style*="background-color:#ffffff" i],
html[data-tema="escuro"] [style*="background:white" i],
html[data-tema="escuro"] [style*="background: white" i],
html[data-tema="escuro"] [style*="background-color:white" i],
html[data-tema="escuro"] [style*="background-color: white" i],
html[data-tema="escuro"] [style*="background:#fafafa" i],
html[data-tema="escuro"] [style*="background: #fafafa" i],
html[data-tema="escuro"] [style*="background-color:#fafafa" i],
html[data-tema="escuro"] [style*="background-color: #fafafa" i],
html[data-tema="escuro"] [style*="background:#fdfdfd" i],
html[data-tema="escuro"] [style*="background: #fdfdfd" i],
html[data-tema="escuro"] [style*="background-color:#fdfdfd" i],
html[data-tema="escuro"] [style*="background-color: #fdfdfd" i],
html[data-tema="escuro"] [style*="background:#fcfcfc" i],
html[data-tema="escuro"] [style*="background: #fcfcfc" i],
html[data-tema="escuro"] [style*="background-color:#fcfcfc" i],
html[data-tema="escuro"] [style*="background-color: #fcfcfc" i] {
    background-color: var(--social-white) !important;
}
html[data-tema="escuro"] [style*="background:#f8fafc" i],
html[data-tema="escuro"] [style*="background: #f8fafc" i],
html[data-tema="escuro"] [style*="background-color: #f8fafc" i],
html[data-tema="escuro"] [style*="background-color:#f8fafc" i],
html[data-tema="escuro"] [style*="background: #f1f5f9" i],
html[data-tema="escuro"] [style*="background:#f1f5f9" i],
html[data-tema="escuro"] [style*="background-color: #f1f5f9" i],
html[data-tema="escuro"] [style*="background-color:#f1f5f9" i],
html[data-tema="escuro"] [style*="background:#f8f9fa" i],
html[data-tema="escuro"] [style*="background: #f8f9fa" i],
html[data-tema="escuro"] [style*="background-color: #f8f9fa" i],
html[data-tema="escuro"] [style*="background-color:#f8f9fa" i],
html[data-tema="escuro"] [style*="background: #f2f2f2" i],
html[data-tema="escuro"] [style*="background:#f2f2f2" i],
html[data-tema="escuro"] [style*="background-color: #f2f2f2" i],
html[data-tema="escuro"] [style*="background-color:#f2f2f2" i],
html[data-tema="escuro"] [style*="background: #f9fafb" i],
html[data-tema="escuro"] [style*="background:#f9fafb" i],
html[data-tema="escuro"] [style*="background-color:#f9fafb" i],
html[data-tema="escuro"] [style*="background-color: #f9fafb" i],
html[data-tema="escuro"] [style*="background:#f5f5f5" i],
html[data-tema="escuro"] [style*="background: #f5f5f5" i],
html[data-tema="escuro"] [style*="background-color: #f5f5f5" i],
html[data-tema="escuro"] [style*="background-color:#f5f5f5" i],
html[data-tema="escuro"] [style*="background:#eee" i],
html[data-tema="escuro"] [style*="background: #eee" i],
html[data-tema="escuro"] [style*="background-color:#eee" i],
html[data-tema="escuro"] [style*="background-color: #eee" i],
html[data-tema="escuro"] [style*="background: #eeeeee" i],
html[data-tema="escuro"] [style*="background:#eeeeee" i],
html[data-tema="escuro"] [style*="background-color: #eeeeee" i],
html[data-tema="escuro"] [style*="background-color:#eeeeee" i],
html[data-tema="escuro"] [style*="background:#e2e8f0" i],
html[data-tema="escuro"] [style*="background: #e2e8f0" i],
html[data-tema="escuro"] [style*="background-color: #e2e8f0" i],
html[data-tema="escuro"] [style*="background-color:#e2e8f0" i],
html[data-tema="escuro"] [style*="background: #edf2f7" i],
html[data-tema="escuro"] [style*="background:#edf2f7" i],
html[data-tema="escuro"] [style*="background-color: #edf2f7" i],
html[data-tema="escuro"] [style*="background-color:#edf2f7" i],
html[data-tema="escuro"] [style*="background: #f4f6f9" i],
html[data-tema="escuro"] [style*="background:#f4f6f9" i],
html[data-tema="escuro"] [style*="background-color: #f4f6f9" i],
html[data-tema="escuro"] [style*="background-color:#f4f6f9" i],
html[data-tema="escuro"] [style*="background:#f0f0f0" i],
html[data-tema="escuro"] [style*="background: #f0f0f0" i],
html[data-tema="escuro"] [style*="background-color:#f0f0f0" i],
html[data-tema="escuro"] [style*="background-color: #f0f0f0" i],
html[data-tema="escuro"] [style*="background: #e9ecef" i],
html[data-tema="escuro"] [style*="background:#e9ecef" i],
html[data-tema="escuro"] [style*="background-color:#e9ecef" i],
html[data-tema="escuro"] [style*="background-color: #e9ecef" i],
html[data-tema="escuro"] [style*="background:#f3f4f6" i],
html[data-tema="escuro"] [style*="background: #f3f4f6" i],
html[data-tema="escuro"] [style*="background-color: #f3f4f6" i],
html[data-tema="escuro"] [style*="background-color:#f3f4f6" i],
html[data-tema="escuro"] [style*="background:#eaf2f8" i],
html[data-tema="escuro"] [style*="background: #eaf2f8" i],
html[data-tema="escuro"] [style*="background-color: #eaf2f8" i],
html[data-tema="escuro"] [style*="background-color:#eaf2f8" i],
html[data-tema="escuro"] [style*="background:#f6f8fa" i],
html[data-tema="escuro"] [style*="background: #f6f8fa" i],
html[data-tema="escuro"] [style*="background-color:#f6f8fa" i],
html[data-tema="escuro"] [style*="background-color: #f6f8fa" i] {
    background-color: var(--social-sub) !important;
}
html[data-tema="escuro"] [style*="background:#fffbeb" i],
html[data-tema="escuro"] [style*="background: #fffbeb" i],
html[data-tema="escuro"] [style*="background-color:#fffbeb" i],
html[data-tema="escuro"] [style*="background-color: #fffbeb" i],
html[data-tema="escuro"] [style*="background: #fef3c7" i],
html[data-tema="escuro"] [style*="background:#fef3c7" i],
html[data-tema="escuro"] [style*="background-color: #fef3c7" i],
html[data-tema="escuro"] [style*="background-color:#fef3c7" i],
html[data-tema="escuro"] [style*="background:#fff7ed" i],
html[data-tema="escuro"] [style*="background: #fff7ed" i],
html[data-tema="escuro"] [style*="background-color:#fff7ed" i],
html[data-tema="escuro"] [style*="background-color: #fff7ed" i],
html[data-tema="escuro"] [style*="background: #fffde7" i],
html[data-tema="escuro"] [style*="background:#fffde7" i],
html[data-tema="escuro"] [style*="background-color: #fffde7" i],
html[data-tema="escuro"] [style*="background-color:#fffde7" i],
html[data-tema="escuro"] [style*="background:#fef9c3" i],
html[data-tema="escuro"] [style*="background: #fef9c3" i],
html[data-tema="escuro"] [style*="background-color: #fef9c3" i],
html[data-tema="escuro"] [style*="background-color:#fef9c3" i],
html[data-tema="escuro"] [style*="background: #fff3cd" i],
html[data-tema="escuro"] [style*="background:#fff3cd" i],
html[data-tema="escuro"] [style*="background-color: #fff3cd" i],
html[data-tema="escuro"] [style*="background-color:#fff3cd" i] {
    background-color: var(--aviso-bg) !important;
}
html[data-tema="escuro"] [style*="background: #fef2f2" i],
html[data-tema="escuro"] [style*="background:#fef2f2" i],
html[data-tema="escuro"] [style*="background-color: #fef2f2" i],
html[data-tema="escuro"] [style*="background-color:#fef2f2" i],
html[data-tema="escuro"] [style*="background: #fee2e2" i],
html[data-tema="escuro"] [style*="background:#fee2e2" i],
html[data-tema="escuro"] [style*="background-color:#fee2e2" i],
html[data-tema="escuro"] [style*="background-color: #fee2e2" i],
html[data-tema="escuro"] [style*="background: #fff1f2" i],
html[data-tema="escuro"] [style*="background:#fff1f2" i],
html[data-tema="escuro"] [style*="background-color:#fff1f2" i],
html[data-tema="escuro"] [style*="background-color: #fff1f2" i],
html[data-tema="escuro"] [style*="background:#ffe4e6" i],
html[data-tema="escuro"] [style*="background: #ffe4e6" i],
html[data-tema="escuro"] [style*="background-color:#ffe4e6" i],
html[data-tema="escuro"] [style*="background-color: #ffe4e6" i],
html[data-tema="escuro"] [style*="background: #f8d7da" i],
html[data-tema="escuro"] [style*="background:#f8d7da" i],
html[data-tema="escuro"] [style*="background-color:#f8d7da" i],
html[data-tema="escuro"] [style*="background-color: #f8d7da" i] {
    background-color: var(--erro-bg) !important;
}
html[data-tema="escuro"] [style*="background: #ecfdf5" i],
html[data-tema="escuro"] [style*="background:#ecfdf5" i],
html[data-tema="escuro"] [style*="background-color:#ecfdf5" i],
html[data-tema="escuro"] [style*="background-color: #ecfdf5" i],
html[data-tema="escuro"] [style*="background:#f0fdf4" i],
html[data-tema="escuro"] [style*="background: #f0fdf4" i],
html[data-tema="escuro"] [style*="background-color:#f0fdf4" i],
html[data-tema="escuro"] [style*="background-color: #f0fdf4" i],
html[data-tema="escuro"] [style*="background: #dcfce7" i],
html[data-tema="escuro"] [style*="background:#dcfce7" i],
html[data-tema="escuro"] [style*="background-color: #dcfce7" i],
html[data-tema="escuro"] [style*="background-color:#dcfce7" i],
html[data-tema="escuro"] [style*="background:#d1fae5" i],
html[data-tema="escuro"] [style*="background: #d1fae5" i],
html[data-tema="escuro"] [style*="background-color: #d1fae5" i],
html[data-tema="escuro"] [style*="background-color:#d1fae5" i],
html[data-tema="escuro"] [style*="background:#d4edda" i],
html[data-tema="escuro"] [style*="background: #d4edda" i],
html[data-tema="escuro"] [style*="background-color: #d4edda" i],
html[data-tema="escuro"] [style*="background-color:#d4edda" i] {
    background-color: var(--ok-bg) !important;
}
html[data-tema="escuro"] [style*="background: #f0f9ff" i],
html[data-tema="escuro"] [style*="background:#f0f9ff" i],
html[data-tema="escuro"] [style*="background-color: #f0f9ff" i],
html[data-tema="escuro"] [style*="background-color:#f0f9ff" i],
html[data-tema="escuro"] [style*="background: #eff6ff" i],
html[data-tema="escuro"] [style*="background:#eff6ff" i],
html[data-tema="escuro"] [style*="background-color: #eff6ff" i],
html[data-tema="escuro"] [style*="background-color:#eff6ff" i],
html[data-tema="escuro"] [style*="background: #e0f2fe" i],
html[data-tema="escuro"] [style*="background:#e0f2fe" i],
html[data-tema="escuro"] [style*="background-color: #e0f2fe" i],
html[data-tema="escuro"] [style*="background-color:#e0f2fe" i],
html[data-tema="escuro"] [style*="background: #dbeafe" i],
html[data-tema="escuro"] [style*="background:#dbeafe" i],
html[data-tema="escuro"] [style*="background-color:#dbeafe" i],
html[data-tema="escuro"] [style*="background-color: #dbeafe" i],
html[data-tema="escuro"] [style*="background:#e0f7fa" i],
html[data-tema="escuro"] [style*="background: #e0f7fa" i],
html[data-tema="escuro"] [style*="background-color:#e0f7fa" i],
html[data-tema="escuro"] [style*="background-color: #e0f7fa" i],
html[data-tema="escuro"] [style*="background:#d1ecf1" i],
html[data-tema="escuro"] [style*="background: #d1ecf1" i],
html[data-tema="escuro"] [style*="background-color: #d1ecf1" i],
html[data-tema="escuro"] [style*="background-color:#d1ecf1" i],
html[data-tema="escuro"] [style*="background:#e8f4fd" i],
html[data-tema="escuro"] [style*="background: #e8f4fd" i],
html[data-tema="escuro"] [style*="background-color: #e8f4fd" i],
html[data-tema="escuro"] [style*="background-color:#e8f4fd" i] {
    background-color: var(--info-bg) !important;
}
html[data-tema="escuro"] [style^="color: #1e293b" i],
html[data-tema="escuro"] [style*=";color: #1e293b" i],
html[data-tema="escuro"] [style*=" color: #1e293b" i],
html[data-tema="escuro"] [style^="color:#1e293b" i],
html[data-tema="escuro"] [style*=";color:#1e293b" i],
html[data-tema="escuro"] [style*=" color:#1e293b" i],
html[data-tema="escuro"] [style^="color: #0f172a" i],
html[data-tema="escuro"] [style*=";color: #0f172a" i],
html[data-tema="escuro"] [style*=" color: #0f172a" i],
html[data-tema="escuro"] [style^="color:#0f172a" i],
html[data-tema="escuro"] [style*=";color:#0f172a" i],
html[data-tema="escuro"] [style*=" color:#0f172a" i],
html[data-tema="escuro"] [style^="color:#334155" i],
html[data-tema="escuro"] [style*=";color:#334155" i],
html[data-tema="escuro"] [style*=" color:#334155" i],
html[data-tema="escuro"] [style^="color: #334155" i],
html[data-tema="escuro"] [style*=";color: #334155" i],
html[data-tema="escuro"] [style*=" color: #334155" i],
html[data-tema="escuro"] [style^="color:#333" i],
html[data-tema="escuro"] [style*=";color:#333" i],
html[data-tema="escuro"] [style*=" color:#333" i],
html[data-tema="escuro"] [style^="color: #333" i],
html[data-tema="escuro"] [style*=";color: #333" i],
html[data-tema="escuro"] [style*=" color: #333" i],
html[data-tema="escuro"] [style^="color:#333333" i],
html[data-tema="escuro"] [style*=";color:#333333" i],
html[data-tema="escuro"] [style*=" color:#333333" i],
html[data-tema="escuro"] [style^="color: #333333" i],
html[data-tema="escuro"] [style*=";color: #333333" i],
html[data-tema="escuro"] [style*=" color: #333333" i],
html[data-tema="escuro"] [style^="color: #212529" i],
html[data-tema="escuro"] [style*=";color: #212529" i],
html[data-tema="escuro"] [style*=" color: #212529" i],
html[data-tema="escuro"] [style^="color:#212529" i],
html[data-tema="escuro"] [style*=";color:#212529" i],
html[data-tema="escuro"] [style*=" color:#212529" i],
html[data-tema="escuro"] [style^="color: #000" i],
html[data-tema="escuro"] [style*=";color: #000" i],
html[data-tema="escuro"] [style*=" color: #000" i],
html[data-tema="escuro"] [style^="color:#000" i],
html[data-tema="escuro"] [style*=";color:#000" i],
html[data-tema="escuro"] [style*=" color:#000" i],
html[data-tema="escuro"] [style^="color:#000000" i],
html[data-tema="escuro"] [style*=";color:#000000" i],
html[data-tema="escuro"] [style*=" color:#000000" i],
html[data-tema="escuro"] [style^="color: #000000" i],
html[data-tema="escuro"] [style*=";color: #000000" i],
html[data-tema="escuro"] [style*=" color: #000000" i],
html[data-tema="escuro"] [style^="color:#222" i],
html[data-tema="escuro"] [style*=";color:#222" i],
html[data-tema="escuro"] [style*=" color:#222" i],
html[data-tema="escuro"] [style^="color: #222" i],
html[data-tema="escuro"] [style*=";color: #222" i],
html[data-tema="escuro"] [style*=" color: #222" i],
html[data-tema="escuro"] [style^="color: #111" i],
html[data-tema="escuro"] [style*=";color: #111" i],
html[data-tema="escuro"] [style*=" color: #111" i],
html[data-tema="escuro"] [style^="color:#111" i],
html[data-tema="escuro"] [style*=";color:#111" i],
html[data-tema="escuro"] [style*=" color:#111" i],
html[data-tema="escuro"] [style^="color:#1a202c" i],
html[data-tema="escuro"] [style*=";color:#1a202c" i],
html[data-tema="escuro"] [style*=" color:#1a202c" i],
html[data-tema="escuro"] [style^="color: #1a202c" i],
html[data-tema="escuro"] [style*=";color: #1a202c" i],
html[data-tema="escuro"] [style*=" color: #1a202c" i],
html[data-tema="escuro"] [style^="color:#2d3748" i],
html[data-tema="escuro"] [style*=";color:#2d3748" i],
html[data-tema="escuro"] [style*=" color:#2d3748" i],
html[data-tema="escuro"] [style^="color: #2d3748" i],
html[data-tema="escuro"] [style*=";color: #2d3748" i],
html[data-tema="escuro"] [style*=" color: #2d3748" i] {
    color: var(--social-text) !important;
}
html[data-tema="escuro"] [style^="color:#475569" i],
html[data-tema="escuro"] [style*=";color:#475569" i],
html[data-tema="escuro"] [style*=" color:#475569" i],
html[data-tema="escuro"] [style^="color: #475569" i],
html[data-tema="escuro"] [style*=";color: #475569" i],
html[data-tema="escuro"] [style*=" color: #475569" i],
html[data-tema="escuro"] [style^="color:#444" i],
html[data-tema="escuro"] [style*=";color:#444" i],
html[data-tema="escuro"] [style*=" color:#444" i],
html[data-tema="escuro"] [style^="color: #444" i],
html[data-tema="escuro"] [style*=";color: #444" i],
html[data-tema="escuro"] [style*=" color: #444" i],
html[data-tema="escuro"] [style^="color: #555" i],
html[data-tema="escuro"] [style*=";color: #555" i],
html[data-tema="escuro"] [style*=" color: #555" i],
html[data-tema="escuro"] [style^="color:#555" i],
html[data-tema="escuro"] [style*=";color:#555" i],
html[data-tema="escuro"] [style*=" color:#555" i],
html[data-tema="escuro"] [style^="color:#4a5568" i],
html[data-tema="escuro"] [style*=";color:#4a5568" i],
html[data-tema="escuro"] [style*=" color:#4a5568" i],
html[data-tema="escuro"] [style^="color: #4a5568" i],
html[data-tema="escuro"] [style*=";color: #4a5568" i],
html[data-tema="escuro"] [style*=" color: #4a5568" i],
html[data-tema="escuro"] [style^="color: #374151" i],
html[data-tema="escuro"] [style*=";color: #374151" i],
html[data-tema="escuro"] [style*=" color: #374151" i],
html[data-tema="escuro"] [style^="color:#374151" i],
html[data-tema="escuro"] [style*=";color:#374151" i],
html[data-tema="escuro"] [style*=" color:#374151" i] {
    color: var(--social-text-2) !important;
}
html[data-tema="escuro"] [style^="color:#64748b" i],
html[data-tema="escuro"] [style*=";color:#64748b" i],
html[data-tema="escuro"] [style*=" color:#64748b" i],
html[data-tema="escuro"] [style^="color: #64748b" i],
html[data-tema="escuro"] [style*=";color: #64748b" i],
html[data-tema="escuro"] [style*=" color: #64748b" i],
html[data-tema="escuro"] [style^="color:#6c757d" i],
html[data-tema="escuro"] [style*=";color:#6c757d" i],
html[data-tema="escuro"] [style*=" color:#6c757d" i],
html[data-tema="escuro"] [style^="color: #6c757d" i],
html[data-tema="escuro"] [style*=";color: #6c757d" i],
html[data-tema="escuro"] [style*=" color: #6c757d" i],
html[data-tema="escuro"] [style^="color:#666" i],
html[data-tema="escuro"] [style*=";color:#666" i],
html[data-tema="escuro"] [style*=" color:#666" i],
html[data-tema="escuro"] [style^="color: #666" i],
html[data-tema="escuro"] [style*=";color: #666" i],
html[data-tema="escuro"] [style*=" color: #666" i],
html[data-tema="escuro"] [style^="color:#666666" i],
html[data-tema="escuro"] [style*=";color:#666666" i],
html[data-tema="escuro"] [style*=" color:#666666" i],
html[data-tema="escuro"] [style^="color: #666666" i],
html[data-tema="escuro"] [style*=";color: #666666" i],
html[data-tema="escuro"] [style*=" color: #666666" i],
html[data-tema="escuro"] [style^="color:#777" i],
html[data-tema="escuro"] [style*=";color:#777" i],
html[data-tema="escuro"] [style*=" color:#777" i],
html[data-tema="escuro"] [style^="color: #777" i],
html[data-tema="escuro"] [style*=";color: #777" i],
html[data-tema="escuro"] [style*=" color: #777" i],
html[data-tema="escuro"] [style^="color: #888" i],
html[data-tema="escuro"] [style*=";color: #888" i],
html[data-tema="escuro"] [style*=" color: #888" i],
html[data-tema="escuro"] [style^="color:#888" i],
html[data-tema="escuro"] [style*=";color:#888" i],
html[data-tema="escuro"] [style*=" color:#888" i],
html[data-tema="escuro"] [style^="color: #6b7280" i],
html[data-tema="escuro"] [style*=";color: #6b7280" i],
html[data-tema="escuro"] [style*=" color: #6b7280" i],
html[data-tema="escuro"] [style^="color:#6b7280" i],
html[data-tema="escuro"] [style*=";color:#6b7280" i],
html[data-tema="escuro"] [style*=" color:#6b7280" i],
html[data-tema="escuro"] [style^="color:#718096" i],
html[data-tema="escuro"] [style*=";color:#718096" i],
html[data-tema="escuro"] [style*=" color:#718096" i],
html[data-tema="escuro"] [style^="color: #718096" i],
html[data-tema="escuro"] [style*=";color: #718096" i],
html[data-tema="escuro"] [style*=" color: #718096" i] {
    color: var(--social-gray) !important;
}
html[data-tema="escuro"] [style^="color:#204460" i],
html[data-tema="escuro"] [style*=";color:#204460" i],
html[data-tema="escuro"] [style*=" color:#204460" i],
html[data-tema="escuro"] [style^="color: #204460" i],
html[data-tema="escuro"] [style*=";color: #204460" i],
html[data-tema="escuro"] [style*=" color: #204460" i],
html[data-tema="escuro"] [style^="color: #1a3850" i],
html[data-tema="escuro"] [style*=";color: #1a3850" i],
html[data-tema="escuro"] [style*=" color: #1a3850" i],
html[data-tema="escuro"] [style^="color:#1a3850" i],
html[data-tema="escuro"] [style*=";color:#1a3850" i],
html[data-tema="escuro"] [style*=" color:#1a3850" i],
html[data-tema="escuro"] [style^="color:#0a58ca" i],
html[data-tema="escuro"] [style*=";color:#0a58ca" i],
html[data-tema="escuro"] [style*=" color:#0a58ca" i],
html[data-tema="escuro"] [style^="color: #0a58ca" i],
html[data-tema="escuro"] [style*=";color: #0a58ca" i],
html[data-tema="escuro"] [style*=" color: #0a58ca" i],
html[data-tema="escuro"] [style^="color: #0d6efd" i],
html[data-tema="escuro"] [style*=";color: #0d6efd" i],
html[data-tema="escuro"] [style*=" color: #0d6efd" i],
html[data-tema="escuro"] [style^="color:#0d6efd" i],
html[data-tema="escuro"] [style*=";color:#0d6efd" i],
html[data-tema="escuro"] [style*=" color:#0d6efd" i],
html[data-tema="escuro"] [style^="color: #1e3a5f" i],
html[data-tema="escuro"] [style*=";color: #1e3a5f" i],
html[data-tema="escuro"] [style*=" color: #1e3a5f" i],
html[data-tema="escuro"] [style^="color:#1e3a5f" i],
html[data-tema="escuro"] [style*=";color:#1e3a5f" i],
html[data-tema="escuro"] [style*=" color:#1e3a5f" i] {
    color: var(--titulo-escuro) !important;
}
html[data-tema="escuro"] [style^="color: #b91c1c" i],
html[data-tema="escuro"] [style*=";color: #b91c1c" i],
html[data-tema="escuro"] [style*=" color: #b91c1c" i],
html[data-tema="escuro"] [style^="color:#b91c1c" i],
html[data-tema="escuro"] [style*=";color:#b91c1c" i],
html[data-tema="escuro"] [style*=" color:#b91c1c" i],
html[data-tema="escuro"] [style^="color: #dc2626" i],
html[data-tema="escuro"] [style*=";color: #dc2626" i],
html[data-tema="escuro"] [style*=" color: #dc2626" i],
html[data-tema="escuro"] [style^="color:#dc2626" i],
html[data-tema="escuro"] [style*=";color:#dc2626" i],
html[data-tema="escuro"] [style*=" color:#dc2626" i],
html[data-tema="escuro"] [style^="color:#991b1b" i],
html[data-tema="escuro"] [style*=";color:#991b1b" i],
html[data-tema="escuro"] [style*=" color:#991b1b" i],
html[data-tema="escuro"] [style^="color: #991b1b" i],
html[data-tema="escuro"] [style*=";color: #991b1b" i],
html[data-tema="escuro"] [style*=" color: #991b1b" i],
html[data-tema="escuro"] [style^="color:#dc3545" i],
html[data-tema="escuro"] [style*=";color:#dc3545" i],
html[data-tema="escuro"] [style*=" color:#dc3545" i],
html[data-tema="escuro"] [style^="color: #dc3545" i],
html[data-tema="escuro"] [style*=";color: #dc3545" i],
html[data-tema="escuro"] [style*=" color: #dc3545" i] {
    color: var(--erro) !important;
}
html[data-tema="escuro"] [style^="color:#15803d" i],
html[data-tema="escuro"] [style*=";color:#15803d" i],
html[data-tema="escuro"] [style*=" color:#15803d" i],
html[data-tema="escuro"] [style^="color: #15803d" i],
html[data-tema="escuro"] [style*=";color: #15803d" i],
html[data-tema="escuro"] [style*=" color: #15803d" i],
html[data-tema="escuro"] [style^="color: #16a34a" i],
html[data-tema="escuro"] [style*=";color: #16a34a" i],
html[data-tema="escuro"] [style*=" color: #16a34a" i],
html[data-tema="escuro"] [style^="color:#16a34a" i],
html[data-tema="escuro"] [style*=";color:#16a34a" i],
html[data-tema="escuro"] [style*=" color:#16a34a" i],
html[data-tema="escuro"] [style^="color:#166534" i],
html[data-tema="escuro"] [style*=";color:#166534" i],
html[data-tema="escuro"] [style*=" color:#166534" i],
html[data-tema="escuro"] [style^="color: #166534" i],
html[data-tema="escuro"] [style*=";color: #166534" i],
html[data-tema="escuro"] [style*=" color: #166534" i],
html[data-tema="escuro"] [style^="color:#198754" i],
html[data-tema="escuro"] [style*=";color:#198754" i],
html[data-tema="escuro"] [style*=" color:#198754" i],
html[data-tema="escuro"] [style^="color: #198754" i],
html[data-tema="escuro"] [style*=";color: #198754" i],
html[data-tema="escuro"] [style*=" color: #198754" i],
html[data-tema="escuro"] [style^="color:#059669" i],
html[data-tema="escuro"] [style*=";color:#059669" i],
html[data-tema="escuro"] [style*=" color:#059669" i],
html[data-tema="escuro"] [style^="color: #059669" i],
html[data-tema="escuro"] [style*=";color: #059669" i],
html[data-tema="escuro"] [style*=" color: #059669" i],
html[data-tema="escuro"] [style^="color:#047857" i],
html[data-tema="escuro"] [style*=";color:#047857" i],
html[data-tema="escuro"] [style*=" color:#047857" i],
html[data-tema="escuro"] [style^="color: #047857" i],
html[data-tema="escuro"] [style*=";color: #047857" i],
html[data-tema="escuro"] [style*=" color: #047857" i] {
    color: var(--ok) !important;
}
html[data-tema="escuro"] [style^="color: #b45309" i],
html[data-tema="escuro"] [style*=";color: #b45309" i],
html[data-tema="escuro"] [style*=" color: #b45309" i],
html[data-tema="escuro"] [style^="color:#b45309" i],
html[data-tema="escuro"] [style*=";color:#b45309" i],
html[data-tema="escuro"] [style*=" color:#b45309" i],
html[data-tema="escuro"] [style^="color: #92400e" i],
html[data-tema="escuro"] [style*=";color: #92400e" i],
html[data-tema="escuro"] [style*=" color: #92400e" i],
html[data-tema="escuro"] [style^="color:#92400e" i],
html[data-tema="escuro"] [style*=";color:#92400e" i],
html[data-tema="escuro"] [style*=" color:#92400e" i],
html[data-tema="escuro"] [style^="color: #d97706" i],
html[data-tema="escuro"] [style*=";color: #d97706" i],
html[data-tema="escuro"] [style*=" color: #d97706" i],
html[data-tema="escuro"] [style^="color:#d97706" i],
html[data-tema="escuro"] [style*=";color:#d97706" i],
html[data-tema="escuro"] [style*=" color:#d97706" i],
html[data-tema="escuro"] [style^="color:#a16207" i],
html[data-tema="escuro"] [style*=";color:#a16207" i],
html[data-tema="escuro"] [style*=" color:#a16207" i],
html[data-tema="escuro"] [style^="color: #a16207" i],
html[data-tema="escuro"] [style*=";color: #a16207" i],
html[data-tema="escuro"] [style*=" color: #a16207" i],
html[data-tema="escuro"] [style^="color:#854d0e" i],
html[data-tema="escuro"] [style*=";color:#854d0e" i],
html[data-tema="escuro"] [style*=" color:#854d0e" i],
html[data-tema="escuro"] [style^="color: #854d0e" i],
html[data-tema="escuro"] [style*=";color: #854d0e" i],
html[data-tema="escuro"] [style*=" color: #854d0e" i] {
    color: var(--aviso) !important;
}
html[data-tema="escuro"] [style^="color: #0369a1" i],
html[data-tema="escuro"] [style*=";color: #0369a1" i],
html[data-tema="escuro"] [style*=" color: #0369a1" i],
html[data-tema="escuro"] [style^="color:#0369a1" i],
html[data-tema="escuro"] [style*=";color:#0369a1" i],
html[data-tema="escuro"] [style*=" color:#0369a1" i],
html[data-tema="escuro"] [style^="color:#0284c7" i],
html[data-tema="escuro"] [style*=";color:#0284c7" i],
html[data-tema="escuro"] [style*=" color:#0284c7" i],
html[data-tema="escuro"] [style^="color: #0284c7" i],
html[data-tema="escuro"] [style*=";color: #0284c7" i],
html[data-tema="escuro"] [style*=" color: #0284c7" i],
html[data-tema="escuro"] [style^="color:#075985" i],
html[data-tema="escuro"] [style*=";color:#075985" i],
html[data-tema="escuro"] [style*=" color:#075985" i],
html[data-tema="escuro"] [style^="color: #075985" i],
html[data-tema="escuro"] [style*=";color: #075985" i],
html[data-tema="escuro"] [style*=" color: #075985" i],
html[data-tema="escuro"] [style^="color: #0c4a6e" i],
html[data-tema="escuro"] [style*=";color: #0c4a6e" i],
html[data-tema="escuro"] [style*=" color: #0c4a6e" i],
html[data-tema="escuro"] [style^="color:#0c4a6e" i],
html[data-tema="escuro"] [style*=";color:#0c4a6e" i],
html[data-tema="escuro"] [style*=" color:#0c4a6e" i] {
    color: var(--info) !important;
}
html[data-tema="escuro"] [style*="#e2e8f0" i],
html[data-tema="escuro"] [style*="#f1f5f9" i],
html[data-tema="escuro"] [style*="#eee" i],
html[data-tema="escuro"] [style*="#eeeeee" i],
html[data-tema="escuro"] [style*="#ccc" i],
html[data-tema="escuro"] [style*="#cccccc" i],
html[data-tema="escuro"] [style*="#dee2e6" i],
html[data-tema="escuro"] [style*="#edf2f7" i],
html[data-tema="escuro"] [style*="#cbd5e1" i],
html[data-tema="escuro"] [style*="#ddd" i],
html[data-tema="escuro"] [style*="#e5e7eb" i],
html[data-tema="escuro"] [style*="#e9ecef" i] {
    border-color: var(--social-line) !important;
}

/* Select2 (busca em listas) no modo noturno */
html[data-tema="escuro"] .select2-container--bootstrap-5 .select2-selection,
html[data-tema="escuro"] .select2-container--bootstrap-5 .select2-dropdown,
html[data-tema="escuro"] .select2-container--default .select2-selection--single,
html[data-tema="escuro"] .select2-container--default .select2-selection--multiple,
html[data-tema="escuro"] .select2-dropdown {
    background-color: #0E1626; color: var(--social-text); border-color: var(--social-line-2);
}
html[data-tema="escuro"] .select2-container .select2-selection__rendered,
html[data-tema="escuro"] .select2-results__option { color: var(--social-text); }
html[data-tema="escuro"] .select2-container--bootstrap-5 .select2-dropdown .select2-search .select2-search__field,
html[data-tema="escuro"] .select2-search__field { background-color: var(--social-white); color: var(--social-text); border-color: var(--social-line-2); }
html[data-tema="escuro"] .select2-results__option--highlighted,
html[data-tema="escuro"] .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted { background-color: var(--social-sub); color: #fff; }

/* Mapas (Leaflet): controles e balões acompanham; os blocos do mapa ficam como estão. */
html[data-tema="escuro"] .leaflet-popup-content-wrapper,
html[data-tema="escuro"] .leaflet-popup-tip,
html[data-tema="escuro"] .leaflet-bar a { background: var(--social-white); color: var(--social-text); }
