/* Filtros de los listados (como el de clientes): todos a la vista, más chicos y más juntos. `form.filtros-densos`
   con `.filtros-grilla` adentro; Limpiar / Aplicar en la última celda (`core/_filtros_acciones.html`). Controles de
   2rem de alto en lugar de 2.5rem. */
.filtros-densos { --f-alto: 2rem; }
/* Grilla de columnas finas (≥5.25rem): cada filtro ocupa dos; `.f-2`, cuatro; `.f-3` y las fechas, tres. */
.filtros-grilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.25rem, 1fr)); gap: 0.375rem 0.5rem;
    align-items: end; }
.filtros-grilla > * { grid-column: span 2; min-width: 0; }
.filtros-grilla > .f-2 { grid-column: span 4; }
.filtros-grilla > .f-3, .filtros-grilla > .drange-columna { grid-column: span 3; }
/* Opciones que quedaron como desplegable (`filtro_opciones … max_botones`): del ancho de un filtro común. */
.filtros-grilla > .f-2:has(> div > select.f-select) { grid-column: span 2; }
@media (max-width: 40rem) { .filtros-grilla > * { grid-column: 1 / -1 !important; } }

/* «Nuevo …» (sólo el ícono) arriba a la derecha de la card; la grilla le deja el lugar. */
.filtros-nuevo { position: absolute; top: 0.75rem; right: 0.75rem; width: 2rem; height: 2rem; padding: 0; justify-content: center; }
.filtros-densos .filtros-grilla[data-filtros-comunes] { margin-right: 2.5rem; }

/* Etiquetas arriba de cada campo: más chicas y pegadas. */
.filtros-densos .text-xs.block, .filtros-densos .mtxt > label { margin-bottom: 0.125rem; font-size: 0.6875rem; }
.filtros-densos .msel > span.block { margin-bottom: 0.125rem; font-size: 0.6875rem; }
.filtros-densos .et-cabecera { height: 0.875rem; margin-bottom: 0.125rem; }
.filtros-densos .et-cabecera > span { font-size: 0.6875rem; }
/* Alguna (O) | Todas (Y): chiquito, del alto de la etiqueta. */
.filtros-densos .et-modo { padding: 0; gap: 0; }
.filtros-densos .et-modo span { min-height: 0.875rem; padding: 0 0.3rem; font-size: 0.625rem; font-weight: 500; line-height: 0.875rem; }

/* Alto de los controles. */
.filtros-densos input[type="search"], .filtros-densos input[type="text"], .filtros-densos input[type="number"],
.filtros-densos select.f-select { height: var(--f-alto); font-size: 0.8125rem; }
.filtros-densos .msel-btn, .filtros-densos .catpick-btn, .filtros-densos .cp-pill, .filtros-densos .seg-borde {
    height: var(--f-alto); font-size: 0.8125rem; }
.filtros-densos .mtxt-box, .filtros-densos .et-box, .filtros-densos .cp-chips { min-height: var(--f-alto); padding-top: 0.125rem;
    padding-bottom: 0.125rem; }
/* Los inputs de adentro de una caja (barrio, etiquetas): sin el alto de arriba, que es el de la caja. */
.filtros-densos .mtxt-box input.mtxt-input, .filtros-densos .et-box input.et-buscar { height: 1.5rem; }
/* `.et-modo` (Alguna / Todas de etiquetas) es un .seg chico en la cabecera: queda como está. */
.filtros-densos .seg:not(.et-modo) { min-height: var(--f-alto); padding: 0.125rem; }
.filtros-densos .seg:not(.et-modo) span { min-height: 1.75rem; padding: 0 0.5rem; font-size: 0.8125rem; }
.filtros-densos .seg-borde span { padding: 0 0.625rem; font-size: 0.8125rem; }
.filtros-densos .rs, .filtros-densos .drange-columna .rs { --rs-height: var(--f-alto); font-size: 0.8125rem; }
/* Con 2rem no entra la etiqueta arriba de la fecha (lo que hace el control angosto): siempre al costado. */
.filtros-densos .rs .rs-field { flex-direction: row; align-items: center; gap: 0.375rem; padding: 0 0.5rem; }
.filtros-densos .rs .rs-tag { margin: 0; font-size: 0.5625rem; line-height: 1; }
.filtros-densos .rs .rs-wrap { flex: 1; height: 100%; }
.filtros-densos .datos-btn { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; height: var(--f-alto);
    padding: 0 0.625rem; border: 1px solid rgb(var(--c-stroke-strong)); border-radius: 0.5rem; background: rgb(var(--c-card));
    font-size: 0.8125rem; cursor: pointer; user-select: none; list-style: none; }
.filtros-densos .datos-btn::-webkit-details-marker { display: none; }

/* Pie: «Fiscal» (sección plegable) a la izquierda y Limpiar / Aplicar a la derecha, en la misma línea. */
.filtros-pie { position: relative; margin-top: 0.5rem; padding-top: 0.375rem; border-top: 1px solid rgb(var(--c-stroke)); }
.filtros-acciones { position: absolute; top: 0.375rem; right: 0; display: flex; align-items: center; gap: 0.5rem; }
.filtros-acciones .btn { height: 1.75rem; }
.filtros-seccion > summary { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 0.375rem;
    height: 1.75rem; font-size: 0.8125rem; font-weight: 500; color: rgb(var(--c-txt-2)); }
.filtros-seccion[open] > summary { margin-bottom: 0.375rem; }
.filtros-seccion > summary::-webkit-details-marker { display: none; }
.filtros-seccion > summary:hover { color: rgb(var(--c-txt)); }
.filtros-seccion[open] > summary svg:last-child { transform: rotate(180deg); }
.filtros-seccion .cuenta { min-width: 1.25rem; padding: 0 0.375rem; border-radius: 9999px; text-align: center;
    font-size: 0.75rem; background: rgb(var(--c-primary)); color: #fff; }

/* Cajas con chips (etiquetas, barrio, ciudades): una sola línea del alto de los demás; con muchos chips se
   desplazan de costado (clientes/js/filtros_densos.js lleva el input a la vista al enfocarlo). */
.filtros-densos .et-box, .filtros-densos .mtxt-box, .filtros-densos .cp-chips {
    flex-wrap: nowrap; height: var(--f-alto); min-height: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.filtros-densos .et-box::-webkit-scrollbar, .filtros-densos .mtxt-box::-webkit-scrollbar,
.filtros-densos .cp-chips::-webkit-scrollbar { display: none; }
.filtros-densos .et-chip, .filtros-densos .msel-pill, .filtros-densos .cp-chip, .filtros-densos .cp-agregar {
    flex-shrink: 0; max-width: none; white-space: nowrap; }
.filtros-densos .msel-pill, .filtros-densos .cp-chip { min-height: 1.5rem; }
.filtros-densos .et-box input.et-buscar, .filtros-densos .mtxt-box input.mtxt-input { flex: 1 0 5rem; }

/* Limpiar / Aplicar a la derecha de la grilla, abajo (a la altura de la última fila); en el celular, debajo. */
.filtros-densos:has(> .filtros-acciones-celda) { display: flex; align-items: flex-end; gap: 0.75rem; }
.filtros-densos:has(> .filtros-acciones-celda) > .filtros-grilla { flex: 1; min-width: 0; }
.filtros-densos > .filtros-acciones-celda { flex: none; display: flex; align-items: center; gap: 0.5rem; }
.filtros-acciones-celda .btn { height: var(--f-alto); }
@media (max-width: 40rem) {
    .filtros-densos:has(> .filtros-acciones-celda) { flex-wrap: wrap; }
    .filtros-densos:has(> .filtros-acciones-celda) > .filtros-grilla { flex-basis: 100%; }
}
