.catalog-search-row{display:flex;align-items:stretch;gap:12px}
.catalog-search-row #search-form{flex:1;min-width:0;max-width:none}
.catalog-filter-summary{color:var(--muted);font-size:13px;line-height:1.6;margin:12px 0 20px;overflow-wrap:anywhere}
#filter-query{width:100%;min-height:46px;padding:10px 13px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-size:16px}
#metric-filter .metric-toolbar{margin-top:12px;gap:10px}
#metric-filter .metric-toolbar select{flex:1;min-width:0}
#metric-filter .metric-toolbar label{width:100%;justify-content:flex-start}
.filter-metric-notes{border-top:1px solid var(--line);padding-top:16px;color:var(--muted);font-size:13px;line-height:1.7}
.filter-metric-notes summary{cursor:pointer;color:var(--ink);font-size:14px}
#filter-metric-help{padding-top:10px}
.catalog-filter-toggle{display:flex;align-items:center;gap:10px;min-width:0;width:32%;max-width:360px;padding:10px 16px;min-height:56px;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:13px;text-align:left}
.catalog-filter-toggle>svg{width:21px;height:21px}
.filter-trigger-label{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:15px}
.filter-trigger-mobile{display:none}
.catalog-filter-toggle .filter-trigger-chevron{width:18px;height:18px;margin-left:auto}
#catalog-filter-count{display:grid;place-items:center;min-width:23px;height:23px;padding-inline:5px;border-radius:50%;background:var(--button);color:var(--button-ink);font-size:12px}
.catalog-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}
.catalog-controls .sort-tabs{flex:0 1 260px;min-width:0}
.catalog-controls .clear-filters{width:auto;margin-left:auto}
.catalog-filter-dialog{padding:0;width:min(760px,calc(100% - 40px));max-width:none;max-height:calc(100dvh - 64px);margin:auto;border:1px solid var(--line);border-radius:22px;background:var(--bg);color:var(--ink);overflow:hidden}
.catalog-filter-dialog::backdrop{background:rgba(0,0,0,.56)}
.catalog-filter-dialog[open]{animation:catalog-filter-in .18s ease-out}
.catalog-filter-panel{display:flex;flex-direction:column;max-height:calc(100dvh - 66px);margin:0}
.catalog-filter-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 26px;border-bottom:1px solid var(--line);flex:none}
.catalog-filter-heading h2{font-size:24px;font-weight:600;letter-spacing:-.5px}
#catalog-filter-close{display:grid;place-items:center;width:44px;height:44px;flex:none;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--ink)}
#catalog-filter-close:focus-visible{outline-color:#777}
.catalog-filter-body{padding:24px 26px;overflow-y:auto;overscroll-behavior:contain;min-height:0;scroll-padding-block:20px}
.catalog-filter-body fieldset{margin:0 0 26px;padding:0;border:0;min-width:0}
.catalog-filter-body fieldset:last-child{margin-bottom:0}
.catalog-filter-body legend{font-size:17px;font-weight:600;margin-bottom:13px;padding:0}
.catalog-filter-options{display:flex;flex-wrap:wrap;gap:10px}
#type-list-toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:15px;text-align:left}
#type-list-summary{min-width:0;line-height:1.5;overflow-wrap:anywhere}
#type-list-toggle svg{width:18px;height:18px;flex:none;transition:transform .18s ease}
#type-list-toggle[aria-expanded=true]{border-color:var(--ink)}
#type-list-toggle[aria-expanded=true] svg{transform:rotate(180deg)}
#type-list-panel{display:grid;grid-template-columns:180px minmax(0,1fr);width:100%;max-height:400px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--muted) var(--bg);margin-top:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
#type-list-panel[hidden]{display:none}
.type-list-all{grid-column:1/-1;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}
.type-list-families,.type-list-niches{min-width:0}
.type-list-families{padding-right:10px;border-right:1px solid var(--line)}
.type-list-niches{padding-left:12px}
.type-niche-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 8px}
.type-list-heading{font-size:13px;font-weight:500;color:var(--muted);padding:6px 10px 10px;margin:0}
.type-list-row{display:flex;align-items:center;gap:11px;min-height:44px;padding:9px 10px;cursor:pointer;border-radius:6px;font-size:15px;line-height:1.4}
.type-list-row input{appearance:auto;position:static;width:18px;height:18px;flex:none;margin:0;accent-color:var(--button);cursor:pointer}
.type-list-row:has(input:checked),.type-list-row:has(input:indeterminate){font-weight:600}
.type-list-row:hover{outline:1px solid var(--line);outline-offset:-1px}
.type-list-row input:focus-visible,#type-list-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.catalog-filter-option{position:relative;cursor:pointer;max-width:100%}
.catalog-filter-option input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.catalog-filter-option-content{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 16px;border:1px solid var(--line);border-radius:10px;font-size:15px;background:var(--bg);color:var(--ink)}
.catalog-filter-option-content .platform-logo{width:24px;height:24px}
.catalog-filter-option input:checked+.catalog-filter-option-content{border-color:var(--button);background:var(--button);color:var(--button-ink)}
.catalog-filter-option input:focus-visible+.catalog-filter-option-content{outline:2px solid var(--ink);outline-offset:3px}
.catalog-filter-option input:checked+.catalog-filter-option-content .platform-logo-mono{filter:invert(1)}
:root[data-theme=dark] .catalog-filter-option input:checked+.catalog-filter-option-content .platform-logo-mono{filter:none}
.catalog-filter-footer{display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:18px 26px;flex:none;background:var(--bg)}
#catalog-filter-reset,#catalog-filter-cancel{min-height:44px;padding:8px 12px;background:var(--bg);color:var(--ink);font-size:15px}
#catalog-filter-reset{margin-right:auto;padding-left:0;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
#catalog-filter-cancel{border:1px solid var(--line);border-radius:9px}
#catalog-filter-apply{min-width:132px}
/* Preserve the catalog width when the modal locks its scrollbar. */
#content-scroll{scrollbar-gutter:stable}
.catalog-filter-open #content-scroll{overflow-y:hidden}
@keyframes catalog-filter-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){
  #type-list-panel{grid-template-columns:minmax(0,1fr);max-height:360px;padding:8px}
  .type-list-families{padding:0 0 10px;border-right:0;border-bottom:1px solid var(--line)}
  .type-list-niches{padding:10px 0 0}
  .type-family-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .type-niche-options{gap:2px 4px}
  .type-list-row{gap:8px;padding:9px 7px;font-size:14px;align-items:flex-start}
  .type-list-row input{margin-top:1px}
  .catalog-search-row{gap:8px}
  .catalog-filter-toggle{width:auto;max-width:none;padding:9px 11px;gap:7px;flex:none}
  .filter-trigger-label,.filter-trigger-chevron{display:none}
  .filter-trigger-mobile{display:inline;font-size:14px}
  .catalog-filter-toggle>svg{width:18px;height:18px}
  .catalog-search-row #search-form{padding-left:10px;gap:7px}
  .catalog-search-row #search-form>svg{display:none}
  .catalog-search-row #search-form button{padding-inline:10px;font-size:14px}
  .catalog-controls .sort-tabs{flex:1;max-width:360px}
  .catalog-controls .clear-filters{font-size:12px}
  .catalog-filter-dialog{width:calc(100% - 24px);max-height:calc(100dvh - 32px);border-radius:20px}
  .catalog-filter-panel{max-height:calc(100dvh - 34px)}
  .catalog-filter-heading{padding:14px 18px}.catalog-filter-heading h2{font-size:22px}
  .catalog-filter-body{padding:20px 18px}
  .catalog-filter-options{gap:8px}
  .catalog-filter-option-content{padding:10px 12px;font-size:14px}
  .catalog-filter-footer{padding:14px 16px max(14px,env(safe-area-inset-bottom));gap:8px}
  #catalog-filter-reset,#catalog-filter-cancel{font-size:14px}
  #catalog-filter-apply{min-width:0;padding-inline:14px;font-size:14px}
}
@media(prefers-reduced-motion:reduce){.catalog-filter-dialog[open]{animation:none}#type-list-toggle svg{transition:none}}
