/* ══════════════════════════════════════════════════════════════
   MODO NOTURNO — overrides aplicados quando <html data-theme="dark">
   Abordagem pragmática: o sistema não usa variáveis CSS em lugar
   nenhum, então em vez de reescrever ~20 arquivos CSS, este arquivo
   sobrescreve só as áreas de maior tráfego visual (estrutura do
   layout, cards, tabelas, formulários, alertas, modais, hovers).
   Carregado por último (offsetSetStylesheet index 20, com cache
   busting), então as regras aqui já vencem por ordem — o seletor
   de atributo [data-theme="dark"] garante especificidade extra
   como reforço.

   PALETA: os tokens abaixo (--dk-*) são a fonte única de verdade
   das cores do modo escuro. Qualquer ajuste de tom deve mudar o
   token, não os valores individuais espalhados pelo arquivo.
   ═══════════════════════════════════════════════════════════════ */

:root[data-theme="dark"] {
    /* Superfícies, do fundo da página à mais elevada */
    --dk-bg:        #16171a;
    --dk-surface:   #1c1e21;
    --dk-card:      #232529;
    --dk-card-hi:   #2b2e33;
    --dk-card-hi-2: #33363c;
    --dk-border:    #34373f;
    --dk-border-hi: #464a54;

    /* Texto */
    --dk-text:       #edeef0;
    --dk-text-2:     #c6c9d1;
    --dk-text-muted: #93979f;
    --dk-text-faint: #5e626c;

    /* Acento (mesmo vermelho da marca, ajustado pra ler bem no escuro) */
    --dk-accent:      #ff6b60;
    --dk-accent-soft: rgba(230,51,41,.16);
    --dk-accent-bord: #5a3330;
}

[data-theme="dark"] body {
    background: var(--dk-bg);
    color: var(--dk-text);
}

/* #topo já é escuro (#111) por padrão — não precisa de override.
   #menu (sidebar) é branco por padrão — precisa escurecer. */
[data-theme="dark"] #menu {
    background: var(--dk-surface);
    border-right-color: var(--dk-border);
}
[data-theme="dark"] #menu .menu-section-title { color: var(--dk-text-faint); }
[data-theme="dark"] #menu a,
[data-theme="dark"] #menu .menu-link { color: var(--dk-text-2); }
[data-theme="dark"] #menu ul li a:hover,
[data-theme="dark"] #menu a:hover,
[data-theme="dark"] #menu .menu-link:hover {
    background: var(--dk-accent-soft);
    color: var(--dk-accent);
    border-left-color: var(--dk-accent-bord);
}
[data-theme="dark"] #menu ul li a:hover i,
[data-theme="dark"] #menu a:hover i { color: var(--dk-accent); }
[data-theme="dark"] #menu ul li a i { color: var(--dk-text-faint); }
[data-theme="dark"] #menu ul li.ativo a {
    background: var(--dk-accent-soft);
    color: var(--dk-accent);
    border-left-color: var(--dk-accent);
}
[data-theme="dark"] #menu ul li.ativo a i { color: var(--dk-accent); }
[data-theme="dark"] #menu .menu-divider { background: var(--dk-border-hi); }
[data-theme="dark"] #btn-suporte,
[data-theme="dark"] #btn-tema-menu {
    background: var(--dk-card); border-color: var(--dk-border); color: var(--dk-text-2);
}
[data-theme="dark"] #btn-tema-menu:hover {
    background: var(--dk-accent-soft); color: var(--dk-accent); border-color: var(--dk-accent-bord);
}
[data-theme="dark"] #btn-tema-menu:hover i { color: var(--dk-accent); }
[data-theme="dark"] #menu-versao {
    background: var(--dk-card); border-color: var(--dk-border); color: var(--dk-text-muted);
}
[data-theme="dark"] #menu-versao:hover {
    background: var(--dk-accent-soft); color: var(--dk-accent); border-color: var(--dk-accent-bord);
}
[data-theme="dark"] #menu-footer { border-top-color: var(--dk-border); }
[data-theme="dark"] .logo-inova-light { display: none !important; }
/* A logo clara (inovaccio-black.png) tem margem transparente generosa em volta
   da marca — na prática ocupa só ~53px de largura visível a 22px de altura de
   canvas. A logo branca já vem recortada sem essa margem, então para ficar do
   mesmo tamanho aparente ela precisa ser fixada pela LARGURA (não altura). */
[data-theme="dark"] .logo-inova-dark {
    display: inline-block !important;
    width: 52px !important;
    height: auto !important;
}

/* Sub-barra mobile */
[data-theme="dark"] #topo-sub { background: var(--dk-surface); border-bottom-color: var(--dk-border); }
[data-theme="dark"] .ts-nome { color: var(--dk-text); }
[data-theme="dark"] #topo-sub .ts-sair:hover { background: var(--dk-card-hi); }

/* Cabeçalho do menu mobile (drawer) */
[data-theme="dark"] #menu-user-header { background: var(--dk-surface); border-bottom-color: var(--dk-border); }
[data-theme="dark"] #menu-user-header .muh-nome { color: var(--dk-text); }
[data-theme="dark"] #menu-user-header .muh-role { color: var(--dk-text-muted); }

/* ── Cards / painéis genéricos (admin.css, dashboard.css) ── */
[data-theme="dark"] .card,
[data-theme="dark"] .kpi-card,
[data-theme="dark"] .chart-card,
[data-theme="dark"] .com-detalhe,
[data-theme="dark"] .com-chat,
[data-theme="dark"] .com-status-panel,
[data-theme="dark"] .modal-box {
    background: var(--dk-card);
    border-color: var(--dk-border);
    box-shadow: 0 1px 4px rgba(0,0,0,.4);
}
/* .card recebe !important: várias telas (dashboard) têm
   style="border:1px solid #f0f0f0;background:#fff" inline no próprio
   elemento .card, que sempre vence sobre uma classe externa sem !important. */
[data-theme="dark"] .card {
    background: var(--dk-card) !important;
    border-color: var(--dk-border) !important;
}
[data-theme="dark"] .card:hover { box-shadow: 0 4px 18px rgba(0,0,0,.5); }
[data-theme="dark"] .kpi-card:hover { box-shadow: 0 6px 22px rgba(0,0,0,.55); }
[data-theme="dark"] .com-descricao {
    background: var(--dk-card-hi);
    color: var(--dk-text-2);
}
[data-theme="dark"] .card-header,
[data-theme="dark"] .card-header-clean,
[data-theme="dark"] .com-status-panel .panel-title {
    border-bottom-color: var(--dk-border-hi);
}
/* Seletor de franquias (pills) em comunicados/ver — cor via style inline,
   sem classe própria. Distingue pill ativa (borda/texto #e63329 no inline)
   da inativa pelo próprio valor que já vem no style. */
[data-theme="dark"] .com-status-panel a[style*="border-radius:999px"] {
    background: var(--dk-card-hi) !important;
    border-color: var(--dk-border-hi) !important;
    color: var(--dk-text-2) !important;
}
[data-theme="dark"] .com-status-panel a[style*="border-radius:999px"][style*="#e63329"] {
    background: var(--dk-accent-soft) !important;
    border-color: var(--dk-accent-bord) !important;
    color: var(--dk-accent) !important;
}
[data-theme="dark"] .pill-pendente-dot { border-color: var(--dk-card-hi) !important; }
[data-theme="dark"] .kpi-number,
[data-theme="dark"] .card-title,
[data-theme="dark"] .card-title-sm,
[data-theme="dark"] .chart-title {
    color: var(--dk-text);
}
[data-theme="dark"] .kpi-label,
[data-theme="dark"] .kpi-desc {
    color: var(--dk-text-muted);
}
[data-theme="dark"] .kpi-divider { background: var(--dk-border-hi); }
[data-theme="dark"] .dash-item { border-color: var(--dk-border-hi); }
[data-theme="dark"] .dash-item-title,
[data-theme="dark"] .dash-item-title a { color: var(--dk-text-2); }
[data-theme="dark"] .dash-item-title a:hover { color: var(--dk-accent); }
[data-theme="dark"] .dash-item-sub { color: var(--dk-text-muted); }
[data-theme="dark"] .kpi-link:hover,
[data-theme="dark"] .card-link-sm:hover { color: var(--dk-accent); }
[data-theme="dark"] .prog-wrap { background: var(--dk-border); }
/* Trilhos de barra de progresso com estilo inline (mensagem, materiais-
   apoio, dashboards — mesmo papel do .prog-wrap acima, só que sem classe) */
[data-theme="dark"] [style*="background:#f2f2f2;border-radius"],
[data-theme="dark"] [style*="background:#f0f0f0;border-radius"],
[data-theme="dark"] [style*="background:#e8f5e9;border-radius"] {
    background: var(--dk-border) !important;
}

/* ── Título de página (todas as telas — Comunicados, Boletos,
   Materiais, Usuários, Franqueados, Logs, Perfil, etc.) ── */
[data-theme="dark"] .page-header .page-title h1 { color: var(--dk-text); }
[data-theme="dark"] .page-header .page-title span { color: var(--dk-text-muted); }
/* Dashboard tem um <h1> próprio fora do padrão .page-header */
[data-theme="dark"] h1[style*="color:#111"] { color: var(--dk-text) !important; }

/* ── Tabelas ── */
[data-theme="dark"] .data-table thead th {
    color: var(--dk-text-muted);
    border-bottom-color: var(--dk-border-hi);
    background: transparent;
}
[data-theme="dark"] .data-table tbody td {
    border-bottom-color: var(--dk-border-hi);
    color: var(--dk-text-2);
}
[data-theme="dark"] .data-table tbody tr:hover td { background: var(--dk-card-hi); }
[data-theme="dark"] .data-table td code { background: var(--dk-card-hi) !important; color: var(--dk-text); }
[data-theme="dark"] .table-footer { color: var(--dk-text-muted); }

/* ── Botões / formulários ── */
[data-theme="dark"] .btn-secondary {
    background: var(--dk-card-hi); color: var(--dk-text-2); border-color: var(--dk-border-hi);
}
[data-theme="dark"] .btn-secondary:hover { background: var(--dk-card-hi-2); }
[data-theme="dark"] .btn-danger { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .btn-danger:hover { background: rgba(230,51,41,.26); }
[data-theme="dark"] .form-group label { color: var(--dk-text-muted); }
[data-theme="dark"] .form-group .hint { color: var(--dk-text-faint); }
[data-theme="dark"] .form-card { background: var(--dk-card) !important; }
[data-theme="dark"] .form-divider { background: var(--dk-border); }
[data-theme="dark"] input,
[data-theme="dark"] select,
[data-theme="dark"] textarea {
    background: var(--dk-surface);
    border-color: var(--dk-border-hi);
    color: var(--dk-text);
    /* Sem isso, o navegador continua desenhando os ícones nativos do
       campo (calendário de type="date"/"month", relógio de type="time",
       setas de type="number", seta do <select>) na aparência clara —
       ficam pretos sobre o fundo escuro do input e somem. color-scheme
       avisa o navegador para usar a paleta escura nesses controles
       nativos, sem precisar de filtro/hack por tipo de campo. */
    color-scheme: dark;
}
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder { color: var(--dk-text-faint); }
[data-theme="dark"] input:disabled,
[data-theme="dark"] select:disabled,
[data-theme="dark"] textarea:disabled { background: var(--dk-card-hi); color: var(--dk-text-muted); }
/* Campos "somente leitura" com estilo inline (Criado por, Data de Criação,
   etc. — comunicados, perfil, usuários) — o inline vence a regra acima */
[data-theme="dark"] input[style*="background:#f5f5f5;color:#aaa"] {
    background: var(--dk-card-hi) !important;
    color: var(--dk-text-muted) !important;
}
[data-theme="dark"] .empty-state { color: var(--dk-text-faint); }
[data-theme="dark"] .empty-state i { color: var(--dk-border-hi); }
[data-theme="dark"] .filtro-label { color: var(--dk-text-muted); }
[data-theme="dark"] .filtro-select { background: var(--dk-surface); border-color: var(--dk-border-hi); color: var(--dk-text); color-scheme: dark; }

/* ── Alertas ── */
[data-theme="dark"] .alert-success { background: rgba(76,175,80,.14); }
[data-theme="dark"] .alert-error   { background: rgba(230,51,41,.14); }
[data-theme="dark"] .alert-warning { background: rgba(255,193,7,.14); }

/* ── Modal genérico (admin.css) ── */
[data-theme="dark"] .modal-overlay { background: rgba(0,0,0,.7); }
[data-theme="dark"] .modal-box h3 { color: var(--dk-text); }
[data-theme="dark"] .modal-box p  { color: var(--dk-text-muted); }

/* ── Dialog custom window.portal.confirm()/.alert() (usado em
   todo o sistema para excluir/confirmar ações) ── */
[data-theme="dark"] #portal-box {
    background: var(--dk-card);
    box-shadow: 0 24px 64px rgba(0,0,0,.55), 0 4px 16px rgba(0,0,0,.35);
}
[data-theme="dark"] #portal-title { color: var(--dk-text); }
[data-theme="dark"] #portal-msg   { color: var(--dk-text-muted); }
[data-theme="dark"] #portal-warn  { background: rgba(255,193,7,.12); border-color: rgba(255,193,7,.3); color: #ffd873; }
[data-theme="dark"] #portal-btn-cancel { background: var(--dk-card-hi); color: var(--dk-text-2); }
[data-theme="dark"] #portal-btn-cancel:hover { background: var(--dk-card-hi-2); }

/* ── Modal Suporte & Contato ── */
[data-theme="dark"] #modal-suporte { background: var(--dk-card); box-shadow: 0 20px 60px rgba(0,0,0,.55); }
[data-theme="dark"] #modal-suporte h3 { color: var(--dk-text); }
[data-theme="dark"] #modal-suporte .modal-sub { color: var(--dk-text-muted); }
[data-theme="dark"] #modal-suporte .modal-fechar { color: var(--dk-text-faint); }
[data-theme="dark"] #modal-suporte .modal-fechar:hover { color: var(--dk-text-2); }
[data-theme="dark"] #modal-suporte .contato-item { background: var(--dk-surface); border-color: var(--dk-border); }
[data-theme="dark"] #modal-suporte .contato-item:hover { background: var(--dk-accent-soft); border-color: var(--dk-accent-bord); }
[data-theme="dark"] #modal-suporte .ci-icone { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] #modal-suporte .contato-item:hover .ci-icone { background: rgba(230,51,41,.22); color: var(--dk-accent); }
[data-theme="dark"] #modal-suporte .ci-label { color: var(--dk-text-faint); }
[data-theme="dark"] #modal-suporte .ci-valor { color: var(--dk-text-2); }

/* ── Dashboard: ícones e chips dos KPIs ── */
[data-theme="dark"] .kpi-icon.red    { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .kpi-icon.pink,
[data-theme="dark"] .kpi-icon.wine   { background: rgba(194,24,91,.2); color: #f48fb1; }
[data-theme="dark"] .kpi-icon.dark   { background: var(--dk-card-hi); color: var(--dk-text-2); }
[data-theme="dark"] .kpi-icon.orange { background: rgba(230,81,0,.2); color: #ffb74d; }

[data-theme="dark"] .kpi-mini-label,
[data-theme="dark"] .kpi-mini-text { color: var(--dk-text-muted); }
[data-theme="dark"] .kpi-mini-orange { background: rgba(230,81,0,.18); }
[data-theme="dark"] .kpi-mini-orange .kpi-mini-num { color: #ffb74d; }
[data-theme="dark"] .kpi-mini-red { background: var(--dk-accent-soft); }
[data-theme="dark"] .kpi-mini-red .kpi-mini-num { color: #ff8a80; }
[data-theme="dark"] .kpi-mini-green { background: rgba(46,125,50,.2); }
[data-theme="dark"] .kpi-mini-green .kpi-mini-num { color: #81c784; }
[data-theme="dark"] .kpi-mini-gray { background: var(--dk-card-hi); }
[data-theme="dark"] .kpi-mini-gray .kpi-mini-num { color: var(--dk-text-2); }
[data-theme="dark"] .kpi-mini-pink { background: rgba(194,24,91,.2); }
[data-theme="dark"] .kpi-mini-pink .kpi-mini-num { color: #f48fb1; }

/* Reforço: números no centro dos donuts (Chart.js) usam <span
   style="color:#111"> sem fundo próprio — o seletor genérico logo
   abaixo já cobre, isso aqui é um alvo direto extra de segurança. */
[data-theme="dark"] .chart-card span[style*="color:#111"] { color: var(--dk-text) !important; }

[data-theme="dark"] .rank-nome { color: var(--dk-text-2); }
[data-theme="dark"] .rank-bar-wrap { background: var(--dk-border); }
[data-theme="dark"] .rank-item { border-color: var(--dk-border-hi); }
[data-theme="dark"] .log-desc  { color: var(--dk-text-2); }
[data-theme="dark"] .log-meta  { color: var(--dk-text-faint); }
[data-theme="dark"] .log-item  { border-color: var(--dk-border-hi); }
[data-theme="dark"] .welcome-banner { border-color: var(--dk-border); }
[data-theme="dark"] .welcome-text p { color: var(--dk-text-muted); }

/* ── Status pills / badges (compartilhados por vários módulos) ──
   Convertidos para "fundo escurecido + texto claro" em vez do
   par claro/escuro do modo dia, seguindo a mesma fórmula em tudo. */
[data-theme="dark"] .pill-criado,
[data-theme="dark"] .pill-aberta,
[data-theme="dark"] .badge-admin       { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .pill-lido,
[data-theme="dark"] .pill-em_analise,
[data-theme="dark"] .bol-st-baixado    { background: rgba(194,24,91,.2); color: #f48fb1; }
[data-theme="dark"] .pill-baixado      { background: rgba(106,27,154,.22); color: #ce93d8; }
[data-theme="dark"] .pill-concluido,
[data-theme="dark"] .pill-enviado,
[data-theme="dark"] .bol-st-concluido,
[data-theme="dark"] .badge-ativo       { background: rgba(46,125,50,.2); color: #81c784; }
[data-theme="dark"] .pill-em_andamento,
[data-theme="dark"] .bol-st-lido,
[data-theme="dark"] .badge-gerente     { background: rgba(230,81,0,.2); color: #ffb74d; }
[data-theme="dark"] .pill-cancelada,
[data-theme="dark"] .badge-inativo     { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .pill-em_solucao,
[data-theme="dark"] .bol-st-enviado,
[data-theme="dark"] .badge-franq       { background: rgba(26,86,196,.22); color: #64b5f6; }
[data-theme="dark"] .pill-modificado,
[data-theme="dark"] .bol-st-modificado { background: rgba(245,127,23,.2); color: #ffca28; border-color: rgba(255,202,40,.3); }
[data-theme="dark"] .status-badge.status-criado     { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .status-badge.status-lido       { background: rgba(230,81,0,.2); color: #ffb74d; }
[data-theme="dark"] .status-badge.status-modificado { background: rgba(245,127,23,.2); color: #ffca28; border-color: rgba(255,202,40,.3); }
[data-theme="dark"] .status-badge.status-em_solucao { background: rgba(194,24,91,.2); color: #f48fb1; }
[data-theme="dark"] .status-badge.status-em_analise { background: rgba(106,27,154,.22); color: #ce93d8; }
[data-theme="dark"] .status-badge.status-concluido  { background: rgba(46,125,50,.2); color: #81c784; }

/* ── Seletor de franquias (formulário de comunicado) ── */
[data-theme="dark"] .franq-select {
    background: var(--dk-surface);
    border-color: var(--dk-border);
}
[data-theme="dark"] .franq-select-toolbar,
[data-theme="dark"] .franq-select-footer { background: var(--dk-card); border-color: var(--dk-border); }
[data-theme="dark"] .franq-search { background: var(--dk-surface); }
[data-theme="dark"] .franq-search:focus-within { background: var(--dk-bg); }
[data-theme="dark"] .franq-card {
    background: var(--dk-card);
    border-color: var(--dk-border);
}
[data-theme="dark"] .franq-card:hover { background: var(--dk-accent-soft); border-color: var(--dk-accent-bord); }
[data-theme="dark"] .franq-card-nome { color: var(--dk-text-2); }
[data-theme="dark"] .franq-card-icon { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .franq-card.is-checked { background: rgba(230,51,41,.18); }
[data-theme="dark"] .franq-chip { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .franq-chip button { background: rgba(255,138,128,.18); color: #ff8a80; }
[data-theme="dark"] .franq-chip button:hover { background: rgba(255,138,128,.3); }
[data-theme="dark"] .franq-link:hover { color: var(--dk-accent); }

/* ── Comunicados (comunicados.css) — classes também reaproveitadas
   por Boletos e Materiais de Apoio nas telas de detalhe ── */
[data-theme="dark"] .msg-franqueado .msg-bubble {
    background: #2c231f;
    color: #f0dcd8;
}
[data-theme="dark"] .msg-empresa .msg-arquivo { background: var(--dk-card-hi); border-color: var(--dk-border-hi); }
[data-theme="dark"] .com-arquivo,
[data-theme="dark"] .msg-arquivo {
    background: var(--dk-card-hi);
    border-color: var(--dk-border);
    color: var(--dk-text-2);
}
[data-theme="dark"] .com-arquivo:hover,
[data-theme="dark"] .msg-arquivo:hover { background: var(--dk-card-hi-2); }
[data-theme="dark"] .com-list-titulo { color: var(--dk-text); }
[data-theme="dark"] .com-list-item { border-bottom-color: var(--dk-border-hi); }
[data-theme="dark"] .com-list-item:hover { background: var(--dk-card-hi); }
[data-theme="dark"] .com-list-meta { color: var(--dk-text-muted); }
[data-theme="dark"] .com-meta-item .value { color: var(--dk-text-2); }
[data-theme="dark"] .com-meta-item .label { color: var(--dk-text-faint); }
[data-theme="dark"] .status-info .status-nome { color: var(--dk-text-2); }
[data-theme="dark"] .status-info .status-quem { color: var(--dk-text-muted); }
[data-theme="dark"] .status-info .status-data { color: var(--dk-text-faint); }
[data-theme="dark"] .status-timeline-item::before { background: var(--dk-border-hi); }
[data-theme="dark"] .com-status-form textarea { background: var(--dk-surface); border-color: var(--dk-border-hi); }
[data-theme="dark"] .chat-empty { color: var(--dk-text-faint); }

/* ── Material do Franqueado (materiais.css) ── */
[data-theme="dark"] .mat-categoria-card,
[data-theme="dark"] .mat-item {
    background: var(--dk-card) !important;
    border-color: var(--dk-border);
}
[data-theme="dark"] .mat-item:hover { border-color: var(--dk-border-hi); box-shadow: 0 4px 18px rgba(0,0,0,.5); }
[data-theme="dark"] .mat-categoria-header,
[data-theme="dark"] .mat-item-meta { border-color: var(--dk-border-hi); }
[data-theme="dark"] .mat-categoria-nome,
[data-theme="dark"] .mat-item-titulo { color: var(--dk-text); }
[data-theme="dark"] .mat-categoria-desc,
[data-theme="dark"] .mat-item-desc { color: var(--dk-text-muted); }
[data-theme="dark"] .mat-categoria-count,
[data-theme="dark"] .badge-count { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .mat-item-size,
[data-theme="dark"] .mat-item-versao { color: var(--dk-text-faint); }
[data-theme="dark"] .mat-item-download { background: var(--dk-card-hi); color: var(--dk-text-2); }
[data-theme="dark"] .mat-item-download:hover { background: #e63329; color: #fff; }
[data-theme="dark"] .mat-empty { color: var(--dk-text-faint); }
[data-theme="dark"] .icones-grid { background: var(--dk-surface); border-color: var(--dk-border); }
[data-theme="dark"] .icone-opt { color: var(--dk-text-muted); }
[data-theme="dark"] .icone-opt:hover { background: var(--dk-card-hi); color: var(--dk-text-2); }
[data-theme="dark"] .color-input { border-color: var(--dk-border-hi); }
/* Cabeçalho local da tela de detalhe (materiais-apoio/ver.phtml) */
[data-theme="dark"] .mat-card-header { background: var(--dk-card) !important; }
[data-theme="dark"] .mat-card-header h2 { color: var(--dk-text); }

/* ── Boletos e Cobranças (boletos.css) ── */
[data-theme="dark"] .bol-list-titulo { color: var(--dk-text); }
[data-theme="dark"] .bol-list-item { border-bottom-color: var(--dk-border-hi); }
[data-theme="dark"] .bol-list-item:hover { background: var(--dk-card-hi); }
[data-theme="dark"] .bol-list-meta,
[data-theme="dark"] .bol-arquivo-meta,
[data-theme="dark"] .bol-file-info { color: var(--dk-text-muted); }
[data-theme="dark"] .bol-tipo-tag { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .bol-file-card,
[data-theme="dark"] .bol-arquivo-card {
    background: var(--dk-card) !important;
    border-color: var(--dk-border);
}
[data-theme="dark"] .bol-file-card:hover { border-color: var(--dk-border-hi); box-shadow: 0 4px 18px rgba(0,0,0,.5); }
[data-theme="dark"] .bol-arquivo-card:hover { background: var(--dk-card-hi) !important; border-color: #e63329; }
[data-theme="dark"] .bol-file-card.bol-file-baixado {
    background: rgba(76,175,80,.1) !important;
    border-color: #2e7d32;
}
[data-theme="dark"] .bol-file-icon.tipo-pdf   { background: rgba(198,40,40,.16);  color: #ef9a9a; }
[data-theme="dark"] .bol-file-icon.tipo-img   { background: rgba(26,86,196,.16);  color: #64b5f6; }
[data-theme="dark"] .bol-file-icon.tipo-word  { background: rgba(58,86,170,.2);   color: #90a4ff; }
[data-theme="dark"] .bol-file-icon.tipo-excel { background: rgba(46,125,50,.18);  color: #81c784; }
[data-theme="dark"] .bol-file-icon.tipo-ppt   { background: rgba(230,81,0,.18);   color: #ffb74d; }
[data-theme="dark"] .bol-file-titulo,
[data-theme="dark"] .bol-arquivo-nome { color: var(--dk-text); }
[data-theme="dark"] .bol-file-meta { border-color: var(--dk-border-hi); }
[data-theme="dark"] .bol-file-badge-pend { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .bol-arquivo-dl { background: var(--dk-card-hi); color: var(--dk-text-muted); }
[data-theme="dark"] .bol-tracking-item { background: var(--dk-surface); border-color: var(--dk-border); color: var(--dk-text-faint); }
[data-theme="dark"] .bol-tracking-item.ok { background: rgba(76,175,80,.12); border-color: #2e7d32; color: #81c784; }
[data-theme="dark"] .upload-slot-label { border-color: var(--dk-border-hi); color: var(--dk-text-muted); }

/* ── Materiais de Apoio — chat de solicitação (materiais-apoio.css) ── */
[data-theme="dark"] .com-chat-bubble { border-bottom-color: var(--dk-border-hi); }
[data-theme="dark"] .bubble-meta strong { color: var(--dk-text); }
[data-theme="dark"] .bubble-meta span { color: var(--dk-text-faint); }
[data-theme="dark"] .bubble-text { color: var(--dk-text-2); }
[data-theme="dark"] .bubble-admin { background: #2c231f; }
[data-theme="dark"] .bubble-franq { background: #1c2430; }
[data-theme="dark"] .mat-os-row:hover { background: var(--dk-card-hi); }

/* ── Envio de Mensagem (mensagem.css) ── */
[data-theme="dark"] .msg-cota-bar,
[data-theme="dark"] .msg-editor-wrap,
[data-theme="dark"] .msg-side-card,
[data-theme="dark"] .msg-resumo-card,
[data-theme="dark"] .msg-tags-wrap {
    background: var(--dk-surface) !important;
    border-color: var(--dk-border);
}
[data-theme="dark"] .msg-cota-label,
[data-theme="dark"] .msg-side-title,
[data-theme="dark"] .msg-field-label { color: var(--dk-text-muted); }
[data-theme="dark"] .msg-cota-restam,
[data-theme="dark"] .msg-dest-count,
[data-theme="dark"] .msg-dest-hint,
[data-theme="dark"] .msg-resumo-label { color: var(--dk-text-faint); }
[data-theme="dark"] .msg-cota-track { background: var(--dk-border); }
[data-theme="dark"] .msg-toolbar { background: var(--dk-card); border-bottom-color: var(--dk-border); }
[data-theme="dark"] .msg-toolbar button { color: var(--dk-text-2); }
[data-theme="dark"] .msg-toolbar button:hover { background: var(--dk-card-hi); color: var(--dk-accent); }
[data-theme="dark"] .msg-tb-sep { background: var(--dk-border); }
[data-theme="dark"] .msg-tb-select { background: var(--dk-surface); border-color: var(--dk-border-hi); color: var(--dk-text-2); }
[data-theme="dark"] .msg-editor-body { color: var(--dk-text); }
[data-theme="dark"] .msg-editor-body:empty::before,
[data-theme="dark"] .msg-assinatura-body:empty::before { color: var(--dk-text-faint); }
[data-theme="dark"] .msg-remetente-box { background: rgba(46,125,50,.12); border-color: rgba(46,125,50,.3); color: var(--dk-text-2); }
[data-theme="dark"] .msg-arq-item { background: var(--dk-card-hi); }
[data-theme="dark"] .msg-arq-nome { color: var(--dk-text-2); }
[data-theme="dark"] .msg-arq-size { color: var(--dk-text-faint); }
[data-theme="dark"] .msg-arq-rm { color: var(--dk-text-faint); }
[data-theme="dark"] .msg-arq-rm:hover { background: var(--dk-accent-soft); color: var(--dk-accent); }
[data-theme="dark"] .msg-upload-area { background: var(--dk-surface); border-color: var(--dk-border-hi); }
[data-theme="dark"] .msg-upload-area:hover,
[data-theme="dark"] .msg-upload-area.drag-over { background: var(--dk-accent-soft); border-color: var(--dk-accent); }
[data-theme="dark"] .msg-upload-label { color: var(--dk-text-2); }
[data-theme="dark"] .msg-upload-hint { color: var(--dk-text-faint); }
[data-theme="dark"] .msg-btn-enviar:disabled { background: var(--dk-card-hi); color: var(--dk-text-faint); }
[data-theme="dark"] .msg-tag { background: var(--dk-accent-soft); color: #ff8a80; }
[data-theme="dark"] .msg-tag button { color: #ff8a80; }
[data-theme="dark"] .msg-tags-input { color: var(--dk-text); }
[data-theme="dark"] .msg-resumo-card { background: var(--dk-card) !important; }
[data-theme="dark"] .msg-ver-corpo { color: var(--dk-text-2); }
[data-theme="dark"] .msg-anexo-dl { background: var(--dk-card-hi); border-color: var(--dk-border); color: var(--dk-text-2); }
[data-theme="dark"] .msg-anexo-dl:hover { background: var(--dk-accent-soft); border-color: var(--dk-accent-bord); color: var(--dk-accent); }
[data-theme="dark"] .msg-btn-enviar:hover { box-shadow: 0 4px 14px rgba(230,51,41,.5); }
[data-theme="dark"] .btn-limpar:hover { background: var(--dk-accent-soft); color: var(--dk-accent); }
[data-theme="dark"] #contatos-lista .contato-item { color: var(--dk-text-2); }
[data-theme="dark"] #contatos-lista .contato-item:hover { background: var(--dk-card-hi); }
[data-theme="dark"] .msg-assinatura-body { background: var(--dk-surface); color: var(--dk-text-muted); border-top-color: var(--dk-border-hi); }
[data-theme="dark"] .msg-filtro-btn { color: var(--dk-text-muted); }
[data-theme="dark"] .msg-filtro-btn.ativo { background: var(--dk-card-hi); color: var(--dk-text); }
[data-theme="dark"] .msg-filtro-btn:hover { background: var(--dk-card-hi); }

/* ── Perfil (estilo local embutido em perfil/index.phtml) ── */
[data-theme="dark"] .perfil-card { background: var(--dk-card) !important; }
[data-theme="dark"] .perfil-nome { color: var(--dk-text); }
[data-theme="dark"] .perfil-login { color: var(--dk-text-muted); }
[data-theme="dark"] .perfil-meta { border-top-color: var(--dk-border); }
[data-theme="dark"] .perfil-meta-item { color: var(--dk-text-2); }
[data-theme="dark"] .foto-upload-label:hover { background: var(--dk-accent-soft); }

/* ── Rede de segurança: textos cinza-escuro inline (sem fundo
   próprio) dentro de contêineres já escurecidos acima — cobre
   dezenas de pequenos trechos inline espalhados por Usuários,
   Franqueados, Logs, Perfil e outras telas que reaproveitam
   .data-table/.card/.form-card sem ter uma classe dedicada.
   :not([style*="background"]) protege os selos/badges que têm
   fundo próprio inline (esses continuam com sua própria cor). ── */
[data-theme="dark"] .data-table [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .kpi-card [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .chart-card [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .form-card [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#111"]:not([style*="background"]),
[data-theme="dark"] .data-table [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .form-card [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#222"]:not([style*="background"]),
[data-theme="dark"] .data-table [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .kpi-card [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .chart-card [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .form-card [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#333"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#333"]:not([style*="background"]) {
    color: var(--dk-text) !important;
}
[data-theme="dark"] .data-table [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .form-card [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#444"]:not([style*="background"]),
[data-theme="dark"] .data-table [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .form-card [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#555"]:not([style*="background"]),
[data-theme="dark"] .data-table [style*="color:#666"]:not([style*="background"]),
[data-theme="dark"] .card [style*="color:#666"]:not([style*="background"]),
[data-theme="dark"] .com-detalhe [style*="color:#666"]:not([style*="background"]),
[data-theme="dark"] .com-status-panel [style*="color:#666"]:not([style*="background"]),
[data-theme="dark"] .com-chat [style*="color:#666"]:not([style*="background"]) {
    color: var(--dk-text-2) !important;
}

/* ── Faixa de aviso inline (Usuários/Logs — "Equipe interna: ...") ── */
[data-theme="dark"] [style*="background:#f5f5f5;border:1px solid #e8e8e8"] {
    background: var(--dk-card-hi) !important;
    border-color: var(--dk-border) !important;
}
[data-theme="dark"] [style*="background:#f5f5f5;border:1px solid #e8e8e8"] [style*="color:#888"],
[data-theme="dark"] [style*="background:#f5f5f5;border:1px solid #e8e8e8"] [style*="color:#666"] {
    color: var(--dk-text-2) !important;
}
[data-theme="dark"] [style*="background:#f5f5f5;border:1px solid #e8e8e8"] [style*="color:#bbb"] {
    color: var(--dk-text-muted) !important;
}

/* ── Faixa/caixa de aviso amarela inline (confirmação de exclusão em
   mensagem/ver, alerta de purge de logs, etc.) ── */
[data-theme="dark"] [style*="background:#fff8e1"] {
    background: rgba(255, 193, 7, .12) !important;
    border-color: rgba(255, 193, 7, .3) !important;
}
[data-theme="dark"] [style*="background:#fff8e1"][style*="color:#e65100"],
[data-theme="dark"] [style*="background:#fff8e1"] [style*="color:#e65100"],
[data-theme="dark"] [style*="background:#fff8e1"][style*="color:#f9a825"],
[data-theme="dark"] [style*="background:#fff8e1"] [style*="color:#f9a825"] {
    color: #ffca5c !important;
}
[data-theme="dark"] [style*="background:#fff8e1"] [style*="color:#5d4037"] {
    color: var(--dk-text-2) !important;
}

/* ── Select de status de item (materiais-apoio/ver) — cor definida
   inline via PHP ($itemStyle), mesma paleta semântica dos .pill-* ── */
[data-theme="dark"] select[style*="background:#f5f5f5;color:#888"] {
    background: var(--dk-card-hi) !important;
    color: var(--dk-text-muted) !important;
    border-color: var(--dk-border-hi) !important;
}
[data-theme="dark"] select[style*="background:#fff3e0;color:#e65100"] {
    background: rgba(230,81,0,.2) !important;
    color: #ffb74d !important;
    border-color: rgba(255,183,77,.35) !important;
}
[data-theme="dark"] select[style*="background:#e8f5e9;color:#2e7d32"] {
    background: rgba(46,125,50,.2) !important;
    color: #81c784 !important;
    border-color: rgba(129,199,132,.35) !important;
}

/* ── Divisores inline claros (padrão repetido em várias telas: listas de
   comentários, usuários online/offline, rankings, cards do dashboard —
   tanto na renderização PHP inicial quanto nos templates JS do
   auto-refresh). Não têm classe própria, por isso via seletor de
   atributo; cobre as duas variações de espaçamento encontradas no
   código (com e sem espaço depois dos dois-pontos). ── */
[data-theme="dark"] [style*="border-bottom:1px solid #eee" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #eee" i],
[data-theme="dark"] [style*="border-bottom:1px solid #f0f0f0" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #f0f0f0" i],
[data-theme="dark"] [style*="border-bottom:1px solid #f2f2f2" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #f2f2f2" i],
[data-theme="dark"] [style*="border-bottom:1px solid #f5f5f5" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #f5f5f5" i],
[data-theme="dark"] [style*="border-bottom:1px solid #f7f7f7" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #f7f7f7" i],
[data-theme="dark"] [style*="border-bottom:1px solid #f9f9f9" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #f9f9f9" i],
[data-theme="dark"] [style*="border-bottom:1px solid #fafafa" i],
[data-theme="dark"] [style*="border-bottom: 1px solid #fafafa" i] {
    border-bottom-color: var(--dk-border-hi) !important;
}

[data-theme="dark"] [style*="border-top:1px solid #eee" i],
[data-theme="dark"] [style*="border-top: 1px solid #eee" i],
[data-theme="dark"] [style*="border-top:1px solid #f0f0f0" i],
[data-theme="dark"] [style*="border-top: 1px solid #f0f0f0" i],
[data-theme="dark"] [style*="border-top:1px solid #f2f2f2" i],
[data-theme="dark"] [style*="border-top: 1px solid #f2f2f2" i],
[data-theme="dark"] [style*="border-top:1px solid #f5f5f5" i],
[data-theme="dark"] [style*="border-top: 1px solid #f5f5f5" i],
[data-theme="dark"] [style*="border-top:1px solid #e0e0e0" i],
[data-theme="dark"] [style*="border-top: 1px solid #e0e0e0" i],
[data-theme="dark"] [style*="border-top:1px solid #DDDDDD" i],
[data-theme="dark"] [style*="border-top: 1px solid #DDDDDD" i] {
    border-top-color: var(--dk-border-hi) !important;
}

/* ── Fundo cinza-claro inline (linhas em zebra, caixas de destaque,
   cabeçalho de tabela — materiais-apoio, boletos) ── */
[data-theme="dark"] [style*="background:#fafafa" i],
[data-theme="dark"] [style*="background: #fafafa" i] {
    background: var(--dk-card-hi) !important;
}
/* Círculo numerador dos itens (materiais-apoio/ver) */
[data-theme="dark"] [style*="border-radius:50%;background:#f0f0f0" i] {
    background: var(--dk-border) !important;
}

/* ── Anel branco de "recorte" ao redor do indicador online/offline nos
   avatares (pensado pra separar do avatar contra um fundo branco) —
   no escuro precisa combinar com o card por trás, não com a borda ── */
[data-theme="dark"] [style*="border:2px solid #fff" i] {
    border-color: var(--dk-card) !important;
}

/* ── Página de Versões do Sistema ── */
[data-theme="dark"] .ver-hero {
    background: linear-gradient(135deg, var(--dk-surface) 0%, #2a1210 100%);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .35);
}
[data-theme="dark"] .ver-hero-text p { color: var(--dk-text-muted); }
[data-theme="dark"] .ver-hero-badge {
    background: rgba(255, 255, 255, .04);
    border-color: rgba(255, 255, 255, .1);
}
[data-theme="dark"] .ver-filtro {
    background: var(--dk-card);
    border-color: var(--dk-border-hi);
    color: var(--dk-text-muted);
}
[data-theme="dark"] .ver-filtro:hover { border-color: var(--dk-border-hi); color: var(--dk-text-2); }
[data-theme="dark"] .ver-filtro.ativo {
    background: var(--dk-accent);
    border-color: var(--dk-accent);
    color: #fff;
}
[data-theme="dark"] .ver-dot { background: var(--dk-surface); border-color: var(--dk-border-hi); }
[data-theme="dark"] .ver-dot-atual {
    border-color: var(--dk-accent);
    background: var(--dk-accent);
    box-shadow: 0 0 0 4px var(--dk-accent-soft);
}
[data-theme="dark"] .ver-dot-fim { background: var(--dk-card); border-color: var(--dk-border); color: var(--dk-text-faint); }
[data-theme="dark"] .ver-linha { background: linear-gradient(var(--dk-border-hi), var(--dk-surface)); }
[data-theme="dark"] .ver-fim-texto { color: var(--dk-text-faint); }
[data-theme="dark"] .ver-card {
    background: var(--dk-card);
    border-color: var(--dk-border);
    box-shadow: 0 1px 4px rgba(0, 0, 0, .4);
}
[data-theme="dark"] .ver-card:hover { box-shadow: 0 10px 26px rgba(0, 0, 0, .5); }
[data-theme="dark"] .ver-tag { background: var(--dk-accent-soft); color: var(--dk-accent); }
[data-theme="dark"] .ver-tag-atual { background: rgba(76, 175, 80, .18); color: #81c784; }
[data-theme="dark"] .ver-tag-lancamento { background: rgba(26, 86, 196, .22); color: #64b5f6; }
[data-theme="dark"] .ver-card-heading h2 { color: var(--dk-text); }
[data-theme="dark"] .ver-card-data { color: var(--dk-text-faint); }
[data-theme="dark"] .ver-resumo { color: var(--dk-text-muted); }
[data-theme="dark"] .ver-secao-count { background: rgba(255, 255, 255, .08); color: var(--dk-text-muted); }
[data-theme="dark"] .ver-secao-lista li { color: var(--dk-text-2); }
[data-theme="dark"] .ver-sec-add { background: rgba(76, 175, 80, .09); }
[data-theme="dark"] .ver-sec-add .ver-secao-titulo { color: #81c784; }
[data-theme="dark"] .ver-sec-fix { background: rgba(245, 166, 35, .09); }
[data-theme="dark"] .ver-sec-fix .ver-secao-titulo { color: #ffb74d; }
[data-theme="dark"] .ver-sec-rem { background: rgba(229, 115, 115, .09); }
[data-theme="dark"] .ver-sec-rem .ver-secao-titulo { color: #ff8a80; }

/* ── Página de login / termo de aceite / impressão: fora do escopo
   desta v1 (telas pré-autenticação ou com layout próprio) ── */
