.catalog-toolbar { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 16px 32px; }
.catalog-toolbar > .search-field { width: 100%; }
.catalog-facets { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.catalog-facet { position: relative; font-size: 13px; min-width: 0; }
.catalog-facet summary { display: flex; align-items: center; gap: 14px; min-height: 44px; padding: 9px 14px; border: 1px solid var(--line); cursor: pointer; list-style: none; }
.catalog-facet summary::-webkit-details-marker { display: none; }
.catalog-facet summary::after { content: ''; width: 7px; height: 7px; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); margin: -4px 2px 0 4px; flex-shrink: 0; }
.catalog-facet summary > span:first-child { color: var(--muted); }
.catalog-facet[open] summary { border-color: var(--ink); }
.catalog-facet[open] summary::after { transform: rotate(225deg); margin-top: 4px; }
.facet-value { min-width: 0; max-width: 290px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.facet-panel { position: absolute; z-index: 4; top: calc(100% + 8px); left: 0; width: 360px; max-width: calc(100vw - 2 * var(--gutter)); border: 1px solid var(--line); background: var(--paper); box-shadow: 0 8px 24px rgb(0 0 0 / 7%); }
.category-lookup { padding: 14px; border-bottom: 1px solid var(--line); }
.category-lookup input { width: 100%; height: 44px; padding: 8px 12px; border: 1px solid var(--line); background: white; font-size: 14px; }
.category-options { max-height: min(340px, 48dvh); overflow-y: auto; overscroll-behavior: contain; padding: 8px 0; }
.category-options a { display: block; padding: 10px 16px 10px calc(16px + var(--category-depth, 0) * 16px); line-height: 1.5; min-height: 42px; }
.category-options a:hover, .category-options a:focus-visible { background: var(--wash); outline-offset: -3px; }
.category-options a[aria-current] { text-decoration: underline; text-underline-offset: 4px; }
.category-ancestors { display: none; color: var(--muted); font-size: 11px; margin-top: 3px; }
.is-filtered .category-ancestors { display: block; }
.is-filtered .category-options a { padding-left: 16px; }
.category-empty { margin: 0; padding: 0 16px 20px; color: var(--muted); }
.price-picker .facet-panel { padding: 22px; }
.price-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.price-fields legend { padding: 0; margin-bottom: 16px; }
.price-fields legend span { color: var(--muted); }
.price-amounts { display: flex; align-items: end; gap: 12px; }
.price-amounts > label { flex: 1; min-width: 0; font-size: 12px; }
.price-amounts > label > span { display: flex; align-items: center; gap: 6px; padding-left: 10px; margin-top: 5px; border: 1px solid var(--line); }
.price-amounts > span { margin-bottom: 11px; }
.price-amounts input { width: 100%; min-width: 0; height: 44px; border: 0; background: transparent; padding: 8px 6px 8px 0; font-size: 14px; -moz-appearance: textfield; }
.price-amounts input::-webkit-inner-spin-button, .price-amounts input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.price-sliders { position: relative; height: 44px; margin: 15px 0 12px; }
.price-track { position: absolute; inset: 21px 9px auto; height: 2px; background: var(--line); }
.price-track span { position: absolute; left: var(--price-from); right: calc(100% - var(--price-to)); height: 2px; background: var(--ink); }
.price-sliders input { position: absolute; inset: 0; width: 100%; height: 44px; margin: 0; padding: 0; background: transparent; pointer-events: none; appearance: none; -webkit-appearance: none; }
.price-sliders input:focus-visible { outline-offset: 2px; z-index: 1; }
.price-sliders input::-webkit-slider-thumb { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; border: 1px solid var(--ink); border-radius: 50%; background: white; pointer-events: auto; cursor: ew-resize; }
.price-sliders input::-moz-range-thumb { width: 18px; height: 18px; border: 1px solid var(--ink); border-radius: 50%; background: white; pointer-events: auto; cursor: ew-resize; }
.price-sliders input::-moz-range-track { background: transparent; }
.price-actions { display: flex; align-items: center; gap: 22px; }
.price-actions button { min-height: 44px; font-size: 13px; }
.clear-filters { margin-left: auto; font-size: 12px; }
.result-context { flex-wrap: wrap; }
@media (max-width: 1100px) {
  .catalog-toolbar { gap: 14px 20px; }
  .catalog-toolbar > .search-field { grid-column: 1 / -1; }
  .catalog-selects { grid-row: 2; grid-column: 2; }
  .catalog-facets { grid-row: 2; grid-column: 1; }
  .clear-filters { margin-left: 0; }
}
@media (max-width: 800px) {
  .catalog-toolbar { grid-template-columns: 1fr; gap: 14px; }
  .catalog-selects { grid-row: 2; grid-column: 1; margin: 0; justify-content: flex-start; }
  .catalog-facets { grid-row: 3; }
}
@media (max-width: 640px) {
  .catalog-toolbar { gap: 12px; }
  .catalog-selects label { flex: 1; }
  .catalog-selects select { max-width: none; }
  .catalog-facets { align-items: stretch; gap: 10px; }
  .catalog-facet { width: 100%; }
  .catalog-facet summary { gap: 12px; }
  .facet-value { max-width: none; margin-left: auto; }
  .facet-panel { width: 100%; }
  .price-picker .facet-panel { padding: 18px; }
  .catalog-facet input { font-size: 16px; }
  .clear-filters { align-self: start; margin-top: 4px; }
}
