.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line)}
.sidebar-heading strong{font:700 1rem Oswald,sans-serif;text-transform:uppercase;letter-spacing:.06em}
.sidebar-collapse{display:none;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:transparent;color:var(--text);font-size:1.3rem;cursor:pointer}
.filter-group{border-top:1px solid var(--line)}
.filter-group summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 2px;cursor:pointer;list-style:none;color:var(--muted);font-size:.75rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}
.filter-group summary::-webkit-details-marker{display:none}
.filter-group summary:after{content:'+';color:var(--gold);font-size:1rem}
.filter-group[open] summary:after{content:'−'}
.filter-group summary small{margin-left:auto;min-width:21px;border-radius:999px;background:var(--gold);color:#17110a;text-align:center}
.filter-options{display:grid;gap:4px;max-height:238px;overflow:auto;padding:0 2px 12px;scrollbar-width:thin}
.filter-option{display:flex;align-items:center;gap:9px;min-height:31px;padding:4px 7px;border-radius:7px;color:var(--muted);font-size:.79rem;cursor:pointer}
.filter-option:hover{background:var(--soft);color:var(--text)}
.filter-option input{width:16px;height:16px;accent-color:var(--gold)}
.range-filter{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding-bottom:13px}
.range-filter label{display:grid;gap:5px;color:var(--muted);font-size:.72rem}
.range-filter .field{min-height:40px;padding-inline:10px}
.catalog-group{content-visibility:auto;contain-intrinsic-size:420px}
.reference-row,.card{content-visibility:auto;contain-intrinsic-size:70px}
@media(max-width:700px){body.filters-open{overflow:hidden}.sidebar-heading{position:sticky;top:-76px;z-index:2;margin:-76px -18px 10px;padding:18px;background:var(--bg)}.sidebar-collapse{display:grid;place-items:center}.filter-group summary{min-height:48px}.filter-options{max-height:none}.catalog-sidebar .catalog-filter{margin-bottom:8px}.mobile-filter-close{position:sticky;bottom:0;z-index:2;background:var(--gold);color:#181108;border-color:var(--gold)}}

/* Shared Avengar-style tri-state filters. */
.tri-filter-option{display:flex;align-items:center;gap:8px;width:100%;min-height:31px;padding:4px 6px;border:0;border-radius:6px;background:transparent;color:var(--muted);font:inherit;font-size:.75rem;text-align:left;cursor:pointer;transition:background .15s ease,color .15s ease,transform .15s ease}
.tri-filter-option:hover{background:var(--soft);color:var(--text)}
.tri-filter-option:active{transform:scale(.985)}
.tri-filter-option:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.tri-filter-option i{position:relative;flex:0 0 16px;width:16px;height:16px;border:1px solid color-mix(in srgb,var(--muted) 72%,transparent);border-radius:4px;transition:border-color .15s ease,background .15s ease}
.tri-filter-option[hidden]{display:none}
.tri-filter-option[data-filter-state="include"]{color:var(--text)}
.tri-filter-option[data-filter-state="include"] i{border-color:var(--gold);background:var(--gold)}
.tri-filter-option[data-filter-state="include"] i:after{content:'✓';position:absolute;inset:-2px 0 0;color:#17110a;font-size:.72rem;font-style:normal;font-weight:950;text-align:center}
.tri-filter-option[data-filter-state="exclude"]{color:color-mix(in srgb,#e66 78%,var(--text))}
.tri-filter-option[data-filter-state="exclude"] i{border-color:#c65b5b;background:color-mix(in srgb,#c65b5b 24%,transparent)}
.tri-filter-option[data-filter-state="exclude"] i:after{content:'−';position:absolute;inset:-4px 0 0;color:#ef8585;font-size:1rem;font-style:normal;font-weight:950;text-align:center}
.spell-filter::details-content,.magic-filter::details-content,.feat-filter::details-content,.background-filter::details-content,.filter-group::details-content{block-size:0;overflow-y:clip;opacity:0;transition:block-size .2s ease,opacity .15s ease,content-visibility .2s allow-discrete}
.spell-filter[open]::details-content,.magic-filter[open]::details-content,.feat-filter[open]::details-content,.background-filter[open]::details-content,.filter-group[open]::details-content{block-size:auto;opacity:1}
.spell-filter summary:before,.magic-filter summary:before,.feat-filter summary:before,.background-filter summary:before{transition:transform .18s ease}
.tri-dependent-filter{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;pointer-events:none;transition:grid-template-rows .22s ease,opacity .16s ease,visibility 0s linear .22s}
.tri-dependent-filter>div{min-height:0;overflow:hidden}
.tri-dependent-filter.is-visible{grid-template-rows:1fr;opacity:1;visibility:visible;pointer-events:auto;transition:grid-template-rows .22s ease,opacity .18s ease}
.filter-layout-collapsible{transition:grid-template-columns .22s ease}
.filter-layout-collapsible.is-filter-collapsed{grid-template-columns:minmax(0,1fr) 48px}
.filter-sidebar-collapse{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:34px;margin:0 0 7px;padding:4px 6px;border:0;border-radius:6px;background:transparent;color:var(--muted);font-size:.69rem;cursor:pointer;transition:background .15s ease,color .15s ease}
.filter-sidebar-collapse:hover{background:var(--soft);color:var(--text)}
.filter-sidebar-collapse i{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:5px;font-size:1rem;font-style:normal;transition:transform .22s ease}
.filter-sidebar-collapsible.is-filter-collapsed{overflow:hidden!important;padding:7px!important}
.filter-sidebar-collapsible.is-filter-collapsed>:not(.filter-sidebar-collapse){display:none!important}
.filter-sidebar-collapsible.is-filter-collapsed .filter-sidebar-collapse{justify-content:center;margin:0}
.filter-sidebar-collapsible.is-filter-collapsed .filter-sidebar-collapse span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.filter-sidebar-collapsible.is-filter-collapsed .filter-sidebar-collapse i{transform:rotate(180deg)}
.spell-level-range,.magic-armor-class-range{display:grid!important;grid-template-columns:1fr auto 1fr;align-items:center;gap:7px;padding-bottom:10px}
.spell-level-range input,.magic-armor-class-range input{min-width:0;height:39px;padding:0 8px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--text)}
@media(max-width:900px){.filter-layout-collapsible.is-filter-collapsed{display:block}.filter-sidebar-collapse{display:none}.filter-sidebar-collapsible.is-filter-collapsed>:not(.filter-sidebar-collapse){display:initial!important}}
@media(prefers-reduced-motion:reduce){.tri-filter-option,.tri-dependent-filter,.filter-layout-collapsible,.filter-sidebar-collapse i,.spell-filter::details-content,.magic-filter::details-content,.feat-filter::details-content,.background-filter::details-content,.filter-group::details-content{transition:none}}
