.collection-tools {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  margin:0 auto 1.7rem;
  max-width:1200px;
}
.collection-tool-button {
  display:flex;align-items:center;justify-content:center;gap:.65rem;
  width:100%;min-width:0;min-height:52px;padding:.8rem 1.1rem;
  border:1px solid #d6d0c4;border-radius:1rem;background:#fffdf7;
  color:var(--ink);font:inherit;font-size:1rem;font-weight:600;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.collection-tool-button:hover {background:#fff;border-color:var(--ink)}
.collection-tool-button>svg {width:20px;height:20px;flex-shrink:0}
.collection-tool-button>span {min-width:0;overflow-wrap:anywhere}
.collection-tool-button.has-filters {border-color:var(--ink)}
.filter-badge {min-width:25px;height:25px;padding-inline:.35rem;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fffdf7;font-size:.8rem}
.collection-results {grid-column:1/-1;display:flex;justify-content:space-between;gap:1rem;margin-top:.25rem;align-items:baseline}
.collection-results .filtered-count {flex-basis:auto;font-size:.875rem;white-space:nowrap}
#current-sort {font-size:.875rem;color:var(--muted);text-align:end;overflow-wrap:anywhere}
.active-filters {grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.2rem}
.active-filter {display:inline-flex;align-items:center;gap:.5rem;max-width:100%;min-height:40px;padding:.5rem .7rem;border:1px solid #d6d0c4;border-radius:.65rem;background:#eae4d7;color:var(--ink);font:inherit;font-size:.875rem;cursor:pointer;text-align:start}
.active-filter span {overflow-wrap:anywhere;line-height:1.4}
.active-filter .icon {width:14px;height:14px;flex-shrink:0}
.clear-active-filters {min-height:40px;padding:.5rem .4rem;background:transparent;border:0;color:var(--muted);font:inherit;font-size:.875rem;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.filter-dialog,.sort-dialog {position:fixed;width:min(440px,100vw);max-width:none;max-height:100dvh;padding:0;border:0;color:var(--ink);background:#fffdf7;box-shadow:0 12px 55px #1112;overflow:hidden}
.filter-dialog {inset:0;margin:0;margin-inline-start:auto;height:100dvh;border-start-start-radius:1.5rem;border-end-start-radius:1.5rem}
.filter-dialog[open] {display:flex;flex-direction:column}
.filter-dialog::backdrop,.sort-dialog::backdrop {background:#1117;backdrop-filter:blur(3px)}
.filter-dialog-header {display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.3rem 1.4rem;border-bottom:1px solid var(--line);flex-shrink:0}
.filter-dialog-header h2 {font-size:2rem;line-height:1.2;margin:0;min-width:0;overflow-wrap:anywhere}
.filter-close {display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.filter-close .icon {width:19px;height:19px}
.filter-dialog-body {padding:1.4rem;overflow:auto;overscroll-behavior:contain;min-height:0;flex:1}
.filter-section {padding:0;margin:0 0 1.6rem;border:0;min-width:0}
.filter-section legend {padding:0;margin-bottom:.8rem;font-size:1rem;font-weight:650}
.filter-choices {display:flex;flex-wrap:wrap;gap:.5rem}
.filter-choice {display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-width:48px;min-height:46px;max-width:100%;padding:.65rem .85rem;border:1px solid #ddd7cc;border-radius:.75rem;background:#fff;color:var(--ink);font:inherit;font-size:.9375rem;line-height:1.4;cursor:pointer;transition:border-color .15s,background .15s}
.filter-choice span {overflow-wrap:anywhere}
.filter-choice:hover {border-color:var(--ink)}
.filter-choice[aria-pressed=true] {background:var(--ink);border-color:var(--ink);color:#fffdf7}
.filter-colors .filter-choice {justify-content:flex-start}
.filter-swatch {width:16px;height:16px;flex-shrink:0;border-radius:50%;background:var(--swatch);border:1px solid #0003;box-shadow:0 0 0 2px #ffffff80}
.filter-price-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.filter-price-fields label {display:flex;flex-direction:column;gap:.5rem;min-width:0}
.filter-price-fields label>span {font-size:.875rem;color:var(--muted)}
.filter-price-fields label>div {display:flex;align-items:center;gap:.4rem;padding:.75rem;border:1px solid #ddd7cc;border-radius:.8rem;background:#fff;min-height:52px;direction:ltr}
.filter-price-fields label>div:focus-within {border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.filter-price-fields input {width:100%;min-width:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font:inherit;font-size:1rem;appearance:textfield;outline:none}
.filter-price-fields input::-webkit-inner-spin-button,.filter-price-fields input::-webkit-outer-spin-button {-webkit-appearance:none;margin:0}
.filter-price-fields div>span {font-size:.875rem;color:var(--muted);flex-shrink:0}
.filter-price-fields input[aria-invalid=true] {color:#a33333}
.filter-price-error {font-size:.875rem;line-height:1.55;color:#a33333;margin:.75rem 0 0}
.filter-sale-toggle {display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:60px;padding:.65rem 0;border-top:1px solid var(--line);font-size:1rem;cursor:pointer}
.filter-sale-toggle input {appearance:none;position:relative;width:42px;height:26px;flex-shrink:0;margin:0;border:1px solid #bbb5a9;border-radius:30px;background:#e4dfd5;cursor:pointer;transition:background .15s}
.filter-sale-toggle input::after {content:'';position:absolute;width:20px;height:20px;top:2px;inset-inline-start:2px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002;transition:transform .15s}
.filter-sale-toggle input:checked {background:var(--ink);border-color:var(--ink)}
.filter-sale-toggle input:checked::after {transform:translateX(16px)}
[dir=rtl] .filter-sale-toggle input:checked::after {transform:translateX(-16px)}
.filter-dialog-footer {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:.65rem;padding:1rem 1.4rem calc(1rem + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fffdf7;flex-shrink:0}
.filter-dialog-footer button {min-height:50px;padding:.75rem .55rem;border-radius:.85rem;font:inherit;font-size:.9375rem;font-weight:600;line-height:1.4;cursor:pointer;overflow-wrap:anywhere}
.filter-reset {color:var(--ink);background:transparent;border:1px solid #d6d0c4}
.filter-show {background:var(--amber-bright);color:var(--ink);border:1px solid transparent}
.filter-show:disabled {opacity:.5;cursor:default}
.sort-dialog {inset:0;margin:auto;border-radius:1.5rem;height:fit-content}
.sort-options {padding:.65rem 1.4rem 1.3rem;display:flex;flex-direction:column;gap:.35rem;max-height:70dvh;overflow:auto}
.sort-options label {display:flex;align-items:center;gap:.85rem;min-height:54px;padding:.8rem .75rem;border:1px solid transparent;border-radius:.8rem;font-size:1rem;line-height:1.5;cursor:pointer}
.sort-options label:has(input:checked) {background:#f0ebdf;border-color:#ddd7cc}
.sort-options input {width:20px;height:20px;flex-shrink:0;accent-color:var(--ink)}
.filter-choice:focus-visible,.filter-close:focus-visible,.collection-tool-button:focus-visible,.active-filter:focus-visible,.clear-active-filters:focus-visible,.filter-dialog-footer button:focus-visible,.filter-sale-toggle input:focus-visible {outline:3px solid var(--amber);outline-offset:3px}
body.filters-open {overflow:hidden}
@media(min-width:701px){.collection-tools{grid-template-columns:170px 150px minmax(0,1fr);align-items:center}.collection-results{grid-column:auto;margin-top:0;justify-content:flex-end}.active-filters{grid-column:1/-1}}
@media(max-width:700px){.filter-dialog{inset:auto 0 0;margin:0;width:100%;height:90dvh;max-height:90dvh;border-radius:1.5rem 1.5rem 0 0}.sort-dialog{inset:auto 0 0;margin:0;width:100%;border-radius:1.5rem 1.5rem 0 0}.filter-dialog-header{padding:1.1rem 1.25rem}.filter-dialog-body{padding:1.2rem 1.25rem}.filter-dialog-footer{padding-inline:1.25rem}.sort-options{padding-inline:1.25rem;padding-bottom:calc(1.3rem + env(safe-area-inset-bottom,0px))}}
@media(max-width:380px){.filter-price-fields{grid-template-columns:1fr}.filter-dialog-header h2{font-size:1.8rem}.filter-dialog-footer{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);padding-inline:1rem}}
@media(prefers-reduced-motion:reduce){.collection-tool-button,.filter-choice,.filter-sale-toggle input,.filter-sale-toggle input::after{transition:none}}
