.listado-tabla { border-radius: 1rem; }
.listado-tabla .listado-cabecera {
  position: relative;
  padding: 1.25rem 1.5rem;
  border-radius: 1rem 1rem 0 0;
  border-bottom: 1px solid var(--ct-border-color, #e5e9f0);
}
.listado-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.listado-titulo { flex: 0 0 auto; margin-right: auto; }
.listado-busqueda { position: relative; flex: 1 1 280px; max-width: 420px; }
.listado-busqueda > i {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--ct-secondary-color, #6c757d);
  pointer-events: none;
}
.listado-busqueda input { min-height: 2.65rem; border-radius: 2rem; padding-left: 2.65rem; }
.listado-acciones { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; flex-shrink: 0; }
.listado-acciones > .btn { min-height: 2.65rem; padding-left: 1rem; padding-right: 1rem; }
.listado-mas { padding: .4rem; font-size: 1.2rem; }
.filtros-contador {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  height: 1.4rem;
  padding: 0 .35rem;
  margin-left: .3rem;
  border-radius: 1rem;
  background: var(--ct-primary, #727cf5);
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
}
.listado-acciones .btn:hover .filtros-contador { background: #fff; color: var(--ct-primary, #727cf5); }
.listado-filtros-activos {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .7rem 1rem;
  padding: .85rem 1.5rem;
  background: var(--ct-light-bg-subtle, #f8faff);
  border-bottom: 1px solid var(--ct-border-color, #e5e9f0);
}
.filtros-resumen-titulo { display: flex; align-items: center; gap: .45rem; font-size: .8rem; font-weight: 600; flex-shrink: 0; }
.filtros-etiquetas { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; flex: 1; min-width: 0; }
.filtro-etiqueta {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .35rem .5rem .35rem .75rem;
  border: 1px solid rgba(var(--ct-primary-rgb, 114, 124, 245), .16);
  border-radius: 2rem;
  color: var(--ct-primary, #727cf5);
  background: rgba(var(--ct-primary-rgb, 114, 124, 245), .065);
  font-size: .78rem;
  max-width: 100%;
}
.filtro-etiqueta-texto { overflow-wrap: anywhere; min-width: 0; }
.filtro-etiqueta-quitar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  flex-shrink: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: inherit;
  font-size: .95rem;
}
.filtro-etiqueta-quitar:hover { background: rgba(var(--ct-primary-rgb, 114, 124, 245), .12); }
.filtro-etiqueta-quitar:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }
.filtros-limpiar { padding: .25rem 0; font-size: .8rem; white-space: nowrap; text-decoration: none; }
.listado-nombre { display: block; min-width: 180px; max-width: 300px; white-space: normal; }
.listado-direccion { display: block; min-width: 180px; max-width: 260px; white-space: normal; overflow-wrap: anywhere; }
/* Tipografía compacta compartida por los listados. */
.listado-negocios table.table td,
.listado-negocios table.table th,
.listado-inmuebles table.table td,
.listado-inmuebles table.table th,
.listado-representantes table.table td,
.listado-representantes table.table th { font-size: .8125rem !important; }
.listado-tabla table.table td.listado-zona { font-size: .75rem !important; }
.listado-cantidad { font-weight: 700; color: var(--tabla-acento, var(--ct-primary)); font-variant-numeric: tabular-nums; }
.listado-tabla .dt-buttons { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.listado-tabla .dt-buttons > .btn { border-radius: .5rem !important; margin-left: 0 !important; }

.listado-panel { width: 430px; max-width: 100%; border-left: 0; box-shadow: -8px 0 40px rgba(31, 45, 61, .12); }
.filtros-panel-form { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.listado-panel .offcanvas-header { padding: 1.5rem; border-bottom: 1px solid var(--ct-border-color, #e5e9f0); gap: .75rem; flex-shrink: 0; }
.listado-panel .offcanvas-header .btn-close { flex-shrink: 0; }
.listado-panel .offcanvas-body { padding: 1.5rem; flex: 1 1 auto; min-height: 0; overflow-y: auto; }
.filtros-icono {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 2.6rem;
  height: 2.6rem;
  border-radius: .8rem;
  color: var(--ct-primary, #727cf5);
  background: rgba(var(--ct-primary-rgb, 114, 124, 245), .1);
  font-size: 1.25rem;
}
.filtros-seccion-titulo { display: flex; gap: .5rem; align-items: center; margin-bottom: .85rem; font-weight: 600; }
.filtros-seccion-titulo i { color: var(--ct-primary, #727cf5); font-size: 1.1rem; }
.listado-panel .form-label { font-weight: 600; font-size: .82rem; }
.listado-panel .filtros-campo { margin-bottom: 1rem; }
.listado-panel .form-control,
.listado-panel .form-select { min-height: 2.8rem; border-radius: .65rem; }
.listado-panel input[type="date"] { min-width: 0; padding-left: .65rem; padding-right: .5rem; }
.filtros-nota { display: flex; align-items: flex-start; gap: .6rem; padding: 1rem; border-radius: .75rem; background: var(--ct-light-bg-subtle, #f8faff); color: var(--ct-secondary-color, #6c757d); font-size: .8rem; }
.filtros-nota i { color: var(--ct-primary, #727cf5); font-size: 1rem; }
.filtros-panel-pie { display: flex; gap: .75rem; padding: 1.25rem 1.5rem; border-top: 1px solid var(--ct-border-color, #e5e9f0); flex-shrink: 0; }
.filtros-panel-pie .btn { min-height: 2.8rem; }

@media (max-width: 767.98px) {
  .listado-busqueda { order: 3; flex-basis: 100%; max-width: none; }
  .listado-toolbar { gap: .85rem; }
}
@media (max-width: 575.98px) {
  .listado-tabla .listado-cabecera,
  .listado-filtros-activos { padding-left: 1rem; padding-right: 1rem; }
  .listado-titulo { flex: 1 1 100%; padding-right: 2rem; }
  .listado-acciones { margin-left: auto; max-width: 100%; }
  .listado-acciones > .dropdown { position: absolute; top: 1.1rem; right: .75rem; }
  .listado-busqueda { order: 0; flex: 1 1 100%; }
  .filtros-etiquetas { flex-basis: 100%; }
  .filtros-limpiar { margin-left: auto; }
  .listado-panel .offcanvas-header,
  .listado-panel .offcanvas-body,
  .filtros-panel-pie { padding-left: 1.25rem; padding-right: 1.25rem; }
  .listado-panel input[type="date"] { font-size: .85rem; }
}

/* La capa de carga debe quedar por encima de la tabla y del scroll. */
.listado-tabla div.dataTables_wrapper { position: relative; isolation: isolate; min-height: 130px; }
.listado-tabla div.dataTables_wrapper div.dataTables_processing {
  position: absolute;
  inset: 0;
  top: 0 !important;
  left: 0;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: .65rem;
  z-index: 50;
  overflow: hidden;
  background: rgba(var(--ct-body-bg-rgb, 255, 255, 255), .45);
  color: var(--ct-body-color, #495057);
  box-shadow: none;
}
.listado-cargando {
  position: absolute;
  top: var(--listado-carga-y, 50%);
  left: var(--listado-carga-x, 60%);
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .35rem .6rem;
  border-radius: .35rem;
  background: var(--ct-secondary-bg, #fff);
  color: var(--ct-secondary-color, #6c757d);
  white-space: nowrap;
  font-size: .75rem;
}
.listado-tabla .dataTables_processing::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: rgba(var(--ct-primary-rgb, 114, 124, 245), .12);
}
.listado-tabla .dataTables_processing::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 35%;
  height: 3px;
  border-radius: 3px;
  background: var(--ct-primary, #727cf5);
  animation: listado-progreso 1.5s ease-in-out infinite;
}
.listado-cargando .spinner-border { width: .8rem; height: .8rem; border-width: 1.5px; }
@keyframes listado-progreso {
  0% { transform: translateX(-100%); }
  100% { transform: translateX(286%); }
}
@media (prefers-reduced-motion: reduce) {
  .listado-tabla .dataTables_processing::after { animation: none; width: 100%; opacity: .6; }
  .listado-cargando .spinner-border { animation: none; }
}
