/* ===== Compacto estilo DataTables ===== */
table.dataTable {
  font-size: .88rem;            /* letras más pequeñas */
}

table.dataTable tbody td,
table.dataTable thead th {
  padding: .35rem .5rem;        /* menos alto */
  vertical-align: top;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
  font-size: .88rem;
  padding: .25rem .5rem;
}

.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate {
  font-size: .85rem;
}

/* ===== THEME ENGINE por tabla (variables) ===== */
.dt-theme {
  --dt-bg: transparent;
  --dt-border: rgba(0,0,0,.08);
  --dt-head-bg: rgba(13,110,253,.12);
  --dt-head-fg: inherit;
  --dt-striped: rgba(0,0,0,.03);
}

[data-bs-theme="dark"] .dt-theme {
  --dt-border: rgba(255,255,255,.12);
  --dt-striped: rgba(255,255,255,.05);
}

/* aplica variables al contenedor y tabla */
.dt-theme .dataTables_wrapper,
.dt-theme table.dataTable {
  background: var(--dt-bg);
  border-color: var(--dt-border);
}

.dt-theme table.dataTable thead th {
  background: var(--dt-head-bg) !important;
  color: var(--dt-head-fg) !important;
  border-bottom: 1px solid var(--dt-border) !important;
}

.dt-theme table.dataTable tbody tr:nth-child(even) {
  background: var(--dt-striped);
}

/* ===== Presets pastel (elige por tabla) ===== */
.dt-pastel-blue   { --dt-bg: rgba(13,110,253,.08); --dt-head-bg: rgba(13,110,253,.18); }
.dt-pastel-green  { --dt-bg: rgba(25,135,84,.08); --dt-head-bg: rgba(25,135,84,.18); }
.dt-pastel-amber  { --dt-bg: rgba(255,193,7,.10); --dt-head-bg: rgba(255,193,7,.22); }
.dt-pastel-rose   { --dt-bg: rgba(214,51,132,.08); --dt-head-bg: rgba(214,51,132,.18); }
.dt-pastel-slate  { --dt-bg: rgba(108,117,125,.08); --dt-head-bg: rgba(108,117,125,.18); }

/* (Opcional) Redondear un poco */
.dt-theme table.dataTable {
  border-radius: 14px;
  overflow: hidden;
}