* {
  transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* ======== GERAL ======== */
body {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: var(--text-color);
  background-color: var(--bg-page);
}

/* ======== iOS/Android: evita zoom automatico em inputs ========
   Safari iOS e Chrome Android aplicam zoom ao focar campos com
   font-size menor que 16px. Forcamos 16px em dispositivos touch
   (hover: none + pointer: coarse cobre celulares e tablets) sem
   afetar o desktop. Cobre tambem os widgets terceiros usados no
   sistema (SweetAlert2, Choices.js, flatpickr). */
@media (hover: none) and (pointer: coarse) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea,
  [contenteditable="true"],
  .swal2-input,
  .swal2-textarea,
  .swal2-select,
  .choices__input,
  .flatpickr-input,
  .form-control,
  .form-select {
    font-size: 16px !important;
  }
}

h1,
h2,
h3,
h4,
h5 {
  font-weight: 600;
  letter-spacing: 0.5px;
}

h1 {
  font-size: 1.8rem;
}

h2 {
  font-size: 1.5rem;
}

h3 {
  font-size: 1.3rem;
}

table,
.btn,
.nav-link,
.navbar-text {
  font-size: 0.9rem;
}


html,
body {
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.sidebar {
  position: fixed;
  top: 60px;
  left: -260px;
  width: 240px;
  height: 100%;
  background-color: var(--bg-sidebar);
  box-shadow: 2px 0 8px var(--shadow-color);
  transition: all 0.3s ease;
  z-index: 2000;
  border-radius: 0 12px 12px 0;
  padding: 1rem;
}

.sidebar.active {
  left: 0;
}

.sidebar ul {
  padding: 0;
  list-style: none;
}

.sidebar li {
  margin-bottom: 1rem;
}

.sidebar a {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--accent-text);
  text-decoration: none;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: 8px;
  transition: background-color 0.3s;
}

.sidebar a:hover {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}

.sidebar i {
  color: var(--accent-hover);
  font-size: 1.1rem;
}

/* Navbar Top */
.navbar {
  position: relative;
  z-index: 2000;
  padding: 0.8rem 1.5rem;
  background-color: var(--bg-navbar);
  box-shadow: 0 2px 8px var(--shadow-soft);
  border-radius: 0 0 12px 12px;
}

.toggle-sidebar {
  background: transparent;
  border: none;
  color: var(--accent-text);
  font-size: 1.3rem;

}

.logo-navbar {
  height: 3.5rem;
  width: auto;
  object-fit: contain;
}

/* Tema escuro: troca a logo colorida (texto escuro) pela versao branca,
   legivel sobre o fundo escuro. Funciona em qualquer pagina pois o path
   do url() e relativo a este CSS (assets/css/), nao ao HTML. */
[data-theme="dark"] .logo-navbar {
  content: url("../imgs/login/logo-branca.png");
}

.navbar-brand {
  font-weight: 700;
  font-size: 1.3rem;
  margin-left: 0.5rem;
  color: var(--accent-text) !important;
}

.user-dropdown {
  font-size: 0.9rem;
  padding: 0.6rem 1rem;
  border-radius: 10px;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--text-color);
}

.user-dropdown:hover {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}


.dropdown-menu {
  border-radius: 8px;
  box-shadow: 0 5px 15px var(--shadow-color);
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

.dropdown-menu .dropdown-item {
  color: var(--text-color);
}

.dropdown-menu .dropdown-item:hover,
.dropdown-menu .dropdown-item:focus {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}

.user-dropdown i {
  color: var(--accent-hover);
  font-size: 1.2rem;
}

/* Botão de troca de tema (claro/escuro/auto) na navbar */
.theme-toggle {
  background: transparent;
  border: none;
  color: var(--accent-text);
  font-size: 1.1rem;
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.theme-toggle:hover {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}

.theme-toggle i {
  font-size: 1.15rem;
  line-height: 1;
}

/* ======== TABELA ======== */
.table,
.modern-table {
  min-width: 1400px;
  font-size: 0.9rem;
  border-collapse: collapse;
  background-color: var(--bg-surface);
  color: var(--text-color);
}

.table th,
.table td,
.modern-table th,
.modern-table td {
  white-space: nowrap;
  padding: 0.5rem 1rem;
  text-align: center;
  vertical-align: middle;
  border-right: 1px solid var(--border-color);
}

.modern-table th,
.modern-table td {
  font-size: 0.85rem;
  color: var(--text-color);
}

.ocultar-forcado {
  display: none !important;
}

.modern-table thead th {
  background-color: var(--bg-table-header);
  font-weight: 600;
  color: var(--text-color);
}

.table thead {
  position: sticky;
  top: 0;
  z-index: 100;
}

.table thead,
.modern-table thead {
  background-color: var(--primary-color);
  color: var(--text-color);
  font-weight: 600;
}

.table tbody tr:hover,
.modern-table tbody tr:hover {
  background-color: var(--bg-row-hover);
}

.modern-table tbody tr:nth-child(even) {
  background-color: var(--bg-surface-alt);
}

.modern-table {
  width: 100%;
  max-width: 1800px;
  margin: 0 auto;
}

table th:first-child {
  border-top-left-radius: 8px;
}

table th:last-child {
  border-top-right-radius: 8px;
}

table th:last-child,
table td:last-child {
  border-right: none;
}

/* ======== SCROLL DA TABELA ======== */
.table-responsive,
.custom-scroll {
  overflow-x: auto;
  border-radius: 0.5rem;
  background-color: var(--bg-surface);
  padding: 0;
  box-shadow: 0 0 12px var(--shadow-soft);
}

.custom-scroll {
  max-height: calc(100vh - 340px);
  overflow-y: auto;
  border: 1px solid var(--border-color);
  border-radius: 8px;
}

.container-fluid {
  padding-left: 1rem;
  padding-right: 1rem;
}

.container-fluid.my-4 {
  margin-top: 0.5rem !important;
}

table input[type="checkbox"] {
  transform: scale(1.2);
  cursor: pointer;
}

tr.selected {
  background-color: var(--bg-row-hover) !important;
  transition: background-color 0.2s ease-in-out;
}

.overlay-loader {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: var(--bg-overlay);
  z-index: 999;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.3s ease;
}

.content-loader-container {
    position: relative;
    min-height: 200px; /* Garante uma altura mínima para o loader ser visível */
}

/* Define a altura máxima e a barra de rolagem para a lista de opções.
   `overscroll-behavior: contain` impede que o wheel propague pro modal-body
   quando o user rola dentro do dropdown — sem isso, dentro de
   `.modal-dialog-scrollable` (ex: Nova Solicitacao de Atividade Complementar)
   o scroll passava pro modal em vez de mexer na lista. */
.choices__list--dropdown .choices__list,
.choices__list[aria-expanded] .choices__list {
  max-height: 220px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

/* Aplica tambem no container externo do dropdown (alguns layouts antigos
   do Choices.js puxam o scroll pra ca em vez do .choices__list interno). */
.choices__list--dropdown,
.choices__list[aria-expanded] {
  overscroll-behavior: contain;
}

/* Melhora a aparência do campo de seleção principal */
.choices__inner {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-radius: 8px !important;
  /* Mantém o padrão do seu projeto */
  border: 1px solid var(--border-color) !important;
  padding: 0.375rem 0.75rem !important;
  min-height: auto;
  /* Ajusta a altura mínima */
  font-size: 0.9rem;
  /* Alinha com o tamanho da fonte dos outros inputs */
}

/* Estiliza o campo quando está focado/ativo */
.is-focused .choices__inner {
  border-color: #5ca98c !important;
  box-shadow: 0 0 0 0.15rem rgba(92, 169, 140, 0.25) !important;
}

/* Melhora a aparência da barra de rolagem dentro do dropdown */
.choices__list--dropdown .choices__list::-webkit-scrollbar {
  width: 8px;
  background-color: #f0f0f0;
}

.choices__list--dropdown .choices__list::-webkit-scrollbar-thumb {
  background-color: #b8d8c5;
  /* Cor verde do seu tema */
  border-radius: 8px;
}

.detalhe-diario-cell {
  max-width: 750px; /* Aumenta a largura máxima em 2.5x (de 300px para 750px) */
  white-space: nowrap !important; /* Força o texto a ficar em uma única linha */
  overflow: hidden; /* Esconde o conteúdo que transborda */
  text-overflow: ellipsis; /* Adiciona "..." no final do texto truncado */
  text-align: left !important; /* Mantém o alinhamento à esquerda */
  cursor: pointer; /* Mantém o cursor de ponteiro para indicar que é clicável */
}

.detalhe-diario-cell {
  cursor: pointer;
}


@keyframes pulse {
  0% {
    opacity: 0.4;
  }

  50% {
    opacity: 1;
  }

  100% {
    opacity: 0.4;
  }
}

/* ========================================================== */
/* ======== RESPONSIVIDADE GLOBAL ========================== */
/* ========================================================== */

@media (max-width: 992px) {
  /* Navbar: logo menor em tablets */
  .logo-navbar {
    height: 3rem;
  }
}

@media (max-width: 768px) {
  html, body {
    overflow: auto !important;
  }

  /* Navbar */
  .logo-navbar {
    height: 2.5rem;
  }

  .navbar {
    padding: 0.5rem 1rem;
  }

  /* Search-box: largura total */
  .search-box {
    min-width: 100% !important;
    max-width: 100% !important;
  }

  /* Toolbar: empilha em coluna */
  .toolbar {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0.5rem !important;
  }

  .toolbar > .d-flex {
    flex-wrap: wrap;
  }

  /* Scroll das tabelas */
  .custom-scroll {
    max-height: calc(100vh - 220px);
  }

  /* Container: menos padding */
  .container-fluid {
    padding-left: 0.75rem !important;
    padding-right: 0.75rem !important;
  }

  /* Cards de dashboard: 2 colunas em mobile */
  .dashboard-cards .card {
    flex: 1 1 calc(50% - 8px) !important;
    max-width: calc(50% - 8px) !important;
    min-width: calc(50% - 8px) !important;
    height: auto !important;
  }
}

@media (max-width: 576px) {
  /* Navbar: logo menor em telefones */
  .logo-navbar {
    height: 2rem;
  }

  .navbar {
    padding: 0.4rem 0.75rem;
  }

  /* Esconde o nome do usuário, mantém apenas o ícone */
  #nomeUsuario {
    display: none;
  }

  /* Container: padding mínimo */
  .container-fluid {
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
  }

  /* Cards de dashboard: coluna única em telas muito pequenas */
  .dashboard-cards .card {
    flex: 1 1 100% !important;
    max-width: 100% !important;
    min-width: 100% !important;
  }

  /* Headings menores */
  h1 { font-size: 1.4rem !important; }
  h2 { font-size: 1.2rem !important; }
  h3 { font-size: 1.1rem !important; }
}

/* 1. O Fundo Escuro (Backdrop) deve cobrir a Sidebar (1045), mas ficar abaixo do Modal */
.modal-backdrop {
  z-index: 20000 !important; 
}

/* 2. O Modal deve ficar ACIMA do Backdrop */
.modal {
  z-index: 20005 !important; /* Aumentei para 20005 para garantir folga */
}

/* 3. SweetAlert deve ficar ACIMA dos Modais Bootstrap (caso abra um alerta sobre o modal) */
.swal2-container {
  z-index: 30000 !important; /* >> .modal (20005) e .modal-backdrop (20000) com folga */
}

/* Garante que o popup do SweetAlert também respeite o container (alguns temas
   aplicam z-index direto no popup, quebrando a sobreposição). */
.swal2-container .swal2-popup {
  z-index: 30001 !important;
}

/* Quando há modal Bootstrap aberto, Bootstrap incrementa z-index do .modal
   dinamicamente (modal-on-modal). Garante folga extra para o SweetAlert. */
body.modal-open .swal2-container,
body.swal2-shown .swal2-container {
  z-index: 30000 !important;
}

/* 4. Dropdowns, Tooltips e Popovers devem ficar acima de tudo */
.tooltip, .popover, .dropdown-menu {
  z-index: 20015 !important;
}

/* 5. Toasts (Notificações) no topo absoluto */
.toast-container {
  z-index: 20020 !important;
}

/* Ajuste opcional do SweetAlert */
.swal2-popup {
  font-size: 0.9rem !important;
}

/* Card 0016: destaca visualmente o input "Gestor TIM" quando ele esta
   editavel (OS sem valor cadastrado). Sinaliza pro usuario que ele pode
   preencher e o valor sera gravado no detalhe ao salvar o lancamento. */
.form-control.campo-editavel-os {
  background-color: rgba(125, 167, 138, 0.06);
  border-color: rgba(125, 167, 138, 0.5);
  box-shadow: inset 3px 0 0 var(--accent-color, #7da78a);
}
.form-control.campo-editavel-os:focus {
  background-color: rgba(125, 167, 138, 0.1);
  border-color: var(--accent-color, #7da78a);
  box-shadow: inset 3px 0 0 var(--accent-color, #7da78a), 0 0 0 0.2rem rgba(125, 167, 138, 0.25);
}
[data-theme="dark"] .form-control.campo-editavel-os {
  background-color: rgba(125, 167, 138, 0.1);
}

/* Card 0029: lista do preview de fechamento de carteira (modal Fechar Lote).
   Cards-linha com acento colorido por situacao, hover sutil e tipografia
   hierarquica — alinhado ao tema verde-azulado do sistema. */
.preview-fin-wrap {
  margin-top: 12px;
}
.preview-fin-list-header {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.74rem;
  color: var(--text-muted, #6c757d);
  letter-spacing: 0.3px;
  text-transform: uppercase;
  padding: 0 4px 6px;
  font-weight: 600;
}
.preview-fin-list-header strong {
  color: var(--accent-color, #7da78a);
  font-size: 0.85rem;
  font-weight: 700;
}
.preview-fin-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 4px;
  /* Altura fixa: mostra ~3 itens e scrolla os demais. O popup tambem
     tem cap em 90vh (.swal-popup-fechar-lote) — defesa em camadas. */
  max-height: min(32vh, 260px);
  overflow-y: auto;
  /* Scrollbar discreto coerente com o tema. */
  scrollbar-width: thin;
  scrollbar-color: var(--accent-color, #7da78a) transparent;
}
.preview-fin-list::-webkit-scrollbar { width: 6px; }
.preview-fin-list::-webkit-scrollbar-thumb {
  background-color: var(--accent-color, #7da78a);
  border-radius: 3px;
  opacity: 0.5;
}
.preview-fin-list::-webkit-scrollbar-track { background: transparent; }

.preview-fin-item {
  display: flex;
  align-items: stretch;
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.06), rgba(255, 255, 255, 0.5));
  border: 1px solid var(--border-color, #e0e7e3);
  border-radius: 12px;
  overflow: hidden;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
  /* Impede o flex column de comprimir os items quando a lista esta com
     scroll — antes 20 items dentro de 320px ficavam achatados. */
  flex-shrink: 0;
}
.preview-fin-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(125, 167, 138, 0.18);
  border-color: rgba(125, 167, 138, 0.5);
}
.preview-fin-accent {
  width: 4px;
  flex-shrink: 0;
}
.preview-fin-body {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}
.preview-fin-head {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 0.85rem;
  color: var(--text-color);
}
.preview-fin-tag {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 6px;
  background: rgba(125, 167, 138, 0.18);
  color: var(--accent-color, #7da78a);
  border: 1px solid rgba(125, 167, 138, 0.3);
}
.preview-fin-os, .preview-fin-site {
  font-weight: 600;
  letter-spacing: 0.2px;
}
.preview-fin-sep {
  flex: 0 0 1px;
  height: 14px;
  background: var(--border-color, #cfd8d3);
  opacity: 0.6;
  margin: 0 2px;
}
.preview-fin-doc {
  font-size: 0.78rem;
  color: var(--text-muted, #6c757d);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 500;
}
.preview-fin-doc .bi {
  margin-right: 5px;
  opacity: 0.75;
  color: var(--accent-color, #7da78a);
}
.preview-fin-meta {
  flex-shrink: 0;
  padding: 10px 14px 10px 10px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 6px;
  border-left: 1px dashed var(--border-color, #e0e7e3);
  min-width: 130px;
}
.preview-fin-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 11px;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  border: 1px solid;
  letter-spacing: 0.3px;
  white-space: nowrap;
}
.preview-fin-badge .bi {
  font-size: 0.72rem;
}
.preview-fin-ativ {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.7rem;
  color: var(--text-muted, #6c757d);
  white-space: nowrap;
  cursor: help;
}
.preview-fin-ativ .bi {
  font-size: 0.72rem;
  opacity: 0.7;
}
.preview-fin-ativ strong {
  color: var(--text-color);
  font-size: 0.82rem;
  font-weight: 700;
}

/* Dark mode: gradients/bordas adaptados ao tema escuro. */
[data-theme="dark"] .preview-fin-item {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.1), rgba(125, 167, 138, 0.02));
  border-color: rgba(125, 167, 138, 0.22);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}
[data-theme="dark"] .preview-fin-item:hover {
  border-color: rgba(125, 167, 138, 0.55);
  box-shadow: 0 6px 18px rgba(125, 167, 138, 0.28);
}
[data-theme="dark"] .preview-fin-meta {
  border-left-color: rgba(125, 167, 138, 0.22);
}
[data-theme="dark"] .preview-fin-sep {
  background: rgba(125, 167, 138, 0.3);
}
[data-theme="dark"] .preview-fin-tag {
  background: rgba(125, 167, 138, 0.15);
  border-color: rgba(125, 167, 138, 0.35);
}

/* Card 0029: o popup do modal Fechar Lote nunca pode passar da viewport.
   - popup max 90vh: nao deixa empurrar pra fora da tela
   - overflow hidden no popup e no html-container: impede que o swal crie
     seu proprio scroll (causaria o "scroll duplo" — interno da lista E
     externo do popup). So a lista (.preview-fin-list) tem scroll proprio. */
.swal-popup-fechar-lote {
  max-height: 90vh !important;
  overflow: hidden !important;
}
.swal-popup-fechar-lote .swal2-html-container {
  overflow: hidden !important;
}

/* Garante que o dropdown do Choices.js dentro do SweetAlert apareça corretamente */
.choices__list--dropdown,
.choices__list[aria-expanded] {
  z-index: 20015 !important; /* Igual ou maior que o container onde está */
}

/* Card 0015: lista "Prestador e valor por item" no modal de lote, modo replicar.
   Cada linha tem um label do item (cresce), o select de prestador (largura
   media) e o input de valor (compacto). Em telas estreitas vira coluna. */
.financeiro-por-item-card {
  border-color: var(--accent-color, #7da78a);
}
.financeiro-por-item-card .card-header {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.18), rgba(125, 167, 138, 0.06));
  border-bottom-color: rgba(125, 167, 138, 0.35);
  font-size: 0.92rem;
}
.financeiro-item-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 1.4fr) minmax(140px, 180px);
  gap: 0.75rem;
  align-items: center;
  padding: 0.6rem 0.85rem;
}
.financeiro-item-row + .financeiro-item-row {
  border-top: 1px solid rgba(0, 0, 0, 0.06);
}
.financeiro-item-label {
  font-size: 0.85rem;
  font-weight: 500;
  color: var(--text-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.financeiro-item-prestador .choices,
.financeiro-item-prestador .form-select {
  margin-bottom: 0;
}
.financeiro-item-valor .input-group {
  flex-wrap: nowrap;
}
@media (max-width: 768px) {
  .financeiro-item-row {
    grid-template-columns: 1fr;
  }
  .financeiro-item-label {
    white-space: normal;
  }
}
[data-theme="dark"] .financeiro-por-item-card {
  background-color: var(--card-bg, #1d2a23);
  border-color: rgba(125, 167, 138, 0.4);
}
[data-theme="dark"] .financeiro-por-item-card .card-header {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.18), rgba(125, 167, 138, 0.04));
  border-bottom-color: rgba(125, 167, 138, 0.3);
  color: var(--text-color);
}
[data-theme="dark"] .financeiro-item-row + .financeiro-item-row {
  border-top-color: rgba(255, 255, 255, 0.06);
}

/* ==========================================================================
   Card #0019: Dropdown do Choices.js (selects de OS/PROJETO) dentro do
   modal "Solicitar Atividade Complementar" estava sendo recortado pelo
   overflow:auto do .modal-body (vem do modificador modal-dialog-scrollable).
   Aqui deixamos o modal-body crescer livre — Bootstrap permite scroll
   externo quando o modal excede a viewport, e o dropdown abre por cima
   dos demais campos sem clipping.
   ========================================================================== */
#modalSolicitarComplementar .modal-body,
#modalSolicitarComplementar .modal-dialog-scrollable .modal-body {
  overflow: visible !important;
}
/* O .modal-dialog-scrollable do Bootstrap aplica max-height no .modal-dialog
   tambem; soltamos para evitar que o conteudo interno cause scroll proprio. */
#modalSolicitarComplementar .modal-dialog.modal-dialog-scrollable {
  max-height: none;
}
#modalSolicitarComplementar .modal-dialog.modal-dialog-scrollable .modal-content {
  max-height: none;
  overflow: visible;
}

/* ========================================================== */
/* ======== SIDEBAR BACKDROP (MOBILE) ====================== */
/* ========================================================== */

#sidebar-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4);
  z-index: 1999; /* abaixo da sidebar (2000) mas acima do conteúdo */
  transition: opacity 0.3s ease;
}

#sidebar-backdrop.active {
  display: block;
}

/* ========================================================== */
/* ======== MODAIS EM MOBILE ================================ */
/* ========================================================== */

@media (max-width: 576px) {
  /* Modais: quase full-screen em celulares */
  .modal-dialog {
    margin: 0.5rem !important;
    max-width: calc(100vw - 1rem) !important;
  }

  .modal-dialog-centered {
    min-height: calc(100% - 1rem);
  }

  /* Modal body: mais espaço de scroll */
  .modal-body {
    max-height: 70vh;
    overflow-y: auto;
  }

  /* Modal header/footer: mais compactos */
  .modal-header,
  .modal-footer {
    padding: 0.75rem 1rem;
  }

  .modal-header .modal-title {
    font-size: 1rem;
  }
}

/* ========================================================== */
/* ======== DARK MODE — overrides de componentes Bootstrap === */
/* ========================================================== */
/* Aplicado via [data-theme="dark"] no <html>. Os módulos por
   página (registros.css, faturamento.css, etc.) ainda podem ter
   cores fixas — ajustamos pontualmente conforme aparecerem. */

[data-theme="dark"] .card,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-button {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: var(--bg-surface-alt);
  color: var(--accent-hover);
}

[data-theme="dark"] .card-header {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .bg-white {
  background-color: var(--bg-surface) !important;
}

[data-theme="dark"] .bg-light {
  background-color: var(--bg-surface-alt) !important;
}

[data-theme="dark"] .text-dark {
  color: var(--text-color) !important;
}

[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-secondary {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end {
  border-color: var(--border-color) !important;
}

[data-theme="dark"] hr {
  border-color: var(--border-color);
  opacity: 0.5;
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] .input-group-text {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.2rem rgba(125, 167, 138, 0.25);
}

[data-theme="dark"] .form-control::placeholder {
  color: var(--text-muted);
  opacity: 0.7;
}

[data-theme="dark"] .form-label {
  color: var(--text-color);
}

[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
  border-color: var(--border-color);
}

[data-theme="dark"] .btn-close {
  filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="dark"] .nav-tabs {
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .nav-tabs .nav-link {
  color: var(--text-muted);
}

[data-theme="dark"] .nav-tabs .nav-link:hover {
  border-color: var(--border-color) var(--border-color) var(--border-color);
  color: var(--accent-hover);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
  background-color: transparent;
  color: var(--accent-color);
  border-color: transparent;
  border-top-color: transparent !important;
  border-left-color: transparent !important;
  border-right-color: transparent !important;
  /* Preserva o sublinhado verde da aba ativa (em light vem de index.css). */
  border-bottom: 3px solid var(--accent-color) !important;
  font-weight: 600;
  box-shadow: none;
  outline: none;
}

[data-theme="dark"] .nav-tabs .nav-link:focus,
[data-theme="dark"] .nav-tabs .nav-link:focus-visible {
  box-shadow: none;
  outline: none;
}

[data-theme="dark"] .list-group-item {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .table {
  color: var(--text-color);
  --bs-table-bg: var(--bg-surface);
  --bs-table-color: var(--text-color);
  --bs-table-striped-bg: var(--bg-surface-alt);
  --bs-table-striped-color: var(--text-color);
  --bs-table-hover-bg: var(--bg-row-hover);
  --bs-table-hover-color: var(--text-color);
  --bs-table-border-color: var(--border-color);
}

[data-theme="dark"] .alert-info {
  background-color: rgba(13, 110, 253, 0.15);
  color: #9ec5fe;
  border-color: rgba(13, 110, 253, 0.3);
}

[data-theme="dark"] .alert-success {
  background-color: rgba(25, 135, 84, 0.15);
  color: #a3cfbb;
  border-color: rgba(25, 135, 84, 0.3);
}

[data-theme="dark"] .alert-warning {
  background-color: rgba(255, 193, 7, 0.15);
  color: #ffda6a;
  border-color: rgba(255, 193, 7, 0.3);
}

/* Regra antiga consolidada no bloco mais abaixo (linha ~3091).
   Mantida vazia aqui pra preservar numeracao de linhas em comentarios historicos. */

/* SweetAlert no dark mode */
[data-theme="dark"] .swal2-popup {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .swal2-title,
[data-theme="dark"] .swal2-html-container {
  color: var(--text-color) !important;
}

[data-theme="dark"] .swal2-input,
[data-theme="dark"] .swal2-textarea,
[data-theme="dark"] .swal2-select {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* Choices.js dropdown no dark mode */
[data-theme="dark"] .choices__list--dropdown,
[data-theme="dark"] .choices__list[aria-expanded] {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .choices__list--dropdown .choices__list,
[data-theme="dark"] .choices__list[aria-expanded] .choices__list {
  background-color: var(--bg-surface);
}

[data-theme="dark"] .choices__list--dropdown .choices__item,
[data-theme="dark"] .choices__list[aria-expanded] .choices__item {
  color: var(--text-color);
}

[data-theme="dark"] .choices__list--dropdown .choices__item--selectable.is-highlighted,
[data-theme="dark"] .choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
  background-color: var(--bg-hover);
  color: var(--text-color);
}

[data-theme="dark"] .choices[data-type*="select-one"] .choices__inner,
[data-theme="dark"] .choices[data-type*="select-multiple"] .choices__inner,
[data-theme="dark"] .choices__inner {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .choices__placeholder,
[data-theme="dark"] .choices__list--single .choices__item {
  color: var(--text-color) !important;
  opacity: 1;
}

[data-theme="dark"] .choices[data-type*="select-one"]:after {
  border-color: var(--text-muted) transparent transparent transparent !important;
}

[data-theme="dark"] .choices[data-type*="select-one"].is-open:after {
  border-color: transparent transparent var(--text-muted) transparent !important;
}

[data-theme="dark"] .choices__input {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .choices__list--dropdown .choices__input,
[data-theme="dark"] .choices__list[aria-expanded] .choices__input {
  background-color: var(--bg-surface-alt) !important;
  border-bottom: 1px solid var(--border-color);
}

[data-theme="dark"] .choices.is-focused .choices__inner,
[data-theme="dark"] .choices.is-open .choices__inner {
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 0 0.15rem rgba(125, 167, 138, 0.18);
}

/* Polish do dark mode no card-modern e .modern-table do tab-cps-historico */
[data-theme="dark"] #cps-historico-pane .card-modern {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}
[data-theme="dark"] #cps-historico-pane .card-header-modern {
  background-color: var(--bg-surface-alt) !important;
  border-bottom-color: var(--border-color) !important;
}
[data-theme="dark"] #cps-historico-pane .modern-table thead.sticky-top {
  background-color: var(--bg-surface-alt) !important;
}
[data-theme="dark"] #cps-historico-pane .modern-table thead th {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-bottom-color: var(--border-color);
}
[data-theme="dark"] #cps-historico-pane .modern-table tbody td {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] #cps-historico-pane .modern-table tbody tr:hover td {
  background-color: var(--bg-hover) !important;
}
[data-theme="dark"] #cps-historico-pane .input-group-text {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-muted) !important;
}
[data-theme="dark"] #cps-historico-pane .form-control,
[data-theme="dark"] #cps-historico-pane .form-select {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #cps-historico-pane .badge.bg-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* Flatpickr no dark mode */
[data-theme="dark"] .flatpickr-calendar {
  background-color: var(--bg-surface);
  color: var(--text-color);
  box-shadow: 0 4px 16px var(--shadow-color);
}

[data-theme="dark"] .flatpickr-day {
  color: var(--text-color);
}

[data-theme="dark"] .flatpickr-day.today,
[data-theme="dark"] .flatpickr-day.selected {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
  color: #fff;
}

[data-theme="dark"] .flatpickr-day:hover {
  background-color: var(--bg-hover);
}

[data-theme="dark"] .flatpickr-months,
[data-theme="dark"] .flatpickr-weekdays,
[data-theme="dark"] .flatpickr-weekday {
  color: var(--text-color);
  background-color: var(--bg-surface-alt);
}

/* ========================================================== */
/* ======== DARK MODE — overrides por modulo (centralizado) = */
/* ========================================================== */
/* Centralizamos aqui todos os ajustes para os CSS por modulo
   (index.css, admin.css, registros.css, faturamento.css, etc.).
   Assim cada modulo nao precisa ter seu proprio bloco dark — a
   fonte unica da verdade fica em root.css (vars) + global.css
   (overrides). Use !important apenas quando o CSS original usa. */

/* --- index.css (home/lancamentos) ------------------------- */
[data-theme="dark"] .toolbar {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .overview-banner {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .overview-banner h1 {
  color: var(--text-color);
}

[data-theme="dark"] .mini-kpi-card {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .mini-kpi-card .kpi-label {
  color: var(--text-muted);
}

[data-theme="dark"] .mini-kpi-card .kpi-value {
  color: var(--text-color);
}

[data-theme="dark"] .dashboard-cards .card h5,
[data-theme="dark"] .dashboard-cards .card p {
  color: var(--text-color);
}

[data-theme="dark"] .section-title {
  color: var(--accent-text);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .modal-header {
  background-color: var(--bg-surface-alt);
  border-bottom-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .modal-footer {
  background-color: var(--bg-surface-alt);
  border-top-color: var(--border-color);
}

[data-theme="dark"] #modalConfirmarSubmissao .modal-content,
[data-theme="dark"] #modalConfirmarSubmissao .modal-header,
[data-theme="dark"] #modalConfirmarSubmissao .modal-footer {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] #modalConfirmarSubmissao .modal-header {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] #modalConfirmarSubmissao .alert {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
  color: var(--accent-text);
}

[data-theme="dark"] label,
[data-theme="dark"] .etapa-card h6 {
  color: var(--text-color);
}

[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] select,
[data-theme="dark"] textarea {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .input-group-text {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .nav-tabs .nav-link {
  color: var(--text-muted);
}

[data-theme="dark"] .nav-tabs .nav-link:hover:not(.active) {
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .material-info-card {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
  border-left-color: var(--accent-color);
}

[data-theme="dark"] .material-info-card .info-label {
  color: var(--text-muted);
}

[data-theme="dark"] .material-info-card .info-value {
  color: var(--text-color);
}

[data-theme="dark"] #lpuChecklistContainerLote {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
}

[data-theme="dark"] #lpuChecklistContainerLote .form-check:hover {
  background-color: var(--bg-hover);
}

[data-theme="dark"] .lpu-label-details {
  color: var(--text-muted);
}

[data-theme="dark"] #acoes-lote-doc {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .filtros-dropdown {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Choices.js inner (input do select) — override do hardcoded em index.css */
[data-theme="dark"] .choices__inner {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- admin.css ------------------------------------------- */
[data-theme="dark"] html.admin-page,
[data-theme="dark"] html.admin-page body {
  background-color: var(--bg-page) !important;
}

[data-theme="dark"] .admin-tabs {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .admin-tabs .nav-link {
  color: var(--text-muted);
}

[data-theme="dark"] .admin-tabs .nav-link:hover {
  background: var(--bg-hover);
  color: var(--accent-hover);
}

[data-theme="dark"] .admin-filter-group {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .admin-search {
  background: var(--bg-input);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .admin-search:focus {
  background: var(--bg-input);
  border-color: var(--accent-color);
}

[data-theme="dark"] .admin-search::placeholder {
  color: var(--text-muted);
}

[data-theme="dark"] .admin-table-wrapper {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .admin-table thead th {
  background-color: var(--bg-table-header);
  color: var(--text-color);
}

[data-theme="dark"] .admin-table thead th[data-sort]:hover {
  background-color: var(--bg-hover);
}

[data-theme="dark"] .admin-table tbody tr {
  border-bottom-color: var(--border-soft);
}

[data-theme="dark"] .admin-table tbody tr:nth-child(even) {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] .admin-table tbody tr:hover {
  background-color: var(--bg-row-hover);
}

[data-theme="dark"] .admin-table td {
  color: var(--text-color);
}

[data-theme="dark"] .admin-modal .modal-content {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .admin-modal .modal-header {
  background: var(--bg-surface);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .admin-modal .modal-header .modal-title {
  color: var(--text-color);
}

[data-theme="dark"] .admin-modal .modal-body .form-control,
[data-theme="dark"] .admin-modal .modal-body .form-select {
  background-color: var(--bg-input);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .admin-modal .modal-body .form-control:focus,
[data-theme="dark"] .admin-modal .modal-body .form-select:focus {
  background-color: var(--bg-input);
  border-color: var(--accent-color);
}

[data-theme="dark"] .admin-modal .modal-body .form-label {
  color: var(--text-color);
}

[data-theme="dark"] .admin-modal .modal-footer {
  background: var(--bg-surface-alt);
  border-top-color: var(--border-color);
}

[data-theme="dark"] .admin-modal .modal-footer .btn-secondary {
  background: var(--bg-hover);
  color: var(--text-color);
}

[data-theme="dark"] .admin-modal .modal-footer .btn-secondary:hover {
  background: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .segment-grid {
  background: var(--bg-surface-alt);
}

[data-theme="dark"] .segment-grid .form-check:hover {
  background: var(--bg-hover);
}

[data-theme="dark"] .segment-grid .form-check-label {
  color: var(--text-color);
}

[data-theme="dark"] .admin-pagination .page-link {
  background: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .admin-pagination .page-link:hover {
  background-color: var(--bg-hover);
  border-color: var(--accent-color);
  color: var(--accent-hover);
}

[data-theme="dark"] .admin-pagination .page-item.disabled .page-link {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
  color: var(--text-muted);
}

[data-theme="dark"] #contadorUsuarios {
  background: var(--bg-surface-alt) !important;
  color: var(--accent-hover) !important;
  border-color: var(--border-color) !important;
}

/* --- registros.css --------------------------------------- */
[data-theme="dark"] .os-row,
[data-theme="dark"] .faturamento-col {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
}

[data-theme="dark"] .os-row:hover {
  background-color: var(--bg-row-hover);
}

[data-theme="dark"] .accordion-item {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
}

[data-theme="dark"] .accordion-header .accordion-button {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
}

[data-theme="dark"] .accordion-header .accordion-button:not(.collapsed) {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}

[data-theme="dark"] .accordion-body {
  background-color: var(--bg-surface);
  color: var(--text-color);
}

[data-theme="dark"] #modalProgressoImportacao .modal-header {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] #modalProgressoImportacao .progress {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] #listaErrosImportacao {
  background-color: rgba(220, 53, 69, 0.1);
  color: #ea868f;
  border-color: rgba(220, 53, 69, 0.3);
}

[data-theme="dark"] #modalProgressoImportacao .modal-footer {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] .andamento-wrapper {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .andamento-header {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .andamento-table .col-sub-header {
  background: var(--bg-surface-alt);
  color: var(--text-color);
}

[data-theme="dark"] .andamento-table tbody tr:nth-child(even) td {
  background: var(--bg-surface-alt);
}

[data-theme="dark"] .andamento-gate-banner {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- faturamento.css ------------------------------------- */
[data-theme="dark"] .fat-filter-bar {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-search-input,
[data-theme="dark"] .fat-filter-select,
[data-theme="dark"] .fat-ms-trigger {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .fat-search-input::placeholder {
  color: var(--text-muted) !important;
  opacity: 0.7;
}

/* Card 0046 (2026-05-19): faturamento.css forca background:#fff no :focus
   (light mode). Sem este override, no dark mode o texto fica claro sobre
   fundo branco quando o usuario clica no input — invisivel. */
[data-theme="dark"] .fat-search-input:focus {
  background: var(--bg-input) !important;
  color: var(--text-color) !important;
}

/* Card 0046 (2026-05-19) — Modal "Exportar Faturamento" no dark mode.
   Cards das abas e toolbar tinham fundo branco / texto escuro hardcoded em
   faturamento.css (linhas 1367+, 1446+, 1507+) — quebra visual no tema escuro. */
[data-theme="dark"] .exp-modal-subtitle {
  color: var(--text-muted);
  border-bottom-color: var(--border-color);
}
[data-theme="dark"] .exp-toolbar-btn {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .exp-toolbar-btn:hover {
  background: var(--bg-hover);
}
[data-theme="dark"] .exp-card-inner {
  background: var(--bg-surface);
  border-color: var(--border-color);
}
[data-theme="dark"] .exp-card:hover .exp-card-inner {
  background: var(--bg-hover);
  border-color: var(--accent-color, #7da78a);
}
[data-theme="dark"] .exp-card .export-check:checked ~ .exp-card-inner {
  background: var(--bg-hover);
}
[data-theme="dark"] .exp-card .export-check:disabled ~ .exp-card-inner {
  background: var(--bg-surface-alt, var(--bg-surface));
}
[data-theme="dark"] .exp-card-label {
  color: var(--text-color);
}
[data-theme="dark"] .exp-card-count {
  color: var(--text-muted);
}

/* 2026-05-19 — Modal "Exportar Carteira" (aprovacoes-carteira.js) e
   "Exportar Dashboard" (registros-io.js) no dark mode. Ambos usam o mesmo
   esqueleto de cards (.carteira-export-card / .export-card) com CSS inline
   forcando fundo branco e texto escuro. Sobrescreve aqui. */
[data-theme="dark"] .carteira-export-card,
[data-theme="dark"] .export-card {
  background: var(--bg-surface) !important;
  border-color: var(--border-color);
}
[data-theme="dark"] .carteira-export-card .icon-box,
[data-theme="dark"] .export-card .icon-box {
  background-color: var(--bg-surface-alt, var(--bg-hover)) !important;
  color: var(--text-muted) !important;
}
[data-theme="dark"] .carteira-export-card .export-title,
[data-theme="dark"] .export-card .export-title {
  color: var(--text-color) !important;
}
[data-theme="dark"] .carteira-export-card .export-desc,
[data-theme="dark"] .export-card .export-desc {
  color: var(--text-muted) !important;
}
[data-theme="dark"] .carteira-export-card .export-badge,
[data-theme="dark"] .export-card .export-badge {
  background-color: var(--bg-surface-alt, var(--bg-hover)) !important;
  color: var(--text-color) !important;
}
/* Titulo "Exportar Carteira" usa <span class="fw-bold text-dark"> — Bootstrap
   .text-dark tem !important, entao precisamos da mesma forca. */
[data-theme="dark"] .swal2-title .text-dark {
  color: var(--text-color) !important;
}

[data-theme="dark"] .fat-action-btn {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-action-btn:hover {
  background: var(--bg-hover);
  color: var(--accent-hover);
}

[data-theme="dark"] .fat-filters-grid {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-ms-dropdown {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-ms-search input {
  background: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-accordion .accordion-item {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-accordion .accordion-button {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
}

[data-theme="dark"] .fat-accordion .accordion-body {
  background-color: var(--bg-surface);
  color: var(--text-color);
}

[data-theme="dark"] .fat-etapa-card,
[data-theme="dark"] .etapa-summary {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .dashboard-filtros,
[data-theme="dark"] .dashboard-totais-row {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .totais-header {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .totais-cell {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .fat-nav-pills {
  background: var(--bg-surface-alt);
}

[data-theme="dark"] .fat-nav-pills .nav-link {
  color: var(--text-muted);
}

[data-theme="dark"] .fat-nav-pills .nav-link.active {
  background: var(--bg-surface);
  color: var(--accent-hover);
}

/* --- cps.css / controle-cps.css -------------------------- */
[data-theme="dark"] .segment-card {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .sticky-header th {
  background-color: var(--bg-table-header);
  color: var(--text-color);
}

[data-theme="dark"] .cps-filter-bar {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- gestao.css ------------------------------------------ */
[data-theme="dark"] .card {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .card-header {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}

[data-theme="dark"] .modern-table {
  background-color: var(--bg-surface);
  color: var(--text-color);
}

[data-theme="dark"] .tabs-wrapper-scroll {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

[data-theme="dark"] .card-kpi-header {
  background-color: var(--bg-surface);
  color: var(--text-color);
}

[data-theme="dark"] .filter-bar {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- cms.css --------------------------------------------- */
[data-theme="dark"] .cms-panel-header,
[data-theme="dark"] .material-card,
[data-theme="dark"] .card-actions {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .search-input-modern {
  background: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .card-stats {
  background: var(--bg-surface-alt);
  color: var(--text-color);
}

/* --- onboarding-admin.css -------------------------------- */
[data-theme="dark"] .onb-stat-card,
[data-theme="dark"] .onb-table-wrapper {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .onb-table thead th {
  background: var(--bg-table-header);
  color: var(--text-color);
}

[data-theme="dark"] .onb-table tbody td {
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- aprovacoes-materiais.css ---------------------------- */
[data-theme="dark"] .search-glass-container {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .custom-accordion-modern .accordion-item {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .pedido-header {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}

[data-theme="dark"] .pedido-header:not(.collapsed) {
  background-color: var(--bg-hover);
}

/* Hover do header (em light usa #fafafa hardcoded em aprovacoes-materiais.css). */
[data-theme="dark"] .pedido-header:hover {
  background-color: var(--bg-hover) !important;
}

/* pedido-item-dom: card wrapper — border + selected-card no dark. */
[data-theme="dark"] .pedido-item-dom {
  border-color: var(--border-color) !important;
  background-color: var(--bg-surface);
}
[data-theme="dark"] .pedido-item-dom.selected-card {
  border-color: var(--accent-color) !important;
  background-color: rgba(125, 167, 138, 0.12) !important;
}
[data-theme="dark"] .pedido-item-dom:hover {
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
}

[data-theme="dark"] .table-modern-2026 {
  background: var(--bg-surface);
  color: var(--text-color);
}

[data-theme="dark"] .table-modern-2026 tbody tr {
  background: var(--bg-surface);
}

[data-theme="dark"] .table-modern-2026 tbody td {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Cores auxiliares de texto comuns nos modulos */
[data-theme="dark"] .text-success {
  color: #6ec78f !important;
}

[data-theme="dark"] .text-warning {
  color: #f5c46b !important;
}

[data-theme="dark"] .text-danger {
  color: #ea868f !important;
}

[data-theme="dark"] .text-info {
  color: #6ec5f0 !important;
}

[data-theme="dark"] .text-primary {
  color: #6ea8fe !important;
}

/* Links em geral dentro de cards/painéis */
[data-theme="dark"] a:not(.btn):not(.dropdown-item):not(.nav-link) {
  color: var(--accent-hover);
}

[data-theme="dark"] a:not(.btn):not(.dropdown-item):not(.nav-link):hover {
  color: var(--accent-text);
}

/* Empty state / mensagens cinza */
[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-secondary,
[data-theme="dark"] small.text-muted {
  color: var(--text-muted) !important;
}

/* ==========================================================
   ROUND 2 — overrides agressivos pos-feedback do usuario
   Cobertura ampla de containers, KPIs, tabelas zebra, textos
   hardcoded em modulos especificos. Sempre referenciam vars
   do root.css para manter centralizacao.
   ========================================================== */

/* --- Forca cor de texto em containers conhecidos --------- */
[data-theme="dark"] .card,
[data-theme="dark"] .card-body,
[data-theme="dark"] .card-header,
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-body,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .modal-body,
[data-theme="dark"] .toolbar,
[data-theme="dark"] .container-fluid,
[data-theme="dark"] .nav-tabs,
[data-theme="dark"] .tab-content,
[data-theme="dark"] .tab-pane {
  color: var(--text-color);
}

/* --- registros.css — dashboard / accordion / tabelas ----- */
[data-theme="dark"] .header-title-os,
[data-theme="dark"] .header-title-project,
[data-theme="dark"] .header-kpi .kpi-label,
[data-theme="dark"] .header-kpi .kpi-value,
[data-theme="dark"] .accordion-button,
[data-theme="dark"] .accordion-button:not(.collapsed) {
  color: var(--text-color) !important;
}

[data-theme="dark"] .header-title-project,
[data-theme="dark"] .header-kpi .kpi-label {
  color: var(--text-muted) !important;
}

/* OS row: cobre tambem a linha de bolsao em destaque */
[data-theme="dark"] tr.os-row td,
[data-theme="dark"] .os-row,
[data-theme="dark"] tr.os-row {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] tr.os-row:hover td,
[data-theme="dark"] .os-row:hover,
[data-theme="dark"] tr.os-row:hover {
  background-color: var(--bg-row-hover) !important;
}

/* Linhas com fundo cream (bolsao ativo, etc.) — qualquer
   bg amarelado/creme em accordion-header vira surface-alt */
[data-theme="dark"] .accordion-header[style*="background"],
[data-theme="dark"] .accordion-button[style*="background"] {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
}

/* Tabela ANDAMENTO INPROUT — zebra + sticky col + total */
[data-theme="dark"] .andamento-wrapper {
  background: var(--bg-surface);
  border-color: var(--border-color);
}
[data-theme="dark"] .andamento-header {
  background: var(--bg-surface-alt);
  border-bottom-color: var(--border-color);
}
[data-theme="dark"] .andamento-header h6 {
  color: var(--accent-hover);
}
[data-theme="dark"] .andamento-header .btn-icon {
  background: var(--bg-hover);
  border-color: var(--border-color);
  color: var(--accent-hover);
}
[data-theme="dark"] .andamento-header .btn-icon:hover {
  background: var(--accent-color);
  color: #fff;
  border-color: var(--accent-color);
}
[data-theme="dark"] .andamento-table tbody td {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .andamento-table tbody tr:nth-child(even) td {
  background: var(--bg-surface-alt);
}
[data-theme="dark"] .andamento-table tbody tr:nth-child(even) td:first-child {
  background: var(--bg-row-hover);
}
[data-theme="dark"] .andamento-table tbody td:first-child {
  background: var(--bg-surface-alt);
  color: var(--accent-hover);
  border-right-color: var(--border-color);
}
[data-theme="dark"] .andamento-table tbody tr:hover td {
  background: var(--bg-row-hover);
}
[data-theme="dark"] .andamento-table tbody tr:hover td:first-child {
  background: var(--bg-hover);
}
[data-theme="dark"] .andamento-table tbody tr.andamento-total-row td {
  background: rgba(45, 138, 101, 0.18);
  color: #6ec78f;
  border-color: rgba(45, 138, 101, 0.3);
}
[data-theme="dark"] .andamento-table tbody tr.andamento-total-row td:first-child {
  background: rgba(45, 138, 101, 0.28);
  color: #6ec78f;
}
[data-theme="dark"] .andamento-table .col-sub-header {
  background: var(--bg-surface-alt);
  color: var(--accent-hover);
  border-color: var(--border-color);
}
[data-theme="dark"] .andamento-table thead tr:nth-child(2) th.col-sub-header {
  background: var(--bg-table-header) !important;
  color: var(--text-color) !important;
  border-bottom-color: var(--accent-color);
}
[data-theme="dark"] .andamento-table td.val-zero {
  color: var(--text-muted);
}
[data-theme="dark"] .andamento-table td.val-highlight {
  color: var(--text-color);
}

/* Banner do gate vigente */
[data-theme="dark"] .andamento-gate-banner {
  background: var(--bg-surface-alt);
  border-color: var(--border-color);
  border-left-color: var(--accent-color);
}
[data-theme="dark"] .andamento-gate-banner .gate-banner-label,
[data-theme="dark"] .andamento-gate-banner .gate-banner-date .gate-date-label {
  color: var(--text-muted);
}
[data-theme="dark"] .andamento-gate-banner .gate-banner-name,
[data-theme="dark"] .andamento-gate-banner .gate-banner-date strong {
  color: var(--text-color);
}
[data-theme="dark"] .andamento-gate-banner.gate-banner-todos {
  background: var(--bg-surface-alt);
  border-color: var(--border-color);
}

/* Header solicitados (laranja) */
[data-theme="dark"] .andamento-header-solicitados {
  background: rgba(217, 119, 6, 0.15);
  border-bottom-color: rgba(217, 119, 6, 0.3);
}
[data-theme="dark"] .andamento-header-solicitados h6 {
  color: #f0a040;
}
[data-theme="dark"] .andamento-header-solicitados .btn-icon {
  background: rgba(217, 119, 6, 0.1);
  border-color: rgba(217, 119, 6, 0.3);
  color: #f0a040;
}

/* Totais row */
[data-theme="dark"] .dashboard-totais-row {
  background: var(--bg-surface);
  border-color: var(--border-color);
}
[data-theme="dark"] .totais-header {
  background: var(--bg-surface-alt);
  border-bottom-color: var(--border-color);
  color: var(--accent-hover);
}
[data-theme="dark"] .totais-cell {
  background: var(--bg-surface-alt);
  color: var(--text-color);
}
[data-theme="dark"] .totais-cell:hover {
  background: var(--bg-row-hover);
}
[data-theme="dark"] .totais-cell-value {
  color: var(--text-color);
}
[data-theme="dark"] .totais-cell-sub,
[data-theme="dark"] .totais-group-label {
  color: var(--text-muted);
}
[data-theme="dark"] .totais-divider {
  background: var(--border-color);
}

/* Filtros do dashboard */
[data-theme="dark"] .dashboard-filtros {
  background: var(--bg-surface);
  border-color: var(--border-color);
}
[data-theme="dark"] .dashboard-filtros .form-control,
[data-theme="dark"] .dashboard-filtros .form-select {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Linha inativa (vermelho claro) */
[data-theme="dark"] .row-inativo {
  background-color: rgba(220, 53, 69, 0.12) !important;
  color: var(--text-muted) !important;
}

/* Faturamento col destaque (cinza claro) */
[data-theme="dark"] .faturamento-col {
  background-color: rgba(125, 167, 138, 0.08) !important;
}

/* SweetAlert do registros (override do hardcoded) */
[data-theme="dark"] body .swal2-popup {
  background: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] body .swal2-title {
  color: var(--accent-hover) !important;
}
[data-theme="dark"] body .swal2-html-container {
  color: var(--text-color) !important;
}
[data-theme="dark"] body .swal2-popup .form-control {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] body .swal2-cancel {
  background-color: var(--bg-hover) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] body .swal2-cancel:hover {
  background-color: var(--border-color) !important;
}

/* --- gestao.css — KPI summary cards (gestaoAprovacoes) --- */
/* Os cards .card-stat com classes semanticas (.card-planejamento,
   .card-alerta, .card-perigo, .card-sucesso, .card-info) usam
   pasteis em light mode. Em dark, traduzimos para tons mais
   adequados ao fundo escuro mantendo o significado. */
[data-theme="dark"] .card-stat {
  color: var(--text-color);
}
[data-theme="dark"] .card-stat.card-planejamento {
  background-color: rgba(108, 117, 125, 0.18) !important;
  color: var(--text-color);
  border-left-color: #889ca3;
}
[data-theme="dark"] .card-stat.card-alerta {
  background-color: rgba(255, 193, 7, 0.15) !important;
  color: #ffda6a;
  border-left-color: #d1b154;
}
[data-theme="dark"] .card-stat.card-perigo {
  background-color: rgba(220, 53, 69, 0.15) !important;
  color: #ea868f;
  border-left-color: var(--bs-orange);
}
[data-theme="dark"] .card-stat.card-perigo p,
[data-theme="dark"] .card-stat.card-perigo h5 {
  color: #ea868f !important;
}
[data-theme="dark"] .card-stat.card-sucesso {
  background-color: rgba(25, 135, 84, 0.15) !important;
  color: #a3cfbb;
  border-left-color: #6b9b6d;
}
[data-theme="dark"] .card-stat.card-info {
  background-color: rgba(13, 202, 240, 0.12) !important;
  color: #9eeaf9;
  border-left-color: #64b5f6;
}
[data-theme="dark"] .card-stat h5,
[data-theme="dark"] .card-stat p {
  color: inherit;
}

/* Tabs scroll wrapper (gestaoAprovacoes) */
[data-theme="dark"] .tabs-wrapper-scroll {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
}

/* Filter bar (gestaoAprovacoes) */
[data-theme="dark"] .filter-bar {
  background-color: var(--bg-surface);
  border-color: var(--border-color);
  color: var(--text-color);
}

/* Card KPI header (gestaoAprovacoes) */
[data-theme="dark"] .card-kpi-header {
  background-color: var(--bg-surface);
  color: var(--text-color);
}

/* Doc KPI cards (documentista) */
[data-theme="dark"] .doc-kpi-card-v2 {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .doc-kpi-card-v2--warning .doc-kpi-card-v2__icon {
  background: rgba(245, 158, 11, 0.2);
  color: #f59e0b;
}
[data-theme="dark"] .doc-kpi-card-v2--danger .doc-kpi-card-v2__icon {
  background: rgba(220, 53, 69, 0.2);
  color: #ea868f;
}

/* Doc status strip */
[data-theme="dark"] .doc-status-strip {
  background: var(--bg-surface-alt);
  border-color: var(--border-color);
}

/* --- cms.css — material cards ---------------------------- */
[data-theme="dark"] .material-card {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .material-card *,
[data-theme="dark"] .material-card .card-title,
[data-theme="dark"] .material-card .card-body {
  color: inherit;
}
[data-theme="dark"] .material-card .card-stats {
  background: var(--bg-surface-alt);
  color: var(--text-color);
}
[data-theme="dark"] .material-card .card-actions {
  background: var(--bg-surface-alt);
  border-top-color: var(--border-color);
}
[data-theme="dark"] .cms-panel-header {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .cms-panel-header h2,
[data-theme="dark"] .cms-panel-header .panel-subtitle {
  color: var(--text-color);
}
[data-theme="dark"] .cms-panel-header .panel-subtitle {
  color: var(--text-muted);
}
[data-theme="dark"] .search-input-modern {
  background: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .search-input-modern::placeholder {
  color: var(--text-muted);
}

/* --- cps.css / controle-cps.css — relatorio CPS ---------- */
/* Cabecalho top com totais — gradient verde mantido */
[data-theme="dark"] .segment-card {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .sticky-header th {
  background-color: var(--bg-table-header);
  color: var(--text-color);
}
[data-theme="dark"] .cps-filter-bar {
  background: var(--bg-surface);
  border-color: var(--border-color);
}

/* Tabela CPS — zebra com cores cream */
[data-theme="dark"] .cps-table tbody tr,
[data-theme="dark"] table.cps-tabela tbody tr {
  background-color: var(--bg-surface);
  color: var(--text-color);
}
[data-theme="dark"] .cps-table tbody tr:nth-child(even),
[data-theme="dark"] table.cps-tabela tbody tr:nth-child(even),
[data-theme="dark"] .modern-table tbody tr:nth-child(even) {
  background-color: var(--bg-surface-alt);
}
[data-theme="dark"] .cps-table tbody td,
[data-theme="dark"] table.cps-tabela tbody td,
[data-theme="dark"] .modern-table tbody td {
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Linhas com background creme/laranja claro (status especificos) */
[data-theme="dark"] tr[style*="background-color: rgb(255"],
[data-theme="dark"] tr[style*="background-color: #fff"],
[data-theme="dark"] tr[style*="background: rgb(255"],
[data-theme="dark"] tr[style*="background: #fff"] {
  background-color: var(--bg-surface-alt) !important;
}

/* --- faturamento.css — labels e textos pequenos ---------- */
[data-theme="dark"] .fat-mini-label,
[data-theme="dark"] .fat-info-label,
[data-theme="dark"] .fat-card .label,
[data-theme="dark"] .fat-tag {
  color: var(--text-muted);
}
[data-theme="dark"] .fat-card,
[data-theme="dark"] .fat-row,
[data-theme="dark"] .fat-list-item {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .fat-row .col-label,
[data-theme="dark"] .fat-row .col-value,
[data-theme="dark"] .fat-row * {
  color: inherit;
}
[data-theme="dark"] .fat-row strong {
  color: var(--text-color);
}
[data-theme="dark"] .fat-projeto-codigo,
[data-theme="dark"] .fat-projeto-nome {
  color: var(--text-color);
}
[data-theme="dark"] .fat-segmento-tag {
  background: var(--bg-surface-alt);
  color: var(--text-muted);
  border-color: var(--border-color);
}

/* --- indexDB.css — etapas/prestadores/lpu/gates/geral ---- */
[data-theme="dark"] .segment-grid .segment-card,
[data-theme="dark"] .indexdb-card,
[data-theme="dark"] .index-tab-card,
[data-theme="dark"] .tab-card {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .tab-card-active,
[data-theme="dark"] .tab-card.active {
  background: var(--bg-table-header);
  border-color: var(--accent-color);
}
[data-theme="dark"] .tab-card-icon {
  color: var(--accent-hover);
}
[data-theme="dark"] .indexdb-table thead th,
[data-theme="dark"] .etapas-table thead th {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .indexdb-table tbody td,
[data-theme="dark"] .etapas-table tbody td {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .indexdb-table tbody tr:hover td,
[data-theme="dark"] .etapas-table tbody tr:hover td {
  background-color: var(--bg-row-hover);
}
[data-theme="dark"] .etapa-detalhe-card,
[data-theme="dark"] .substep-card {
  background: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .ocultar-btn,
[data-theme="dark"] .btn-ocultar {
  background: var(--bg-hover);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* Status indicators (etapas) — pontos coloridos: manter cores */

/* --- Aprovacoes / pedidos (gestaoAprovacoes) ------------- */
[data-theme="dark"] .pedido-item-dom,
[data-theme="dark"] .pedido-card,
[data-theme="dark"] .solicitacao-row,
[data-theme="dark"] .lote-card {
  background: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- Forca cores em todos os labels/spans dim em dark ---- */
[data-theme="dark"] [style*="color: #6c757d"],
[data-theme="dark"] [style*="color:#6c757d"],
[data-theme="dark"] [style*="color: #495057"],
[data-theme="dark"] [style*="color: #4a665a"],
[data-theme="dark"] [style*="color: #adb5bd"] {
  color: var(--text-muted) !important;
}
[data-theme="dark"] [style*="color: #212529"],
[data-theme="dark"] [style*="color:#212529"],
[data-theme="dark"] [style*="color: #333"],
[data-theme="dark"] [style*="color: #1f2937"],
[data-theme="dark"] [style*="color: #111827"] {
  color: var(--text-color) !important;
}

/* --- Forca surface em backgrounds inline brancos --------- */
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: white"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background-color: #ffffff"],
[data-theme="dark"] [style*="background:#ffffff"] {
  background-color: var(--bg-surface) !important;
}

/* --- Bordas claras inline -------------------------------- */
[data-theme="dark"] [style*="border-color: #dee2e6"],
[data-theme="dark"] [style*="border-color: #e9ecef"],
[data-theme="dark"] [style*="border: 1px solid #ddd"],
[data-theme="dark"] [style*="border: 1px solid #dee2e6"] {
  border-color: var(--border-color) !important;
}

/* --- Login: ajustes finos ------------------------------- */
[data-theme="dark"] .login-form-wrapper {
  background-color: var(--form-bg-color);
}
[data-theme="dark"] .form-title {
  color: var(--text-color);
}
[data-theme="dark"] .form-subtitle {
  color: var(--text-muted);
}
[data-theme="dark"] .form-floating > .form-control {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .form-floating > label {
  color: var(--text-muted);
}
[data-theme="dark"] #togglePassword {
  background-color: var(--bg-surface-alt);
  border-color: var(--border-color);
  color: var(--text-color);
}
[data-theme="dark"] .form-check-label {
  color: var(--text-color);
}

/* --- Admin filters/secoes adicionais --------------------- */
[data-theme="dark"] .admin-table .badge.bg-warning {
  background-color: rgba(255, 193, 7, 0.25) !important;
  color: #ffda6a !important;
}
[data-theme="dark"] .admin-table .badge.bg-info {
  background-color: rgba(13, 202, 240, 0.2) !important;
  color: #9eeaf9 !important;
}

/* --- Todas tabelas modern-table (.kpi/.totais/.cps) ------ */
[data-theme="dark"] .modern-table {
  background-color: var(--bg-surface);
  color: var(--text-color);
}
[data-theme="dark"] .modern-table tbody tr:hover {
  background-color: var(--bg-row-hover);
}
[data-theme="dark"] .modern-table thead th {
  background-color: var(--bg-table-header);
  color: var(--text-color);
  border-bottom-color: var(--border-color);
}
[data-theme="dark"] .modern-table tbody td {
  color: var(--text-color);
  border-color: var(--border-color);
}

/* --- Container fluid de paginas com bg fixo ------------- */
[data-theme="dark"] .admin-page,
[data-theme="dark"] body {
  background-color: var(--bg-page);
  color: var(--text-color);
}

/* --- Mini labels em geral em cabecalhos de cards -------- */
[data-theme="dark"] small,
[data-theme="dark"] .small {
  color: var(--text-muted);
}
[data-theme="dark"] strong,
[data-theme="dark"] b {
  color: inherit;
}

/* --- pagination Bootstrap genérico ---------------------- */
[data-theme="dark"] .pagination .page-link {
  background-color: var(--bg-surface);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .pagination .page-link:hover {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
}
[data-theme="dark"] .pagination .page-item.active .page-link {
  background-color: var(--accent-color);
  border-color: var(--accent-color);
  color: #fff;
}
[data-theme="dark"] .pagination .page-item.disabled .page-link {
  background-color: var(--bg-surface-alt);
  color: var(--text-muted);
  border-color: var(--border-color);
}

/* --- Botoes outline genericos --------------------------- */
[data-theme="dark"] .btn-outline-secondary {
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .btn-outline-secondary:hover {
  background-color: var(--bg-hover);
  color: var(--accent-hover);
  border-color: var(--accent-color);
}

/* --- Section titles ainda com cor verde ------------------ */
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
  color: var(--text-color);
}

/* ==========================================================
   ROUND 3 — corrige seletores REAIS apos inspecao do markup
   Os de antes nao bateram (ex: .card-stat era .aprovacoes-card)
   Aqui usamos os nomes exatos das classes em uso.
   ========================================================== */

/* --- gestaoAprovacoes: 6 KPI cards do topo -------------- */
[data-theme="dark"] .aprovacoes-card {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .aprovacoes-card:hover {
  border-color: var(--accent-color) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
}

[data-theme="dark"] .aprovacoes-card.active {
  background-color: rgba(125, 167, 138, 0.18) !important;
  border-color: var(--accent-color) !important;
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .aprovacoes-card-sublabel {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .aprovacoes-card.active .aprovacoes-card-sublabel {
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .aprovacoes-card-label {
  color: var(--text-color) !important;
}

[data-theme="dark"] .aprovacoes-card.active .aprovacoes-card-label {
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .aprovacoes-card-icon {
  background-color: var(--bg-surface-alt) !important;
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .aprovacoes-card.active .aprovacoes-card-icon {
  background-color: var(--bg-surface) !important;
  color: var(--accent-hover) !important;
}

/* Badges contadoras nos cards de aprovacoes */
[data-theme="dark"] .aprovacoes-card-badge.badge-zero {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-muted) !important;
}

[data-theme="dark"] .aprovacoes-card-badge.badge-low {
  background-color: rgba(255, 193, 7, 0.22) !important;
  color: #ffda6a !important;
}

[data-theme="dark"] .aprovacoes-card-badge.badge-high {
  background-color: rgba(220, 53, 69, 0.22) !important;
  color: #ea868f !important;
}

[data-theme="dark"] .aprovacoes-card-badge.badge-error {
  background-color: rgba(253, 126, 20, 0.22) !important;
  color: #fdac6a !important;
}

[data-theme="dark"] .aprovacoes-card.active .aprovacoes-card-badge.badge-zero {
  background-color: rgba(255, 255, 255, 0.15) !important;
  color: var(--text-muted) !important;
}

/* --- gestao.css: accordion-item com regras especificas que
       estavam vencendo a cascata (background:#fff hardcoded) - */
[data-theme="dark"] .accordion .accordion-item,
[data-theme="dark"] #accordion-pendencias .accordion-item {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .accordion .accordion-item:hover,
[data-theme="dark"] #accordion-pendencias .accordion-item:hover {
  border-color: var(--accent-color) !important;
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35) !important;
}

[data-theme="dark"] .accordion .accordion-header .accordion-button,
[data-theme="dark"] #accordion-pendencias .accordion-header .accordion-button {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .accordion .accordion-header .accordion-button:not(.collapsed),
[data-theme="dark"] #accordion-pendencias .accordion-header .accordion-button:not(.collapsed) {
  background-color: var(--bg-surface-alt) !important;
  color: var(--accent-hover) !important;
}

/* Vencido — era #fbf6f5 (cream rosado). Em dark vira tom roxo
   sutil pra manter o significado visual sem lavar o fundo */
[data-theme="dark"] .accordion-button-vencido,
[data-theme="dark"] .accordion-button.accordion-button-vencido {
  background-color: rgba(139, 109, 179, 0.18) !important;
  color: #c4a8e0 !important;
}

[data-theme="dark"] .accordion-header .accordion-button.acord-btn-modern {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .accordion-header .accordion-button.acord-btn-modern:not(.collapsed) {
  background-color: var(--bg-surface-alt) !important;
}

/* Header: title project (label cinza) e title OS (texto principal) */
[data-theme="dark"] .header-title-project {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .header-title-os {
  color: var(--text-color) !important;
}

/* KPIs no header do accordion */
[data-theme="dark"] .header-kpi .kpi-label {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .header-kpi .kpi-value {
  color: var(--text-color) !important;
}

[data-theme="dark"] .header-kpi .kpi-value.text-dark {
  color: var(--text-color) !important;
}

/* Subtabs: nav.aprovacoes-subtabs */
[data-theme="dark"] .aprovacoes-subtabs .nav-link {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .aprovacoes-subtabs .nav-link.active {
  color: var(--accent-hover) !important;
  background: transparent !important;
  border-color: transparent transparent var(--accent-color) transparent !important;
}

/* Card-title-modern dentro dos painéis */
[data-theme="dark"] .card-title-modern {
  color: var(--text-color) !important;
}

[data-theme="dark"] .card-title-modern i {
  color: var(--accent-hover) !important;
}

/* Card.shadow-sm com card-header bg-white py-3 (template aprovacoes) */
[data-theme="dark"] .card-header.bg-white {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
  border-bottom-color: var(--border-color) !important;
}

/* --- Aprovacoes-cps (selected) ---------------------------- */
[data-theme="dark"] .accordion-item.cps-selected {
  background-color: var(--bg-surface-alt) !important;
  border-color: #6dbf95 !important;
}

[data-theme="dark"] .accordion-item.cps-selected .accordion-button {
  background-color: rgba(25, 135, 84, 0.18) !important;
  color: #6dbf95 !important;
}

/* --- Bg branco em divs de cabecalho ('card-header bg-white') */
[data-theme="dark"] [class*="bg-white"] {
  background-color: var(--bg-surface) !important;
}

/* --- Botoes de acao em lote (gestaoAprovacoes) ----------- */
[data-theme="dark"] .btn-acao-lote {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .btn-acao-lote:hover {
  background-color: var(--bg-hover) !important;
}

/* --- Linha de % colorida dentro do KPI (text-* em valores) */
[data-theme="dark"] .kpi-value.text-success { color: #6ec78f !important; }
[data-theme="dark"] .kpi-value.text-warning { color: #f5c46b !important; }
[data-theme="dark"] .kpi-value.text-danger { color: #ea868f !important; }
[data-theme="dark"] .kpi-value.text-info { color: #6ec5f0 !important; }

/* --- text-dark (Bootstrap utility) deve seguir o tema ---- */
[data-theme="dark"] .text-dark {
  color: var(--text-color) !important;
}

/* --- Badge bg-info text-dark (badge complementar) -------- */
[data-theme="dark"] .badge.bg-info.text-dark {
  background-color: rgba(13, 202, 240, 0.22) !important;
  color: #9eeaf9 !important;
}

/* --- Card.shadow-sm em geral (templates de aprovacoes) --- */
[data-theme="dark"] .card.shadow-sm,
[data-theme="dark"] .card.border-0,
[data-theme="dark"] .accordion-item.shadow-sm.border-0 {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}

/* ==========================================================
   ROUND 4 — fixes definitivos por tela inspecionada
   ========================================================== */

/* --- FATURAMENTO: zebra + PO grupos ---------------------- */
[data-theme="dark"] #faturamento-tabs .accordion-item.os-row-odd .accordion-button {
  background-color: var(--bg-surface) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-row-even .accordion-button {
  background-color: var(--bg-surface-alt) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-com-po .accordion-button {
  background-color: rgba(25, 135, 84, 0.18) !important;
  box-shadow: inset 4px 0 0 #6ec78f !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-com-po.os-row-even .accordion-button {
  background-color: rgba(25, 135, 84, 0.28) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-sem-po .accordion-button {
  background-color: rgba(240, 165, 0, 0.18) !important;
  box-shadow: inset 4px 0 0 #f5c46b !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-sem-po.os-row-even .accordion-button {
  background-color: rgba(240, 165, 0, 0.28) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-item.os-misto-po .accordion-button {
  background: linear-gradient(90deg, rgba(240,165,0,0.2) 0%, rgba(25,135,84,0.2) 100%) !important;
  box-shadow: inset 4px 0 0 var(--text-muted) !important;
  color: var(--text-color) !important;
}
/* Faturamento KPI labels e textos no header dos accordions */
[data-theme="dark"] #faturamento-tabs .accordion-item .header-kpi .kpi-value.text-success,
[data-theme="dark"] #faturamento-tabs .accordion-item .header-kpi .kpi-label.text-success {
  color: var(--text-color) !important;
}
[data-theme="dark"] .fat-antecipacao-item {
  border-color: rgba(217, 119, 6, 0.4) !important;
}
[data-theme="dark"] .fat-antecipacao-item .accordion-button:not(.collapsed) {
  background-color: rgba(217, 119, 6, 0.2) !important;
}

/* --- CPS: Bootstrap table-success/warning/info ----------- */
[data-theme="dark"] .table-success,
[data-theme="dark"] .table-success > th,
[data-theme="dark"] .table-success > td {
  background-color: rgba(25, 135, 84, 0.2) !important;
  color: #a3cfbb !important;
  --bs-table-bg: rgba(25, 135, 84, 0.2) !important;
}
[data-theme="dark"] .table-warning,
[data-theme="dark"] .table-warning > th,
[data-theme="dark"] .table-warning > td {
  background-color: rgba(255, 193, 7, 0.2) !important;
  color: #ffda6a !important;
  --bs-table-bg: rgba(255, 193, 7, 0.2) !important;
}
[data-theme="dark"] .table-danger,
[data-theme="dark"] .table-danger > th,
[data-theme="dark"] .table-danger > td {
  background-color: rgba(220, 53, 69, 0.2) !important;
  color: #ea868f !important;
  --bs-table-bg: rgba(220, 53, 69, 0.2) !important;
}
[data-theme="dark"] .table-info,
[data-theme="dark"] .table-info > th,
[data-theme="dark"] .table-info > td {
  background-color: rgba(13, 202, 240, 0.18) !important;
  color: #9eeaf9 !important;
  --bs-table-bg: rgba(13, 202, 240, 0.18) !important;
}
[data-theme="dark"] .table-primary,
[data-theme="dark"] .table-primary > th,
[data-theme="dark"] .table-primary > td {
  background-color: rgba(13, 110, 253, 0.18) !important;
  color: #9ec5fe !important;
  --bs-table-bg: rgba(13, 110, 253, 0.18) !important;
}
[data-theme="dark"] .table-secondary,
[data-theme="dark"] .table-secondary > th,
[data-theme="dark"] .table-secondary > td {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  --bs-table-bg: var(--bg-surface-alt) !important;
}

/* --- CMS / CMA: material-card + filhos ------------------- */
[data-theme="dark"] .material-card {
  background: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .material-card.selected {
  background-color: rgba(13, 110, 253, 0.18) !important;
  border-color: #6ea8fe !important;
  box-shadow: 0 0 0 3px rgba(13, 110, 253, 0.25) !important;
}
[data-theme="dark"] .material-card:hover {
  border-color: #6dbf95 !important;
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.4) !important;
}
[data-theme="dark"] .material-card .card-header {
  background: var(--bg-surface) !important;
  border-bottom-color: var(--border-color) !important;
}
[data-theme="dark"] .material-card .card-body {
  background: var(--bg-surface) !important;
}
[data-theme="dark"] .material-card .material-title {
  color: var(--text-color) !important;
}
[data-theme="dark"] .material-card .material-code {
  background: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .material-card .material-unit {
  color: var(--text-muted) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] .material-card .empresa-inprout {
  background: rgba(13, 110, 253, 0.22) !important;
  color: #9ec5fe !important;
}
[data-theme="dark"] .material-card .empresa-cliente {
  background: rgba(253, 126, 20, 0.22) !important;
  color: #fdac6a !important;
}
[data-theme="dark"] .material-card .card-stats {
  background: var(--bg-surface-alt) !important;
}
[data-theme="dark"] .material-card .stat-label {
  color: var(--text-muted) !important;
}
[data-theme="dark"] .material-card .stat-value {
  color: var(--text-color) !important;
}
/* O custo medio tem inline style color: #666 — sobrescrevemos */
[data-theme="dark"] .material-card .stat-value[style*="color: #666"] {
  color: var(--text-muted) !important;
}
[data-theme="dark"] .material-card .card-actions {
  background: var(--bg-surface) !important;
  border-top: 1px solid var(--border-color);
}
[data-theme="dark"] .material-card .btn-card {
  background: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] .material-card .btn-card.entry {
  background: rgba(25, 135, 84, 0.18) !important;
  color: #6dbf95 !important;
}
[data-theme="dark"] .material-card .btn-card.delete {
  background: rgba(220, 53, 69, 0.18) !important;
  color: #ea868f !important;
}
[data-theme="dark"] .card-check-input {
  border-color: var(--border-color) !important;
}

/* --- REGISTROS: inline styles dos accordions (bolsao etc) - */
[data-theme="dark"] [style*="background-color: #f0e6d3"] {
  background-color: rgba(217, 119, 6, 0.18) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] [style*="background-color: #fff3cd"] {
  background-color: rgba(255, 193, 7, 0.18) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] [style*="background-color: #d6eaf8"] {
  background-color: rgba(13, 110, 253, 0.18) !important;
  color: var(--text-color) !important;
}

/* --- INDEXDB: bloco-etapas-header e companhia ----------- */
[data-theme="dark"] .bloco-etapas-header {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .titulo-etapas {
  color: var(--text-color) !important;
}
[data-theme="dark"] .conteudo-filtro {
  background-color: var(--bg-page) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .search-input-indexdb .input-group-text {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-muted) !important;
}
[data-theme="dark"] .search-input-indexdb .form-control {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
/* Filter cards (top tabs) na indexDB */
[data-theme="dark"] .segment-grid .filter-card {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color) !important;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35) !important;
  transition: background-color 0.2s, border-color 0.2s, transform 0.18s, box-shadow 0.2s !important;
}
[data-theme="dark"] .segment-grid .filter-card i {
  color: var(--accent-hover) !important;
}
[data-theme="dark"] .segment-grid .filter-card:hover {
  background-color: var(--bg-hover) !important;
  color: var(--accent-hover) !important;
  border-color: var(--accent-color) !important;
  box-shadow: 0 4px 12px rgba(125, 167, 138, 0.18) !important;
}
[data-theme="dark"] .segment-grid .filter-card.active {
  background-color: rgba(125, 167, 138, 0.18) !important;
  color: var(--accent-hover) !important;
  border: 2px solid var(--accent-color) !important;
  box-shadow: 0 0 0 3px rgba(125, 167, 138, 0.15), 0 4px 14px rgba(125, 167, 138, 0.22) !important;
}
[data-theme="dark"] .segment-grid .filter-card.active i {
  color: var(--accent-color) !important;
}

/* btn-outline--success (custom indexDB) */
[data-theme="dark"] .btn-outline--success {
  color: #6dbf95 !important;
  border-color: #6dbf95 !important;
  background: transparent !important;
}
[data-theme="dark"] .btn-outline--success:hover {
  background: rgba(76, 174, 140, 0.2) !important;
  color: #9bc2a8 !important;
}
[data-theme="dark"] .btn-outline--orange {
  color: #fdac6a !important;
  border-color: #fdac6a !important;
  background: transparent !important;
}
[data-theme="dark"] .btn-outline--orange:hover {
  background: rgba(253, 126, 20, 0.2) !important;
  color: #ffc093 !important;
}

/* indexDB tabela: linhas com bg pintado pelo CSS */
[data-theme="dark"] .modern-table tbody tr[style*="background-color: rgb"],
[data-theme="dark"] .modern-table tbody tr[style*="background-color: #"] {
  color: var(--text-color) !important;
}

/* --- Reg-fat-badge / fat-badge (badges de status) -------- */
[data-theme="dark"] .reg-fat-badge,
[data-theme="dark"] .fat-badge {
  /* Manter cores semanticas mas com texto legivel */
  filter: brightness(1.1);
}

/* --- Header badge generico (pílula) --------------------- */
[data-theme="dark"] .header-badge.bg-secondary {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border: 1px solid var(--border-color);
}

/* --- Spinner border (loaders) --------------------------- */
[data-theme="dark"] .spinner-border.text-primary {
  color: var(--accent-hover) !important;
}

/* Overlay loader (precisa vencer index.css que carrega depois) */
[data-theme="dark"] .overlay-loader,
[data-theme="dark"] .content-loader-container .overlay-loader,
[data-theme="dark"] #modalAdicionar .overlay-loader,
html[data-theme="dark"] .overlay-loader {
  background-color: rgba(20, 25, 22, 0.7) !important;
  background: rgba(20, 25, 22, 0.7) !important;
}

/* --- Fix final: qualquer accordion-button com bg inline -- */
[data-theme="dark"] .accordion-button[style*="background"] {
  /* Permite que o seletor [style*="background-color: #..."] acima
     sobrescreva via cor especifica. Aqui so garante text color */
  color: var(--text-color) !important;
}

/* --- Sticky col da tabela CPS / faturamento (col primeira) */
[data-theme="dark"] table.modern-table tbody td:first-child[style*="background"],
[data-theme="dark"] .andamento-table tbody td:first-child {
  color: var(--accent-hover) !important;
}

/* --- Card-stats (Bootstrap-extended) — manter cores sutis */
[data-theme="dark"] .card-stat .h5,
[data-theme="dark"] .card-stat .p,
[data-theme="dark"] .card-stat h5,
[data-theme="dark"] .card-stat p {
  color: inherit !important;
}

/* ==========================================================
   ROUND 5 — corrige residuos: classes registros + admin selector
   + cps banner + faturamento accordion-body table + materiais
   ========================================================== */

/* --- Registros: classes substituindo inline styles ------- */
/* Cores light mode (originais do registros-render.js) */
.accordion-button.row-bolsao {
  background-color: #f0e6d3 !important;
}
.accordion-button.row-finalizada {
  background-color: #fff3cd !important;
}
.accordion-button.row-sem-projeto {
  background-color: #d6eaf8 !important;
}

/* Dark overrides agora podem vencer porque as regras light
   acima nao estao em inline style */
[data-theme="dark"] .accordion-button.row-bolsao {
  background-color: rgba(217, 119, 6, 0.18) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .accordion-button.row-finalizada {
  background-color: rgba(255, 193, 7, 0.18) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .accordion-button.row-sem-projeto {
  background-color: rgba(13, 110, 253, 0.18) !important;
  color: var(--text-color) !important;
}

/* --- Admin: corrige seletor (html.admin-page tem data-theme) - */
html.admin-page[data-theme="dark"],
html.admin-page[data-theme="dark"] body {
  background-color: var(--bg-page) !important;
  color: var(--text-color) !important;
}

/* --- Faturamento: accordion-body table zebra + row-com-po -- */
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr:nth-child(even) {
  background-color: var(--bg-surface-alt) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr:nth-child(odd) {
  background-color: var(--bg-surface) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr.row-com-po {
  background-color: rgba(25, 135, 84, 0.18) !important;
  box-shadow: inset 4px 0 0 #6ec78f !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr.row-sem-po {
  background-color: rgba(240, 165, 0, 0.18) !important;
  box-shadow: inset 4px 0 0 #f5c46b !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr td {
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #faturamento-tabs .accordion-body .modern-table tbody tr:hover td {
  background-color: var(--bg-row-hover) !important;
}
/* fat-full-table thead/td */
[data-theme="dark"] .fat-full-table thead th {
  background-color: var(--bg-table-header) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] .fat-full-table tbody td {
  border-color: var(--border-color) !important;
  color: var(--text-color);
}
[data-theme="dark"] .fat-full-table tbody .fat-col-sticky-left,
[data-theme="dark"] .fat-col-sticky-left {
  background-color: var(--bg-table-header) !important;
  border-right-color: var(--border-color) !important;
}
[data-theme="dark"] .fat-accordion .accordion-body {
  background-color: var(--bg-surface) !important;
}
[data-theme="dark"] .fat-accordion .accordion-body .table tbody tr:hover {
  background-color: var(--bg-row-hover) !important;
}

/* --- Materiais (gestaoAprovacoes/tab-materiais) ---------- */
[data-theme="dark"] .text-item-title {
  color: var(--text-color) !important;
}
[data-theme="dark"] .badge-unid {
  background: var(--bg-surface-alt) !important;
  color: var(--text-muted) !important;
}
[data-theme="dark"] .price-tag {
  background: rgba(125, 167, 138, 0.15) !important;
  color: #6ec78f !important;
}
[data-theme="dark"] .text-xs.font-monospace,
[data-theme="dark"] .text-muted.text-xs {
  color: var(--text-muted) !important;
}

/* --- Aprovacoes CPS yellow banner (#card-adiant-coord) --- */
/* Inline styles sem !important — sao sobreescritos por especificidade */
[data-theme="dark"] #card-adiant-coord,
[data-theme="dark"] #card-adiant-controller {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #card-adiant-coord .card-header,
[data-theme="dark"] #card-adiant-controller .card-header {
  background: rgba(255, 193, 7, 0.12) !important;
  border-bottom-color: rgba(255, 193, 7, 0.3) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #card-adiant-coord .card-header h6,
[data-theme="dark"] #card-adiant-controller .card-header h6 {
  color: #f5c46b !important;
}
[data-theme="dark"] #card-adiant-coord table,
[data-theme="dark"] #card-adiant-controller table {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #card-adiant-coord thead,
[data-theme="dark"] #card-adiant-controller thead {
  background: rgba(255, 193, 7, 0.12) !important;
}
[data-theme="dark"] #card-adiant-coord thead tr th,
[data-theme="dark"] #card-adiant-controller thead tr th {
  color: var(--text-color) !important;
  border-color: rgba(255, 193, 7, 0.25) !important;
}
[data-theme="dark"] #card-adiant-coord tbody tr td,
[data-theme="dark"] #card-adiant-controller tbody tr td {
  color: var(--text-color) !important;
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #card-adiant-coord tbody tr:hover td,
[data-theme="dark"] #card-adiant-controller tbody tr:hover td {
  background-color: var(--bg-row-hover) !important;
}
[data-theme="dark"] #badge-adiant-coord,
[data-theme="dark"] #badge-adiant-controller {
  background: #f5c46b !important;
  color: #1a201d !important;
}

/* --- Override generico pra inline gradient com cream em qualquer lugar */
[data-theme="dark"] [style*="linear-gradient(90deg,#fff8e1"],
[data-theme="dark"] [style*="linear-gradient(90deg, #fff8e1"] {
  background: rgba(255, 193, 7, 0.12) !important;
}
[data-theme="dark"] [style*="background:#fff8e1"],
[data-theme="dark"] [style*="background: #fff8e1"] {
  background-color: rgba(255, 193, 7, 0.12) !important;
}

/* --- alert-info / alert-warning customizados em CPS ----- */
[data-theme="dark"] #cps-acoes-lote-coord-container.alert-info {
  background-color: rgba(13, 202, 240, 0.15) !important;
  color: #9eeaf9 !important;
  border-color: rgba(13, 202, 240, 0.3) !important;
}
[data-theme="dark"] #cps-acoes-lote-controller-container.alert-warning {
  background-color: rgba(255, 193, 7, 0.15) !important;
  color: #ffda6a !important;
  border-color: rgba(255, 193, 7, 0.3) !important;
}

/* --- Indicadores de competencia / dropdowns de filtros --- */
[data-theme="dark"] .gestao-cps-indicadores,
[data-theme="dark"] [id*="indicadores"] {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* --- Botões de status em listagens ---------------------- */
[data-theme="dark"] .btn-outline-secondary[style*="background"],
[data-theme="dark"] .btn-sm[style*="background:#"] {
  color: var(--text-color) !important;
}

/* ==========================================================
   ROUND 6 — fatura row-nao-aprovado, row-antecipacao, indexDB cards
   ========================================================== */

/* --- Faturamento: row states em tabelas internas -------- */
[data-theme="dark"] .fat-full-table tr.row-nao-aprovado td,
[data-theme="dark"] .modern-table tr.row-nao-aprovado td {
  background-color: rgba(255, 152, 0, 0.18) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .fat-full-table tr.row-nao-aprovado td:first-child,
[data-theme="dark"] .modern-table tr.row-nao-aprovado td:first-child {
  border-left: 4px solid #ff9800 !important;
}

[data-theme="dark"] .row-antecipacao,
[data-theme="dark"] tr.row-antecipacao,
[data-theme="dark"] tr.row-antecipacao td {
  background-color: rgba(245, 158, 11, 0.18) !important;
  color: var(--text-color) !important;
  border-left-color: #f59e0b !important;
}

[data-theme="dark"] .fat-full-table tbody tr.row-inativo .fat-col-sticky-left {
  background-color: var(--bg-surface-alt) !important;
}

[data-theme="dark"] .fat-full-table tr.row-inativo td {
  color: var(--text-muted) !important;
}

/* row-com-po / row-sem-po standalone (sem .accordion-body) */
[data-theme="dark"] .modern-table tr.row-com-po,
[data-theme="dark"] .modern-table tr.row-com-po td,
[data-theme="dark"] .fat-full-table tr.row-com-po,
[data-theme="dark"] .fat-full-table tr.row-com-po td {
  background-color: rgba(25, 135, 84, 0.18) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .modern-table tr.row-sem-po,
[data-theme="dark"] .modern-table tr.row-sem-po td,
[data-theme="dark"] .fat-full-table tr.row-sem-po,
[data-theme="dark"] .fat-full-table tr.row-sem-po td {
  background-color: rgba(240, 165, 0, 0.18) !important;
  color: var(--text-color) !important;
}

/* td.fat-col-sticky-left (primeira col fixa) em row-com-po/sem-po */
[data-theme="dark"] tr.row-com-po .fat-col-sticky-left {
  background-color: rgba(25, 135, 84, 0.28) !important;
}
[data-theme="dark"] tr.row-sem-po .fat-col-sticky-left {
  background-color: rgba(240, 165, 0, 0.28) !important;
}

/* --- IndexDB: card-detalhe (etapas detalhadas 1.01 etc) -- */
[data-theme="dark"] .card-detalhe {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .card-detalhe .topo {
  color: var(--text-color) !important;
}

[data-theme="dark"] .card-detalhe .badge {
  background-color: var(--accent-color) !important;
  color: #fff !important;
}

/* Lista de detalhes cards (wrapper) */
[data-theme="dark"] .lista-detalhes-cards {
  background-color: transparent;
}

/* IndexDB - tabelas de etapas / contrato hover */
[data-theme="dark"] .contrato-header-row:hover,
[data-theme="dark"] .contrato-header-row:hover td {
  background-color: var(--bg-row-hover) !important;
}

/* IndexDB - text dim em informacoes */
[data-theme="dark"] .info-etapa,
[data-theme="dark"] .info-detalhe,
[data-theme="dark"] .etapa-numero,
[data-theme="dark"] .etapa-descricao {
  color: var(--text-color) !important;
}

/* IndexDB - botões de ação (Ocultar, edit, delete) */
[data-theme="dark"] .btn-ocultar,
[data-theme="dark"] button.ocultar,
[data-theme="dark"] .btn-secondary.btn-sm {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* Botao "Cancelar" (.btn-secondary) nos rodapes de modal — index.css define
   bg #ccc fixo, que no dark fica claro com texto quase branco e ilegivel.
   Especificidade (0,3,0) vence a regra base (0,1,0) sem precisar de !important. */
[data-theme="dark"] .modal-footer .btn-secondary {
  background-color: var(--bg-surface-alt);
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .modal-footer .btn-secondary:hover,
[data-theme="dark"] .modal-footer .btn-secondary:focus {
  background-color: var(--bg-hover);
  border-color: var(--accent-color);
  color: var(--text-color);
}

/* --- Materiais: aprovacoes-materiais.css -- text-item-title etc */
[data-theme="dark"] .pedido-item-dom .text-item-title,
[data-theme="dark"] .pedido-table .text-item-title {
  color: var(--text-color) !important;
}

[data-theme="dark"] .pedido-table {
  background-color: var(--bg-surface) !important;
  color: var(--text-color);
}

[data-theme="dark"] .pedido-table tbody tr td {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .pedido-table tbody tr:nth-child(even) td {
  background-color: var(--bg-surface-alt) !important;
}

[data-theme="dark"] .pedido-table tbody tr:hover td {
  background-color: var(--bg-row-hover) !important;
}

/* ==========================================================
   ROUND 7 — modais customizados, KPIs CPS, toasts, flatpickr,
   dropdowns, motivo solicitacao, feriados aviso
   ========================================================== */

/* --- Bootstrap utilities subtle/emphasis -------------- */
[data-theme="dark"] .bg-warning-subtle {
  background-color: rgba(255, 193, 7, 0.18) !important;
}
[data-theme="dark"] .bg-success-subtle {
  background-color: rgba(25, 135, 84, 0.18) !important;
}
[data-theme="dark"] .bg-info-subtle {
  background-color: rgba(13, 202, 240, 0.18) !important;
}
[data-theme="dark"] .bg-danger-subtle {
  background-color: rgba(220, 53, 69, 0.18) !important;
}
[data-theme="dark"] .bg-primary-subtle {
  background-color: rgba(13, 110, 253, 0.18) !important;
}
[data-theme="dark"] .text-warning-emphasis {
  color: #ffda6a !important;
}
[data-theme="dark"] .text-success-emphasis {
  color: #6ec78f !important;
}
[data-theme="dark"] .text-info-emphasis {
  color: #9eeaf9 !important;
}
[data-theme="dark"] .text-danger-emphasis {
  color: #ea868f !important;
}
[data-theme="dark"] .text-primary-emphasis {
  color: #6ea8fe !important;
}

/* Reforco de contraste dentro de alerts no dark mode.
   Bootstrap 5.3 usa CSS vars (--bs-alert-bg, --bs-alert-color, --bs-alert-border-color)
   pintadas via inline style nas regras `.alert-danger`/etc — sem !important nossa
   regra perdia a especificidade e o alert vinha com cores light mode (rosa palido
   sobre fundo claro). Sobrescrevemos as vars + os fallback colors com !important.

   Antes o titulo (.alert-heading) herdava sem cor explicita e ficava cinza-branco
   apagado; o texto subsequente usava text-danger-emphasis ja com cor. Resultado:
   titulo MAIS apagado que o conteudo. Agora titulo fica MAIS claro que o texto. */
[data-theme="dark"] .alert-danger,
[data-bs-theme="dark"] .alert-danger {
  --bs-alert-bg: rgba(220, 53, 69, 0.20) !important;
  --bs-alert-color: #f5b3b8 !important;
  --bs-alert-border-color: rgba(220, 53, 69, 0.45) !important;
  background-color: rgba(220, 53, 69, 0.20) !important;
  color: #f5b3b8 !important;
  border-color: rgba(220, 53, 69, 0.45) !important;
}
[data-theme="dark"] .alert-danger .alert-heading,
[data-theme="dark"] .alert-danger h1,
[data-theme="dark"] .alert-danger h2,
[data-theme="dark"] .alert-danger h3,
[data-theme="dark"] .alert-danger h4,
[data-theme="dark"] .alert-danger h5,
[data-theme="dark"] .alert-danger h6,
[data-bs-theme="dark"] .alert-danger .alert-heading,
[data-bs-theme="dark"] .alert-danger h1,
[data-bs-theme="dark"] .alert-danger h2,
[data-bs-theme="dark"] .alert-danger h3,
[data-bs-theme="dark"] .alert-danger h4,
[data-bs-theme="dark"] .alert-danger h5,
[data-bs-theme="dark"] .alert-danger h6 {
  color: #ffd0d4 !important;
}
[data-theme="dark"] .alert-danger .text-danger-emphasis,
[data-bs-theme="dark"] .alert-danger .text-danger-emphasis {
  color: #f5b3b8 !important;
}

[data-theme="dark"] .alert-info,
[data-bs-theme="dark"] .alert-info {
  --bs-alert-bg: rgba(13, 202, 240, 0.18) !important;
  --bs-alert-color: #b6e6f3 !important;
  --bs-alert-border-color: rgba(13, 202, 240, 0.45) !important;
  background-color: rgba(13, 202, 240, 0.18) !important;
  color: #b6e6f3 !important;
  border-color: rgba(13, 202, 240, 0.45) !important;
}
[data-theme="dark"] .alert-info .alert-heading,
[data-theme="dark"] .alert-info h1,
[data-theme="dark"] .alert-info h2,
[data-theme="dark"] .alert-info h3,
[data-theme="dark"] .alert-info h4,
[data-theme="dark"] .alert-info h5,
[data-theme="dark"] .alert-info h6,
[data-bs-theme="dark"] .alert-info .alert-heading,
[data-bs-theme="dark"] .alert-info h6 {
  color: #cceffd !important;
}
[data-theme="dark"] .alert-info .text-info-emphasis,
[data-bs-theme="dark"] .alert-info .text-info-emphasis {
  color: #b6e6f3 !important;
}

[data-theme="dark"] .alert-warning,
[data-bs-theme="dark"] .alert-warning {
  --bs-alert-bg: rgba(255, 193, 7, 0.18) !important;
  --bs-alert-color: #ffda6a !important;
  --bs-alert-border-color: rgba(255, 193, 7, 0.45) !important;
  background-color: rgba(255, 193, 7, 0.18) !important;
  color: #ffda6a !important;
  border-color: rgba(255, 193, 7, 0.45) !important;
}
[data-theme="dark"] .alert-warning .alert-heading,
[data-theme="dark"] .alert-warning h1,
[data-theme="dark"] .alert-warning h2,
[data-theme="dark"] .alert-warning h3,
[data-theme="dark"] .alert-warning h4,
[data-theme="dark"] .alert-warning h5,
[data-theme="dark"] .alert-warning h6 {
  color: #ffe9a3 !important;
}

[data-theme="dark"] .alert-success,
[data-bs-theme="dark"] .alert-success {
  --bs-alert-bg: rgba(25, 135, 84, 0.18) !important;
  --bs-alert-color: #a3cfbb !important;
  --bs-alert-border-color: rgba(25, 135, 84, 0.45) !important;
  background-color: rgba(25, 135, 84, 0.18) !important;
  color: #a3cfbb !important;
  border-color: rgba(25, 135, 84, 0.45) !important;
}
[data-theme="dark"] .alert-success .alert-heading,
[data-theme="dark"] .alert-success h1,
[data-theme="dark"] .alert-success h2,
[data-theme="dark"] .alert-success h3,
[data-theme="dark"] .alert-success h4,
[data-theme="dark"] .alert-success h5,
[data-theme="dark"] .alert-success h6 {
  color: #b8e0c5 !important;
}

/* --- Bootstrap alerts variants extras ---------------- */
[data-theme="dark"] .alert-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* --- Modal title (estava dim em alguns modais) -------- */
[data-theme="dark"] .modal-title {
  color: var(--text-color) !important;
}

[data-theme="dark"] .modal-header.bg-warning-subtle {
  background-color: rgba(255, 193, 7, 0.18) !important;
  color: #ffda6a !important;
  border-bottom-color: rgba(255, 193, 7, 0.3) !important;
}

[data-theme="dark"] .modal-header.bg-warning-subtle .modal-title {
  color: #ffda6a !important;
}

/* --- modalSolicitarAdiantamentoLancamento (inline gradient) - */
[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .modal-content {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .modal-header {
  background: rgba(46, 125, 82, 0.2) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .modal-header h5 {
  color: #6ec78f !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .text-muted {
  color: var(--text-muted) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento #adiantTotalBar {
  background: var(--bg-surface-alt) !important;
  border-top-color: var(--border-color) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .form-control {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento label {
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalSolicitarAdiantamentoLancamento .btn-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .adiant-card {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .adiant-card.selected {
  background-color: rgba(125, 167, 138, 0.18) !important;
  border-color: var(--accent-color) !important;
}

[data-theme="dark"] .adiant-card .adiant-lanc-valor,
[data-theme="dark"] .adiant-card input {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* Inline gradients/colors no modal de adiantamento (cap genérico) */
[data-theme="dark"] [style*="background:linear-gradient(135deg,#e8f5e9"],
[data-theme="dark"] [style*="background:linear-gradient(135deg, #e8f5e9"] {
  background: rgba(46, 125, 82, 0.2) !important;
}

[data-theme="dark"] [style*="background:#f8fffe"],
[data-theme="dark"] [style*="background: #f8fffe"] {
  background: var(--bg-surface-alt) !important;
}

[data-theme="dark"] [style*="color:#2e7d52"] {
  color: #6ec78f !important;
}

[data-theme="dark"] [style*="color:#555"],
[data-theme="dark"] [style*="color: #555"] {
  color: var(--text-color) !important;
}

/* ==========================================================
   Solicitar (+) e Novo (+) — SweetAlert com cards de menu.
   Visual polido: cantos suaves, gradiente sutil, hover com
   elevação e tint verde, animação de entrada.

   Compartilhado entre as classes .solicitar-plus-opcao e
   .novo-plus-opcao para garantir consistência visual entre
   os dois botões de acao do header.
   ========================================================== */
body .swal2-popup:has(.solicitar-plus-opcao),
body .swal2-popup:has(.novo-plus-opcao) {
  border-radius: 18px !important;
  padding: 28px 24px 24px !important;
  box-shadow: 0 18px 50px -12px rgba(0, 0, 0, 0.18),
              0 8px 22px -8px rgba(25, 135, 84, 0.18) !important;
}
body .swal2-popup:has(.solicitar-plus-opcao) .swal2-title,
body .swal2-popup:has(.novo-plus-opcao) .swal2-title {
  font-weight: 700 !important;
  font-size: 1.18rem !important;
  letter-spacing: -0.01em;
  margin-bottom: 0.4em !important;
}
.solicitar-plus-opcao,
.novo-plus-opcao {
  position: relative;
  display: flex !important;
  align-items: center;
  gap: 14px;
  width: 100%;
  border: 1.5px solid rgba(125, 167, 138, 0.35) !important;
  background: linear-gradient(135deg, #ffffff 0%, #f7fbf8 100%) !important;
  color: #2e3d36 !important;
  padding: 14px 16px !important;
  border-radius: 12px !important;
  transition: transform 0.18s cubic-bezier(0.4, 0, 0.2, 1),
              box-shadow 0.18s,
              border-color 0.18s,
              background 0.18s;
  cursor: pointer;
}
.solicitar-plus-opcao:hover,
.novo-plus-opcao:hover {
  transform: translateY(-2px);
  border-color: var(--accent-hover, #4a665a) !important;
  background: linear-gradient(135deg, #f0f9f3 0%, #e6f4ec 100%) !important;
  box-shadow: 0 10px 22px -8px rgba(25, 135, 84, 0.28),
              0 4px 10px -4px rgba(125, 167, 138, 0.35) !important;
}
.solicitar-plus-opcao:active,
.novo-plus-opcao:active {
  transform: translateY(0);
}
.solicitar-plus-opcao i.bi,
.novo-plus-opcao i.bi {
  color: var(--accent-hover, #4a665a) !important;
  flex-shrink: 0;
  transition: transform 0.18s, color 0.18s;
}
.solicitar-plus-opcao:hover i.bi,
.novo-plus-opcao:hover i.bi {
  color: #198754 !important;
  transform: scale(1.06);
}
.solicitar-plus-opcao .fw-bold,
.novo-plus-opcao .fw-bold {
  color: #1e2b25 !important;
  font-size: 0.98rem !important;
  letter-spacing: -0.005em;
}
.solicitar-plus-opcao .text-muted,
.novo-plus-opcao .text-muted {
  color: #6e7e75 !important;
  font-size: 0.78rem !important;
  margin-top: 2px;
}

/* Dark mode — mesmo cards, paleta adaptada */
[data-theme="dark"] body .swal2-popup:has(.solicitar-plus-opcao),
[data-theme="dark"] body .swal2-popup:has(.novo-plus-opcao) {
  box-shadow: 0 18px 50px -12px rgba(0, 0, 0, 0.6),
              0 8px 22px -8px rgba(125, 167, 138, 0.25) !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao {
  background: var(--bg-surface-alt) !important;
  border-color: rgba(125, 167, 138, 0.35) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao:hover,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao:hover {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.18), rgba(125, 167, 138, 0.10)) !important;
  border-color: var(--accent-color) !important;
  color: var(--text-color) !important;
  box-shadow: 0 10px 22px -8px rgba(0, 0, 0, 0.6),
              0 4px 10px -4px rgba(125, 167, 138, 0.35) !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao i.bi,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao i.bi {
  color: var(--accent-color, #7da78a) !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao:hover i.bi,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao:hover i.bi {
  color: #b3dfc1 !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao .fw-bold,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao .fw-bold {
  color: var(--text-color) !important;
}
[data-theme="dark"] body .swal2-popup .solicitar-plus-opcao .text-muted,
[data-theme="dark"] body .swal2-popup .novo-plus-opcao .text-muted {
  color: var(--text-muted) !important;
}

/* ==========================================================
   Modal: Selecionar OS em Aprovacao (novo, fluxo Solicitar +)
   Lista com hover verde clarinho, fonte mais legivel, espaçamento.
   ========================================================== */
#modalSelecionarOsAprovacao .modal-content {
  border-radius: 16px;
  border: none;
}
#modalSelecionarOsAprovacao .modal-header {
  padding: 18px 22px 14px;
}
#modalSelecionarOsAprovacao .modal-title {
  font-weight: 700;
  letter-spacing: -0.01em;
  font-size: 1.05rem;
}
#modalSelecionarOsAprovacao #selecionarOs_descricao {
  font-size: 0.8rem;
}
#modalSelecionarOsAprovacao .input-group {
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
  border-radius: 10px;
  overflow: hidden;
}
#modalSelecionarOsAprovacao .input-group-text {
  background: #f7fbf8;
  border-color: rgba(125, 167, 138, 0.35);
  color: var(--accent-hover, #4a665a);
}
#modalSelecionarOsAprovacao .form-control {
  border-color: rgba(125, 167, 138, 0.35);
  font-size: 0.9rem;
}
#modalSelecionarOsAprovacao .form-control:focus {
  border-color: var(--accent-color);
  box-shadow: 0 0 0 0.2rem rgba(125, 167, 138, 0.18);
}
#modalSelecionarOsAprovacao .selecionar-os-btn {
  border: 1.5px solid #e6e9e8 !important;
  background: #ffffff !important;
  color: #1e2b25 !important;
  border-radius: 10px !important;
  padding: 12px 14px !important;
  transition: transform 0.14s, border-color 0.14s, background 0.14s, box-shadow 0.14s;
}
#modalSelecionarOsAprovacao .selecionar-os-btn:hover {
  background: linear-gradient(135deg, #f0f9f3 0%, #e6f4ec 100%) !important;
  border-color: var(--accent-color) !important;
  color: #1e2b25 !important;
  box-shadow: 0 6px 14px -4px rgba(125, 167, 138, 0.32);
  transform: translateY(-1px);
}
#modalSelecionarOsAprovacao .selecionar-os-btn:active {
  transform: translateY(0);
}
#modalSelecionarOsAprovacao .selecionar-os-btn .fw-bold.text-primary {
  color: var(--accent-hover, #4a665a) !important;
  font-size: 0.95rem !important;
}
#modalSelecionarOsAprovacao .selecionar-os-btn .text-muted {
  color: #6e7e75 !important;
}
#modalSelecionarOsAprovacao .selecionar-os-btn .badge {
  font-weight: 600;
  background: #e8f5e9 !important;
  color: #2e7d52 !important;
  border: 1px solid rgba(125, 167, 138, 0.45);
}
[data-theme="dark"] #modalSelecionarOsAprovacao .selecionar-os-btn .badge {
  background: rgba(125, 167, 138, 0.18) !important;
  color: var(--accent-color) !important;
  border-color: rgba(125, 167, 138, 0.4);
}

/* Dark mode mantem comportamento + hover sutil */
[data-theme="dark"] #modalSelecionarOsAprovacao .modal-content {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .modal-header,
[data-theme="dark"] #modalSelecionarOsAprovacao .modal-footer {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .input-group-text {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--accent-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .form-control {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .selecionar-os-btn {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .selecionar-os-btn:hover {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.15), rgba(125, 167, 138, 0.08)) !important;
  border-color: var(--accent-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSelecionarOsAprovacao .selecionar-os-btn .fw-bold.text-primary {
  color: var(--accent-color) !important;
}

/* ==========================================================
   Modal Solicitar Material (cms) — tabela compacta sem scroll
   ========================================================== */
.modal-itens-solicitacao {
  border: 1px solid var(--border-color, #e0e7e3);
  border-radius: 10px;
  overflow-x: hidden;
  overflow-y: auto;
  background: var(--bg-surface, #fff);
}
.modal-itens-solicitacao table {
  table-layout: fixed;
  width: 100%;
}
.modal-itens-solicitacao thead th {
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  background: linear-gradient(135deg, #f7fbf8, #f0f9f3) !important;
  color: var(--accent-hover, #4a665a);
  padding: 10px 8px;
  border-bottom: 1.5px solid rgba(125, 167, 138, 0.35);
  white-space: nowrap;
}
.modal-itens-solicitacao tbody td {
  padding: 8px;
  vertical-align: middle;
  font-size: 0.88rem;
}
.modal-itens-solicitacao tbody td:first-child {
  /* Nome do material — pode truncar */
  overflow: hidden;
}
.modal-itens-solicitacao .input-qtd-solicitacao {
  max-width: 110px;
  margin: 0 auto;
}

/* Dark mode */
[data-theme="dark"] .modal-itens-solicitacao {
  background: var(--bg-surface) !important;
  border-color: var(--border-color);
}
[data-theme="dark"] .modal-itens-solicitacao thead th {
  background: linear-gradient(135deg, rgba(125, 167, 138, 0.15), rgba(125, 167, 138, 0.08)) !important;
  color: var(--accent-color) !important;
  border-bottom-color: rgba(125, 167, 138, 0.35);
}
[data-theme="dark"] .modal-itens-solicitacao tbody td {
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] .modal-itens-solicitacao tbody tr:hover td {
  background: var(--bg-hover) !important;
}
[data-theme="dark"] .modal-itens-solicitacao .badge.bg-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] .modal-itens-solicitacao .input-qtd-solicitacao {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* ==========================================================
   Modal: Solicitar Complementar — light + dark adjustments
   O input do site fica readonly/disabled e antes tinha bg
   hardcoded (#e9ecef). Agora deixamos via CSS pra adaptar.
   ========================================================== */
#siteComplementar:disabled,
#siteComplementar[readonly] {
  background-color: var(--bg-surface-alt, #e9ecef);
  color: var(--text-color, #495057);
}
[data-theme="dark"] #modalSolicitarComplementar .modal-content {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSolicitarComplementar .modal-header,
[data-theme="dark"] #modalSolicitarComplementar .modal-footer {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSolicitarComplementar .form-control,
[data-theme="dark"] #modalSolicitarComplementar .form-select {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSolicitarComplementar .form-control:disabled,
[data-theme="dark"] #modalSolicitarComplementar .form-control[readonly] {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-muted) !important;
}
[data-theme="dark"] #modalSolicitarComplementar .table-light,
[data-theme="dark"] #modalSolicitarComplementar thead.table-light th {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSolicitarComplementar .table {
  color: var(--text-color);
  border-color: var(--border-color);
}
[data-theme="dark"] #modalSolicitarComplementar .table-hover > tbody > tr:hover > * {
  background-color: var(--bg-hover) !important;
  color: var(--text-color);
}
[data-theme="dark"] #modalSolicitarComplementar .section-title {
  color: var(--text-color) !important;
  border-color: var(--border-color);
}

/* ==========================================================
   Modal: Solicitar Documento — dark mode adjustments
   ========================================================== */
[data-theme="dark"] #modalSolicitarDocumento .modal-content {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSolicitarDocumento .modal-header,
[data-theme="dark"] #modalSolicitarDocumento .modal-footer {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSolicitarDocumento .form-control,
[data-theme="dark"] #modalSolicitarDocumento .form-select {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}
[data-theme="dark"] #modalSolicitarDocumento .input-group-text {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSolicitarDocumento #solicitarDoc_itensContainer,
[data-theme="dark"] #modalSolicitarDocumento .border.rounded {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color);
}
[data-theme="dark"] #modalSolicitarDocumento .form-check-label,
[data-theme="dark"] #modalSolicitarDocumento label {
  color: var(--text-color) !important;
}
[data-theme="dark"] #modalSolicitarDocumento .section-title {
  color: var(--text-color) !important;
  border-color: var(--border-color);
}
[data-theme="dark"] #modalSolicitarDocumento .lpu-label-details,
[data-theme="dark"] #modalSolicitarDocumento .text-muted {
  color: var(--text-muted) !important;
}

/* --- KPI cards Gestao CPS ------------------------------ */
[data-theme="dark"] .card-kpi-header {
  background-color: var(--bg-surface-alt) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .card-kpi-header .kpi-title {
  color: var(--text-muted) !important;
}

[data-theme="dark"] .card-kpi-header .kpi-value {
  color: var(--text-color) !important;
}

[data-theme="dark"] .card-kpi-info {
  background-color: rgba(13, 110, 253, 0.18) !important;
  border-left-color: #6ea8fe !important;
}

[data-theme="dark"] .card-kpi-success {
  background-color: rgba(25, 135, 84, 0.18) !important;
  border-left-color: #6dbf95 !important;
}

/* Inline styles dos KPIs: Fechado (Lastro) #cfe2ff, Adiantado #fff3cd, Pendente #f8d7da */
[data-theme="dark"] [style*="background-color: #cfe2ff"] {
  background-color: rgba(13, 110, 253, 0.18) !important;
}

[data-theme="dark"] [style*="background-color: #fff3cd"] {
  background-color: rgba(255, 193, 7, 0.18) !important;
}

[data-theme="dark"] [style*="background-color: #f8d7da"] {
  background-color: rgba(220, 53, 69, 0.18) !important;
}

[data-theme="dark"] [style*="background-color: #e3f2fd"] {
  background-color: rgba(13, 110, 253, 0.15) !important;
}

[data-theme="dark"] [style*="background-color: #e8f5e9"] {
  background-color: rgba(25, 135, 84, 0.15) !important;
}

/* --- Bootstrap toast --------------------------------- */
[data-theme="dark"] .toast {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .toast.text-bg-success {
  background-color: #198754 !important;
  color: #fff !important;
}

[data-theme="dark"] .toast.text-bg-danger {
  background-color: #dc3545 !important;
  color: #fff !important;
}

[data-theme="dark"] .toast.text-bg-warning {
  background-color: #ffc107 !important;
  color: #1a201d !important;
}

[data-theme="dark"] .toast.text-bg-info {
  background-color: #0dcaf0 !important;
  color: #1a201d !important;
}

[data-theme="dark"] .toast .toast-body {
  color: inherit !important;
}

/* --- Flatpickr Material Green theme — days dim ------- */
[data-theme="dark"] .flatpickr-calendar {
  background: var(--bg-surface) !important;
  color: var(--text-color) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .flatpickr-calendar.arrowTop:before,
[data-theme="dark"] .flatpickr-calendar.arrowTop:after {
  border-bottom-color: var(--bg-surface) !important;
}

[data-theme="dark"] .flatpickr-calendar.arrowBottom:before,
[data-theme="dark"] .flatpickr-calendar.arrowBottom:after {
  border-top-color: var(--bg-surface) !important;
}

[data-theme="dark"] .flatpickr-day {
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-day.flatpickr-disabled,
[data-theme="dark"] .flatpickr-day.prevMonthDay,
[data-theme="dark"] .flatpickr-day.nextMonthDay {
  color: var(--text-muted) !important;
  opacity: 0.5;
}

[data-theme="dark"] .flatpickr-day:hover,
[data-theme="dark"] .flatpickr-day:focus {
  background: var(--bg-hover) !important;
  border-color: var(--bg-hover) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-day.today {
  border-color: var(--accent-color) !important;
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .flatpickr-day.selected,
[data-theme="dark"] .flatpickr-day.selected:hover,
[data-theme="dark"] .flatpickr-day.startRange,
[data-theme="dark"] .flatpickr-day.endRange {
  background: var(--accent-color) !important;
  border-color: var(--accent-color) !important;
  color: #fff !important;
}

[data-theme="dark"] .flatpickr-months .flatpickr-month,
[data-theme="dark"] .flatpickr-current-month,
[data-theme="dark"] .flatpickr-current-month input.cur-year {
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months {
  background: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months option {
  background: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-weekday {
  color: var(--text-muted) !important;
  background: var(--bg-surface-alt) !important;
}

[data-theme="dark"] .flatpickr-prev-month,
[data-theme="dark"] .flatpickr-next-month {
  fill: var(--text-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-prev-month:hover svg,
[data-theme="dark"] .flatpickr-next-month:hover svg {
  fill: var(--accent-hover) !important;
}

[data-theme="dark"] .flatpickr-prev-month svg,
[data-theme="dark"] .flatpickr-next-month svg {
  fill: var(--text-color) !important;
}

[data-theme="dark"] .numInputWrapper:hover {
  background: var(--bg-hover) !important;
}

/* Material Green theme define background branco em containers internos.
   Sem isto, o miolo do calendario aparece branco mesmo no dark mode. */
[data-theme="dark"] .flatpickr-innerContainer,
[data-theme="dark"] .flatpickr-rContainer,
[data-theme="dark"] .flatpickr-days,
[data-theme="dark"] .flatpickr-days .dayContainer,
[data-theme="dark"] .dayContainer {
  background: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .flatpickr-months {
  background: var(--bg-surface-alt) !important;
}

[data-theme="dark"] .flatpickr-current-month input.cur-year {
  background: transparent !important;
}

[data-theme="dark"] .numInputWrapper span.arrowUp:after {
  border-bottom-color: var(--text-color) !important;
}

[data-theme="dark"] .numInputWrapper span.arrowDown:after {
  border-top-color: var(--text-color) !important;
}

/* Inputs nativos type="date" / type="datetime-local" / type="time":
   o color-scheme indica ao browser para renderizar o picker nativo
   (o icone do calendario e o popup) com tema escuro. */
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="datetime-local"],
[data-theme="dark"] input[type="time"],
[data-theme="dark"] input[type="month"],
[data-theme="dark"] input[type="week"] {
  color-scheme: dark;
}

/* --- Comentários do Lançamento (modal title dim) ----- */
[data-theme="dark"] #modalComentarios .modal-title,
[data-theme="dark"] #modalComentarios .modal-header h5 {
  color: var(--text-color) !important;
}

/* --- Aviso "Como funciona" em Feriados (índices) ----- */
/* Identificado como .alert.alert-info ou similar */
[data-theme="dark"] .alert.alert-info,
[data-theme="dark"] .alert-info {
  background-color: rgba(13, 202, 240, 0.15) !important;
  color: #9eeaf9 !important;
  border-color: rgba(13, 202, 240, 0.3) !important;
}

[data-theme="dark"] .alert.alert-info strong,
[data-theme="dark"] .alert-info strong,
[data-theme="dark"] .alert.alert-info b {
  color: #9eeaf9 !important;
}

/* --- Bootstrap dropdown-menu (Importacao LPU, OS lookup) - */
[data-theme="dark"] .dropdown-menu,
[data-theme="dark"] ul.dropdown-menu {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .dropdown-menu .dropdown-item {
  color: var(--text-color) !important;
}

[data-theme="dark"] .dropdown-menu .dropdown-item:hover,
[data-theme="dark"] .dropdown-menu .dropdown-item:focus {
  background-color: var(--bg-hover) !important;
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .dropdown-menu .dropdown-item.active,
[data-theme="dark"] .dropdown-menu .dropdown-item:active {
  background-color: var(--accent-color) !important;
  color: #fff !important;
}

[data-theme="dark"] .dropdown-divider {
  border-top-color: var(--border-color) !important;
}

/* --- Autocomplete / typeahead lists (Site, OS busca) - */
[data-theme="dark"] .autocomplete-list,
[data-theme="dark"] .typeahead-list,
[data-theme="dark"] [class*="autocomplete"],
[data-theme="dark"] [class*="suggestions"],
[data-theme="dark"] .ui-autocomplete {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

/* --- Choices.js dropdown (lista de OS, projetos) ----- */
[data-theme="dark"] .choices__list--dropdown,
[data-theme="dark"] .choices__list[aria-expanded] {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .choices__list--dropdown .choices__item,
[data-theme="dark"] .choices__list[aria-expanded] .choices__item {
  color: var(--text-color) !important;
}

[data-theme="dark"] .choices__list--dropdown .choices__item--selectable.is-highlighted,
[data-theme="dark"] .choices__list[aria-expanded] .choices__item--selectable.is-highlighted {
  background-color: var(--bg-hover) !important;
  color: var(--accent-hover) !important;
}

[data-theme="dark"] .choices__placeholder {
  color: var(--text-muted) !important;
}

/* --- Custom select-os / search-os ---------------- */
[data-theme="dark"] .os-search-results,
[data-theme="dark"] .os-list,
[data-theme="dark"] [id*="osDropdown"],
[data-theme="dark"] [id*="lista-os"] {
  background-color: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

/* --- Motivo da solicitacao em aprovacao material ----- */
/* Capturamos divs com .alert-light ou .alert-secondary sutil */
[data-theme="dark"] .alert.alert-secondary,
[data-theme="dark"] .alert-secondary {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] .motivo-text,
[data-theme="dark"] .pedido-motivo,
[data-theme="dark"] [class*="motivo"] {
  color: var(--text-color) !important;
}

/* --- Card-detalhe-motivo / motivo-row (aprovacao material) - */
[data-theme="dark"] .pedido-item-dom .text-muted {
  color: var(--text-muted) !important;
}

/* --- Banner de motivo da solicitacao (header com cor sutil) - */
[data-theme="dark"] .pedido-item-dom > div:first-child[class*="bg-"] {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
}

/* --- Override genérico para elementos com bg-light em aviso - */
[data-theme="dark"] .bg-light.border,
[data-theme="dark"] .bg-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color);
  border-color: var(--border-color) !important;
}

/* --- Form-floating do calendar input (Data Atividade) ---- */
[data-theme="dark"] .form-control[type="text"][placeholder*="dd/mm"],
[data-theme="dark"] input.flatpickr-input,
[data-theme="dark"] .flatpickr-input {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* --- Font monospace dim color------------------------- */
[data-theme="dark"] .font-monospace {
  color: var(--text-color) !important;
}

[data-theme="dark"] code,
[data-theme="dark"] kbd,
[data-theme="dark"] pre {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
}

/* --- Linha "Comentários e atividade" / "Mostrar Detalhes" - */
[data-theme="dark"] [id*="cardComentarios"],
[data-theme="dark"] .comentarios-wrapper,
[data-theme="dark"] .comentario-card {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* ==========================================================
   ROUND 8 — modal Detalhes da Solicitacao + table-light + bg-white agressivo
   ========================================================== */

/* Modal #modalDetalhesSolicitacaoOS — body inteiro precisa virar dark */
[data-theme="dark"] #modalDetalhesSolicitacaoOS .modal-body,
[data-theme="dark"] #modalDetalhesSolicitacaoOS .modal-footer {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

/* Os "campos" do modal (divs com .bg-white .rounded .border) */
[data-theme="dark"] #modalDetalhesSolicitacaoOS .bg-white {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* Tabela do modal: bg-white + .table-light (thead/tfoot) */
[data-theme="dark"] #modalDetalhesSolicitacaoOS table.bg-white,
[data-theme="dark"] #modalDetalhesSolicitacaoOS .table.bg-white {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalDetalhesSolicitacaoOS .table th,
[data-theme="dark"] #modalDetalhesSolicitacaoOS .table td {
  border-color: var(--border-color) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalDetalhesSolicitacaoOS .form-label,
[data-theme="dark"] #modalDetalhesSolicitacaoOS h6,
[data-theme="dark"] #modalDetalhesSolicitacaoOS h6.text-dark {
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalDetalhesSolicitacaoOS .form-label.text-muted,
[data-theme="dark"] #modalDetalhesSolicitacaoOS .text-muted {
  color: var(--text-muted) !important;
}

/* --- .table-light (Bootstrap) — usado em thead/tfoot ----- */
[data-theme="dark"] .table-light,
[data-theme="dark"] .table-light > th,
[data-theme="dark"] .table-light > td,
[data-theme="dark"] thead.table-light,
[data-theme="dark"] thead.table-light > tr > th,
[data-theme="dark"] tr.table-light,
[data-theme="dark"] tr.table-light > td,
[data-theme="dark"] tfoot.table-light,
[data-theme="dark"] tfoot.table-light > tr > td {
  background-color: var(--bg-table-header) !important;
  color: var(--text-color) !important;
  --bs-table-bg: var(--bg-table-header) !important;
  --bs-table-color: var(--text-color) !important;
}

/* --- bg-white agressivo: alguns elementos ainda batem aqui - */
[data-theme="dark"] table.bg-white,
[data-theme="dark"] .table.bg-white {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] div.bg-white,
[data-theme="dark"] span.bg-white {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] .bg-white.border,
[data-theme="dark"] .bg-white.rounded.border {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

/* --- Modal Recusar Solicitacao OS (modal-header bg-danger) - */
[data-theme="dark"] #modalRecusarSolicitacaoOS .modal-content {
  background-color: var(--bg-surface) !important;
}

[data-theme="dark"] #modalRecusarSolicitacaoOS .modal-body {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalRecusarSolicitacaoOS .modal-footer.bg-light {
  background-color: var(--bg-surface-alt) !important;
}

[data-theme="dark"] #modalRecusarSolicitacaoOS .form-label,
[data-theme="dark"] #modalRecusarSolicitacaoOS textarea,
[data-theme="dark"] #modalRecusarSolicitacaoOS .form-control {
  color: var(--text-color);
}

[data-theme="dark"] #modalRecusarSolicitacaoOS textarea {
  background-color: var(--bg-input) !important;
  border-color: var(--border-color) !important;
}

/* Override genérico para divs .rounded .border que viram input-like */
[data-theme="dark"] div.rounded.border {
  background-color: var(--bg-input);
  color: var(--text-color);
  border-color: var(--border-color) !important;
}

/* --- Modal Central de Análise (#modalAnaliseCoordenador) ---
   Usa CSS vars proprias (tech-modal-*). So precisamos sobrescrever
   esses tokens em dark — toda a UI interna ja referencia eles. */
[data-theme="dark"] #modalAnaliseCoordenador {
  --tech-modal-bg: #1f2522;
  --tech-modal-surface: #242b27;
  --tech-modal-primary: #6dbf95;
  --tech-modal-border: #3a4540;
  --tech-modal-text: #e6e8e7;
  --tech-modal-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5), 0 8px 10px -6px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] #modalAnaliseCoordenador .modal-title {
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador .form-control,
[data-theme="dark"] #modalAnaliseCoordenador .form-select {
  background-color: var(--bg-input) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador .form-control:focus,
[data-theme="dark"] #modalAnaliseCoordenador .form-select:focus {
  background-color: var(--bg-input) !important;
  border-color: var(--accent-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador .form-control:disabled {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-muted) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador label {
  color: var(--text-muted) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador .table-responsive {
  background: var(--bg-surface) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador table thead th {
  background-color: var(--bg-table-header) !important;
  color: var(--text-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador table tbody tr,
[data-theme="dark"] #modalAnaliseCoordenador table tbody td {
  background-color: var(--bg-surface) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] #modalAnaliseCoordenador table tbody tr:nth-child(even),
[data-theme="dark"] #modalAnaliseCoordenador table tbody tr:nth-child(even) td {
  background-color: var(--bg-surface-alt) !important;
}

/* Linha "ITEM LPU SOLICITADO" (header secundario da tabela) */
[data-theme="dark"] #modalAnaliseCoordenador th.section-header,
[data-theme="dark"] #modalAnaliseCoordenador .section-header {
  background-color: var(--bg-table-header) !important;
  color: var(--text-color) !important;
}

/* ===== Modal Exportar Relatório (index) — dark mode ===== */
[data-theme="dark"] #modalExportar .modal-content {
  background-color: var(--bg-surface) !important;
  color: var(--text-color);
}

[data-theme="dark"] #modalExportar .modal-footer {
  background-color: var(--bg-surface-alt);
}

[data-theme="dark"] #modalExportar .btn-light {
  background-color: var(--bg-surface-alt) !important;
  color: var(--text-color) !important;
  border-color: var(--border-color) !important;
}

[data-theme="dark"] #modalExportar .btn-light:hover {
  background-color: var(--bg-hover) !important;
}

[data-theme="dark"] #modalExportar .export-aba-label:not(.active) {
  color: var(--text-color);
  border-color: var(--accent-color);
}

