/**
 * Estilos customizados para DataTables
 */

/* Container dos botões */
.dt-buttons {
    margin-bottom: 10px;
    display: inline-block;
}

/* Estilos dos botões */
.dt-button {
    margin-right: 5px !important;
    border-radius: 3px !important;
    padding: 6px 12px !important;
    font-size: 14px !important;
    transition: all 0.3s ease !important;
}

.dt-button:hover {
    opacity: 0.8;
    transform: translateY(-1px);
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
}

.dt-button i {
    margin-right: 5px;
}

/* Campo de busca */
.dataTables_wrapper .dataTables_filter {
    float: right;
    text-align: right;
    margin-bottom: 10px;
}

.dataTables_wrapper .dataTables_filter input {
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 5px 10px;
    margin-left: 5px;
    font-size: 14px;
    transition: border-color 0.3s ease;
}

.dataTables_wrapper .dataTables_filter input:focus {
    border-color: #66afe9;
    outline: none;
    box-shadow: 0 0 5px rgba(102, 175, 233, 0.5);
}

/* Seletor de quantidade de registros */
.dataTables_wrapper .dataTables_length {
    float: left;
    margin-bottom: 10px;
}

.dataTables_wrapper .dataTables_length select {
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 5px 10px;
    margin: 0 5px;
    font-size: 14px;
}

/* Ajustar tabela para o DataTables */
table.dataTable {
    width: 100% !important;
    margin-top: 10px !important;
    border-collapse: collapse;
}

/* Cabeçalho da tabela */
table.dataTable thead th {
    background-color: #f5f5f5;
    border-bottom: 2px solid #ddd;
    padding: 10px;
    font-weight: bold;
    text-align: left;
    position: relative;
}

table.dataTable thead th:hover {
    background-color: #e9e9e9;
}

/* Container do filtro no header */
.datatable-filter-container {
    position: relative;
    display: inline-block;
    margin-left: 5px;
    vertical-align: middle;
}

/* Ícone do filtro */
.datatable-filter-icon {
    cursor: pointer;
    padding: 3px 6px;
    border-radius: 3px;
    transition: all 0.2s ease;
    display: inline-block;
    color: #666;
}

.datatable-filter-icon:hover {
    background-color: #e0e0e0;
    color: #333;
}

.datatable-filter-icon.active {
    background-color: #337ab7;
    color: white;
}

.datatable-filter-icon i {
    font-size: 12px;
}

/* Dropdown do filtro estilo Excel */
.datatable-filter-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    background: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15);
    z-index: 10000;
    min-width: 250px;
    max-width: 350px;
    margin-top: 5px;
    padding: 8px;
}

/* Input de busca dentro do dropdown */
.datatable-filter-search {
    width: 100%;
    padding: 6px 10px;
    border: 1px solid #ddd;
    border-radius: 3px;
    margin-bottom: 8px;
    font-size: 13px;
    box-sizing: border-box;
}

.datatable-filter-search:focus {
    outline: none;
    border-color: #337ab7;
    box-shadow: 0 0 3px rgba(51, 122, 183, 0.3);
}

/* Container dos checkboxes */
.datatable-filter-checkboxes {
    max-height: 250px;
    overflow-y: auto;
    overflow-x: hidden;
    border: 1px solid #e0e0e0;
    border-radius: 3px;
    padding: 5px;
    margin-bottom: 8px;
    background-color: #fafafa;
}

/* Scrollbar customizada */
.datatable-filter-checkboxes::-webkit-scrollbar {
    width: 8px;
}

.datatable-filter-checkboxes::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.datatable-filter-checkboxes::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.datatable-filter-checkboxes::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Opções do filtro (checkboxes) */
.datatable-filter-option {
    display: block;
    padding: 5px 8px;
    cursor: pointer;
    margin: 2px 0;
    border-radius: 3px;
    transition: background-color 0.2s ease;
    font-size: 13px;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

.datatable-filter-option:hover {
    background-color: #e8f4f8;
}

.datatable-filter-option input[type="checkbox"] {
    margin-right: 8px;
    cursor: pointer;
}

.datatable-filter-option span {
    vertical-align: middle;
}

/* Botões de ação do filtro */
.datatable-filter-actions {
    display: flex;
    gap: 5px;
    justify-content: flex-end;
    padding-top: 5px;
    border-top: 1px solid #e0e0e0;
}

.datatable-filter-actions button {
    padding: 4px 12px;
    font-size: 12px;
    border-radius: 3px;
    cursor: pointer;
    border: 1px solid #ddd;
    transition: all 0.2s ease;
}

.datatable-filter-actions .btn-filter-ok {
    background-color: #337ab7;
    color: white;
    border-color: #2e6da4;
}

.datatable-filter-actions .btn-filter-ok:hover {
    background-color: #286090;
    border-color: #204d74;
}

.datatable-filter-actions .btn-filter-clear {
    background-color: #f5f5f5;
    color: #333;
}

.datatable-filter-actions .btn-filter-clear:hover {
    background-color: #e0e0e0;
}

/* Ícones de ordenação */
table.dataTable thead .sorting:before,
table.dataTable thead .sorting_asc:before,
table.dataTable thead .sorting_desc:before {
    right: 1em;
    content: "⇅";
    opacity: 0.3;
}

table.dataTable thead .sorting_asc:before {
    content: "↑";
    opacity: 1;
}

table.dataTable thead .sorting_desc:before {
    content: "↓";
    opacity: 1;
}

/* Corpo da tabela */
table.dataTable tbody tr {
    transition: background-color 0.2s ease;
}

table.dataTable tbody tr:hover {
    background-color: #f9f9f9;
    cursor: pointer;
}

table.dataTable tbody tr:nth-child(even) {
    background-color: #fafafa;
}

table.dataTable tbody tr:nth-child(even):hover {
    background-color: #f0f0f0;
}

table.dataTable tbody td {
    padding: 8px 10px;
    border-bottom: 1px solid #f0f0f0;
}

/* Informações de paginação */
.dataTables_wrapper .dataTables_info {
    float: left;
    padding-top: 10px;
    font-size: 13px;
    color: #666;
}

/* Controles de paginação */
.dataTables_wrapper .dataTables_paginate {
    float: right;
    text-align: right;
    padding-top: 10px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button {
    padding: 5px 10px;
    margin-left: 2px;
    border: 1px solid #ddd;
    border-radius: 3px;
    background-color: white;
    cursor: pointer;
    transition: all 0.2s ease;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background-color: #f5f5f5;
    border-color: #999;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background-color: #337ab7;
    color: white !important;
    border-color: #337ab7;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Indicador de processamento */
.dataTables_wrapper .dataTables_processing {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 200px;
    margin-left: -100px;
    margin-top: -26px;
    text-align: center;
    padding: 10px;
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 5px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

/* Mensagem de tabela vazia */
.dataTables_wrapper .dataTables_empty {
    text-align: center;
    padding: 20px;
    color: #999;
    font-style: italic;
}

/* Responsividade */
@media screen and (max-width: 768px) {
    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate {
        float: none;
        text-align: center;
        margin-bottom: 10px;
    }
    
    .dt-buttons {
        text-align: center;
        width: 100%;
    }
    
    .dt-button {
        margin-bottom: 5px;
    }
}

/* Ajuste para loading overlay */
.dataTables_wrapper .dataTables_processing {
    z-index: 9999;
}

/* Limpar floats */
.dataTables_wrapper:after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

/* ============================================
   FIXED HEADER - Cabeçalho Fixo
   ============================================ */

/* Ajustes para o cabeçalho fixo */
table.dataTable.fixedHeader-floating,
table.dataTable.fixedHeader-locked {
    background-color: white;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

table.dataTable.fixedHeader-floating thead th,
table.dataTable.fixedHeader-locked thead th {
    background-color: #f5f5f5 !important;
    border-bottom: 2px solid #ddd !important;
}

/* Z-index para cabeçalho fixo ficar acima de outros elementos */
.fixedHeader-floating {
    z-index: 1000 !important;
}

/* ============================================
   COLUMN VISIBILITY - Botão de Colunas
   ============================================ */

/* Dropdown do botão de visibilidade de colunas */
div.dt-button-collection {
    background-color: white;
    border: 1px solid #ccc;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.2);
    padding: 8px 0;
    min-width: 200px;
}

/* Botões dentro do dropdown de colunas */
div.dt-button-collection button.dt-button {
    display: block;
    width: 100%;
    text-align: left;
    padding: 8px 16px !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
    border-radius: 0 !important;
    color: #333 !important;
}

div.dt-button-collection button.dt-button:hover {
    background-color: #f5f5f5 !important;
    transform: none !important;
    box-shadow: none !important;
}

/* Botão ativo (coluna visível) */
div.dt-button-collection button.dt-button.active {
    background-color: #e7f3ff !important;
    color: #0066cc !important;
}

/* Ícone de check para colunas visíveis */
div.dt-button-collection button.dt-button.active:before {
    content: '✓ ';
    margin-right: 5px;
    font-weight: bold;
}

/* Estilo do fundo do dropdown */
div.dt-button-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.2);
    z-index: 999;
}

/* ============================================
   ROWGROUP - Botão de Agrupamento no Filtro
   Aparece em TODAS as colunas EXCETO colunas SUM (:: ou SUM::)
   Permite agrupar dados por qualquer dimensão e ver totais
   ============================================ */

/* Botão de agrupar dentro do dropdown de filtro */
.btn-filter-group {
    width: 100%;
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 8px 12px;
    border: none;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    gap: 8px;
}

.btn-filter-group i {
    font-size: 14px;
}

/* Estado inativo (btn-info) */
.btn-filter-group.btn-info {
    background-color: #5bc0de;
    color: white;
    border: 1px solid #46b8da;
}

.btn-filter-group.btn-info:hover {
    background-color: #46b8da;
    border-color: #31b0d5;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Estado ativo (btn-success) */
.btn-filter-group.btn-success {
    background-color: #5cb85c;
    color: white;
    border: 1px solid #4cae4c;
}

.btn-filter-group.btn-success:hover {
    background-color: #4cae4c;
    border-color: #449d44;
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

/* Linha de grupo */
.group-row td {
    background-color: #f5f5f5 !important;
    font-weight: bold;
    padding: 12px 8px !important;
    border-top: 2px solid #0d6efd !important;
    border-bottom: 1px solid #dee2e6 !important;
    vertical-align: middle !important;
}

.group-row td:first-child {
    padding-left: 12px !important;
    border-top: 2px solid #2d4154 !important;
    border-bottom: 1px solid #ddd !important;
}

.group-row:hover td {
    background-color: #e8e8e8 !important;
}

/* ============================================
   SEARCHBUILDER - Busca Avançada
   ============================================ */

/* Container principal do SearchBuilder */
div.dtsb-searchBuilder {
    margin-bottom: 15px;
    padding: 15px;
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 4px;
}

/* Título do SearchBuilder */
div.dtsb-searchBuilder button.dtsb-clearAll {
    float: right;
    margin-left: 10px;
}

/* Grupos e condições */
div.dtsb-group {
    background-color: white;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 10px;
    margin-bottom: 10px;
}

div.dtsb-group > div.dtsb-logicContainer {
    margin-bottom: 10px;
}

/* Botões dentro do SearchBuilder */
div.dtsb-searchBuilder button,
div.dtsb-group button {
    padding: 5px 10px;
    border-radius: 3px;
    border: 1px solid #ddd;
    background-color: white;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.2s ease;
}

div.dtsb-searchBuilder button:hover,
div.dtsb-group button:hover {
    background-color: #f5f5f5;
    border-color: #66afe9;
}

/* Selects e inputs */
div.dtsb-searchBuilder select,
div.dtsb-searchBuilder input {
    padding: 5px 8px;
    border: 1px solid #ddd;
    border-radius: 3px;
    font-size: 13px;
}

div.dtsb-searchBuilder select:focus,
div.dtsb-searchBuilder input:focus {
    outline: none;
    border-color: #66afe9;
    box-shadow: 0 0 3px rgba(102, 175, 233, 0.3);
}

/* Botão de remover condição */
button.dtsb-delete {
    background-color: #d9534f !important;
    color: white !important;
    border-color: #d43f3a !important;
}

button.dtsb-delete:hover {
    background-color: #c9302c !important;
}

/* ============================================
   MODO ESCURO - Bootstrap 5 Dark Mode Support
   ============================================ */

/* Detectar modo escuro via atributo data-bs-theme="dark" no <html> ou <body> */
[data-bs-theme="dark"] table.dataTable thead th,
html[data-bs-theme="dark"] table.dataTable thead th,
body[data-bs-theme="dark"] table.dataTable thead th {
    background-color: #2b3035 !important;
    border-bottom: 2px solid #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] table.dataTable thead th:hover,
html[data-bs-theme="dark"] table.dataTable thead th:hover,
body[data-bs-theme="dark"] table.dataTable thead th:hover {
    background-color: #343a40 !important;
}

/* Footer (totalizadores) em modo escuro */
[data-bs-theme="dark"] table.dataTable tfoot th,
html[data-bs-theme="dark"] table.dataTable tfoot th,
body[data-bs-theme="dark"] table.dataTable tfoot th {
    background-color: #2b3035 !important;
    border-top: 2px solid #495057 !important;
    color: #dee2e6 !important;
}

/* Corpo da tabela em modo escuro */
[data-bs-theme="dark"] table.dataTable tbody td,
html[data-bs-theme="dark"] table.dataTable tbody td,
body[data-bs-theme="dark"] table.dataTable tbody td {
    background-color: #212529 !important;
    color: #dee2e6 !important;
    border-bottom: 1px solid #495057 !important;
}

[data-bs-theme="dark"] table.dataTable tbody tr:hover td,
html[data-bs-theme="dark"] table.dataTable tbody tr:hover td,
body[data-bs-theme="dark"] table.dataTable tbody tr:hover td {
    background-color: #2b3035 !important;
}

[data-bs-theme="dark"] table.dataTable tbody tr.selected td,
html[data-bs-theme="dark"] table.dataTable tbody tr.selected td,
body[data-bs-theme="dark"] table.dataTable tbody tr.selected td {
    background-color: #0d6efd !important;
    color: white !important;
}

/* Dropdown de filtro em modo escuro */
[data-bs-theme="dark"] .datatable-filter-dropdown,
html[data-bs-theme="dark"] .datatable-filter-dropdown,
body[data-bs-theme="dark"] .datatable-filter-dropdown {
    background: #2b3035 !important;
    border: 1px solid #495057 !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.5) !important;
}

/* Input de busca no filtro - modo escuro */
[data-bs-theme="dark"] .datatable-filter-search,
html[data-bs-theme="dark"] .datatable-filter-search,
body[data-bs-theme="dark"] .datatable-filter-search {
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .datatable-filter-search:focus,
html[data-bs-theme="dark"] .datatable-filter-search:focus,
body[data-bs-theme="dark"] .datatable-filter-search:focus {
    border-color: #0d6efd !important;
    box-shadow: 0 0 3px rgba(13, 110, 253, 0.5) !important;
}

/* Checkboxes no filtro - modo escuro */
[data-bs-theme="dark"] .datatable-filter-checkboxes,
html[data-bs-theme="dark"] .datatable-filter-checkboxes,
body[data-bs-theme="dark"] .datatable-filter-checkboxes {
    background-color: #2b3035 !important;
}

[data-bs-theme="dark"] .datatable-filter-option,
html[data-bs-theme="dark"] .datatable-filter-option,
body[data-bs-theme="dark"] .datatable-filter-option {
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .datatable-filter-option:hover,
html[data-bs-theme="dark"] .datatable-filter-option:hover,
body[data-bs-theme="dark"] .datatable-filter-option:hover {
    background-color: #343a40 !important;
}

/* Scrollbar customizado para modo escuro */
[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-track,
html[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-track,
body[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-track {
    background: #212529 !important;
}

[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb,
html[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb,
body[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb {
    background: #495057 !important;
}

[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb:hover,
html[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb:hover,
body[data-bs-theme="dark"] .datatable-filter-checkboxes::-webkit-scrollbar-thumb:hover {
    background: #6c757d !important;
}

/* Botões de ação do filtro - modo escuro */
[data-bs-theme="dark"] .datatable-filter-actions,
html[data-bs-theme="dark"] .datatable-filter-actions,
body[data-bs-theme="dark"] .datatable-filter-actions {
    border-top: 1px solid #495057 !important;
}

/* Ícone do filtro - modo escuro */
[data-bs-theme="dark"] .datatable-filter-icon,
html[data-bs-theme="dark"] .datatable-filter-icon,
body[data-bs-theme="dark"] .datatable-filter-icon {
    color: #adb5bd !important;
}

[data-bs-theme="dark"] .datatable-filter-icon:hover,
html[data-bs-theme="dark"] .datatable-filter-icon:hover,
body[data-bs-theme="dark"] .datatable-filter-icon:hover {
    background-color: #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .datatable-filter-icon.active,
html[data-bs-theme="dark"] .datatable-filter-icon.active,
body[data-bs-theme="dark"] .datatable-filter-icon.active {
    background-color: #0d6efd !important;
    color: white !important;
}

/* Campo de busca global - modo escuro */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input {
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input:focus,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input:focus,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter input:focus {
    border-color: #0d6efd !important;
    box-shadow: 0 0 5px rgba(13, 110, 253, 0.5) !important;
}

/* Seletor de quantidade - modo escuro */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length select {
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #dee2e6 !important;
}

/* Textos informativos - modo escuro */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length label,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length label,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_length label,
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter label,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter label,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_filter label {
    color: #dee2e6 !important;
}

/* Paginação - modo escuro */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button {
    background-color: #212529 !important;
    border: 1px solid #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background-color: #343a40 !important;
    color: white !important;
}

[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_paginate .paginate_button.current {
    background-color: #0d6efd !important;
    color: white !important;
    border: 1px solid #0d6efd !important;
}

/* Tabela vazia - modo escuro */
[data-bs-theme="dark"] .dataTables_empty,
html[data-bs-theme="dark"] .dataTables_empty,
body[data-bs-theme="dark"] .dataTables_empty {
    color: #6c757d !important;
}

/* Loading/Processing - modo escuro */
[data-bs-theme="dark"] .dataTables_wrapper .dataTables_processing,
html[data-bs-theme="dark"] .dataTables_wrapper .dataTables_processing,
body[data-bs-theme="dark"] .dataTables_wrapper .dataTables_processing {
    background-color: #2b3035 !important;
    color: #dee2e6 !important;
    border: 1px solid #495057 !important;
}

/* FixedHeader em modo escuro */
[data-bs-theme="dark"] table.dataTable.fixedHeader-floating,
html[data-bs-theme="dark"] table.dataTable.fixedHeader-floating,
body[data-bs-theme="dark"] table.dataTable.fixedHeader-floating,
[data-bs-theme="dark"] table.dataTable.fixedHeader-locked,
html[data-bs-theme="dark"] table.dataTable.fixedHeader-locked,
body[data-bs-theme="dark"] table.dataTable.fixedHeader-locked {
    background-color: #212529 !important;
}

[data-bs-theme="dark"] table.dataTable.fixedHeader-floating thead th,
html[data-bs-theme="dark"] table.dataTable.fixedHeader-floating thead th,
body[data-bs-theme="dark"] table.dataTable.fixedHeader-floating thead th,
[data-bs-theme="dark"] table.dataTable.fixedHeader-locked thead th,
html[data-bs-theme="dark"] table.dataTable.fixedHeader-locked thead th,
body[data-bs-theme="dark"] table.dataTable.fixedHeader-locked thead th {
    background-color: #2b3035 !important;
    border-bottom: 2px solid #495057 !important;
    color: #dee2e6 !important;
}

/* Dropdown ColVis em modo escuro */
[data-bs-theme="dark"] div.dt-button-collection,
html[data-bs-theme="dark"] div.dt-button-collection,
body[data-bs-theme="dark"] div.dt-button-collection {
    background-color: #2b3035 !important;
    border: 1px solid #495057 !important;
    box-shadow: 0 4px 12px rgba(0,0,0,0.5) !important;
}

[data-bs-theme="dark"] div.dt-button-collection button.dt-button,
html[data-bs-theme="dark"] div.dt-button-collection button.dt-button,
body[data-bs-theme="dark"] div.dt-button-collection button.dt-button {
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] div.dt-button-collection button.dt-button:hover,
html[data-bs-theme="dark"] div.dt-button-collection button.dt-button:hover,
body[data-bs-theme="dark"] div.dt-button-collection button.dt-button:hover {
    background-color: #343a40 !important;
}

[data-bs-theme="dark"] div.dt-button-collection button.dt-button.active,
html[data-bs-theme="dark"] div.dt-button-collection button.dt-button.active,
body[data-bs-theme="dark"] div.dt-button-collection button.dt-button.active {
    background-color: #0d3a5c !important;
    color: #4db8ff !important;
}

[data-bs-theme="dark"] div.dt-button-background,
html[data-bs-theme="dark"] div.dt-button-background,
body[data-bs-theme="dark"] div.dt-button-background {
    background-color: rgba(0,0,0,0.5) !important;
}

/* ============================================
   PRINT / IMPRESSÃO - Otimização para Impressão
   ============================================ */

@media print {
    /* Ocultar elementos desnecessários na impressão */
    .dt-buttons,
    .dataTables_filter,
    .dataTables_length,
    .dataTables_info,
    .dataTables_paginate,
    .datatable-filter-container,
    .datatable-filter-icon,
    .datatable-filter-dropdown {
        display: none !important;
    }
    
    /* Garantir que a tabela use toda a largura da página */
    table.dataTable {
        width: 100% !important;
        table-layout: fixed !important;
        border-collapse: collapse !important;
    }
    
    /* Distribuir colunas igualmente */
    table.dataTable thead th,
    table.dataTable tbody td,
    table.dataTable tfoot th {
        width: auto !important;
        word-wrap: break-word !important;
        padding: 8px !important;
        border: 1px solid #ddd !important;
    }
    
    /* Cabeçalho em destaque */
    table.dataTable thead th {
        background-color: #2d4154 !important;
        color: white !important;
        font-weight: bold !important;
        text-align: center !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    /* Rodapé (totalizadores) em destaque */
    table.dataTable tfoot th {
        background-color: #f5f5f5 !important;
        font-weight: bold !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    /* Linhas alternadas para melhor leitura */
    table.dataTable tbody tr:nth-child(even) {
        background-color: #f9f9f9 !important;
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    
    /* Evitar quebra de página dentro das linhas */
    table.dataTable tbody tr {
        page-break-inside: avoid !important;
    }
    
    /* Orientação landscape para melhor visualização */
    @page {
        size: A4 landscape;
        margin: 1.5cm;
    }
    
    /* Ajustar corpo da página */
    body {
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    
    /* Wrapper da tabela */
    .dataTables_wrapper {
        width: 100% !important;
    }
}

/* ============================================
   MODO ESCURO - SearchBuilder
   ============================================ */

[data-bs-theme="dark"] div.dtsb-searchBuilder,
html[data-bs-theme="dark"] div.dtsb-searchBuilder,
body[data-bs-theme="dark"] div.dtsb-searchBuilder {
    background-color: #2b3035 !important;
    border-color: #495057 !important;
}

[data-bs-theme="dark"] div.dtsb-group,
html[data-bs-theme="dark"] div.dtsb-group,
body[data-bs-theme="dark"] div.dtsb-group {
    background-color: #212529 !important;
    border-color: #495057 !important;
}

[data-bs-theme="dark"] div.dtsb-searchBuilder button,
html[data-bs-theme="dark"] div.dtsb-searchBuilder button,
body[data-bs-theme="dark"] div.dtsb-searchBuilder button,
[data-bs-theme="dark"] div.dtsb-group button,
html[data-bs-theme="dark"] div.dtsb-group button,
body[data-bs-theme="dark"] div.dtsb-group button {
    background-color: #343a40 !important;
    border-color: #495057 !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] div.dtsb-searchBuilder button:hover,
html[data-bs-theme="dark"] div.dtsb-searchBuilder button:hover,
body[data-bs-theme="dark"] div.dtsb-searchBuilder button:hover,
[data-bs-theme="dark"] div.dtsb-group button:hover,
html[data-bs-theme="dark"] div.dtsb-group button:hover,
body[data-bs-theme="dark"] div.dtsb-group button:hover {
    background-color: #495057 !important;
}

[data-bs-theme="dark"] div.dtsb-searchBuilder select,
html[data-bs-theme="dark"] div.dtsb-searchBuilder select,
body[data-bs-theme="dark"] div.dtsb-searchBuilder select,
[data-bs-theme="dark"] div.dtsb-searchBuilder input,
html[data-bs-theme="dark"] div.dtsb-searchBuilder input,
body[data-bs-theme="dark"] div.dtsb-searchBuilder input {
    background-color: #212529 !important;
    border-color: #495057 !important;
    color: #dee2e6 !important;
}

/* ============================================
   MODO ESCURO - RowGroup
   ============================================ */

[data-bs-theme="dark"] .datatable-group-selector,
html[data-bs-theme="dark"] .datatable-group-selector,
body[data-bs-theme="dark"] .datatable-group-selector {
    background-color: #343a40 !important;
    border-color: #495057 !important;
    color: #dee2e6 !important;
}

/* Botão de agrupamento em modo escuro */
[data-bs-theme="dark"] .btn-filter-group.btn-info,
html[data-bs-theme="dark"] .btn-filter-group.btn-info,
body[data-bs-theme="dark"] .btn-filter-group.btn-info {
    background-color: #0dcaf0 !important;
    border-color: #0dcaf0 !important;
    color: #000 !important;
}

[data-bs-theme="dark"] .btn-filter-group.btn-info:hover,
html[data-bs-theme="dark"] .btn-filter-group.btn-info:hover,
body[data-bs-theme="dark"] .btn-filter-group.btn-info:hover {
    background-color: #31d2f2 !important;
    border-color: #31d2f2 !important;
    color: #000 !important;
}

[data-bs-theme="dark"] .btn-filter-group.btn-success,
html[data-bs-theme="dark"] .btn-filter-group.btn-success,
body[data-bs-theme="dark"] .btn-filter-group.btn-success {
    background-color: #198754 !important;
    border-color: #198754 !important;
    color: #fff !important;
}

[data-bs-theme="dark"] .btn-filter-group.btn-success:hover,
html[data-bs-theme="dark"] .btn-filter-group.btn-success:hover,
body[data-bs-theme="dark"] .btn-filter-group.btn-success:hover {
    background-color: #1a9a5a !important;
    border-color: #1a9a5a !important;
    color: #fff !important;
}

[data-bs-theme="dark"] .group-row td,
html[data-bs-theme="dark"] .group-row td,
body[data-bs-theme="dark"] .group-row td {
    background-color: #343a40 !important;
    border-top: 2px solid #0d6efd !important;
    color: #dee2e6 !important;
}

[data-bs-theme="dark"] .group-row:hover td,
html[data-bs-theme="dark"] .group-row:hover td,
body[data-bs-theme="dark"] .group-row:hover td {
    background-color: #495057 !important;
}

/* Multi-Dataset AI Styles */
.btn-purple {
    background-color: #7c3aed !important;
    border-color: #7c3aed !important;
    color: #fff !important;
}

.btn-purple:hover {
    background-color: #6d28d9 !important;
    border-color: #6d28d9 !important;
    color: #fff !important;
}

.bg-purple {
    background-color: #7c3aed !important;
    color: #fff !important;
}

.badge.bg-purple {
    background-color: #7c3aed !important;
}

.btn-outline-info:hover {
    background-color: #0dcaf0 !important;
    border-color: #0dcaf0 !important;
    color: #000 !important;
}

/* Dark mode ajustes para multi-dataset */
[data-bs-theme="dark"] .btn-purple,
html[data-bs-theme="dark"] .btn-purple,
body[data-bs-theme="dark"] .btn-purple {
    background-color: #8b5cf6 !important;
    border-color: #8b5cf6 !important;
}

[data-bs-theme="dark"] .btn-purple:hover,
html[data-bs-theme="dark"] .btn-purple:hover,
body[data-bs-theme="dark"] .btn-purple:hover {
    background-color: #7c3aed !important;
    border-color: #7c3aed !important;
}

/* AI Loading Modal - Error message styling */
#aiLoadingMessage {
    line-height: 1.6;
    font-size: 14px;
}

#aiLoadingMessage:has(+ .text-danger),
#aiLoadingMessage.text-danger {
    font-weight: 500;
    margin-top: 10px;
}

/* Dark mode para loading modal */
[data-bs-theme="dark"] #aiLoadingModal .modal-content,
html[data-bs-theme="dark"] #aiLoadingModal .modal-content,
body[data-bs-theme="dark"] #aiLoadingModal .modal-content {
    background-color: #212529;
    color: #dee2e6;
}

[data-bs-theme="dark"] #aiLoadingMessage,
html[data-bs-theme="dark"] #aiLoadingMessage,
body[data-bs-theme="dark"] #aiLoadingMessage {
    color: #adb5bd !important;
}

/* Botões desabilitados no modal de resultado AI */
.btn.disabled,
.btn:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.btn.disabled:hover,
.btn:disabled:hover {
    opacity: 0.5;
    transform: none;
}
