body {
  font-family: system-ui, Segoe UI, Roboto, Ubuntu, Cantarell, Helvetica Neue,
    Arial;
}
.table-warning {
  background: #fff3cd !important;
}
@media print {
  .no-print,
  nav,
  .toast-container,
  .dt-search,
  .dt-length,
  .dt-info,
  .dt-paging,
  .dt-column-order {
    display: none !important;
  }
}
tr.row-checked td {
  background-color: #ffd54d !important; /* amarillo suave */
}

.blocked {
  opacity: 0.6;
  pointer-events: none; /* evita clics en todo el bloque */
}
.badge-soft {
  background: #fff3cd;
  border: 1px solid #ffe69c;
  color: #8a6d3b;
  border-radius: 0.25rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.875rem;
}

div.dt-container .dt-paging .dt-paging-button {
  padding: 0.5em 0.1em;
}

a.page-link.first,
a.page-link.previous,
a.page-link.next,
a.page-link.last {
  border: 0;
  background: transparent;
}

.dt-search {
  margin-bottom: 1rem;
}

.dt-search label {
  display: none;
}

div.dt-container div.dt-search input {
  font-size: 1rem;
  margin-left: 0 !important;
  min-width: 300px;
}

.dt-length label {
  margin-right: 0.6rem;
}

div.dt-container div.dt-length select {
  margin-right: 0 !important;
}

@media print {
  @page {
    size: A4 landscape;
  }
}
/* ===== Estilo general del reporte (pantalla + impresión) ===== */
.report-sheet {
  max-width: 1100px; /* ancho cómodo en pantalla */
  margin: 0 auto;
  padding: 1rem;
  background: #fff;
}

/* Tabla como cuadrilla de 2px, sin colores de fondo */
.report-table {
  width: 100%;
  border-collapse: separate; /* ← clave */
  border-spacing: 0; /* ← sin espacios */
  border-color: #000 !important;
  background: #fff !important;
}

/* Bordes internos de 2pt */
.report-table th,
.report-table td {
  background: #fff !important;
  color: #000;
  padding: 0.5rem 0.6rem;
  border: 2pt solid #000; /* grosor real de la cuadrilla */
  border-color: #000 !important;
}

/* Evitar doble grosor: quitamos bordes derechos e inferiores intermedios */
.report-table th:not(:last-child),
.report-table td:not(:last-child) {
  border-right-width: 0;
}
.report-table thead th {
  border-bottom-width: 0;
}
.report-table tbody tr:not(:last-child) td {
  border-bottom-width: 0;
}

.report-table thead th {
  font-weight: 600;
}

.report-table .cell-center {
  text-align: center;
}
.report-table .cell-right {
  text-align: right;
}

/* algunos temas agregan solo el bottom a thead: refuérzalo explícitamente */
.report-table thead th {
  border-top-width: 2pt !important;
  border-bottom-width: 2pt !important;
}

/* y asegurate de que el colapso no “afine” laterales */
.report-table {
  border-collapse: collapse !important;
}
.report-table tr > * + * {
  border-left-width: 2pt !important;
}

.report-table tbody tr:first-child > td,
.report-table tbody tr:first-child > th {
  border-top: 0 !important;
}

#tabla-reporte th,
#tabla-reporte tr,
#tabla-reporte td {
  padding: 3pt !important;
  text-align: center;
}

.report-table tbody tr:last-child > td,
.report-table tbody tr:last-child > th {
  border-bottom-width: 2pt !important;
}

/* Si la tabla es muy larga, repetí encabezado en cada página */
@media print {
  /* Página completa, márgenes cómodos */
  @page {
    margin: 10mm; /* podés subir/bajar */
  }

  .report-table thead {
    display: table-header-group;
  }
  .report-table tfoot {
    display: table-footer-group;
  }
  .report-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  /* Por si algún estilo de Bootstrap insiste: */
  .report-table th,
  .report-table td {
    border-color: #000 !important;
    border-style: solid !important;
  }

  .report-table tbody tr:last-child > td,
  .report-table tbody tr:last-child > th {
    border-bottom-width: 2pt !important;
  }

  /* Usar todo el ancho al imprimir */
  .report-sheet {
    max-width: none !important;
    width: 100% !important;
    padding: 0; /* el margen de @page ya da respiro */
    background: #fff;
    margin-top: 24pt;
  }

  /* si existiera .table, neutralizá su variable de borde */
  .report-table.table {
    --bs-border-width: 2pt !important;
  }

  /* algunos temas agregan solo el bottom a thead: refuérzalo explícitamente */
  .report-table thead th {
    border-top-width: 2pt !important;
    border-bottom-width: 2pt !important;
  }

  /* y asegurate de que el colapso no “afine” laterales */
  .report-table {
    border-collapse: collapse !important;
  }
  .report-table tr > * + * {
    border-left-width: 2pt !important;
  }

  .report-table tbody tr:first-child > td,
  .report-table tbody tr:first-child > th {
    border-top: 0 !important;
  }

  #tabla-reporte th,
  #tabla-reporte tr,
  #tabla-reporte td {
    padding: 3pt !important;
    text-align: center;
  }
  /* Quitar decoraciones visuales ajenas a la impresión */
  .card,
  .shadow,
  .shadow-sm,
  .shadow-lg {
    box-shadow: none !important;
  }
  .card {
    border: 0 !important;
    background: #fff !important;
  }

  .card-body {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Neutralizar fondos de utilidades Bootstrap */
  [class*="bg-"],
  .table-striped > tbody > tr:nth-of-type(odd) > * {
    background: #fff !important;
  }

  /* Repetir encabezado de tabla en cada página */
  .report-table thead {
    display: table-header-group;
  }
  .report-table tfoot {
    display: table-footer-group;
  }

  /* Evitar que se corten filas entre páginas */
  .report-table tr {
    page-break-inside: avoid;
    break-inside: avoid;
  }
}

/* (Opcional) versión más ancha también en pantalla grande */
@media (min-width: 1400px) {
  .report-sheet {
    max-width: 1280px;
  }
}
