/* Tema escuro moderno — M3 Static Baseline */

/* Reset e base */
body[data-theme="dark"] {
  background: var(--bg, #1C1B1F);
  color: var(--text, #E6E1E5);
  font-family: var(--font-sans, Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* --- Dark Theme M3 Static Baseline --- */
[data-theme="dark"] {
  /* --- Core Surfaces (M3 Baseline) --- */
  --bg: #1C1B1F;
  --surface: #1C1B1F;
  --surface-variant: #49454F;

  --md3-surface: var(--surface);
  --md3-on-surface: #E6E1E5;
  --md3-surface-variant: var(--surface-variant);
  --md3-on-surface-variant: #CAC4D0;

  /* Tonal elevation (padrão M3) */
  --md3-surface-container-low: #1D1B20;
  --md3-surface-container: #211F26;
  --md3-surface-container-high: #2B2930;

  /* Texto (mapeado para M3) */
  --text: var(--md3-on-surface);
  --muted: var(--md3-on-surface-variant);

  /* --- Paleta tonal M3 (Static Baseline) --- */
  --primary: #D0BCFF;
  --on-primary: #381E72;

  --secondary: #CCC2DC;
  --on-secondary: #332D41;

  --tertiary: #EFB8C8;
  --on-tertiary: #492532;
  
  --error: #F2B8B5;
  --on-error: #601410;
  
  /* M3 não tem 'success', adicionando um par customizado */
  --success: #9CF194;
  --on-success: #003907;

  /* Accent */
  --accent: var(--primary);

  /* Outline (M3 Baseline) */
  --md3-outline: #938F99;
  --md3-outline-variant: #49454F;

  /* --- Material tokens --- */
  --md3-primary: var(--primary);
  --md3-on-primary: var(--on-primary);
  --md3-secondary: var(--secondary);
  --md3-on-secondary: var(--on-secondary);
  --md3-tertiary: var(--tertiary);
  --md3-on-tertiary: var(--on-tertiary);
  --md3-error: var(--error);
  --md3-on-error: var(--on-error);
  --md3-success: var(--success);
  --md3-on-success: var(--on-success);
}


[data-theme="dark"] a { color: var(--accent); }
[data-theme="dark"] a:hover { color: color-mix(in oklab, var(--primary), white 15%); text-decoration: none; }

/* Navbar */
[data-theme="dark"] .navbar {
  background-color: var(--md3-surface-container-high);
  border-bottom: 1px solid var(--md3-outline);
  backdrop-filter: saturate(140%) blur(6px);
  position: relative;
  z-index: 1040;
}
[data-theme="dark"] .navbar .navbar-text {
  color: var(--muted);
  display: flex;
  align-items: center;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
[data-theme="dark"] .navbar.bg-dark,
[data-theme="dark"] .navbar.navbar-dark.bg-dark {
  background-color: var(--md3-surface-container-high) !important;
  border-bottom: 1px solid var(--md3-outline) !important;
}
[data-theme="dark"] .navbar .navbar-brand {
  color: var(--text);
  letter-spacing: 0.3px;
}
[data-theme="dark"] .navbar .nav-link {
  color: var(--muted);
}
[data-theme="dark"] .navbar .nav-link:hover,
[data-theme="dark"] .navbar .nav-link.active {
  color: var(--text);
}
[data-theme="dark"] .navbar .navbar-toggler { border-color: var(--md3-outline-variant); }
[data-theme="dark"] .navbar .dropdown-menu {
  background-color: var(--md3-surface-container);
  border: 1px solid var(--md3-outline-variant);
}

/* Dropdown */
[data-theme="dark"] .dropdown-menu {
  background-color: var(--md3-surface-container);
  border: 1px solid var(--md3-outline-variant);
  backdrop-filter: saturate(140%) blur(6px);
  z-index: 3000;
}
[data-theme="dark"] .navbar .dropdown { position: relative; }
[data-theme="dark"] .navbar .dropdown-menu { z-index: 3000; }
[data-theme="dark"] .dropdown-item { color: var(--text); }
[data-theme="dark"] .dropdown-item:hover { background-color: rgba(255,255,255,0.06); }

/* Dropdowns dentro das tabelas (coluna Ações) */
[data-theme="dark"] .sua-tabela .sticky-actions-col { overflow: visible; }
[data-theme="dark"] .sua-tabela .dropdown { position: relative; }
[data-theme="dark"] .sua-tabela .dropdown-menu { z-index: 4000; }

/* Linha de acordeon de ações nas tabelas */
[data-theme="dark"] .sua-tabela .actions-accordion td {
  background-color: var(--md3-surface-container);
  border-top: 1px solid var(--md3-outline-variant);
}

/* Evitar que dropdowns em tabelas sejam cortados por wrappers responsivos */
[data-theme="dark"] .table-responsive {
  overflow: visible !important;
  overflow-x: visible !important;
  overflow-y: visible !important;
}

/* Garantir sobreposição máxima do dropdown dentro de wrappers responsivos */
[data-theme="dark"] .table-responsive .dropdown-menu {
  z-index: 5000;
}

/* Container e cards */
[data-theme="dark"] .container,
[data-theme="dark"] .container-fluid {
  color: var(--text);
}

[data-theme="dark"] .card {
  background-color: var(--md3-surface-container);
  color: var(--text);
  border: 1px solid var(--md3-outline-variant);
  border-radius: var(--radius);
  box-shadow: 0 8px 30px rgba(0,0,0,0.35);
}
[data-theme="dark"] .card-header {
  background: transparent;
  border-bottom: 1px solid rgba(255,255,255,0.06);
  color: var(--muted);
}
[data-theme="dark"] .card .text-muted { color: var(--muted) !important; }

/* Títulos */
[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, #f5f6ef);
  font-family: var(--font-sans, Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif);
  line-height: 1.2;
}

/* Tipografia — escala Perfect Fourth */
[data-theme="dark"] h1 { font-size: 2.369rem; }
[data-theme="dark"] h2 { font-size: 1.777rem; }
[data-theme="dark"] h3 { font-size: 1.333rem; }
[data-theme="dark"] h4 { font-size: 1rem; }
[data-theme="dark"] h5 { font-size: 0.75rem; }
[data-theme="dark"] h6 { font-size: 0.563rem; }

/* Tabelas */
[data-theme="dark"] .table {
  color: var(--md3-on-surface);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--md3-outline-variant);
  --bs-border-width: 0;
  border: 1px solid var(--md3-outline-variant);
  border-radius: var(--radius);
}
[data-theme="dark"] .table > :not(caption) > * > * {
  background-color: transparent !important;
  color: var(--text) !important;
  border-color: transparent !important;
}
[data-theme="dark"] .table thead, [data-theme="dark"] .table-dark thead {
  background-color: var(--md3-surface-variant);
  color: var(--md3-on-surface);
}
[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) {
  --bs-table-accent-bg: color-mix(in oklab, var(--md3-on-surface), transparent calc(100% - var(--md3-state-layer-opacity)));
  color: var(--md3-on-surface);
}
[data-theme="dark"] .table-hover tbody tr:hover {
  background-color: color-mix(in oklab, var(--md3-on-surface), transparent calc(100% - var(--md3-state-layer-opacity)));
}

/* Remover espessura das bordas internas das células e linhas */
[data-theme="dark"] .table th,
[data-theme="dark"] .table td {
  border: none !important;
  border-width: 0 !important;
}
[data-theme="dark"] .table tr { border: none !important; }

/* Colunas de ações sticky (thead e tbody) */
[data-theme="dark"] .sticky-actions-col,
[data-theme="dark"] .sticky-actions {
  background-color: var(--md3-surface) !important;
}

/* Acordeons (Dashboard/Configurações) */
[data-theme="dark"] .accordion-item {
  background-color: var(--surface);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--radius);
}
[data-theme="dark"] .accordion-button {
  background-color: var(--surface);
  color: var(--text);
  border: none;
}
[data-theme="dark"] .accordion-button:not(.collapsed) {
  background-color: color-mix(in oklab, var(--surface), #000 6%);
  color: var(--text);
  box-shadow: inset 0 -1px 0 rgba(255,255,255,0.06);
}
[data-theme="dark"] .accordion-button:focus {
  box-shadow: 0 0 0 0.25rem rgba(124,58,237,0.25);
}
[data-theme="dark"] .accordion-body {
  background-color: color-mix(in oklab, var(--surface), #000 4%);
  color: var(--text);
}
[data-theme="dark"] .accordion-body .card {
  background-color: var(--md3-surface-container-low);
  border: 1px solid var(--md3-outline-variant);
}
[data-theme="dark"] .accordion-body .list-group { background: transparent; }
[data-theme="dark"] .accordion-body .list-group-item {
  background-color: var(--md3-surface-container-low);
  color: var(--md3-on-surface);
  border-color: var(--md3-outline-variant);
}
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-white {
  background-color: var(--md3-surface-container) !important;
  color: var(--md3-on-surface) !important;
}

/* Botões */
[data-theme="dark"] .btn,
[data-theme="dark"] .btn-sm,
[data-theme="dark"] .btn-lg {
  border-radius: var(--radius);
}
[data-theme="dark"] .btn-primary {
  --bs-btn-bg: var(--md3-primary-container);
  --bs-btn-color: var(--md3-on-primary-container);
  --bs-btn-border-color: var(--md3-primary);

  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-primary), white 10%);
  --bs-btn-hover-border-color: color-mix(in oklab, var(--md3-primary), white 10%);
  --bs-btn-hover-color: var(--md3-on-primary);
  
  --bs-btn-active-bg: color-mix(in oklab, var(--md3-primary), white 15%);
  --bs-btn-active-color: var(--md3-on-primary);
}

[data-theme="dark"] .btn-secondary {
  --bs-btn-bg: var(--md3-secondary);
  --bs-btn-color: var(--md3-on-secondary);
  --bs-btn-border-color: var(--md3-secondary);

  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-secondary), white 10%);
  --bs-btn-hover-border-color: color-mix(in oklab, var(--md3-secondary), white 10%);
  --bs-btn-hover-color: var(--md3-on-secondary);
}
[data-theme="dark"] .btn-tertiary {
  --bs-btn-bg: var(--md3-tertiary);
  --bs-btn-color: var(--md3-on-tertiary);
  --bs-btn-border-color: var(--md3-tertiary);

  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-tertiary), white 10%);
  --bs-btn-hover-border-color: color-mix(in oklab, var(--md3-tertiary), white 10%);
  --bs-btn-hover-color: var(--md3-on-tertiary);
}

[data-theme="dark"] .btn-success {
  --bs-btn-bg: var(--md3-success);
  --bs-btn-color: var(--md3-on-success);
  --bs-btn-border-color: var(--md3-success);

  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-success), white 10%);
  --bs-btn-hover-border-color: color-mix(in oklab, var(--md3-success), white 10%);
  --bs-btn-hover-color: var(--md3-on-success);
}

[data-theme="dark"] .btn-danger {
  --bs-btn-bg: var(--md3-error);
  --bs-btn-color: var(--md3-on-error);
  --bs-btn-border-color: var(--md3-error);

  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-error), #000 10%); /* M3 error é claro, então escurecemos */
  --bs-btn-hover-border-color: color-mix(in oklab, var(--md3-error), #000 10%);
  --bs-btn-hover-color: var(--md3-on-error);
}

[data-theme="dark"] .btn-outline-primary {
  --bs-btn-color: var(--md3-primary);
  --bs-btn-border-color: var(--md3-primary);
  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-primary), transparent 70%);
  --bs-btn-hover-color: var(--md3-on-surface);
}

[data-theme="dark"] .btn-outline-secondary {
  --bs-btn-color: var(--md3-secondary);
  --bs-btn-border-color: var(--md3-secondary);
  --bs-btn-hover-bg: color-mix(in oklab, var(--md3-secondary), transparent 70%);
}

[data-theme="dark"] .btn-light {
  --bs-btn-bg: var(--md3-surface-variant);
  --bs-btn-border-color: var(--md3-outline-variant);
  --bs-btn-color: var(--md3-on-surface);
}
[data-theme="dark"] .btn-link {
  color: var(--md3-primary);
}
[data-theme="dark"] .btn-link:hover {
  color: color-mix(in oklab, var(--md3-primary), white 15%);
}

/* Formulários */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
  background-color: var(--md3-surface-container-low);
  border: 1px solid var(--md3-outline-variant);
  color: var(--md3-on-surface);
  border-radius: var(--radius);
}
[data-theme="dark"] .form-control::placeholder { color: var(--muted); }
[data-theme="dark"] .form-label { color: var(--muted); }

/* Modais */
[data-theme="dark"] .modal-content {
  background-color: var(--surface);
  border: 1px solid rgba(255,255,255,0.06);
}

/* Alertas */
[data-theme="dark"] .alert {
  background-color: var(--md3-surface-container);
  border: 1px solid var(--md3-outline-variant);
  color: var(--text);
}
[data-theme="dark"] .alert-danger { 
  background-color: color-mix(in oklab, var(--md3-error), transparent 80%);
  border-color: var(--md3-error); 
  color: var(--md3-error);
}
[data-theme="dark"] .alert-success { 
  background-color: color-mix(in oklab, var(--md3-success), transparent 80%);
  border-color: var(--md3-success); 
  color: var(--md3-success);
}
[data-theme="dark"] .alert-warning { 
  border-color: #f59e0b; 
  color: #f59e0b; 
  background-color: color-mix(in oklab, #f59e0b, transparent 80%);
}

/* Badges */
[data-theme="dark"] .badge.bg-light { background-color: rgba(255,255,255,0.08) !important; color: var(--text) !important; }
[data-theme="dark"] .badge.bg-dark { background-color: #0f172a !important; }

/* Iframes em configurações */
[data-theme="dark"] iframe { background: transparent; }

/* Sombras acentuadas em interações */
[data-theme="dark"] .shadow-sm { box-shadow: 0 6px 24px rgba(0,0,0,0.3) !important; }
[data-theme="dark"] .shadow { box-shadow: 0 10px 30px rgba(0,0,0,0.35) !important; }

/* Tabelas sticky headers que usam .table-dark */
[data-theme="dark"] thead.table-dark .sticky-actions-col {
  background-color: rgba(255,255,255,0.06) !important;
}

/* Map legend e elementos cinza-claro */
[data-theme="dark"] .legend { color: var(--muted); }
[data-theme="dark"] #map { border-color: rgba(255,255,255,0.08); }

/* Container da tabela responsiva (melhorias de UX) */
[data-theme="dark"] .table-responsive {
  background-color: var(--md3-surface-container-low);
  border: 1px solid var(--md3-outline);
  border-radius: var(--radius);
  box-shadow: 0 6px 24px rgba(0,0,0,0.3);
  padding: 0.25rem;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-color: rgba(255,255,255,0.2) transparent;
}
[data-theme="dark"] .table-responsive::-webkit-scrollbar { height: 10px; width: 10px; }
[data-theme="dark"] .table-responsive::-webkit-scrollbar-track { background: transparent; }
[data-theme="dark"] .table-responsive::-webkit-scrollbar-thumb {
  background-color: rgba(255,255,255,0.2);
  border-radius: var(--radius);
  border: 2px solid transparent;
}
/* Garantir fundo coerente da coluna de ações dentro do container */
[data-theme="dark"] .table-responsive .sticky-actions-col { background-color: var(--md3-surface) !important; }

/* Remoção de bordas internas para tabelas marcadas com .sua-tabela */
[data-theme="dark"] .sua-tabela td,
[data-theme="dark"] .sua-tabela th {
  border-bottom: none !important;
  border-top: none !important;
  border: none !important;
  border-width: 0 !important;
}

/* Ajustes de layout da tabela marcada com .sua-tabela */
[data-theme="dark"] .sua-tabela tbody {
  height: auto;
  min-height: unset;
}
[data-theme="dark"] .sua-tabela {
  height: auto;
  min-height: unset;
  border-radius: var(--radius);
  overflow: hidden;
}
[data-theme="dark"] .sua-tabela .linha-sem-dados td {
  text-align: center;
  padding: 20px;
  font-style: italic;
  color: var(--muted);
}

/* Regras universais para .sua-tabela (aplicam independentemente do tema) */
.sua-tabela tbody {
  height: auto;
  min-height: unset;
}
.sua-tabela {
  height: auto;
  min-height: unset;
  border-radius: var(--radius);
  overflow: hidden;
}
.sua-tabela .linha-sem-dados td {
  text-align: center;
  padding: 20px;
  font-style: italic;
  color: var(--muted); /* Usa a cor muted do tema aplicado */
}

/* Ações responsivas (menu "...") */
[data-theme="dark"] .actions-cell { position: relative; }
[data-theme="dark"] .actions-cell .actions-toggle {
  display: none;
  width: 32px; height: 32px;
  padding: 0;
  line-height: 1;
  color: var(--muted);
}
[data-theme="dark"] .actions-cell.actions-collapsed .actions-toggle { display: inline-flex; align-items: center; justify-content: center; }
[data-theme="dark"] .actions-cell.actions-collapsed > a.btn,
[data-theme="dark"] .actions-cell.actions-collapsed > button.btn,
[data-theme="dark"] .actions-cell.actions-collapsed > form { display: none !important; }

/* Dropdown do menu de ações */
[data-theme="dark"] .actions-menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: 2px;
  background-color: var(--md3-surface-container);
  border: 1px solid var(--md3-outline-variant);
  border-radius: var(--radius);
  box-shadow: 0 8px 24px rgba(0,0,0,0.35);
}
[data-theme="dark"] .actions-menu .dropdown-item { color: var(--text); }
[data-theme="dark"] .actions-menu .dropdown-item:hover { background-color: rgba(255,255,255,0.06); }

/* Detalhes (Clientes e Leads) */
[data-theme="dark"] .card-header strong {
  color: var(--text);
}
[data-theme="dark"] .card-body .row > [class^="col-"] > strong {
  display: block;
  color: var(--muted);
  font-weight: 600;
}
[data-theme="dark"] .card-body .row > [class^="col-"] > div {
  color: var(--text);
}

/* Listas (globais) */
[data-theme="dark"] .list-group { background: transparent; }
[data-theme="dark"] .list-group-item {
  background-color: var(--md3-surface-container-low);
  color: var(--md3-on-surface);
  border-color: var(--md3-outline-variant);
}

/* Utilitário de borda em caixas simples */
[data-theme="dark"] .border { border-color: var(--md3-outline-variant) !important; }

/* Destaque de linhas de atenção em tabelas */
[data-theme="dark"] .table-warning {
  --bs-table-bg: color-mix(in oklab, #f59e0b, transparent 86%);
  color: var(--text);
}