.catalogo-header {
  padding: 20px 24px;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 18px;
}
.catalogo-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.catalogo-heading h1 { margin: 0; font-size: 20px; font-weight: 700; }
.catalogo-header .btn, .catalogo-contexto .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  text-decoration: none;
  box-sizing: border-box;
}
.catalogo-controls {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}
.catalogo-controls .view-toggle { grid-column: 1; grid-row: 1; }
.catalogo-search {
  grid-column: 2;
  grid-row: 1;
  display: grid;
  grid-template-columns: minmax(160px, 320px) 170px;
  gap: 12px;
  justify-content: end;
  min-width: 0;
}
.catalogo-search .input { min-height: 44px; min-width: 0; }
.catalogo-controls #btn-nuevo { grid-column: 3; grid-row: 1; white-space: nowrap; }
.catalogo-contexto {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 16px;
  margin: 16px 24px 0;
  gap: 14px;
  align-items: center;
  flex-wrap: wrap;
}
@media (max-width: 1200px) {
  .catalogo-controls { grid-template-columns: minmax(0, 1fr) auto; }
  .catalogo-controls .view-toggle { grid-column: 1 / -1; justify-self: start; }
  .catalogo-controls #btn-nuevo { grid-column: 2; grid-row: 2; }
  .catalogo-search { grid-column: 1; grid-row: 2; grid-template-columns: minmax(0, 1fr) 170px; }
}
@media (max-width: 600px) {
  .catalogo-header { padding: 16px; gap: 16px; }
  .catalogo-heading { align-items: flex-start; }
  .catalogo-heading h1 { font-size: 19px; line-height: 1.35; }
  .catalogo-controls { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .catalogo-controls .view-toggle { width: 100%; box-sizing: border-box; }
  .catalogo-controls .view-toggle-btn { flex: 1; justify-content: center; padding: 0 8px !important; }
  .catalogo-search { grid-column: 1; grid-row: 2; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .catalogo-controls #btn-nuevo { grid-column: 1; grid-row: 3; }
  .catalogo-contexto { margin: 16px 16px 0; padding: 12px; }
  .catalogo-contexto #filter-lineas-container,
  .catalogo-contexto #filter-puestos-container,
  .catalogo-contexto #filter-puestos-container > div { flex-direction: column; align-items: stretch !important; width: 100%; }
  .catalogo-contexto [id^="slot-filter-"] { min-width: 0 !important; width: 100%; }
}
