.ffwf{ display:grid; grid-template-columns: 360px 1fr; gap:0; position:relative; min-height:60vh; }
.ffwf__panel{ background:#111; color:#eee; padding:14px; overflow:auto; max-height:70vh; }
.ffwf__map{ background:#222; }

.ffwf__label{ font-size:.85rem; color:#ccc; margin-bottom:4px; display:block; }
.ffwf__row{ display:flex; flex-flow: row wrap; gap:8px; align-items:center; margin-bottom:10px; }
.ffwf__input{ flex:1; padding:8px; border-radius:8px; border:1px solid #333; background:#1b1b1b; color:#fff; }
.ffwf__select{ padding:8px; border-radius:8px; border:1px solid #333; background:#1b1b1b; color:#fff; }
.ffwf__radio { display: block; }
.ffwf__radio span { text-transform: lowercase; }
.ffwf__radio span:first-letter { text-transform:uppercase; }
.ffwf__btn{ padding:8px 10px; border-radius:8px; border:1px solid #444; background:#222; color:#eee; cursor:pointer; }
.ffwf__btn:hover{ background:#2a2a2a; }
.ffwf__btn--primary{ background:#345; border-color:#456; }
.ffwf__btn--small{ padding:6px 8px; font-size:.85rem; }

.ffwf__filters summary{ cursor:pointer; margin:6px 0; }
.ffwf__brands{ display:flex; flex-direction:column; gap:10px; max-height:220px; overflow:auto; padding-right:6px; }
.ffwf__brand{ border:1px solid #2a2a2a; padding:8px; border-radius:8px; }
.ffwf__brand-title{ font-weight:600; margin-bottom:6px; color:#ddd; }
.ffwf__chk{ display:flex; gap:8px; align-items:center; margin:4px 0; font-size:.93rem; cursor:pointer; }
.ffwf__filter-actions{ display:flex; gap:8px; margin-top:8px; }

.ffwf__results{ margin-top:10px; display:flex; flex-direction:column; gap:10px; }
.ffwf__list{ display:flex; flex-direction:column; gap:10px; }
.ffwf__card{ background:#1a1a1a; border:1px solid #2a2a2a; border-radius:10px; padding:10px; }
.ffwf__card-hd{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:6px; }
.ffwf__card-title{ font-weight:700; color:#fff; }
.ffwf__dist{ font-size:.9rem; color:#9ad; }
.ffwf__addr{ color:#bbb; font-size:.92rem; margin-bottom:8px; }
.ffwf__actions{ display:flex; gap:8px; }
.ffwf__prods{ margin-top:8px; border-top:1px dashed #333; padding-top:8px; }
.ffwf__brand-group{ margin:6px 0; }
.ffwf__prod-list{ margin:6px 0 0 0; padding-left:18px; }
.ffwf__size{ color:#888; }

.ffwf__empty{ color:#aaa; font-style:italic; }

@media (max-width: 900px){
  .ffwf{ grid-template-columns: 1fr; }
  .ffwf__panel{ order:2; max-height:none; }
  .ffwf__map{ order:1; height:50vh; }
}
