/* Filter- und Suchpanel (Phase 4). Struktur wird von js/filters/filterPanel.js in #filter-panel eingehängt.
/ übernimmt das Auf-/Zuklappen JS-frei - sowohl mobil (Panel oberhalb der Liste) als auch auf Desktop (>=1024px, Panel als eigene Spalte rechts neben der Ergebnisliste, siehe css/responsive.css). */ .filter-panel { background: var(--color-surface); border-bottom: 1px solid var(--color-border); } .filter-panel__details { padding: 0 var(--space-md); } .filter-panel__details[open] { padding-bottom: var(--space-md); } .filter-panel__summary { padding: var(--space-md) 0; font-weight: 700; cursor: pointer; list-style: none; } .filter-panel__summary::-webkit-details-marker { display: none; } .filter-panel__summary::before { content: '▸ '; } .filter-panel__details[open] > .filter-panel__summary::before { content: '▾ '; } .filter-panel__body { display: flex; flex-direction: column; gap: var(--space-md); } .filter-panel__section { display: flex; flex-direction: column; gap: var(--space-sm); border: none; border-top: 1px solid var(--color-border); padding: var(--space-sm) 0 0; margin: 0; } .filter-panel__section-label { padding: 0; font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; color: var(--color-text-muted); } .filter-panel__field { display: flex; flex-direction: column; gap: var(--space-xs); flex: 1 1 160px; } .filter-panel__label { font-size: 0.85rem; font-weight: 600; } .filter-panel__field input, .filter-panel__field select, .filter-panel__distance input, .filter-panel__distance select { border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: var(--space-sm); font: inherit; background: var(--color-surface); color: var(--color-text); width: 100%; } .filter-panel__row { display: flex; flex-wrap: wrap; gap: var(--space-md); } .filter-panel__categories { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); max-height: 180px; overflow-y: auto; padding: var(--space-xs) 0; } .filter-panel__category-option, .filter-panel__checkbox { display: flex; align-items: center; gap: var(--space-xs); font-size: 0.85rem; cursor: pointer; } .filter-panel__category-swatch { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; } .filter-panel__checkbox-group { display: flex; flex-wrap: wrap; gap: var(--space-sm) var(--space-md); } .filter-panel__distance { display: flex; flex-direction: column; gap: var(--space-xs); max-width: 220px; } .filter-panel__hint { font-size: 0.8rem; color: var(--color-text-muted); } .filter-panel__hint[hidden] { display: none; } .filter-panel__location-btn[hidden] { display: none; } .filter-panel__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm) var(--space-md); padding-top: var(--space-md); border-top: 1px solid var(--color-border); } .filter-panel__count { font-size: 0.85rem; font-weight: 600; color: var(--color-text-muted); margin-right: auto; } @media (min-width: 1024px) { .filter-panel { border-bottom: none; } }