/* =====================================================================
   Temas de tela (src/helpers/tema.js).
   Claro = sem classe no <html>: NADA aqui muda o visual de sempre.
   Todas as regras de troca ficam dentro de html[class*="tema-"].
   Carregado depois de app.css/custom.css; o Sass do layout entra depois
   pelo bundle, por isso o !important nos pontos que ele também pinta.
   ===================================================================== */

/* ---------- seletor (vale em todos os temas, inclusive Claro) ---------- */
.tema-menu {
  position: fixed; right: 8px; z-index: 99999; min-width: 190px; padding: 4px 0;
  background: var(--inc-card, #fff); color: var(--inc-texto, #333);
  border: 1px solid var(--inc-borda, #dee2e6); border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,.18);
}
.tema-menu-titulo { padding: 6px 16px 4px; font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; opacity: .6; }
.tema-menu-item {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 16px;
  font-size: 14px; color: inherit; background: none; border: none; text-align: left; cursor: pointer;
}
.tema-menu-item:hover, .tema-menu-item:focus { background: var(--inc-hover, #f8f9fa); outline: none; }
.tema-menu-item.on { font-weight: 600; }
.tema-menu-check { margin-left: auto; }

/* ---------- paletas ---------- */
html.tema-escuro {
  --inc-fundo: #12171f; --inc-card: #1b222c; --inc-campo: #222a35; --inc-campo-off: #1a2029;
  --inc-borda: #2f3a48; --inc-texto: #e6e9ee; --inc-suave: #9aa5b4; --inc-hover: #252e3a;
  --inc-titulo: #171d26; --inc-topo: #0b1018; --inc-menu: #0b1018; --inc-menu-2: #0e141c;
  --inc-primaria: #3fb5cc; --inc-link: #6cc4d8; --inc-zebra: rgba(255,255,255,.03);
  color-scheme: dark;
}
html.tema-cinza {
  --inc-fundo: #2b313a; --inc-card: #333a44; --inc-campo: #3a424d; --inc-campo-off: #313842;
  --inc-borda: #4a5360; --inc-texto: #dde1e6; --inc-suave: #a8b0bb; --inc-hover: #3f4752;
  --inc-titulo: #303741; --inc-topo: #232830; --inc-menu: #232830; --inc-menu-2: #272d36;
  --inc-primaria: #5cbccf; --inc-link: #7fcbdc; --inc-zebra: rgba(255,255,255,.03);
  color-scheme: dark;
}
html.tema-contraste {
  --inc-fundo: #000; --inc-card: #000; --inc-campo: #000; --inc-campo-off: #111;
  --inc-borda: #fff; --inc-texto: #fff; --inc-suave: #ffff66; --inc-hover: #333;
  --inc-titulo: #000; --inc-topo: #000; --inc-menu: #000; --inc-menu-2: #000;
  --inc-primaria: #ffff33; --inc-link: #ffff33; --inc-zebra: transparent;
  color-scheme: dark;
}
html.tema-sepia {
  --inc-fundo: #f1e9db; --inc-card: #f7f1e6; --inc-campo: #fbf7ef; --inc-campo-off: #ece2d0;
  --inc-borda: #d9cbb2; --inc-texto: #3b2f22; --inc-suave: #7a6a55; --inc-hover: #eadfcb;
  --inc-titulo: #e8dcc6; --inc-primaria: #17a2b8; --inc-link: #1e5f8a; --inc-zebra: rgba(90,60,20,.04);
}
html.tema-slate {
  --inc-fundo: #dde1e6; --inc-card: #e9ecf0; --inc-campo: #f3f5f7; --inc-campo-off: #dfe3e8;
  --inc-borda: #c3c9d1; --inc-texto: #1d2530; --inc-suave: #5b6573; --inc-hover: #d3d9e0;
  --inc-titulo: #cfd5dc; --inc-primaria: #17a2b8; --inc-link: #0f6f85; --inc-zebra: rgba(0,0,0,.03);
}

/* ---------- superfícies (todos os temas, menos Claro) ---------- */
html[class*="tema-"] body,
html[class*="tema-"] #wrapper,
html[class*="tema-"] .content-page,
html[class*="tema-"] .content-page > .content,
html[class*="tema-"] .page-content-wrapper {
  background-color: var(--inc-fundo) !important;
  color: var(--inc-texto);
}
html[class*="tema-"] h1, html[class*="tema-"] h2, html[class*="tema-"] h3,
html[class*="tema-"] h4, html[class*="tema-"] h5, html[class*="tema-"] h6,
html[class*="tema-"] label, html[class*="tema-"] legend { color: var(--inc-texto); }
html[class*="tema-"] a:not(.btn):not(.nav-link):not(.mn-link) { color: var(--inc-link); }
html[class*="tema-"] hr { border-color: var(--inc-borda); }

html[class*="tema-"] .page-title-box { background: var(--inc-titulo) !important; border-bottom-color: var(--inc-borda) !important; }
html[class*="tema-"] .page-title-box .page-title { color: var(--inc-texto) !important; }
html[class*="tema-"] .page-title-box .breadcrumb-item a,
html[class*="tema-"] .page-title-box .breadcrumb-item.active { color: var(--inc-suave) !important; }

html[class*="tema-"] .footer { background-color: var(--inc-card) !important; color: var(--inc-suave); border-top-color: var(--inc-borda) !important; }

html[class*="tema-"] .card,
html[class*="tema-"] .card-body,
html[class*="tema-"] .card-header,
html[class*="tema-"] .card-footer,
html[class*="tema-"] .list-group-item,
html[class*="tema-"] .modal-content,
html[class*="tema-"] .modal-header,
html[class*="tema-"] .modal-body,
html[class*="tema-"] .modal-footer,
html[class*="tema-"] .dropdown-menu,
html[class*="tema-"] .popover,
html[class*="tema-"] .popover-body,
html[class*="tema-"] .bg-white,
html[class*="tema-"] .bg-light {
  background-color: var(--inc-card) !important;
  color: var(--inc-texto);
  border-color: var(--inc-borda) !important;
}
html[class*="tema-"] .close { color: var(--inc-texto); text-shadow: none; }
html[class*="tema-"] .dropdown-item { color: var(--inc-texto); }
html[class*="tema-"] .dropdown-item:hover,
html[class*="tema-"] .dropdown-item:focus { background-color: var(--inc-hover); color: var(--inc-texto); }

html[class*="tema-"] .text-dark,
html[class*="tema-"] .text-body { color: var(--inc-texto) !important; }
html[class*="tema-"] .text-muted,
html[class*="tema-"] .text-secondary { color: var(--inc-suave) !important; }

/* tabelas */
html[class*="tema-"] .table { color: var(--inc-texto); }
html[class*="tema-"] .table th,
html[class*="tema-"] .table td,
html[class*="tema-"] .table thead th,
html[class*="tema-"] .table-bordered,
html[class*="tema-"] .table-bordered th,
html[class*="tema-"] .table-bordered td { border-color: var(--inc-borda); }
html[class*="tema-"] .table .thead-light th,
html[class*="tema-"] .table thead.thead-light th { background-color: var(--inc-titulo); color: var(--inc-texto); border-color: var(--inc-borda); }
html[class*="tema-"] .table-striped tbody tr:nth-of-type(odd) { background-color: var(--inc-zebra); }
html[class*="tema-"] .table-hover tbody tr:hover { background-color: var(--inc-hover); color: var(--inc-texto); }

/* formulários */
html[class*="tema-"] .form-control,
html[class*="tema-"] .custom-select,
html[class*="tema-"] .input-group-text,
html[class*="tema-"] select,
html[class*="tema-"] textarea,
html[class*="tema-"] input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]) {
  background-color: var(--inc-campo);
  color: var(--inc-texto);
  border-color: var(--inc-borda);
}
html[class*="tema-"] .form-control:disabled,
html[class*="tema-"] .form-control[readonly],
html[class*="tema-"] .custom-select:disabled { background-color: var(--inc-campo-off); color: var(--inc-suave); }
html[class*="tema-"] .form-control::placeholder { color: var(--inc-suave); opacity: .8; }

/* abas, paginação, badges claros */
html[class*="tema-"] .nav-tabs { border-bottom-color: var(--inc-borda); }
html[class*="tema-"] .nav-tabs .nav-link { color: var(--inc-suave); }
html[class*="tema-"] .nav-tabs .nav-link.active,
html[class*="tema-"] .nav-tabs .nav-item.show .nav-link { background-color: var(--inc-card); color: var(--inc-texto); border-color: var(--inc-borda) var(--inc-borda) var(--inc-card); }
html[class*="tema-"] .page-link { background-color: var(--inc-card); border-color: var(--inc-borda); color: var(--inc-link); }
html[class*="tema-"] .page-item.disabled .page-link { background-color: var(--inc-campo-off); color: var(--inc-suave); }
html[class*="tema-"] .btn-light { background-color: var(--inc-campo); border-color: var(--inc-borda); color: var(--inc-texto); }
html[class*="tema-"] .badge-light { background-color: var(--inc-hover); color: var(--inc-texto); }

/* menu variante D (barra superior clara) */
html[class*="tema-"] .mn-d,
html[class*="tema-"] .mn-d-painel { background: var(--inc-card) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] .mn-d-barra > .mn-item > .mn-link,
html[class*="tema-"] .mn-d-secao > button,
html[class*="tema-"] .mn-d-painel .mn-link { color: var(--inc-texto) !important; }
html[class*="tema-"] .mn-d-secao > button:hover,
html[class*="tema-"] .mn-d-barra > .mn-item > .mn-link:hover,
html[class*="tema-"] .mn-d-painel .mn-link:hover,
html[class*="tema-"] .mn-d-secao.aberta > button { background: var(--inc-hover) !important; }

/* menu D: ícones, textos secundários e itens ativos com azul/cinza fixos do menuNovo.css */
html[class*="tema-"] .mn-d-painel-titulo,
html[class*="tema-"] .mn-d-seta,
html[class*="tema-"] .mn-d-painel .mn-link small,
html[class*="tema-"] .mn-d-secao > button i:first-child,
html[class*="tema-"] .mn-d-barra > .mn-item > .mn-link > i { color: var(--inc-suave) !important; }
html[class*="tema-"] .mn-d-painel .mn-link > i { background: var(--inc-hover) !important; color: var(--inc-primaria) !important; }
html[class*="tema-"] .mn-d-painel .mn-link.active { background: var(--inc-hover) !important; }
html[class*="tema-"] .mn-d-secao.rota > button,
html[class*="tema-"] .mn-d-barra > .mn-item > .mn-link.active { color: var(--inc-primaria) !important; box-shadow: inset 0 -2px 0 var(--inc-primaria) !important; }
html[class*="tema-"] .mn-d-divisor { background: var(--inc-borda) !important; }
html[class*="tema-"] .mn-d-nilza { background: var(--inc-hover) !important; color: var(--inc-texto) !important; }

/* rodapé, container e "disabled" do style.css (cores claras com !important) */
html[class*="tema-"] .container { background-color: var(--inc-fundo) !important; }
html[class*="tema-"] .disabled { background-color: var(--inc-campo-off) !important; color: var(--inc-suave); }
html[class*="tema-"] .tr-custom:nth-child(2n + 2) { background: var(--inc-zebra); }
html[class*="tema-"] .border, html[class*="tema-"] .border-top, html[class*="tema-"] .border-bottom,
html[class*="tema-"] .border-left, html[class*="tema-"] .border-right { border-color: var(--inc-borda) !important; }
html[class*="tema-"] .popover-header { background-color: var(--inc-titulo); color: var(--inc-texto); border-bottom-color: var(--inc-borda); }
html[class*="tema-"] .modal-title { color: var(--inc-texto) !important; }
html[class*="tema-"] .table th { color: var(--inc-texto) !important; }
html[class*="tema-"] .page-link { border-color: var(--inc-borda) !important; }
html[class*="tema-"] .page-link:hover,
html[class*="tema-"] .page-link:focus { background-color: var(--inc-hover); color: var(--inc-texto); }
html[class*="tema-"] .notify-all { background-color: var(--inc-titulo); }
html[class*="tema-"] .custom-control-label::before { background-color: var(--inc-campo); border-color: var(--inc-borda); }

/* abas custom (_tabs.scss: borda #DDD e ativo azul-marinho) */
html[class*="tema-"] .nav-tabs-custom { border-bottom-color: var(--inc-borda); }
html[class*="tema-"] .nav-tabs-custom > li > a { color: var(--inc-suave); }
html[class*="tema-"] .nav-tabs-custom > li > a.active { color: var(--inc-primaria) !important; }
html[class*="tema-"] .nav-tabs-custom > li > a::after { background: var(--inc-primaria); }

/* componentes compartilhados com estilo inline (filtros, barra/cabeçalho de tabela, paginação, card do simulador) */
html[class*="tema-"] .filtros-propostas-container { background-color: var(--inc-card) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] h6[style*="color: rgb(44, 62, 80)"] { color: var(--inc-texto) !important; }
html[class*="tema-"] [style*="linear-gradient(rgb(192, 197, 204) 0%, rgb(233, 236, 239) 100%)"],
html[class*="tema-"] [style*="linear-gradient(rgb(233, 236, 239) 0%, rgb(248, 249, 250) 100%)"],
html[class*="tema-"] [style*="linear-gradient(rgb(248, 249, 250) 0%, rgb(233, 236, 239) 100%)"] {
  background: var(--inc-titulo) !important; color: var(--inc-texto); border-color: var(--inc-borda) !important;
}
html[class*="tema-"] .container-md > .card[style*="linear-gradient"] { background: var(--inc-card) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] #qtdLinesPage { background: var(--inc-campo) !important; color: var(--inc-texto); border-color: var(--inc-borda) !important; }
html[class*="tema-"] .conf-btn[style*="background: rgb(255, 255, 255)"] { background: var(--inc-campo) !important; }
/* seções e selects do cadastro de pessoa (simulator/data|address|contact|complement|bank.js, também no modal de /admin/pessoas) */
html[class*="tema-"] [style*="linear-gradient(rgb(249, 250, 250) 0%, rgb(255, 255, 255) 100%)"] { background: var(--inc-card) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] select[style*="background-color: rgb(255, 255, 255)"] { background-color: var(--inc-campo) !important; }
html[class*="tema-"] select[style*="background-color: rgb(255, 255, 255)"]:disabled { background-color: var(--inc-campo-off) !important; }
/* checklist.css pinta a borda dos campos de modal com #ced4da (sem !important: a borda vermelha inline de validação continua valendo) */
html[class*="tema-"] .modal .form-control,
html[class*="tema-"] .conf-tab-content .form-control { border-color: var(--inc-borda); }
/* rodapé de modal do checklist.css (#f8f9fa / borda #dee2e6); o gradiente inline, quando há, continua valendo */
html[class*="tema-"] .conf-footer { background-color: var(--inc-titulo); border-top-color: var(--inc-borda); }
/* caixa de upload da logo no modal de usuário (Usuarios/usuarios.js: backgroundColor "white", cor nomeada) */
html[class*="tema-"] .modal-body div[style*="background-color: white"] { background-color: var(--inc-campo) !important; }

/* cartões de cliente/pendência (Conformidade/checklist.css, usado em Pendências e Conformidade) */
html[class*="tema-"] .conf-client-card { background: var(--inc-card); border-color: var(--inc-borda); }
html[class*="tema-"] .conf-client-card-header { background: var(--inc-titulo); color: var(--inc-texto); }
html[class*="tema-"] .conf-client-label { color: var(--inc-suave); }
html[class*="tema-"] .conf-client-value { color: var(--inc-texto); }

/* dropdowns do topo: perfil (portal com estilo inline) e notificações */
html[class*="tema-"] body > div[style*="z-index: 99999"][style*="background: rgb(255, 255, 255)"] { background: var(--inc-card) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] body > div[style*="z-index: 99999"] > a { color: var(--inc-texto) !important; }
html[class*="tema-"] body > div[style*="z-index: 99999"] > a[style*="background: rgb(248, 249, 250)"] { background: var(--inc-hover) !important; }
html[class*="tema-"] body > div[style*="z-index: 99999"] > hr { border-color: var(--inc-borda) !important; }
html[class*="tema-"] .dropdown-menu-lg > div:first-child { border-bottom-color: var(--inc-borda) !important; }
html[class*="tema-"] .dropdown-menu-lg > div:first-child > span { color: var(--inc-texto) !important; }

/* react-select (classes do emotion: "css-<hash>-control" etc.); foco por teclado perde o realce nos temas */
html[class*="tema-"] [class*="css-"][class$="-control"],
html[class*="tema-"] [class*="css-"][class$="-menu"] { background-color: var(--inc-campo) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] [class*="css-"][class$="-singleValue"],
html[class*="tema-"] [class*="css-"][class$="-Input"],
html[class*="tema-"] [class*="css-"][class$="-Input"] input { color: var(--inc-texto) !important; }
html[class*="tema-"] [class*="css-"][class$="-placeholder"] { color: var(--inc-suave) !important; }
html[class*="tema-"] [class*="css-"][class$="-option"] { background-color: transparent !important; color: var(--inc-texto) !important; }
html[class*="tema-"] [class*="css-"][class$="-option"]:hover { background-color: var(--inc-hover) !important; }
html[class*="tema-"] [class*="css-"][class$="-option"][aria-selected="true"] { background-color: var(--inc-primaria) !important; color: #000 !important; }
html[class*="tema-"] [class*="css-"][class$="-multiValue"] { background-color: var(--inc-hover) !important; }
html[class*="tema-"] [class*="css-"][class$="-multiValue"] > div { color: var(--inc-texto) !important; }
html[class*="tema-"] [class*="css-"][class$="-indicatorSeparator"] { background-color: var(--inc-borda) !important; }

/* react-datepicker */
html[class*="tema-"] .react-datepicker { background-color: var(--inc-card); color: var(--inc-texto); border-color: var(--inc-borda); }
html[class*="tema-"] .react-datepicker__header { background-color: var(--inc-titulo); border-bottom-color: var(--inc-borda); }
html[class*="tema-"] .react-datepicker__current-month,
html[class*="tema-"] .react-datepicker-time__header,
html[class*="tema-"] .react-datepicker-year-header,
html[class*="tema-"] .react-datepicker__day-name,
html[class*="tema-"] .react-datepicker__day,
html[class*="tema-"] .react-datepicker__time-name { color: var(--inc-texto); }
html[class*="tema-"] .react-datepicker__day--outside-month,
html[class*="tema-"] .react-datepicker__day--disabled { color: var(--inc-suave); }
html[class*="tema-"] .react-datepicker__day:hover,
html[class*="tema-"] .react-datepicker__month-text:hover { background-color: var(--inc-hover); }
html[class*="tema-"] .react-datepicker__day--selected,
html[class*="tema-"] .react-datepicker__day--keyboard-selected,
html[class*="tema-"] .react-datepicker__day--in-range { background-color: var(--inc-primaria); color: #000; }
html[class*="tema-"] .react-datepicker__time-container .react-datepicker__time,
html[class*="tema-"] .react-datepicker__time-list { background: var(--inc-card) !important; }
html[class*="tema-"] .react-datepicker__triangle,
html[class*="tema-"] .react-datepicker__triangle::before { border-bottom-color: var(--inc-titulo) !important; }

/* sweetalert (src/css/style.css pinta com !important) */
html[class*="tema-"] .swal-modal { background-color: var(--inc-card) !important; border: 1px solid var(--inc-borda); }
html[class*="tema-"] .swal-title { color: var(--inc-texto) !important; }
html[class*="tema-"] .swal-text { color: var(--inc-suave) !important; }
html[class*="tema-"] .swal-footer { background-color: transparent; }
html[class*="tema-"] .swal-button--confirm,
html[class*="tema-"] .swal-button--cancel,
html[class*="tema-"] .swal-button--gerarLink,
html[class*="tema-"] .swal-button--enviarEmail { background-color: var(--inc-campo) !important; }
html[class*="tema-"] .swal-button--cancel { color: var(--inc-texto) !important; border-color: var(--inc-borda) !important; }
html[class*="tema-"] .swal-icon--success::before,
html[class*="tema-"] .swal-icon--success::after,
html[class*="tema-"] .swal-icon--success__hide-corners { background: var(--inc-card) !important; }

/* ---------- topo e menu lateral: só temas escuros (os claros mantêm o azul da marca) ---------- */
html.tema-escuro .navbar-custom, html.tema-cinza .navbar-custom, html.tema-contraste .navbar-custom,
html.tema-escuro .topbar-left, html.tema-cinza .topbar-left, html.tema-contraste .topbar-left {
  background-color: var(--inc-topo) !important;
}
html.tema-escuro .left.side-menu, html.tema-cinza .left.side-menu, html.tema-contraste .left.side-menu,
html.tema-escuro .mn-a, html.tema-cinza .mn-a, html.tema-contraste .mn-a,
html.tema-escuro .mn-d-gaveta, html.tema-cinza .mn-d-gaveta, html.tema-contraste .mn-d-gaveta,
html.tema-escuro .mn-trilho, html.tema-cinza .mn-trilho, html.tema-contraste .mn-trilho {
  background: var(--inc-menu) !important;
}
html.tema-escuro .mn-painel, html.tema-cinza .mn-painel, html.tema-contraste .mn-painel { background: var(--inc-menu-2) !important; }
/* ☰, canto arredondado (--mn-canto-cor), item ativo do painel B, seletor de visual, Programa de Pontos e Nilza do menu clássico */
html.tema-escuro .button-menu-mobile, html.tema-cinza .button-menu-mobile, html.tema-contraste .button-menu-mobile { background-color: var(--inc-topo) !important; }
html.tema-escuro .mn-canto, html.tema-cinza .mn-canto, html.tema-contraste .mn-canto { --mn-canto-cor: var(--inc-menu) !important; }
html.tema-escuro body.mn-v-b:not(.mn-painel-fechado) .mn-canto,
html.tema-cinza body.mn-v-b:not(.mn-painel-fechado) .mn-canto,
html.tema-contraste body.mn-v-b:not(.mn-painel-fechado) .mn-canto { --mn-canto-cor: var(--inc-menu-2) !important; }
html.tema-escuro .mn-b .mn-link.active, html.tema-cinza .mn-b .mn-link.active, html.tema-contraste .mn-b .mn-link.active,
html.tema-escuro .mn-painel .mn-item:nth-child(even) > .mn-link.active, html.tema-cinza .mn-painel .mn-item:nth-child(even) > .mn-link.active,
html.tema-contraste .mn-painel .mn-item:nth-child(even) > .mn-link.active {
  background: var(--inc-primaria) !important; border-color: var(--inc-primaria) !important; color: #000 !important;
}
html.tema-escuro .mn-b .mn-link.active > i, html.tema-cinza .mn-b .mn-link.active > i, html.tema-contraste .mn-b .mn-link.active > i { color: #000 !important; }
html.tema-escuro .mn-seletor-btn.on, html.tema-cinza .mn-seletor-btn.on, html.tema-contraste .mn-seletor-btn.on { background: var(--inc-primaria); color: #000; }
html.tema-escuro .usemais-link, html.tema-cinza .usemais-link, html.tema-contraste .usemais-link { background-image: none !important; background-color: var(--inc-hover) !important; }
html.tema-escuro .left.side-menu button[style*="background-color: rgb(1, 33, 72)"],
html.tema-cinza .left.side-menu button[style*="background-color: rgb(1, 33, 72)"],
html.tema-contraste .left.side-menu button[style*="background-color: rgb(1, 33, 72)"] { background-color: var(--inc-hover) !important; }
html.tema-escuro .noti-icon-badge, html.tema-cinza .noti-icon-badge, html.tema-contraste .noti-icon-badge { box-shadow: 0 0 0 2px var(--inc-topo) !important; }

/* alerts do Bootstrap: fundo pastel claro vira tinta translúcida nos temas escuros */
html.tema-escuro .alert, html.tema-cinza .alert, html.tema-contraste .alert { color: var(--inc-texto); }
html.tema-escuro .alert-primary, html.tema-cinza .alert-primary, html.tema-contraste .alert-primary { background-color: rgba(0,123,255,.15); border-color: rgba(0,123,255,.4); }
html.tema-escuro .alert-secondary, html.tema-cinza .alert-secondary, html.tema-contraste .alert-secondary { background-color: rgba(108,117,125,.2); border-color: rgba(108,117,125,.45); }
html.tema-escuro .alert-success, html.tema-cinza .alert-success, html.tema-contraste .alert-success { background-color: rgba(40,167,69,.15); border-color: rgba(40,167,69,.4); }
html.tema-escuro .alert-info, html.tema-cinza .alert-info, html.tema-contraste .alert-info { background-color: rgba(23,162,184,.15); border-color: rgba(23,162,184,.4); }
html.tema-escuro .alert-warning, html.tema-cinza .alert-warning, html.tema-contraste .alert-warning { background-color: rgba(255,193,7,.15); border-color: rgba(255,193,7,.4); }
html.tema-escuro .alert-danger, html.tema-cinza .alert-danger, html.tema-contraste .alert-danger { background-color: rgba(220,53,69,.18); border-color: rgba(220,53,69,.45); }
html.tema-escuro .alert-light, html.tema-cinza .alert-light, html.tema-contraste .alert-light,
html.tema-escuro .alert-dark, html.tema-cinza .alert-dark, html.tema-contraste .alert-dark { background-color: var(--inc-hover); border-color: var(--inc-borda); }

/* ---------- alto contraste: bordas visíveis e foco forte ---------- */
html.tema-contraste .card,
html.tema-contraste .modal-content,
html.tema-contraste .btn,
html.tema-contraste .left.side-menu,
html.tema-contraste .navbar-custom { border: 1px solid #fff !important; }
html.tema-contraste .btn-primary,
html.tema-contraste .btn-info { background-color: #ffff33 !important; border-color: #ffff33 !important; color: #000 !important; }
html.tema-contraste #sidebar-menu a,
html.tema-contraste .mn-link { color: #fff !important; }
html.tema-contraste #sidebar-menu a.active,
html.tema-contraste .mn-link.active { color: #ffff33 !important; }
/* menus novos: tons de azul (hover, ativo, marcadores) viram amarelo/cinza */
html.tema-contraste .mn-link:hover,
html.tema-contraste .mn-painel .mn-item:nth-child(even) > .mn-link:hover,
html.tema-contraste .mn-trilho-item:hover,
html.tema-contraste .mn-trilho-item.on,
html.tema-contraste .mn-a .mn-link.active,
html.tema-contraste .mn-d-gaveta .mn-link.active { background: var(--inc-hover) !important; border-color: #fff !important; box-shadow: none !important; }
html.tema-contraste .mn-trilho-item.on i,
html.tema-contraste .mn-link:hover > i,
html.tema-contraste .mn-a .mn-link.active > i,
html.tema-contraste .mn-d-gaveta .mn-link.active > i { color: #ffff33 !important; }
html.tema-contraste .mn-trilho-item.rota::after,
html.tema-contraste .mn-a .mn-link.active::before,
html.tema-contraste .mn-d-gaveta .mn-link.active::before { background: #ffff33 !important; }
html.tema-contraste .mn-b .mn-link.active:hover { background: #ffff33 !important; }
html.tema-contraste #sidebar-menu > ul > li > a.active,
html.tema-contraste #sidebar-menu ul ul a.active { background-color: var(--inc-hover) !important; }
html.tema-contraste #sidebar-menu > ul > li > a.active > i,
html.tema-contraste #sidebar-menu ul ul a.active i { color: #ffff33 !important; }
html.tema-contraste *:focus-visible { outline: 2px solid #ffff33 !important; outline-offset: 2px; }

/* ---------- grupo 3: cores de texto escuras inline que somem nos temas escuros ---------- */
/* #0c5460 / #3e6c84 (teal de títulos e valores: simulador, crédito pessoal, confirmação, status, log, extrator) */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) :is([style^="color: rgb(12, 84, 96)"], [style*="; color: rgb(12, 84, 96)"],
  [style^="color: rgb(62, 108, 132)"], [style*="; color: rgb(62, 108, 132)"]) { color: var(--inc-link) !important; }
/* neutros escuros (#212529, #2c3e50, #333, #343a40) e cinza médio (#495057) */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) :is([style^="color: rgb(33, 37, 41)"], [style*="; color: rgb(33, 37, 41)"],
  [style^="color: rgb(44, 62, 80)"], [style*="; color: rgb(44, 62, 80)"], [style^="color: rgb(51, 51, 51)"], [style*="; color: rgb(51, 51, 51)"],
  [style^="color: rgb(52, 58, 64)"], [style*="; color: rgb(52, 58, 64)"]) { color: var(--inc-texto) !important; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) :is([style^="color: rgb(73, 80, 87)"], [style*="; color: rgb(73, 80, 87)"]) { color: var(--inc-suave) !important; }
/* realce teal claro (menu de ações da proposta: itens "destaque" em context.js) */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) {
  --inc-destaque: rgba(23, 162, 184, .22); --inc-destaque-2: rgba(23, 162, 184, .12);
  --inc-erro-bg: rgba(220, 53, 69, .15); --inc-alerta-bg: rgba(240, 173, 78, .15);
  /* texto de status (verde/âmbar/vermelho escuro/roxo) sobre card escuro; nos temas claros fica o fallback original */
  --inc-sucesso-texto: #5cd08a; --inc-alerta-texto: #f0c060; --inc-erro-texto: #ff8a8a; --inc-roxo-texto: #b79cff;
}
/* .text-danger (paginação, ícones de ação, fechar do modal) fica sobre fundo do tema */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .text-danger { color: var(--inc-erro-texto) !important; }

/* Extrator de Ofertas: tokens --xo-* (extrator.css/cartaoOferta.css) seguem o tema */
html[class*="tema-"] .xo-root {
  --xo-tinta: var(--inc-texto); --xo-texto: var(--inc-texto); --xo-suave: var(--inc-suave);
  --xo-borda: var(--inc-borda); --xo-fundo: var(--inc-fundo); --xo-cartao: var(--inc-card); --xo-primaria-clara: var(--inc-hover);
}
html[class*="tema-"] .xo-root :is(.xo-card-pista-titulo, .xo-card-pista-sub b, .xo-card-metrica-valor, .xo-editor-campo input, .xo-editor-campo select, .xo-editor-valor) { color: var(--inc-texto); }
html[class*="tema-"] .xo-root .xo-card-tabela { color: var(--inc-suave); }
/* aba ativa usa --xo-tinta como fundo: nos temas escuros vira a primária */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-root .xo-aba.ativa { background: var(--inc-primaria); border-color: var(--inc-primaria); color: #000; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-root .xo-aba.ativa .xo-aba-contador { background: rgba(0, 0, 0, .15); color: #000; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-root {
  --xo-verde-claro: rgba(22, 163, 106, .18); --xo-vermelho-claro: rgba(214, 69, 61, .2);
  --xo-ambar-claro: rgba(183, 110, 0, .22); --xo-azul-claro: rgba(37, 99, 235, .2);
}
/* hero com o banner do BRB: logos de convênio continuam em botão claro; borda e texto do drop seguem o tema */
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero-convenio .xo-convenios button.ativo { background: #fff; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero.com-banner .xo-painel-entrada { border-color: var(--inc-borda); }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero.com-banner .xo-drop .extrator-ofertas-dropzone .drop-box .box { border-color: var(--inc-borda); }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero.com-banner .xo-drop .extrator-ofertas-dropzone .drop-box .box,
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero.com-banner .xo-drop .extrator-ofertas-dropzone .drop-box .box span { color: var(--inc-link) !important; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .xo-hero.com-banner .xo-drop .extrator-ofertas-dropzone .drop-box .box:hover { background: var(--inc-hover); }

/* Conformidade: cards de ação com gradiente claro fixo no miolo (checklist.css) viram tinta translúcida, como Biometria/Análise */
html[class*="tema-"] .conf-card-margem { background: linear-gradient(135deg, rgba(67,160,71,.06) 0%, rgba(67,160,71,.14) 40%, rgba(67,160,71,.06) 100%); }
html[class*="tema-"] .conf-card-credlink { background: linear-gradient(135deg, rgba(75,100,130,.08) 0%, rgba(75,100,130,.18) 40%, rgba(75,100,130,.08) 100%); }
html[class*="tema-"] .conf-card-ocr { background: linear-gradient(135deg, rgba(25,118,210,.06) 0%, rgba(25,118,210,.14) 40%, rgba(25,118,210,.06) 100%); }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .conf-card-margem .conf-action-card-title { color: #66bb6a; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .conf-card-credlink .conf-action-card-title { color: #9fb4cc; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .conf-card-ocr .conf-action-card-title { color: #64b5f6; }
html:is(.tema-escuro, .tema-cinza, .tema-contraste) .conf-card-antifraude .conf-action-card-title { color: #5b9bd5; }
