/* ur.estate — живые фильтры витрины (дропдауны фильтр-бара). */

[data-filterbar] .fbtn { position: relative; cursor: pointer; user-select: none; }
.fbtn--active .fbtn__v { color: var(--color-action); font-weight: 600; }
.fbtn--open { background: rgba(15, 17, 22, 0.05); }

.fpanel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 60;
  min-width: 230px;
  padding: 14px;
  border-radius: var(--radius-xl);
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border: 1px solid var(--color-line);
  box-shadow: var(--glass-shadow-lg);
  cursor: default;
  animation: fpanel-in 0.18s var(--ease-out);
}
@keyframes fpanel-in {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fpanel__title {
  font: 600 11px/1 var(--font-ui);
  letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--color-fg-mute);
  margin-bottom: 10px;
}

.fpanel__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.fpanel__chips--col { flex-direction: column; align-items: stretch; }
.fchip {
  padding: 8px 14px;
  border-radius: var(--radius-base);
  border: 1px solid var(--color-line);
  background: #fff;
  font: 500 13px/1 var(--font-ui);
  color: var(--color-fg-soft);
  text-align: center;
  transition: background .15s var(--ease-out), color .15s var(--ease-out), border-color .15s var(--ease-out);
}
.fchip:hover { border-color: rgba(15, 17, 22, 0.2); color: var(--color-fg); }
.fchip--on {
  background: var(--color-action);
  border-color: var(--color-action);
  color: #fff;
}

.fpanel__range { display: flex; align-items: center; gap: 8px; }
.fpanel__range input {
  width: 86px;
  padding: 9px 10px;
  border-radius: var(--radius-base);
  border: 1px solid var(--color-line);
  background: #fff;
  font: 500 13px/1 var(--font-ui);
  color: var(--color-fg);
}
.fpanel__range input:focus { outline: none; border-color: var(--color-action); }
.fpanel__dash { color: var(--color-fg-mute); }
.fpanel__unit { font: 500 12px/1 var(--font-ui); color: var(--color-fg-mute); white-space: nowrap; }

/* ── Режим карты: ЖК ↔ Квартиры ── */
.mapmode {
  display: inline-flex; gap: 3px;
  padding: 3px;
  border-radius: var(--radius-pill);
  background: var(--glass-bg-strong);
  -webkit-backdrop-filter: var(--glass-blur);
          backdrop-filter: var(--glass-blur);
  border: 1px solid var(--color-line);
  box-shadow: var(--glass-shadow);
}
.mapmode__btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 13px;
  border-radius: var(--radius-pill);
  font: 600 12px/1 var(--font-ui);
  color: var(--color-fg-mute);
  transition: background .2s var(--ease-out), color .2s var(--ease-out);
}
.mapmode__btn:hover { color: var(--color-fg); }
.mapmode__btn--on { background: rgba(15, 17, 22, 0.92); color: #fff; }

/* ── Компактные прайс-пины (режим «Квартиры») ── */
.upin__mini { display: none; }
.pins--apt .upin:not(.upin--cluster) .upin__card,
.pins--apt .upin:not(.upin--cluster) .upin__tail,
.pins--apt .upin__pulse { display: none !important; }
.pins--apt .upin:not(.upin--cluster) .upin__mini {
  display: inline-flex; flex-direction: column; align-items: flex-start; gap: 2px;
  padding: 7px 11px 6px;
  border-radius: var(--radius-large);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(10px) saturate(160%);
          backdrop-filter: blur(10px) saturate(160%);
  border: 1px solid rgba(15, 17, 22, 0.08);
  box-shadow: 0 8px 22px rgba(15, 17, 22, 0.16);
  transition: transform .18s var(--ease-out), box-shadow .18s var(--ease-out);
}
.pins--apt .upin:not(.upin--cluster):hover .upin__mini {
  background: #fff;
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(15, 17, 22, 0.22);
}
.upin__mini b { font: 650 12.5px/1 var(--font-display); color: var(--color-fg); white-space: nowrap; }
.upin__mini i { font: 500 10.5px/1 var(--font-ui); font-style: normal; color: var(--color-fg-mute); white-space: nowrap; }

/* в режиме квартир кластер-пилюли ЖК не нужны — историю рассказывают точки */
.pins--apt .upin--cluster { display: none !important; }

/* ── Точки-квартиры на карте ── */
.dots { position: absolute; inset: 0; z-index: 4; pointer-events: none; overflow: hidden; }
.dot {
  position: absolute; left: -5px; top: -5px;
  width: 10px; height: 10px;
  border-radius: 50%;
  border: 1.5px solid #fff;
  box-shadow: 0 1px 4px rgba(15, 17, 22, 0.35);
  pointer-events: auto;
  cursor: pointer;
  transition: scale .15s var(--ease-out);
  will-change: transform;
}
.dot:hover { scale: 1.7; z-index: 5; }
.dot--available { background: #2A9D5C; }
.dot--reserved  { background: #F08C2D; }
.dot--sold      { background: #A2A9B0; }

.dot-tip {
  position: absolute; left: 0; top: 0;
  z-index: 6;
  transform: translate(-50%, -100%);
  pointer-events: none;
  padding: 7px 11px;
  border-radius: var(--radius-base);
  background: rgba(15, 17, 22, 0.92);
  color: #fff;
  font: 600 11.5px/1 var(--font-ui);
  white-space: nowrap;
  box-shadow: 0 10px 26px rgba(15, 17, 22, 0.3);
}
