/* ===== Filter modal (shared) ===== */
.modal{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  display: none;
  align-items: flex-start;
  justify-content: center;
  padding: 24px;
  overflow: auto;
  z-index: 1000;
}
.modal.open{ display: flex; }

.panel{
  background: #fff;
  border-radius: 16px;
  max-width: 1000px;
  width: 100%;
  padding: 16px;
  box-shadow: 0 24px 72px rgba(0,0,0,.25);
}
.panel h2{ margin: 4px 0 12px 0; }

.field{ display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }

.field-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width:640px){
  .field-row{ grid-template-columns: 1fr; }
}

fieldset{ border: 1px solid #eee; border-radius: 12px; margin: 10px 0; padding: 12px; }
legend{ padding: 0 6px; color: #555; }

.amenities, .parking-list, .nearby-list{ columns: 2 260px; }
.amenities label, .parking-list label, .nearby-list label{ display:block; margin:6px 0; }

.sticky-bar{
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid #eee;
  padding: 10px;
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}

.chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fafafa;
}

.btn{
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #111;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}
.btn.secondary{ background: #fff; color: #111; }

.panel input[type="number"],
.panel select,
.panel input[type="text"]{
  width: 100%;
  padding: 8px;
  border: 1px solid #ddd;
  border-radius: 8px;
}

.soft-hr{ border: 0; border-top: 1px solid #eee; margin: 16px 0; }
