/* ══════════════════════════════════════════════════════════════════════
   Tablas de líneas compactas (estilo Odoo) — componente compartido.

   Nació embebido en accountingCustomerInvoiceNew.php (factura de cliente) y se
   extrajo aquí para que las demás pantallas con tabla de líneas usen exactamente
   el mismo aspecto: asiento contable, factura de proveedor, etc. Cambiar el alto
   de fila o el tamaño de letra aquí lo cambia en todas a la vez.

   Uso:
     <div class="products-table-container">      → scroll propio + cabecera fija
       <table class="custom-table filas-compactas"> ...
   La clase `filas-compactas` la pone/quita el checkbox de cada vista (se guarda
   la preferencia en localStorage), así que el modo holgado sigue disponible.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Contenedor con scroll propio y cabecera fija ─────────── */
.products-table-container {
  max-height: 55vh;
  overflow-y: auto;
  overflow-x: auto;
  margin: 10px 0;
  position: relative;
  background: white;
  border: 1px solid #ddd;
}

.products-table-container::-webkit-scrollbar { width: 8px; }
.products-table-container::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 4px; }
.products-table-container::-webkit-scrollbar-thumb { background: #aaaaaa; border-radius: 4px; }
.products-table-container::-webkit-scrollbar-thumb:hover { background: #888; }

.products-table-container table thead th {
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: #2c3d63;
  color: white;
  box-shadow: 0 2px 2px -1px rgba(0, 0, 0, .2);
}

/* ── Encabezado compacto del documento ──────────────────────
   Los campos de cabecera (referencia, fecha, diario/cliente…) a 30 px en vez de
   los 34 de Bootstrap, con la etiqueta pequeña encima. Se usa con la clase
   .encabezado-compacto; #encabezadoPanel es el id que ya traía la factura de
   cliente, se conserva para no tener que tocarla. */
#encabezadoPanel,
.encabezado-compacto { margin-bottom: 0 !important; }

#encabezadoPanel .box-body,
.encabezado-compacto .box-body { padding: 8px 14px !important; }

#encabezadoPanel .form-control,
#encabezadoPanel .input-sm,
.encabezado-compacto .form-control,
.encabezado-compacto .input-sm { height: 30px !important; padding: 3px 9px !important; font-size: 12.5px !important; }

#encabezadoPanel label,
.encabezado-compacto label { padding-top: 5px !important; font-size: 11px !important; }

#encabezadoPanel .select2-container--default .select2-selection--single,
.encabezado-compacto .select2-container--default .select2-selection--single { height: 30px !important; }

#encabezadoPanel .select2-container--default .select2-selection--single .select2-selection__rendered,
.encabezado-compacto .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 28px !important; font-size: 12.5px; }

#encabezadoPanel .select2-container--default .select2-selection--single .select2-selection__arrow,
.encabezado-compacto .select2-container--default .select2-selection--single .select2-selection__arrow { height: 28px !important; }

/* ── Modo COMPACTO de filas ─────────────────────────────── */
.custom-table.filas-compactas td,
.custom-table.filas-compactas th { padding: 2px 5px !important; vertical-align: middle; }
.custom-table.filas-compactas .form-control {
  height: 27px !important; padding: 2px 6px !important; font-size: 12px !important;
}
.custom-table.filas-compactas textarea.descripcion_inputs {
  height: 27px !important; min-height: 27px !important; line-height: 21px;
  font-size: 12px !important; resize: none !important;
  overflow: hidden !important; white-space: nowrap;
}
/* Al enfocar una descripción larga se despliega sobre la fila, para poder leerla
   entera sin sacrificar el alto del resto de la tabla. */
.custom-table.filas-compactas textarea.descripcion_inputs:focus {
  height: auto !important; min-height: 54px !important;
  white-space: normal; overflow: auto !important;
  position: relative; z-index: 5;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.custom-table.filas-compactas .select2-container--default .select2-selection--single { height: 27px !important; }
.custom-table.filas-compactas .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 25px !important; font-size: 12px; padding-left: 6px; }
.custom-table.filas-compactas .select2-container--default .select2-selection--single .select2-selection__arrow { height: 25px !important; }
.custom-table.filas-compactas .btn { padding: 2px 6px !important; font-size: 11px !important; }

/* ── Chips de impuesto estilo Odoo ─────────────────────── */
.custom-table .select2-container--default .select2-selection--multiple {
  min-height: 27px !important; height: auto !important;
  border-color: #d2d6de; padding-bottom: 2px;
}
.custom-table .select2-container--default .select2-selection--multiple .select2-selection__rendered { padding: 1px 4px; line-height: 1.3; }
.custom-table .select2-container--default .select2-selection--multiple .select2-selection__choice {
  position: relative;
  background: #edf0f2 !important; border: 1px solid #dfe3e6 !important;
  border-radius: 11px !important; color: #3c4b5e !important;
  font-size: 11px !important; line-height: 18px !important;
  margin: 1px 0 0 0 !important; padding: 0 8px 0 20px !important;
}
.custom-table .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {
  position: absolute; left: 6px; right: auto; top: 0;
  float: none !important; border: 0 !important; margin: 0 !important;
  color: #9aa7b2 !important; font-size: 14px; line-height: 18px;
}
.custom-table .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover { color: #e74c3c !important; background: transparent !important; }

.custom-table.filas-compactas .select2-container--default .select2-selection--multiple { min-height: 27px !important; }
.custom-table.filas-compactas .select2-container--default .select2-selection--multiple .select2-selection__rendered { padding: 1px 3px !important; }
.custom-table.filas-compactas .select2-container--default .select2-selection--multiple .select2-selection__choice { margin: 2px 4px 0 0 !important; line-height: 16px !important; font-size: 10.5px !important; padding: 0 6px 0 18px !important; display: inline-block; float: none; }
.custom-table.filas-compactas .select2-container--default .select2-selection--multiple .select2-search--inline { margin: 0 !important; }
.custom-table.filas-compactas .select2-container--default .select2-selection--multiple .select2-search__field { height: 17px !important; min-height: 17px !important; margin: 0 !important; line-height: 17px; }
