/* Map-first home */
body.map-home-v2{
  margin:0!important;padding:0!important;overflow:hidden!important;background:#eaf0f3!important;
}
body.map-home-v2 .site-header-shell{position:relative!important}
.map-home{
  position:relative;width:100%;height:calc(100dvh - var(--thp-topbar));min-height:520px;overflow:hidden;background:#e8eef1;
}
#smart-map{position:absolute;inset:0;width:100%;height:100%;z-index:1;background:#e8eef1}
.map-search-wrap{
  position:absolute;z-index:1000;top:14px;left:50%;transform:translateX(-50%);
  width:min(610px,calc(100% - 28px));
}
.map-search-box{
  position:relative;display:flex;align-items:center;height:52px;padding:0 10px 0 16px;
  border:1px solid rgba(197,213,222,.95);border-radius:16px;background:rgba(255,255,255,.98);
  box-shadow:0 8px 28px rgba(26,56,74,.16);backdrop-filter:blur(10px);
}
.map-search-icon{font-size:21px;color:#4d687a;margin-right:9px}
#apt-search,#property-map-search{
  flex:1;min-width:0;height:48px!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;
  box-shadow:none!important;outline:0!important;color:#18384e!important;font-size:14px!important;font-weight:780!important;
}
#apt-search::placeholder,#property-map-search::placeholder{color:#9aa8b1}
.map-search-clear{display:none;width:32px;height:32px;border:0!important;border-radius:50%!important;background:#eef3f6!important;color:#627786!important;font-size:18px!important}
.map-search-results{
  display:none;overflow:hidden;margin-top:7px;border:1px solid #dce6ec;border-radius:15px;background:#fff;
  box-shadow:0 12px 30px rgba(25,54,72,.16);
}
.map-search-results.is-open{display:block}
.map-search-result{
  display:grid;grid-template-columns:1fr auto;gap:5px 12px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #edf2f5;background:#fff;text-align:left;cursor:pointer;
}
.map-search-result:last-child{border-bottom:0}
.map-search-result:hover{background:#f7fafb}
.map-search-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1d3c51;font-size:13px}
.map-search-result small{grid-column:1;color:#82919c;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-search-result em{grid-column:2;grid-row:1 / span 2;align-self:center;color:#245f82;font-style:normal;font-size:13px;font-weight:900}
.map-search-empty{padding:15px;color:#84949f;font-size:12px;text-align:center}
.map-floating-info{
  position:absolute;z-index:800;left:14px;top:80px;display:flex;align-items:center;gap:7px;padding:7px 10px;
  border:1px solid rgba(210,223,230,.95);border-radius:11px;background:rgba(255,255,255,.94);
  box-shadow:0 5px 18px rgba(28,57,74,.08);color:#617786;font-size:12px;font-weight:800;backdrop-filter:blur(8px);
}
.map-floating-info b{color:#245f82}
.map-load-state{display:inline-flex;align-items:center;gap:5px}
.map-load-state::before{content:'';width:6px;height:6px;border-radius:50%;background:#3a819f}
.map-load-state.is-loading::before{animation:thpPulse .8s infinite alternate}
@keyframes thpPulse{to{opacity:.25}}

.smart-leaflet-icon{background:transparent!important;border:0!important}
.map-deal-marker{
  position:relative;display:flex;min-width:78px;max-width:116px;flex-direction:column;align-items:center;
  padding:6px 8px 5px;border:2px solid #fff;border-radius:12px;background:#245f82;color:#fff;
  box-shadow:0 5px 15px rgba(22,57,79,.22);transform:translate(-50%,-50%);
}
.map-deal-marker::after{
  content:'';position:absolute;left:50%;bottom:-6px;width:10px;height:10px;transform:translateX(-50%) rotate(45deg);
  background:inherit;border-right:2px solid #fff;border-bottom:2px solid #fff;
}
.map-deal-marker.is-high{background:#d95461}
.map-deal-marker b{position:relative;z-index:1;font-size:12px;line-height:1.1;white-space:nowrap}
.map-deal-marker span{position:relative;z-index:1;width:100%;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;font-size:12px;opacity:.94}
.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:rgba(36,95,130,.18)!important}
.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:#245f82!important;color:#fff!important;font-weight:900!important}

.map-complex-sheet{
  position:absolute;z-index:1200;right:18px;top:86px;width:360px;max-height:calc(100% - 105px);overflow:auto;
  padding:18px;border:1px solid #d9e4ea;border-radius:19px;background:rgba(255,255,255,.98);
  box-shadow:0 14px 40px rgba(20,47,64,.18);backdrop-filter:blur(12px);
  opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s ease;
}
.map-complex-sheet.is-open{opacity:1;pointer-events:auto;transform:none}
/* Keep the close action visible while the complex detail sheet scrolls. */
.map-sheet-close{
  position:sticky;top:-7px;right:auto;float:right;z-index:30;
  width:36px;height:36px;margin:-5px -5px 0 0;
  border:1px solid #dbe5ea!important;border-radius:10px!important;
  background:rgba(255,255,255,.98)!important;color:#607483!important;
  box-shadow:0 2px 9px rgba(25,53,72,.12);
  font-size:20px!important;line-height:1!important;cursor:pointer;
}
.map-sheet-close:hover,.map-sheet-close:focus-visible{background:#eef5f8!important;color:#245f82!important}
.map-sheet-kicker{display:flex;align-items:center;gap:6px;margin:0 38px 6px 0;color:#7f8f9a;font-size:12px;font-weight:900;letter-spacing:.05em}
.map-sheet-kicker .high{padding:3px 6px;border-radius:7px;background:#fff0f1;color:#c8424f}
.map-complex-sheet h2{margin:0 38px 4px 0!important;color:#17384e!important;font-size:20px!important;line-height:1.25!important;letter-spacing:-.04em}
.map-sheet-address{margin:0;color:#81909b;font-size:12px}
.map-sheet-price{display:flex;align-items:flex-end;gap:8px;margin:15px 0 14px;padding:14px;border-radius:15px;background:#f2f7f9}
.map-sheet-price strong{color:#173b52;font-size:29px;line-height:1;font-weight:950;letter-spacing:-.04em}
.map-sheet-price span{padding-bottom:2px;color:#7c8d98;font-size:12px}
.map-sheet-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:0 0 14px}
.map-sheet-stats div{padding:9px 6px;border:1px solid #e2e9ee;border-radius:11px;text-align:center}
.map-sheet-stats dt{color:#8c9aa4;font-size:12px}
.map-sheet-stats dd{margin:3px 0 0;color:#315067;font-size:12px;font-weight:900;white-space:nowrap}
.map-sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.map-sheet-actions a{display:flex;min-height:42px;align-items:center;justify-content:center;border-radius:11px;text-decoration:none!important;font-size:12px;font-weight:900}
.map-sheet-actions .secondary{border:1px solid #d8e4ea;background:#fff;color:#315d77!important}
.map-sheet-actions .primary{background:#245f82;color:#fff!important}

.map-zoom-hint{
  position:absolute;z-index:700;left:50%;bottom:16px;transform:translateX(-50%);display:none;
  padding:8px 12px;border-radius:11px;background:rgba(27,54,70,.84);color:#fff;font-size:12px;font-weight:800;
}
.leaflet-control-zoom{border:0!important;box-shadow:0 6px 18px rgba(24,53,70,.14)!important}
.leaflet-control-zoom a{border:0!important;color:#33566e!important}
.leaflet-control-attribution{font-size:12px!important}

@media(max-width:760px){
  body.map-home-v2{padding:0!important}
  .map-home{height:calc(100dvh - var(--thp-topbar) - var(--thp-bottom));min-height:420px}
  .map-search-wrap{top:10px;width:calc(100% - 20px)}
  .map-search-box{height:48px;border-radius:14px;padding-left:13px}
  #apt-search{height:44px!important;font-size:13px!important}
  .map-floating-info{top:68px;left:10px;padding:6px 8px;font-size:12px}
  .map-deal-marker{min-width:72px;max-width:100px;padding:5px 7px 4px;border-radius:10px}
  .map-deal-marker b{font-size:12px}
  .map-deal-marker span{font-size:12px}
  .map-complex-sheet{
    left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:55%;
    padding:16px;border-radius:18px;
    transform:translateY(20px);
  }
  .map-complex-sheet h2{font-size:18px!important}
  .map-sheet-price{margin:12px 0;padding:12px}
  .map-sheet-price strong{font-size:25px}
  .map-sheet-stats{gap:5px}
  .map-sheet-stats div{padding:8px 4px}
  .leaflet-control-zoom{display:none}
}

/* Complex area selector + recent deals inside map sheet */
.map-sheet-size-block{margin:14px 0 8px}
.map-sheet-size-title{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;margin-bottom:7px}
.map-sheet-size-title b{color:#284c63;font-size:12px}
.map-sheet-size-title span{color:#96a4ad;font-size:12px}
.map-sheet-sizes{display:flex;gap:6px;overflow-x:auto;padding:1px 1px 5px;scrollbar-width:none}
.map-sheet-sizes::-webkit-scrollbar{display:none}
.map-sheet-size-chip{
  flex:0 0 auto;min-width:72px;display:flex;flex-direction:column;gap:2px;padding:8px 10px!important;
  border:1px solid #dce6ec!important;border-radius:11px!important;background:#fff!important;color:#466174!important;
  text-align:left!important;cursor:pointer
}
.map-sheet-size-chip b{font-size:12px;white-space:nowrap}
.map-sheet-size-chip span{font-size:12px;color:#7e8f9a;white-space:nowrap}
.map-sheet-size-chip.is-active{border-color:#2a6d91!important;background:#eaf4f8!important;color:#1e5d7f!important;box-shadow:inset 0 0 0 1px #2a6d91}
.map-sheet-size-chip.is-active span{color:#245f82;font-weight:900}
.map-sheet-loading{display:block;padding:9px 5px;color:#8a99a3;font-size:12px}
.map-sheet-recent{margin:12px 0 14px;border-top:1px solid #edf2f4;padding-top:11px}
.map-sheet-recent-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.map-sheet-recent-head b{color:#284c63;font-size:12px}
.map-sheet-recent-head span{color:#8e9ca5;font-size:12px}
.map-sheet-deals{display:flex;flex-direction:column;border:1px solid #e2e9ed;border-radius:12px;overflow:hidden;background:#fff}
.map-sheet-deal{
  position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;align-items:center;
  min-height:50px;padding:7px 9px;border-bottom:1px solid #edf2f4
}
.map-sheet-deal:last-child{border-bottom:0}
.map-sheet-deal>div:first-child{min-width:0;display:flex;flex-direction:column;gap:2px}
.map-sheet-deal strong{color:#38566a;font-size:12px}
.map-sheet-deal>div:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8a98a2;font-size:12px}
.map-sheet-deal-price{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.map-sheet-deal-price b{color:#173b52;font-size:12px}
.map-sheet-deal-price small{color:#9aa6ae;font-size:12px}
.map-sheet-registry span{display:inline-flex;padding:3px 5px;border-radius:7px;font-size:12px;font-weight:850;white-space:nowrap}
.map-sheet-registry .done{background:#e9f6ef;color:#23815a}
.map-sheet-registry .pending{background:#fff6df;color:#9a7421}
.map-sheet-registry .unknown{background:#f1f4f6;color:#82909a}
.map-sheet-deal.is-cancelled{opacity:.55}
.map-sheet-deal>em{position:absolute;right:5px;top:3px;color:#d04d59;font-size:12px;font-style:normal;font-weight:900}
.map-sheet-empty{padding:14px;text-align:center;color:#8d9aa3;font-size:12px}
@media(max-width:760px){
  .map-complex-sheet{max-height:72%}
  .map-sheet-stats{margin-bottom:8px}
  .map-sheet-deal{grid-template-columns:minmax(0,1fr) auto;gap:6px}
  .map-sheet-registry{grid-column:1 / -1}
  .map-sheet-registry span{padding:2px 5px}
}

.map-sheet-size-chip{min-width:122px}
.map-sheet-size-chip em{display:block;color:#8a99a4;font-size:12px;font-style:normal;white-space:nowrap}
.map-sheet-size-chip.is-active em{color:#4d7891}
.map-sheet-area-meta{
  display:none;margin:-4px 0 12px;padding:7px 9px;border-radius:9px;background:#f7fafb;
  color:#627887;font-size:12px;font-weight:800
}


/* Reserve map space for persistent desktop navigation */
@media(min-width:1024px){
  html[data-page="apart_map_smart"] body.map-home-v2 .map-home{
    width:calc(100% - var(--thp-desktop-sidebar,292px));
    margin-left:var(--thp-desktop-sidebar,292px);
  }
}


/* ===== Map sheet area cards: prevent clipped horizontal chips ===== */
.map-sheet-sizes{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:8px!important;
  overflow:visible!important;
  padding:1px 1px 6px!important;
}

.map-sheet-size-chip{
  min-width:0!important;
  width:100%!important;
  padding:10px 10px!important;
  box-sizing:border-box!important;
}

.map-sheet-size-chip b,
.map-sheet-size-chip em,
.map-sheet-size-chip span{
  display:block;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

@media(min-width:1100px){
  .map-complex-sheet{
    width:390px;
  }
}

@media(max-width:760px){
  .map-sheet-sizes{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
}


@media(max-width:760px){
  #apt-search{
    font-size:16px!important;
  }
  .map-complex-sheet,
  .map-search-results{
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }
}


.map-sheet-registry .unavailable{background:#f4f5f6;color:#8a949b}
.map-sheet-registry .presale{background:#eef7fb;color:#2b7897}


/* ===== Selected apartment complex geometry ===== */
.complex-building-label-icon{
  border:0!important;
  background:transparent!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}
.complex-building-label{
  display:flex;
  min-width:48px;
  width:max-content;
  max-width:84px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:1px;
  padding:4px 7px;
  border:2px solid #4e61dd;
  border-radius:9px;
  background:rgba(255,255,255,.94);
  box-shadow:0 3px 10px rgba(43,56,135,.18);
  color:#243769;
  font-size:12px;
  line-height:1.05;
  transform:translateX(-50%);
  white-space:nowrap;
}
.complex-building-label b{
  font-size:12px;
  font-weight:950;
}
.complex-building-label em{
  color:#4a5fd9;
  font-size:12px;
  font-style:normal;
  font-weight:950;
}
.complex-building-label-icon:hover .complex-building-label,
.complex-building-label-icon:focus .complex-building-label{
  border-color:#263fbf;
  box-shadow:0 5px 15px rgba(43,56,135,.30);
}
.complex-building-deal-popup .leaflet-popup-content-wrapper{
  border-radius:12px;
  box-shadow:0 8px 24px rgba(24,42,78,.18);
}
.complex-building-deal-popup .leaflet-popup-content{
  margin:12px 14px;
  min-width:190px;
}
.complex-building-popup{display:flex;flex-direction:column;gap:5px;color:#203552;line-height:1.35}
.complex-building-popup strong{font-size:13px;font-weight:950}
.complex-building-popup-price{font-size:20px;color:#274bbd;font-weight:950}
.complex-building-popup small{font-size:11px;color:#687c91;line-height:1.45}
.complex-building-popup-empty{font-size:12px;color:#7a8b9b}
.complex-building-popup-tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:2px}
.complex-building-popup-tags span{padding:3px 6px;border-radius:999px;background:#eef3ff;color:#405996;font-size:10px;font-weight:850}
@media(max-width:760px){
  .complex-building-label{
    min-width:42px;
    padding:3px 5px;
    border-width:1.5px;
    border-radius:8px;
  }
  .complex-building-label b{font-size:12px}
  .complex-building-label em{font-size:12px}
}


/* ===== Mobile readability pass 2026-09-28 ===== */
@media(max-width:760px){
  .map-floating-info{font-size:12px!important;padding:7px 10px!important}
  .map-deal-marker{min-width:78px;max-width:112px;padding:6px 8px 5px}
  .map-deal-marker b{font-size:12px!important}
  .map-deal-marker span{font-size:12px!important;line-height:1.2}

  .map-search-result{padding:13px 14px}
  .map-search-result strong{font-size:14px!important}
  .map-search-result small{font-size:12px!important}
  .map-search-result em{font-size:14px!important}
  .map-search-empty{font-size:12px!important}

  .map-complex-sheet{padding:17px!important}
  .map-sheet-kicker{font-size:12px!important}
  .map-complex-sheet h2{font-size:20px!important}
  .map-sheet-address{font-size:12px!important;line-height:1.45}
  .map-sheet-size-title b{font-size:14px!important}
  .map-sheet-size-title span{font-size:12px!important}
  .map-sheet-size-chip{padding:11px 11px!important;gap:3px!important}
  .map-sheet-size-chip b{font-size:13px!important}
  .map-sheet-size-chip em{font-size:12px!important;line-height:1.35}
  .map-sheet-size-chip span{font-size:12px!important}
  .map-sheet-loading{font-size:12px!important}

  .map-sheet-price{padding:14px!important}
  .map-sheet-price strong{font-size:29px!important}
  .map-sheet-price span{font-size:12px!important}
  .map-sheet-area-meta{font-size:12px!important;line-height:1.4;padding:8px 10px}
  .map-sheet-stats dt{font-size:12px!important}
  .map-sheet-stats dd{font-size:12px!important}
  .map-sheet-actions a{font-size:13px!important;min-height:46px}

  .map-sheet-recent{margin-top:14px;padding-top:13px}
  .map-sheet-recent-head{margin-bottom:9px}
  .map-sheet-recent-head b{font-size:14px!important}
  .map-sheet-recent-head span{font-size:12px!important}
  .map-sheet-deal{
    min-height:76px!important;
    gap:8px!important;
    padding:11px 12px!important;
  }
  .map-sheet-deal>div:first-child{gap:4px}
  .map-sheet-deal strong{font-size:13px!important;line-height:1.3}
  .map-sheet-deal>div:first-child span{font-size:12px!important;line-height:1.35}
  .map-sheet-deal-price{gap:3px}
  .map-sheet-deal-price b{font-size:15px!important}
  .map-sheet-deal-price small{font-size:12px!important}
  .map-sheet-registry{margin-top:1px}
  .map-sheet-registry span{font-size:12px!important;padding:4px 7px!important;border-radius:8px}
  .map-sheet-deal>em{font-size:12px!important}
  .map-sheet-empty{font-size:12px!important;padding:18px}

  .complex-building-label{
    min-width:48px;
    padding:4px 6px;
  }
  .complex-building-label b{font-size:12px!important}
  .complex-building-label em{font-size:12px!important}
}

/* expandable recent same-size deals */
.map-sheet-deals-more{
  width:100%;margin-top:8px;min-height:38px;border:1px solid #dbe5ea;border-radius:10px;background:#f7fafb;
  color:#315d77;font-size:12px;font-weight:900;cursor:pointer
}
.map-sheet-deals-more:hover{background:#eef5f8}
.map-sheet-deals-more[hidden]{display:none!important}
@media(max-width:700px){.map-sheet-deals-more{min-height:44px;font-size:12px}}

.map-sheet-actions.is-single{grid-template-columns:1fr}

/* ===== Real-user cleanup pass 2026-09-28: desktop map readability ===== */
@media(min-width:761px){
  #apt-search{font-size:16px!important}
  .map-search-result strong{font-size:15px!important}
  .map-search-result small{font-size:12px!important}
  .map-search-result em{font-size:15px!important}
  .map-floating-info{font-size:12px!important;padding:8px 11px!important}
  .map-deal-marker{min-width:84px;max-width:122px;padding:7px 9px 6px}
  .map-deal-marker b{font-size:14px!important}
  .map-deal-marker span{font-size:12px!important;line-height:1.25}

  .map-complex-sheet{
    width:420px!important;
    padding:20px!important;
  }
  .map-sheet-kicker{font-size:12px!important;margin-bottom:7px}
  .map-complex-sheet h2{font-size:24px!important;margin-bottom:6px!important}
  .map-sheet-address{font-size:12px!important;line-height:1.5}

  .map-sheet-size-title b{font-size:14px!important}
  .map-sheet-size-title span{font-size:12px!important}
  .map-sheet-size-chip{padding:12px!important}
  .map-sheet-size-chip b{font-size:13px!important}
  .map-sheet-size-chip em{font-size:12px!important;line-height:1.4}
  .map-sheet-size-chip span{font-size:12px!important}
  .map-sheet-area-meta{font-size:12px!important;line-height:1.45;padding:8px 10px}
  .map-sheet-loading{font-size:12px!important}

  .map-sheet-price{padding:16px!important}
  .map-sheet-price strong{font-size:32px!important}
  .map-sheet-price span{font-size:12px!important}
  .map-sheet-stats dt{font-size:12px!important}
  .map-sheet-stats dd{font-size:13px!important}
  .map-sheet-actions a{min-height:48px;font-size:14px!important}

  .map-sheet-recent-head b{font-size:14px!important}
  .map-sheet-recent-head span{font-size:12px!important}
  .map-sheet-deal{min-height:66px!important;padding:10px 12px!important;gap:9px!important}
  .map-sheet-deal strong{font-size:12px!important}
  .map-sheet-deal>div:first-child span{font-size:12px!important;line-height:1.4}
  .map-sheet-deal-price b{font-size:15px!important}
  .map-sheet-deal-price small{font-size:12px!important}
  .map-sheet-registry span{font-size:12px!important;padding:4px 7px!important}
  .map-sheet-deal>em{font-size:12px!important}
  .map-sheet-empty{font-size:12px!important}
  .map-sheet-deals-more{min-height:42px;font-size:12px!important}

  .complex-building-label{min-width:54px;padding:5px 8px}
  .complex-building-label b{font-size:12px!important}
  .complex-building-label em{font-size:12px!important}
}


/* ===== recent same-size deal share action ===== */
.map-sheet-deal-tools{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;min-width:0}
.map-sheet-deal-share{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:0 6px;border:1px solid #d7e3e9;border-radius:7px;background:#f8fbfc;color:#477087!important;text-decoration:none!important;font-size:12px;font-weight:850;white-space:nowrap}
.map-sheet-deal-share:hover{background:#eef6f9;border-color:#bfd5df;color:#285e7b!important}
@media(max-width:760px){
  .map-sheet-deal-tools{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:flex-end;gap:6px;margin-top:1px}
  .map-sheet-deal-share{min-height:28px;padding:0 9px;font-size:12px!important;border-radius:8px}
}

/* ===== Map filters 2026-09-29 ===== */
.map-filter-toolbar{
  display:flex;align-items:center;gap:6px;margin-top:7px;overflow-x:auto;padding:0 1px 2px;scrollbar-width:none
}
.map-filter-toolbar::-webkit-scrollbar{display:none}
.map-filter-toolbar button,
.map-filter-toolbar .map-development-link{
  flex:0 0 auto;min-height:32px;padding:0 10px!important;border:1px solid rgba(207,220,227,.96)!important;
  border-radius:10px!important;background:rgba(255,255,255,.97)!important;color:#5f7482!important;
  box-shadow:0 4px 13px rgba(28,57,74,.07);font-size:12px!important;font-weight:900!important;white-space:nowrap
}
.map-filter-toolbar .map-development-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important;color:#7a4d96!important;background:#f8f2fc!important;border-color:#dbc8e7!important}
.map-filter-toggle{padding:0 11px!important;color:#315d77!important}
.map-filter-toggle b{display:none;align-items:center;justify-content:center;min-width:17px;height:17px;margin-left:4px;border-radius:99px;background:#245f82;color:#fff;font-size:12px}
.map-filter-toggle.is-active{border-color:#77a9c1!important;background:#eef7fb!important;color:#1e6488!important}
.map-filter-toggle.is-active b{display:inline-flex}
.map-filter-quick.is-active{border-color:#4f86a4!important;background:#245f82!important;color:#fff!important}
.map-filter-reset-mini{color:#9a6570!important}
.map-filter-panel{
  display:none;margin-top:6px;padding:12px;border:1px solid #d9e4ea;border-radius:15px;background:rgba(255,255,255,.985);
  box-shadow:0 12px 32px rgba(24,52,68,.16);backdrop-filter:blur(10px)
}
.map-filter-panel.is-open{display:block}
.map-filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.map-filter-grid>label{display:block;padding:9px;border:1px solid #e5ebef;border-radius:11px;background:#fafcfd}
.map-filter-grid>label>span{display:block;margin-bottom:6px;color:#617785;font-size:12px;font-weight:900}
.map-filter-grid>label>div{display:flex;align-items:center;gap:5px}
.map-filter-grid input{
  min-width:0;width:100%;height:31px!important;margin:0!important;padding:0 7px!important;border:1px solid #dce6eb!important;
  border-radius:8px!important;background:#fff!important;color:#294a60!important;box-shadow:none!important;font-size:12px!important
}
.map-filter-grid em{color:#9aa7af;font-size:12px;font-style:normal}.map-filter-grid small{flex:0 0 auto;color:#8998a1;font-size:12px;white-space:nowrap}
.map-filter-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding-top:9px;border-top:1px solid #edf1f3}
.map-filter-actions>span{color:#94a1a9;font-size:12px;line-height:1.4}
.map-filter-actions>div{display:flex;gap:6px;flex:0 0 auto}
.map-filter-actions button{min-height:31px;padding:0 10px!important;border-radius:9px!important;font-size:12px!important;font-weight:900!important}
#map-filter-reset{border:1px solid #dce5ea!important;background:#fff!important;color:#6f808c!important}
#map-filter-apply{border:1px solid #245f82!important;background:#245f82!important;color:#fff!important}
.map-floating-info{top:116px}
@media(max-width:760px){
  .map-filter-toolbar{gap:5px;margin-top:6px}
  .map-filter-toolbar button{min-height:34px;padding:0 10px!important;font-size:12px!important}
  .map-filter-panel{padding:10px;border-radius:13px;max-height:58vh;overflow:auto}
  .map-filter-grid{grid-template-columns:1fr 1fr;gap:6px}
  .map-filter-grid>label{padding:8px}
  .map-filter-grid>label>span{font-size:12px}
  .map-filter-grid input{height:34px!important;font-size:12px!important}
  .map-filter-grid small{font-size:12px}
  .map-filter-actions{align-items:flex-end;flex-direction:column}
  .map-filter-actions>span{align-self:flex-start;font-size:12px}
  .map-filter-actions>div{width:100%}.map-filter-actions button{flex:1;min-height:36px;font-size:12px!important}
  .map-floating-info{top:108px!important}
}
@media(max-width:430px){
  .map-filter-grid{grid-template-columns:1fr}
}

/* ===== AdSense-ready map panel slot 2026-09-29 ===== */
.map-sheet-ad{
  position:relative;margin:12px 0;padding:15px 10px 8px;border-top:1px solid #e7ecef;border-bottom:1px solid #e7ecef;
  background:#fbfcfd;min-height:90px;overflow:hidden
}
.map-sheet-ad-label{
  position:absolute;top:4px;left:8px;color:#a2adb5;font-size:12px;font-weight:800;letter-spacing:.04em
}
.map-sheet-ad .adsbygoogle{min-height:70px}
@media(max-width:760px){
  .map-sheet-ad{margin:10px -2px;padding:14px 6px 7px;min-height:82px}
  .map-sheet-ad .adsbygoogle{min-height:62px}
}

/* ===== Search result identity-first layout 2026-09-29 ===== */
.map-search-result{grid-template-columns:minmax(0,1fr) auto!important;gap:7px 14px!important;padding:13px 15px!important;align-items:center}
.map-search-main{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:7px;row-gap:3px}
.map-search-main>strong{grid-column:1;max-width:260px}
.map-search-old-name{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a0aab1;font-size:12px;font-weight:750}
.map-search-main>small{grid-column:1 / -1!important;color:#6f818d!important;font-size:12px!important;line-height:1.35}
.map-search-meta{grid-column:1 / -1;color:#3f667d;font-size:12px;font-weight:850}
.map-search-result>em{grid-column:2!important;grid-row:1!important;display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:70px;color:#245f82!important;font-size:13px!important;font-weight:950!important}
.map-search-result>em small{color:#9aa7af!important;font-size:12px!important;font-style:normal;font-weight:750}
@media(max-width:760px){
  .map-search-result{padding:13px 12px!important;gap:6px 10px!important}
  .map-search-main>strong{max-width:190px;font-size:14px!important}
  .map-search-old-name{font-size:12px}
  .map-search-main>small{font-size:12px!important}
  .map-search-meta{font-size:12px!important}
  .map-search-result>em{min-width:58px;font-size:13px!important}
  .map-search-result>em small{font-size:12px!important}
}

/* ===== Map sheet: all-deals default, compact trend, sticky analysis action ===== */
.map-sheet-actions--sticky{position:sticky;top:-18px;z-index:12;margin:10px -2px 4px;padding:10px 2px 8px;background:rgba(255,255,255,.97);backdrop-filter:blur(8px)}
.map-sheet-actions--sticky .primary{box-shadow:0 5px 14px rgba(36,95,130,.15)}
.map-sheet-size-chip.is-all{grid-column:1 / -1;display:grid!important;grid-template-columns:1fr auto;align-items:center}
.map-sheet-size-chip.is-all b{grid-column:1;font-size:12px}
.map-sheet-size-chip.is-all em{grid-column:1;color:#7f909b}
.map-sheet-size-chip.is-all span{grid-column:2;grid-row:1 / span 2;align-self:center;color:#245f82;font-size:12px;font-weight:950}
.map-sheet-price{justify-content:space-between;align-items:center!important;gap:10px!important}
.map-sheet-price-main{min-width:0;display:flex;align-items:flex-end;gap:8px}
.map-sheet-permit-pending{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:8px 9px;border:1px solid #eadcb8;border-radius:11px;background:#fff8e7;text-decoration:none!important}
.map-sheet-permit-pending[hidden]{display:none!important}
.map-sheet-permit-pending small{color:#9a7b34!important;font-size:12px!important;font-weight:800}
.map-sheet-permit-pending b{color:#8f6510;font-size:12px;white-space:nowrap}
.map-sheet-trend{margin:12px 0 14px;padding:11px 10px 8px;border:1px solid #e2e9ed;border-radius:13px;background:#fff}
.map-sheet-trend-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.map-sheet-trend-head b{color:#284c63;font-size:12px}
.map-sheet-trend-head span{color:#8e9ca5;font-size:12px}
.map-sheet-trend-legend{display:flex;flex-wrap:wrap;gap:5px 9px;margin:0 0 4px;min-height:0}
.map-sheet-trend-legend span{display:inline-flex;align-items:center;gap:4px;color:#71838f;font-size:12px;font-weight:800}
.map-sheet-trend-legend i{width:7px;height:7px;border-radius:50%}
.map-sheet-trend-chart{min-height:142px;overflow:hidden}
.map-sheet-trend-chart svg{display:block;width:100%;height:auto}
.map-sheet-trend-chart .trend-grid{stroke:#e6ecef;stroke-width:1;stroke-dasharray:3 3}
.map-sheet-trend-chart .trend-axis{fill:#8a99a4;font-size:12px}
.map-sheet-trend-chart .trend-line{fill:none;stroke:#2f7699;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.map-sheet-trend-chart .trend-dot-single{fill:#2f7699;stroke:#fff;stroke-width:1.2}
@media(max-width:760px){
  .map-sheet-actions--sticky{top:-17px;margin-top:8px;padding-top:9px}
  .map-sheet-actions--sticky .primary{min-height:44px!important}
  .map-sheet-price{align-items:stretch!important}
  .map-sheet-price-main{flex:1;flex-direction:column;align-items:flex-start;gap:3px}
  .map-sheet-permit-pending{justify-content:center;padding:7px 8px}
  .map-sheet-permit-pending small{font-size:12px!important}.map-sheet-permit-pending b{font-size:12px}
  .map-sheet-trend{padding:11px 8px 7px}.map-sheet-trend-head b{font-size:13px}.map-sheet-trend-head span{font-size:12px}
  .map-sheet-trend-legend span{font-size:12px}.map-sheet-trend-chart{min-height:145px}
}


/* Map search popular list */
#property-map-search{
  flex:1;min-width:0;height:48px!important;margin:0!important;padding:0!important;border:0!important;
  background:transparent!important;box-shadow:none!important;outline:0!important;color:#18384e!important;
  font-size:14px!important;font-weight:780!important;
}
.map-search-results.is-popular{
  max-height:min(680px,calc(100dvh - 190px));overflow-y:auto!important;
  padding:0 8px 8px;background:#f7fafc;
}
.map-search-popular-head{
  position:sticky;top:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0 -8px 4px;padding:10px 14px;border-bottom:1px solid #e7eef2;background:rgba(255,255,255,.98);
  backdrop-filter:blur(8px);
}
.map-search-popular-head strong{color:#28495f;font-size:13px;font-weight:950;letter-spacing:-.02em}
.map-search-popular-head small{color:#8a9aa5;font-size:12px;white-space:nowrap}
.map-search-popular-item{
  display:grid!important;
  grid-template-columns:30px minmax(145px,1.15fr) minmax(150px,1fr) 110px 58px!important;
  gap:8px!important;align-items:center!important;width:100%;min-height:52px;
  margin:4px 0;padding:8px 10px!important;
  border:1px solid #e2eaf0!important;border-radius:11px!important;background:#fff!important;
  box-shadow:0 2px 7px rgba(30,61,79,.04);
}
.map-search-popular-item:hover{background:#fbfdfe!important;border-color:#d5e1e8!important}
.map-search-popular-rank{
  display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;
  background:#edf3f6;color:#315f79;font-size:12px;font-weight:950;
}
.map-search-popular-item[data-rank="1"] .map-search-popular-rank,
.map-search-popular-item[data-rank="2"] .map-search-popular-rank,
.map-search-popular-item[data-rank="3"] .map-search-popular-rank{
  background:#236a8e;color:#fff;box-shadow:0 2px 6px rgba(35,106,142,.17)
}
.map-search-popular-name{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#18384e;font-size:13px!important;font-weight:950;line-height:1.2;
}
.map-search-popular-loc{
  min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#6f828f;font-size:12px;font-weight:650;
}
.map-search-popular-built{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#466c82;font-size:12px;font-weight:850;text-align:left;
}
.map-search-popular-count{
  display:flex;align-items:baseline;justify-content:flex-end;gap:2px;min-width:52px;
  padding:5px 7px;border-radius:9px;background:#eef5f8;text-align:right;
}
.map-search-popular-count b{color:#1f6388;font-size:16px;font-weight:950;line-height:1}
.map-search-popular-count em{color:#55758a;font-size:12px;font-style:normal;font-weight:850;line-height:1}

@media(max-width:900px){
  .map-search-popular-item{
    grid-template-columns:28px minmax(120px,1fr) minmax(130px,1fr) 90px 54px!important;
    gap:7px!important;
  }
}
@media(max-width:760px){
  #property-map-search{height:44px!important;font-size:16px!important}
  .map-search-results.is-popular{max-height:calc(100dvh - 185px);padding:0 6px 6px}
  .map-search-popular-head{margin:0 -6px 3px;padding:9px 10px}
  .map-search-popular-head strong{font-size:12px}
  .map-search-popular-head small{font-size:12px}
  .map-search-popular-item{
    grid-template-columns:28px minmax(0,1.1fr) minmax(0,.9fr) 52px!important;
    min-height:48px;margin:3px 0;padding:7px 8px!important;gap:7px!important;
  }
  .map-search-popular-rank{width:26px;height:26px}
  .map-search-popular-name{font-size:12px!important}
  .map-search-popular-loc{font-size:12px}
  .map-search-popular-built{display:none}
  .map-search-popular-count{min-width:50px;padding:5px 6px}
  .map-search-popular-count b{font-size:15px}
}
/* ===== Deal meta emphasis + in-place share modal 2026-10-01 ===== */
.map-sheet-deal-main{min-width:0;display:flex;flex-direction:column;gap:6px}
.map-sheet-deal-head{display:flex;align-items:center;gap:6px;min-width:0}
.map-sheet-deal-head strong{font-size:12px!important;line-height:1.2;color:#244b66!important}
.map-sheet-deal-head .map-sheet-deal-status{margin-left:0}
.map-sheet-deal-meta{display:flex;align-items:center;gap:4px;flex-wrap:wrap;min-width:0}
.map-sheet-deal-meta span{
  display:inline-flex!important;align-items:center;min-height:21px;padding:2px 6px;border-radius:7px;
  font-size:12px!important;font-weight:850!important;line-height:1!important;white-space:nowrap!important;
  overflow:visible!important;text-overflow:clip!important
}
.map-sheet-deal-meta .is-area{background:#eaf3ff;color:#245f91!important;border:1px solid #d3e4f6}
.map-sheet-deal-meta .is-floor{background:#f1f4f7;color:#516979!important;border:1px solid #e1e7eb}
.map-sheet-deal-meta .is-dong{background:#eaf7f0;color:#277052!important;border:1px solid #d7ebdf}
.map-sheet-deal-price b{font-size:15px!important;font-weight:950}
.map-sheet-deal-share{font-family:inherit;cursor:pointer}
.map-share-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:18px}
.map-share-modal.is-open{display:flex}
.map-share-modal-backdrop{position:absolute;inset:0;background:rgba(13,31,43,.58);backdrop-filter:blur(3px)}
.map-share-modal-panel{
  position:relative;z-index:1;width:min(680px,calc(100vw - 28px));height:min(92vh,880px);
  display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#eef3f8;
  box-shadow:0 24px 70px rgba(9,32,48,.30);border:1px solid rgba(255,255,255,.7)
}
.map-share-modal-head{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:50px;padding:0 12px 0 17px;border-bottom:1px solid #dce5eb;background:#fff
}
.map-share-modal-head strong{color:#264a61;font-size:14px;font-weight:950}
.map-share-modal-head button{
  width:34px;height:34px;border:1px solid #d8e2e8;border-radius:10px;background:#fff;color:#607786;
  font-size:22px;line-height:1;cursor:pointer
}
.map-share-modal-frame{display:block;flex:1;width:100%;min-height:0;border:0;background:#eef3f8}
html.share-modal-open,html.share-modal-open body{overflow:hidden!important}
@media(max-width:760px){
  .map-sheet-deal{grid-template-columns:minmax(0,1fr) auto!important}
  .map-sheet-deal-main{gap:7px}
  .map-sheet-deal-head strong{font-size:13px!important}
  .map-sheet-deal-meta{gap:5px}
  .map-sheet-deal-meta span{min-height:23px;padding:3px 7px;font-size:12px!important}
  .map-sheet-deal-tools{grid-column:1/-1!important}
  .map-share-modal{padding:8px}
  .map-share-modal-panel{width:100%;height:96vh;border-radius:16px}
  .map-share-modal-head{min-height:48px}
}

/* ===== 10평대~100평+ 면적군 색상 2026-10-01 ===== */
.map-sheet-deal{
  border-left:3px solid var(--area-band-color,#cbd6dd)!important;
}
.map-sheet-deal .map-sheet-deal-meta .is-area{
  background:var(--area-band-soft,#eef5f8)!important;
  border-color:color-mix(in srgb,var(--area-band-color,#6f8fa4) 35%,#fff)!important;
  color:var(--area-band-color,#356783)!important;
  font-weight:950!important;
}
.map-sheet-trend-legend{flex-wrap:wrap}
.map-sheet-trend-legend span{white-space:nowrap}

/* ===== 면적군 라인/면적칩 정리 2026-10-01 ===== */
/* 상태는 배경색/배지로만 표시하고, 왼쪽 라인은 그래프의 평형대 색상만 사용 */
.map-sheet-deal,
.map-sheet-deal.is-new-high,
.map-sheet-deal.is-up,
.map-sheet-deal.is-down,
.map-sheet-deal.is-new-low{
  box-shadow:none!important;
  border-left:3px solid var(--area-band-color,#cbd6dd)!important;
}
/* 전용면적 칩은 모든 면적군에서 같은 배경/테두리 사용 */
.map-sheet-deal .map-sheet-deal-meta .is-area{
  background:#eaf3ff!important;
  border:1px solid #d3e4f6!important;
  color:#245f91!important;
  font-weight:950!important;
}

/* ===== 면적칩 = 면적별 실거래 추이 색상 2026-10-01 ===== */
.map-sheet-deal .map-sheet-deal-meta .is-area{
  background:color-mix(in srgb,var(--area-band-color,#5b8def) 12%,#fff)!important;
  border-color:color-mix(in srgb,var(--area-band-color,#5b8def) 38%,#fff)!important;
  color:var(--area-band-color,#5b8def)!important;
}

/* Related external content in map apartment sheet */
.map-sheet-related{margin:16px 0 8px;padding-top:14px;border-top:1px solid #e4edf1}
.map-sheet-related-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.map-sheet-related-head b{color:#24495f;font-size:12px;font-weight:950}
.map-sheet-related-head a,.map-sheet-related-head button{padding:5px 8px;border:0;border-radius:8px;background:#edf5f8;color:#267191;text-decoration:none;font-size:12px;font-weight:900;cursor:pointer;font-family:inherit}.map-sheet-related-head button[hidden]{display:none!important}
.map-sheet-related-list{display:grid;gap:7px}
.map-sheet-related-item{display:grid;grid-template-columns:66px minmax(0,1fr);gap:9px;padding:7px;border:1px solid #e2eaee;border-radius:11px;background:#fff;text-decoration:none}
.map-sheet-related-item>img,.map-sheet-related-item>span{width:66px;height:50px;border-radius:8px;object-fit:cover;background:#edf4f7;display:flex;align-items:center;justify-content:center;color:#267191;font-size:17px;font-weight:950}

.map-sheet-related-visual{position:relative;overflow:hidden}
.map-sheet-related-visual i{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-style:normal;font-size:18px;font-weight:950;z-index:1}
.map-sheet-related-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;background:#fff}
.map-sheet-related-visual.is-news{background:#eef4fb;color:#2b668f}
.map-sheet-related-visual.is-blog{background:#eef8f3;color:#24805e}
.map-sheet-related-visual.is-youtube{background:#fff1f1;color:#c63c3c}
.map-sheet-related-item>div{display:flex;min-width:0;flex-direction:column}
.map-sheet-related-item em{color:#2c7897;font-size:12px;font-style:normal;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-sheet-related-match{display:inline-flex;align-self:flex-start;margin-top:4px;padding:3px 6px;border-radius:999px;font-size:12px;font-weight:950;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.map-sheet-related-match.is-apart{background:#e8f4ff;color:#17628a;border:1px solid #d5e9f7}
.map-sheet-related-match.is-region{background:#eef7ec;color:#3d7041;border:1px solid #dcebd9}
.map-sheet-related-item b{margin:4px 0 3px;color:#1d4158;font-size:12px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.map-sheet-related-item small{margin-top:auto;color:#8e9ca5;font-size:12px}

/* ===== Recent searches + my location 2026-10-01 ===== */
.map-search-recent-head{position:static!important;margin-top:0!important;background:#f4f9fc!important;border-bottom:1px solid #dfeaf0!important}
.map-search-recent-head strong{color:#1e607f!important}
.map-search-recent-item{display:grid!important;grid-template-columns:32px minmax(0,1fr) auto!important;align-items:center!important;gap:9px!important;width:100%;min-height:50px;margin:4px 0;padding:8px 10px!important;border:1px solid #dfe8ed!important;border-radius:11px!important;background:#fff!important;box-shadow:0 2px 7px rgba(30,61,79,.035)}
.map-search-recent-item:hover{background:#fbfdfe!important;border-color:#cddce4!important}
.map-search-recent-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:9px;background:#eef6fa;color:#23698c;font-size:15px;font-weight:900}
.map-search-recent-copy{display:flex;flex-direction:column;gap:3px;min-width:0;text-align:left}
.map-search-recent-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#18384e;font-size:13px!important;font-weight:950}
.map-search-recent-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#778b98;font-size:12px;font-weight:650}
.map-search-recent-go{padding:5px 8px;border-radius:8px;background:#f1f6f9;color:#3c708b;font-size:12px;font-weight:850;white-space:nowrap}
.map-search-section-divider{height:8px;margin:4px -8px 0;border-top:1px solid #dde7ec;background:#eef4f7}
.map-search-popular-loading{margin-top:4px}

.map-location-control{border:0!important;box-shadow:0 5px 16px rgba(28,57,74,.16)!important;background:transparent!important}
.map-location-button{display:flex!important;align-items:center!important;justify-content:center!important;width:38px!important;height:38px!important;padding:0!important;border:1px solid rgba(201,215,223,.95)!important;border-radius:10px!important;background:rgba(255,255,255,.98)!important;color:#245f82!important;cursor:pointer!important;box-shadow:none!important}
.map-location-button:hover{background:#f4f9fc!important;color:#164f70!important}
.map-location-button:disabled{cursor:wait!important;opacity:.75}
.map-location-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.map-location-button.is-loading svg{animation:thp-location-spin 1s linear infinite}
@keyframes thp-location-spin{to{transform:rotate(360deg)}}
.map-location-dot{stroke:#fff!important;fill:#2377a6!important;filter:drop-shadow(0 1px 4px rgba(18,76,108,.35))}
.map-location-accuracy{stroke:#2f83ad!important;fill:#4b9ec6!important}
.map-location-toast{position:absolute;z-index:1250;left:50%;bottom:28px;transform:translate(-50%,14px);max-width:min(420px,calc(100% - 30px));padding:9px 13px;border-radius:10px;background:rgba(24,55,73,.93);color:#fff;font-size:12px;font-weight:800;line-height:1.4;text-align:center;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:0 7px 22px rgba(19,47,63,.22)}
.map-location-toast.is-show{opacity:1;transform:translate(-50%,0)}
@media(max-width:760px){
  .map-search-recent-item{grid-template-columns:28px minmax(0,1fr) auto!important;min-height:46px;padding:7px 8px!important;gap:7px!important}
  .map-search-recent-icon{width:26px;height:26px;font-size:14px}
  .map-search-recent-copy strong{font-size:12px!important}
  .map-search-recent-copy small{font-size:12px}
  .map-search-recent-go{padding:4px 6px;font-size:12px}
  .map-location-button{width:36px!important;height:36px!important}
  .map-location-toast{bottom:18px;font-size:12px}
}

/* ===== Mobile map sheet: collapsed map-first state + scroll expansion 2026-10-02 ===== */
@media(max-width:760px){
  .map-complex-sheet{
    max-height:48%!important;
    transition:max-height .24s ease,opacity .18s ease,transform .18s ease!important;
  }
  .map-complex-sheet.is-mobile-expanded{
    max-height:72%!important;
  }
  .map-complex-sheet.is-mobile-peek{
    max-height:29%!important;
  }
}


/* ===== Zoom-level apartment aggregation markers 2026-10-05 ===== */
.smart-leaflet-icon{background:transparent!important;border:0!important}
.map-apartment-marker{position:relative;display:block;width:1px;height:1px;transform:translate(-50%,-50%);color:#236a8e;pointer-events:auto}
.map-apartment-building{position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;width:31px;height:35px;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.96);border-radius:8px;background:#fff;box-shadow:0 3px 10px rgba(22,43,57,.2);color:#236a8e}
.map-apartment-building svg{display:block;width:25px;height:29px}
.map-apartment-marker.is-sido .map-apartment-building{width:37px;height:41px}
.map-apartment-marker.is-sido .map-apartment-building svg{width:29px;height:33px}
.map-apartment-marker.is-sigungu .map-apartment-building{width:34px;height:38px}
.map-apartment-marker.is-sigungu .map-apartment-building svg{width:27px;height:31px}
.map-apartment-marker.is-dong .map-apartment-building{width:31px;height:35px}
.map-apartment-count{position:absolute;z-index:2;left:12px;top:-24px;display:flex;min-width:25px;height:24px;align-items:center;justify-content:center;padding:0 7px;border:2px solid #fff;border-radius:999px;background:#236a8e;box-shadow:0 2px 7px rgba(22,43,57,.2);color:#fff;font-size:12px;line-height:20px;font-weight:900;white-space:nowrap}
.map-apartment-marker.is-sido .map-apartment-count{left:14px;top:-28px;min-width:28px;height:26px}
.map-apartment-marker.is-complex .map-apartment-building{width:29px;height:33px}
.map-apartment-marker.is-complex .map-apartment-building svg{width:23px;height:27px}
.map-apartment-marker.is-complex.is-high .map-apartment-building{color:#c9525d}
.map-apartment-marker.is-selected .map-apartment-building{border-color:#236a8e;box-shadow:0 0 0 2px rgba(35,106,142,.16),0 4px 13px rgba(22,43,57,.25)}
.map-apartment-selected-label{position:absolute;z-index:3;left:50%;top:21px;display:flex;min-width:96px;max-width:150px;flex-direction:column;align-items:center;transform:translateX(-50%);padding:6px 9px;border:1px solid #d7e1e7;border-radius:10px;background:rgba(255,255,255,.98);box-shadow:0 5px 16px rgba(22,43,57,.2);color:#1e3543;text-align:center;white-space:nowrap}
.map-apartment-selected-label b{color:#236a8e;font-size:13px;line-height:1.15;font-weight:900}
.map-apartment-selected-label em{display:block;max-width:132px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;color:#344b59;font-size:12px;line-height:1.2;font-style:normal;font-weight:700}
@media(max-width:760px){
  .map-apartment-building{width:29px;height:33px}
  .map-apartment-building svg{width:23px;height:27px}
  .map-apartment-marker.is-sido .map-apartment-building{width:35px;height:39px}
  .map-apartment-marker.is-sigungu .map-apartment-building{width:32px;height:36px}
  .map-apartment-count{left:11px;top:-23px;min-width:24px;height:23px;padding:0 6px;font-size:12px}
  .map-apartment-selected-label{min-width:90px;max-width:132px;padding:5px 7px}
}

/* ===== Administrative hierarchy marker labels 2026-10-05 ===== */
.map-apartment-marker.is-aggregate .map-apartment-group-card{
  position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:5px;
  transform:translate(-50%,-50%);height:38px;padding:3px 6px 3px 4px;
  border:1px solid rgba(35,106,142,.24);border-radius:11px;background:rgba(255,255,255,.97);
  box-shadow:0 3px 11px rgba(22,43,57,.18);white-space:nowrap;
}
.map-apartment-marker.is-aggregate .map-apartment-building,
.map-apartment-marker.is-aggregate.is-sido .map-apartment-building,
.map-apartment-marker.is-aggregate.is-sigungu .map-apartment-building,
.map-apartment-marker.is-aggregate.is-dong .map-apartment-building{
  position:static;display:flex;flex:0 0 auto;width:27px;height:30px;transform:none;
  border:0;border-radius:6px;background:transparent;box-shadow:none;color:#236a8e;
}
.map-apartment-marker.is-aggregate .map-apartment-building svg,
.map-apartment-marker.is-aggregate.is-sido .map-apartment-building svg,
.map-apartment-marker.is-aggregate.is-sigungu .map-apartment-building svg{
  width:23px;height:27px;
}
.map-apartment-region{display:block;max-width:92px;overflow:hidden;text-overflow:ellipsis;color:#203946;font-size:12px;line-height:1;font-weight:900;white-space:nowrap}
.map-apartment-marker.is-aggregate .map-apartment-count,
.map-apartment-marker.is-aggregate.is-sido .map-apartment-count{
  position:static;display:flex;flex:0 0 auto;min-width:22px;height:22px;align-items:center;justify-content:center;
  padding:0 6px;border:0;border-radius:999px;background:#236a8e;box-shadow:none;color:#fff;
  font-size:11px;line-height:22px;font-weight:900;white-space:nowrap;
}
.map-apartment-marker.is-sido .map-apartment-group-card{height:42px;padding-right:7px}
.map-apartment-marker.is-sido .map-apartment-region{max-width:112px;font-size:13px}
.map-apartment-marker.is-sigungu .map-apartment-region{max-width:104px}
.map-apartment-marker.is-dong .map-apartment-group-card{height:34px;gap:4px;padding:2px 5px 2px 3px}
.map-apartment-marker.is-dong .map-apartment-building{width:24px;height:27px}
.map-apartment-marker.is-dong .map-apartment-building svg{width:20px;height:24px}
.map-apartment-marker.is-dong .map-apartment-region{max-width:76px;font-size:12px}
.map-apartment-marker.is-dong .map-apartment-count{min-width:20px;height:20px;padding:0 5px;font-size:10px;line-height:20px}
@media(max-width:760px){
  .map-apartment-marker.is-aggregate .map-apartment-group-card{height:34px;gap:4px;padding:2px 5px 2px 3px;border-radius:9px}
  .map-apartment-marker.is-aggregate .map-apartment-building,
  .map-apartment-marker.is-aggregate.is-sido .map-apartment-building,
  .map-apartment-marker.is-aggregate.is-sigungu .map-apartment-building{width:24px;height:27px}
  .map-apartment-marker.is-aggregate .map-apartment-building svg,
  .map-apartment-marker.is-aggregate.is-sido .map-apartment-building svg,
  .map-apartment-marker.is-aggregate.is-sigungu .map-apartment-building svg{width:20px;height:24px}
  .map-apartment-region{max-width:78px;font-size:12px}
  .map-apartment-marker.is-sido .map-apartment-region{max-width:96px;font-size:12px}
  .map-apartment-marker.is-aggregate .map-apartment-count,
  .map-apartment-marker.is-aggregate.is-sido .map-apartment-count{min-width:20px;height:20px;padding:0 5px;font-size:10px;line-height:20px}
}

/* ===== Complex price marker: apartment-brand flag 2026-10-05 ===== */
.map-apartment-marker.is-complex .map-apartment-building{display:none!important}
.map-complex-price-card{
  position:absolute;z-index:2;left:50%;top:0;display:flex;align-items:center;gap:5px;
  min-width:58px;min-height:35px;transform:translate(-50%,-100%);
  padding:4px 7px 4px 5px;border:1px solid rgba(255,255,255,.96);border-radius:7px 7px 7px 2px;
  background:#236a8e;box-shadow:0 3px 9px rgba(21,52,70,.24);color:#fff;white-space:nowrap;
}
.map-complex-price-card::after{
  content:'';position:absolute;left:7px;bottom:-7px;width:0;height:0;
  border-top:8px solid #236a8e;border-right:8px solid transparent;
  filter:drop-shadow(0 2px 1px rgba(21,52,70,.12));
}
.map-complex-brand{display:flex;flex:0 0 auto;width:17px;height:23px;align-items:flex-end;justify-content:center;color:#fff;opacity:.98}
.map-complex-brand svg{display:block;width:17px;height:21px}
.map-complex-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}
.map-complex-copy small{display:block;color:rgba(255,255,255,.82);font-size:10px;line-height:1;font-weight:750;letter-spacing:-.2px}
.map-complex-copy b{display:block;color:#fff;font-size:13px;line-height:1.08;font-weight:950;letter-spacing:-.35px}
.map-apartment-marker.is-complex.is-high .map-complex-price-card{background:#c9525d}
.map-apartment-marker.is-complex.is-high .map-complex-price-card::after{border-top-color:#c9525d}
.map-apartment-marker.is-complex.is-selected .map-complex-price-card{
  z-index:4;background:#184f6c;border-color:#fff;box-shadow:0 0 0 2px rgba(35,106,142,.24),0 5px 14px rgba(21,52,70,.30)
}
.map-apartment-marker.is-complex.is-selected.is-high .map-complex-price-card{background:#b93f4b}
.map-apartment-marker.is-complex.is-selected .map-complex-price-card::after{border-top-color:#184f6c}
.map-apartment-marker.is-complex.is-selected.is-high .map-complex-price-card::after{border-top-color:#b93f4b}
.map-apartment-marker.is-complex .map-apartment-selected-label{
  position:absolute;z-index:5;left:50%;top:8px;display:flex;min-width:96px;max-width:148px;
  transform:translateX(-50%);padding:5px 8px;border:1px solid #d5e1e7;border-radius:8px;
  background:rgba(255,255,255,.98);box-shadow:0 4px 12px rgba(22,43,57,.18);text-align:center;white-space:nowrap;
}
.map-apartment-marker.is-complex .map-apartment-selected-label em{
  display:block;max-width:132px;margin:0;overflow:hidden;text-overflow:ellipsis;
  color:#203946;font-size:11px;line-height:1.15;font-style:normal;font-weight:900;
}
@media(max-width:760px){
  .map-complex-price-card{min-width:54px;min-height:33px;gap:4px;padding:4px 6px 4px 4px;border-radius:6px 6px 6px 2px}
  .map-complex-brand{width:15px;height:21px}
  .map-complex-brand svg{width:15px;height:19px}
  .map-complex-copy small{font-size:10px}
  .map-complex-copy b{font-size:12px}
  .map-apartment-marker.is-complex .map-apartment-selected-label{min-width:90px;max-width:130px;padding:4px 6px}
  .map-apartment-marker.is-complex .map-apartment-selected-label em{max-width:116px;font-size:11px}
}

/* ===== Main map development overlay control 2026-10-05 ===== */
.map-development-control{
  position:absolute;z-index:1030;right:14px;top:116px;width:178px;
  overflow:hidden;border:1px solid rgba(211,220,227,.97);border-radius:13px;
  background:rgba(255,255,255,.97);box-shadow:0 7px 22px rgba(24,52,68,.14);backdrop-filter:blur(10px)
}
.map-development-toggle{
  display:flex!important;width:100%;height:39px;align-items:center;gap:7px;padding:0 10px!important;
  border:0!important;border-radius:0!important;background:transparent!important;color:#294b60!important;
  box-shadow:none!important;text-align:left;font-size:12px!important;cursor:pointer
}
.map-development-toggle strong{font-size:12px;font-weight:950;white-space:nowrap}
.map-development-symbol{display:flex;width:23px;height:23px;align-items:center;justify-content:center;border-radius:7px;background:#f3ecfa;color:#795bb0;font-size:14px;font-weight:900}
#map-development-active-count{display:inline-flex;min-width:19px;height:19px;align-items:center;justify-content:center;margin-left:auto;padding:0 5px;border-radius:99px;background:#795bb0;color:#fff;font-size:10px;font-weight:950}
.map-development-chevron{display:inline-block;margin-left:auto;color:#82919b;font-size:14px;transition:transform .16s ease}
.map-development-control.is-open .map-development-chevron{transform:rotate(180deg)}
.map-development-options{display:none;padding:2px 8px 8px;border-top:1px solid #edf0f2}
.map-development-control.is-open .map-development-options{display:block}
.map-development-options label{display:flex;min-height:32px;align-items:center;gap:7px;padding:0 4px;color:#4e6472;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}
.map-development-options label+label{border-top:1px solid #f1f3f5}
.map-development-options input{flex:0 0 auto;width:15px;height:15px;margin:0;accent-color:#795bb0}
.map-development-all{color:#28495d!important;font-weight:950!important}
.map-development-swatch{display:inline-block;flex:0 0 auto;width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px #fff,0 0 0 3px rgba(60,84,98,.10)}
.map-development-swatch.is-redev{background:#21966f}
.map-development-swatch.is-operating{background:#2563eb}
.map-development-swatch.is-construction{background:#df7d2b}
.map-development-swatch.is-planned{background:#795bb0}
.map-development-swatch.is-other{background:#0f766e}
.map-development-full-link{display:flex;min-height:30px;align-items:center;justify-content:center;margin-top:5px;border-radius:8px;background:#f7f4fa;color:#74558c!important;text-decoration:none!important;font-size:11px;font-weight:900}
.map-development-control.is-active{border-color:#cdbde0;box-shadow:0 7px 24px rgba(83,55,111,.16)}
.map-development-control.is-loading .map-development-symbol{animation:thpDevPulse .7s ease-in-out infinite alternate}
.map-filter-toolbar .map-development-link.is-active{border-color:#bfa7d2!important;background:#795bb0!important;color:#fff!important}
@keyframes thpDevPulse{to{opacity:.38;transform:scale(.92)}}
.map-development-popup .leaflet-popup-content-wrapper{border-radius:12px;box-shadow:0 7px 20px rgba(22,43,57,.20)}
.map-development-popup .leaflet-popup-content{margin:10px 12px;min-width:155px;max-width:235px}
.map-dev-popup{display:flex;flex-direction:column;gap:3px;color:#526a78;font-size:11px;line-height:1.4}
.map-dev-popup>b{color:#203f52;font-size:13px;line-height:1.3;font-weight:950}
.map-dev-popup>span{color:#6d808b}
.map-dev-popup>em{align-self:flex-start;padding:2px 5px;border-radius:6px;background:#f4eff8;color:#72548c;font-size:10px;font-style:normal;font-weight:900}
.map-dev-popup>small{color:#557080;font-size:10px;font-weight:750}
.map-dev-popup-link{margin-top:3px;color:#276d90!important;text-decoration:none!important;font-size:10px;font-weight:900}
@media(min-width:761px) and (max-width:1000px){
  .map-development-control{right:10px;width:160px}
  .map-development-options label{gap:6px;padding:0 3px;font-size:11px}
}
@media(max-width:760px){
  .map-development-control{right:10px;top:108px;width:auto;overflow:visible;border:0;border-radius:10px;background:transparent;box-shadow:none;backdrop-filter:none}
  .map-development-toggle{width:auto;min-width:112px;height:35px;padding:0 8px!important;border:1px solid rgba(207,219,226,.96)!important;border-radius:10px!important;background:rgba(255,255,255,.97)!important;box-shadow:0 4px 13px rgba(28,57,74,.10)!important;cursor:pointer}
  .map-development-toggle strong{font-size:11px}
  .map-development-symbol{width:21px;height:21px;border-radius:6px;font-size:12px}
  #map-development-active-count{min-width:18px;height:18px;padding:0 4px;font-size:10px}
  .map-development-chevron{display:inline-block;font-size:12px;transition:transform .16s ease}
  .map-development-control.is-open .map-development-chevron{transform:rotate(180deg)}
  .map-development-options{display:none;position:absolute;right:0;top:40px;width:154px;padding:4px 7px 7px;border:1px solid rgba(207,219,226,.98);border-radius:10px;background:rgba(255,255,255,.985);box-shadow:0 8px 22px rgba(25,54,72,.15);backdrop-filter:blur(10px)}
  .map-development-control.is-open .map-development-options{display:block}
  .map-development-options label{min-height:30px;gap:6px;padding:0 3px;font-size:11px}
  .map-development-options input{width:14px;height:14px}
  .map-development-swatch{width:8px;height:8px}
  .map-development-full-link{min-height:28px;margin-top:4px;font-size:10px}
  .map-development-popup .leaflet-popup-content{min-width:140px;max-width:210px}
}

/* ===== Current-location permission UX 2026-10-05 ===== */
.map-location-button{width:auto!important;min-width:76px!important;gap:5px!important;padding:0 9px!important}
.map-location-button span{display:inline-block;color:inherit;font-size:11px;font-weight:900;white-space:nowrap}
.map-location-toast{max-width:min(520px,calc(100% - 28px));padding:10px 14px;font-size:12px;line-height:1.5}
@media(max-width:760px){
  .map-location-button{width:auto!important;min-width:72px!important;height:36px!important;padding:0 8px!important}
  .map-location-button span{font-size:11px}
  .map-location-toast{bottom:18px;max-width:calc(100% - 22px);padding:10px 12px;font-size:12px;line-height:1.5}
}

/* ===== Current-location floating position 2026-10-05 ===== */
.leaflet-bottom.leaflet-right .map-location-control{
  position:relative!important;z-index:1180!important;margin-right:14px!important;margin-bottom:42px!important;
}
.map-location-button{
  min-height:40px!important;border-radius:12px!important;background:rgba(255,255,255,.98)!important;
  box-shadow:0 6px 18px rgba(22,52,70,.20)!important;
}
@media(max-width:760px){
  .leaflet-bottom.leaflet-right .map-location-control{margin-right:10px!important;margin-bottom:44px!important}
  .map-location-button{min-width:44px!important;width:44px!important;height:44px!important;padding:0!important;border-radius:50%!important}
  .map-location-button span{display:none!important}
  .map-location-button svg{width:22px!important;height:22px!important}
}

/* ===== AI fair-value explanation in map sheet 2026-10-05 ===== */
.map-ai-fair-card{margin:10px 14px 12px;padding:13px 14px;border:1px solid #d9e5eb;border-radius:14px;background:#f8fbfc;box-shadow:0 2px 8px rgba(22,43,57,.06)}
.map-ai-fair-card[hidden]{display:none!important}
.map-ai-fair-card.is-low{border-color:#9ad7c5;background:#f2fbf7}
.map-ai-fair-card.is-high{border-color:#f0b4b4;background:#fff6f6}
.map-ai-fair-card.is-anomaly{border-color:#efc47c;background:#fff9ee}
.map-ai-fair-card.is-filter-focus{box-shadow:0 0 0 2px rgba(35,106,142,.08),0 4px 14px rgba(22,43,57,.09)}
.map-ai-fair-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.map-ai-fair-head>div{min-width:0}.map-ai-fair-head span{display:block;color:#667b87;font-size:11px;font-weight:900;letter-spacing:.02em}.map-ai-fair-head strong{display:block;margin-top:3px;color:#203946;font-size:16px;line-height:1.2;font-weight:950}
.map-ai-fair-card.is-low .map-ai-fair-head strong{color:#14765b}.map-ai-fair-card.is-high .map-ai-fair-head strong{color:#b63c48}.map-ai-fair-card.is-anomaly .map-ai-fair-head strong{color:#9b650f}
.map-ai-fair-head>b{flex:0 0 auto;padding:5px 8px;border-radius:999px;background:#eaf2f6;color:#315d70;font-size:11px;line-height:1;font-weight:900}
.map-ai-fair-reason{margin:9px 0 10px;color:#334d59;font-size:13px;line-height:1.45;font-weight:750}
.map-ai-fair-prices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.map-ai-fair-prices>span{min-width:0;padding:8px;border-radius:10px;background:#fff;border:1px solid rgba(82,115,131,.12)}
.map-ai-fair-prices small,.map-ai-fair-evidence small{display:block;color:#7b8d96;font-size:10px;line-height:1.2;font-weight:800}
.map-ai-fair-prices b{display:block;margin-top:3px;color:#172f3b;font-size:13px;line-height:1.25;font-weight:950;word-break:keep-all}
.map-ai-fair-evidence{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.map-ai-fair-evidence>span{display:inline-flex;align-items:center;gap:5px;padding:5px 7px;border-radius:8px;background:rgba(255,255,255,.78);border:1px solid rgba(82,115,131,.10)}
.map-ai-fair-evidence small{display:inline}.map-ai-fair-evidence b{color:#405865;font-size:11px;font-weight:900}
.map-ai-fair-note{display:block;margin-top:8px;color:#81919a;font-size:10px;line-height:1.4;font-weight:650}
@media(max-width:760px){
  .map-ai-fair-card{margin:8px 10px 10px;padding:11px 12px;border-radius:12px}
  .map-ai-fair-head strong{font-size:15px}.map-ai-fair-reason{font-size:12px;margin:7px 0 8px}
  .map-ai-fair-prices{gap:4px}.map-ai-fair-prices>span{padding:7px 6px}.map-ai-fair-prices b{font-size:12px}
  .map-ai-fair-evidence{gap:4px}.map-ai-fair-evidence>span{padding:4px 6px}.map-ai-fair-note{font-size:10px}
}

/* media/interior progressive buttons align with recent-deals button */
.map-sheet-content-more{margin-top:9px}

/* Interior pyeong filters in apartment map sheet */
.map-sheet-interior-sizes{display:flex;gap:6px;overflow-x:auto;margin:0 0 8px;padding:1px 0 3px;scrollbar-width:thin}
.map-sheet-interior-sizes[hidden]{display:none!important}
.map-sheet-interior-sizes button{flex:0 0 auto;min-height:30px;padding:5px 10px;border:1px solid #d9e5ea;border-radius:999px;background:#fff;color:#557282;font-family:inherit;font-size:12px;font-weight:900;cursor:pointer}
.map-sheet-interior-sizes button.is-active{border-color:#267191;background:#267191;color:#fff}

/* 분양·입주예정 주택사업 지도 레이어 */
.map-development-swatch.is-housing{background:#d84a4a}
.map-housing-tooltip{display:flex;flex-direction:column;gap:1px;padding:4px 7px!important;border:1px solid rgba(45,126,170,.32)!important;border-radius:8px!important;background:rgba(255,255,255,.96)!important;box-shadow:0 3px 10px rgba(31,65,85,.16)!important;color:#203f52!important;line-height:1.15!important;pointer-events:none!important}
.map-housing-tooltip b{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:950}
.map-housing-tooltip span{font-size:9px;font-weight:800;color:#d84a4a}
.map-housing-address{margin-top:2px;color:#7a8992!important;font-weight:650!important}
.map-apartment-marker.is-complex.is-housing-project .map-housing-project-card{position:absolute;z-index:3;left:50%;top:0;display:flex;align-items:center;gap:6px;min-width:118px;max-width:178px;min-height:39px;transform:translate(-50%,-100%);padding:5px 8px 5px 5px;border:1px solid rgba(255,255,255,.97);border-radius:8px 8px 8px 2px;background:#d84a4a;box-shadow:0 3px 10px rgba(118,33,42,.28);color:#fff;white-space:nowrap}
.map-apartment-marker.is-complex.is-housing-project .map-housing-project-card::after{content:'';position:absolute;left:8px;bottom:-7px;width:0;height:0;border-top:8px solid #d84a4a;border-right:8px solid transparent;filter:drop-shadow(0 2px 1px rgba(118,33,42,.12))}
.map-apartment-marker.is-complex.is-housing-project .map-complex-brand{width:20px;height:25px;color:#fff}
.map-apartment-marker.is-complex.is-housing-project .map-complex-brand svg{width:19px;height:22px}
.map-housing-project-copy{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.05}
.map-housing-project-copy b{display:block;max-width:142px;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:11px;font-weight:950;letter-spacing:-.35px}
.map-housing-project-copy small{display:block;max-width:142px;overflow:hidden;text-overflow:ellipsis;color:rgba(255,255,255,.86);font-size:9px;font-weight:800;letter-spacing:-.15px}
.map-housing-project-count{
  display:flex;position:absolute;right:-7px;top:-8px;z-index:4;min-width:20px;height:20px;align-items:center;justify-content:center;
  padding:0 5px;border:2px solid #fff;border-radius:999px;background:#7f1d1d;color:#fff;
  box-shadow:0 2px 6px rgba(69,10,10,.28);font-size:10px;line-height:16px;font-weight:950
}
.map-dev-group-count{
  display:flex;position:absolute;right:-9px;top:-9px;z-index:5;min-width:20px;height:20px;align-items:center;justify-content:center;
  padding:0 5px;border:2px solid #fff;border-radius:999px;background:#203946;color:#fff;
  box-shadow:0 2px 6px rgba(18,38,50,.28);font-size:10px;line-height:16px;font-weight:950
}
.map-project-group-leaflet-popup .leaflet-popup-content{
  width:min(360px,calc(100vw - 64px))!important;min-width:285px!important;max-width:360px!important;margin:11px 12px
}
.map-project-group-popup{display:flex;flex-direction:column;gap:8px;color:#405a68}
.map-project-group-head{display:flex;flex-direction:column;gap:3px;padding-bottom:8px;border-bottom:1px solid #e4ebef}
.map-project-group-head>b{color:#203f52;font-size:14px;line-height:1.3;font-weight:950}
.map-project-group-head>span{color:#71838d;font-size:10px;line-height:1.35;font-weight:800}
.map-project-group-head>em{align-self:flex-start;padding:2px 6px;border-radius:6px;background:#f4eff8;color:#72548c;font-size:10px;font-style:normal;font-weight:900}
.map-project-group-list{display:flex;max-height:320px;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;padding-right:2px}
.map-project-group-item{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;padding:8px 2px;border-bottom:1px solid #edf1f3}
.map-project-group-item:last-child{border-bottom:0}
.map-project-group-num{display:flex;width:20px;height:20px;align-items:center;justify-content:center;margin-top:1px;border-radius:50%;background:#f1f5f7;color:#607682;font-size:9px;font-weight:950}
.map-project-group-item>div{display:flex;min-width:0;flex-direction:column;gap:2px}
.map-project-group-item b{color:#243f4e;font-size:12px;line-height:1.35;font-weight:900}
.map-project-group-item small{color:#748791;font-size:10px;line-height:1.35;font-weight:700}
.map-project-group-fullname{color:#506975!important}
.map-project-group-item .map-dev-popup-link{align-self:flex-start;margin-top:1px;font-size:9px}
@media(max-width:760px){.map-apartment-marker.is-complex.is-housing-project .map-housing-project-card{min-width:108px;max-width:162px;min-height:37px;gap:5px;padding:4px 7px 4px 5px}.map-housing-project-copy b{max-width:128px;font-size:10px}.map-housing-project-copy small{max-width:128px;font-size:9px}}

/* ===== Development point icon markers 2026-10-07 ===== */
.smart-leaflet-icon.map-dev-icon-wrap{background:transparent!important;border:0!important}
.map-dev-icon-marker{position:relative;display:flex;width:31px;height:31px;align-items:center;justify-content:center;transform:translate(-50%,-100%);border:2px solid #fff;border-radius:10px 10px 10px 3px;background:var(--dev-color,#607d8b);box-shadow:0 4px 11px rgba(31,55,69,.28);color:#fff}
.map-dev-icon-marker::after{content:'';position:absolute;left:5px;bottom:-7px;width:0;height:0;border-top:8px solid var(--dev-color,#607d8b);border-right:8px solid transparent;filter:drop-shadow(0 1px 0 #fff)}
.map-dev-icon-marker svg{display:block;width:20px;height:20px;overflow:visible}
.map-dev-icon-marker svg *{vector-effect:non-scaling-stroke}
.leaflet-marker-icon.map-dev-icon-wrap{overflow:visible!important}
@media(max-width:760px){.map-dev-icon-marker{width:29px;height:29px;border-radius:9px 9px 9px 3px}.map-dev-icon-marker svg{width:18px;height:18px}}

/* Mobile-friendly transit station hit area: keep icon compact, tap target >= 48px. */
.leaflet-marker-icon.map-transit-station-hit{
  width:48px!important;height:48px!important;
  background:transparent!important;border:0!important;
  overflow:visible!important;
  touch-action:manipulation;
}
.map-transit-station-hit .map-dev-icon-marker{
  position:absolute;left:50%;top:50%;
  transform:translate(-50%,-50%);
}
@media(max-width:760px){
  .leaflet-marker-icon.map-transit-station-hit{width:52px!important;height:52px!important}
  .map-transit-station-hit .map-dev-icon-marker{width:31px;height:31px}
  .map-transit-station-hit .map-dev-icon-marker svg{width:19px;height:19px}
}

.map-development-swatch.is-intercity{background:#4B5563}

.leaflet-marker-icon.map-transit-station-hit{pointer-events:auto!important;cursor:pointer!important;-webkit-tap-highlight-color:transparent;}
.leaflet-marker-icon.map-transit-station-hit .map-dev-icon-marker{pointer-events:none;}

/* ===== Development icon refresh 2026-10-07 ===== */
.map-dev-icon-marker{
  width:34px;height:34px;
  border:2px solid rgba(255,255,255,.98);
  border-radius:12px 12px 12px 4px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--dev-color,#607d8b) 88%,#fff 12%),var(--dev-color,#607d8b));
  box-shadow:0 5px 14px rgba(22,43,57,.24),0 1px 2px rgba(22,43,57,.16);
}
.map-dev-icon-marker::after{
  left:5px;bottom:-6px;
  border-top:7px solid var(--dev-color,#607d8b);
  border-right:7px solid transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.95));
}
.map-dev-icon-marker svg{width:20px;height:20px;filter:drop-shadow(0 1px 0 rgba(0,0,0,.08))}
.leaflet-marker-icon.map-dev-icon-wrap{transition:filter .14s ease}
.leaflet-marker-icon.map-dev-icon-wrap:hover{filter:brightness(1.04)}

/* 역 아이콘은 말풍선보다 노선 배지처럼 원형으로 표시 */
.map-transit-station-hit .map-dev-icon-marker{
  width:34px;height:34px;
  border-radius:50%;
  box-shadow:0 0 0 2px rgba(255,255,255,.72),0 5px 15px rgba(22,43,57,.26);
}
.map-transit-station-hit .map-dev-icon-marker::after{display:none}
.map-transit-station-hit .map-dev-icon-marker svg{width:20px;height:20px}
@media(max-width:760px){
  .map-dev-icon-marker{width:32px;height:32px;border-radius:11px 11px 11px 4px}
  .map-dev-icon-marker svg{width:19px;height:19px}
  .map-transit-station-hit .map-dev-icon-marker{width:34px;height:34px;border-radius:50%}
  .map-transit-station-hit .map-dev-icon-marker svg{width:20px;height:20px}
}

.map-development-swatch.is-transport{background:#0ea5a4}

/* ===== Main map all-infra + education/living overlay 2026-10-07 ===== */
.map-development-control{width:204px}
.map-development-options{max-height:calc(100dvh - 190px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.map-development-group-title{margin:4px 3px 1px;padding:7px 3px 4px;border-top:1px solid #e8edf0;color:#536d7d;font-size:10px;font-weight:950;letter-spacing:.02em}
.map-development-group-title.is-life{color:#2f6f8f}
.map-development-options label>span{min-width:0;flex:1}
.map-development-options label>small{flex:0 0 auto;padding:1px 5px;border-radius:99px;background:#f1f5f7;color:#82919b;font-size:9px;font-weight:900}
.map-development-zoom-note{padding:6px 4px 2px;color:#87969f;font-size:9px;font-weight:750;line-height:1.4}
.map-development-swatch.is-edu-elementary{background:#16a34a}
.map-development-swatch.is-edu-middle{background:#0d9488}
.map-development-swatch.is-edu-high{background:#2563eb}
.map-development-swatch.is-edu-university{background:#7c3aed}
.map-development-swatch.is-edu-academy{background:#ea580c}
.map-development-swatch.is-life-shopping{background:#db2777}
.map-development-swatch.is-life-market{background:#0891b2}
.map-development-swatch.is-life-convenience{background:#475569}
.map-amenity-icon-wrap{background:transparent!important;border:0!important}
.map-amenity-icon-marker{display:flex;width:28px;height:28px;align-items:center;justify-content:center;border:2px solid #fff;border-radius:50%;background:var(--amenity-color,#64748b);box-shadow:0 2px 8px rgba(27,48,61,.28);color:#fff;font-size:10px;font-weight:950;pointer-events:none}
.map-amenity-popup>small{line-height:1.45}
@media(min-width:761px) and (max-width:1000px){.map-development-control{width:190px}}
@media(max-width:760px){
  .map-development-options{width:190px;max-height:calc(100dvh - 165px);overflow-y:auto}
  .map-development-group-title{padding-top:6px}
  .map-development-options label>small{font-size:8px;padding:1px 4px}
}
.map-amenity-icon-marker{position:relative}
.map-amenity-icon-wrap.is-grouped .map-amenity-icon-marker{box-shadow:0 2px 9px rgba(27,48,61,.30),0 0 0 2px rgba(255,255,255,.82)}
.map-amenity-count{
  position:absolute;right:-9px;top:-9px;z-index:3;display:flex;min-width:20px;height:20px;align-items:center;justify-content:center;
  padding:0 5px;border:2px solid #fff;border-radius:999px;background:#203946;color:#fff;
  box-shadow:0 2px 6px rgba(18,38,50,.28);font-size:10px;line-height:16px;font-weight:950;letter-spacing:-.2px
}
.map-amenity-group-leaflet-popup .leaflet-popup-content{width:min(340px,calc(100vw - 64px))!important;min-width:270px!important;max-width:340px!important;margin:11px 12px}
.map-amenity-group-popup{display:flex;flex-direction:column;gap:8px;color:#405a68}
.map-amenity-group-head{display:flex;flex-direction:column;gap:3px;padding-bottom:7px;border-bottom:1px solid #e4ebef}
.map-amenity-group-head>b{color:#203f52;font-size:14px;line-height:1.25;font-weight:950}
.map-amenity-group-head>small{color:#71838d;font-size:10px;line-height:1.35;font-weight:750}
.map-amenity-group-list{display:flex;max-height:300px;overflow-y:auto;overscroll-behavior:contain;flex-direction:column;padding-right:2px}
.map-amenity-group-item{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;padding:8px 2px;border-bottom:1px solid #edf1f3}
.map-amenity-group-item:last-child{border-bottom:0}
.map-amenity-group-num{display:flex;width:20px;height:20px;align-items:center;justify-content:center;margin-top:1px;border-radius:50%;background:#f1f5f7;color:#607682;font-size:9px;font-weight:950}
.map-amenity-group-item>div{display:flex;min-width:0;flex-direction:column;gap:2px}
.map-amenity-group-item b{color:#243f4e;font-size:12px;line-height:1.35;font-weight:900;word-break:keep-all}
.map-amenity-group-item small{color:#748791;font-size:10px;line-height:1.35;font-weight:700}
.map-amenity-group-item .map-dev-popup-link{align-self:flex-start;margin-top:1px;font-size:9px}
.map-amenity-icon-marker svg{width:18px;height:18px;display:block;color:#fff;stroke:currentColor}
@media(max-width:760px){.map-amenity-icon-marker svg{width:17px;height:17px}}

/* ===== Development marker click target fix 2026-10-07 ===== */
.leaflet-marker-icon.map-dev-click-hit{
  width:48px!important;
  height:48px!important;
  background:transparent!important;
  border:0!important;
  overflow:visible!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.map-dev-click-hit .map-dev-icon-marker{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  pointer-events:none!important;
}
@media(max-width:760px){
  .leaflet-marker-icon.map-dev-click-hit{
    width:52px!important;
    height:52px!important;
  }
}

/* ===== Location control: keep clear of right-side infra panel 2026-10-07 ===== */
.leaflet-bottom.leaflet-left .map-location-control{
  position:relative!important;
  z-index:1500!important;
  margin-left:14px!important;
  margin-bottom:56px!important;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
@media(max-width:760px){
  .leaflet-bottom.leaflet-left .map-location-control{
    margin-left:12px!important;
    margin-bottom:70px!important;
  }
}

/* Planned railway: deliberately distinguish precise OSM reference tracks
   from unconfirmed corridor guides. Stations are reference markers, not survey points. */
.map-rail-popup{min-width:210px;max-width:335px;gap:6px}
.map-rail-popup>small,.map-rail-popup>span{font-size:12px!important;line-height:1.5}
.map-rail-popup>em{font-size:12px!important}
.map-rail-uncertainty{display:block;background:#fcf8ff;border:1px solid #eaddf4;border-radius:8px;padding:6px 8px;color:#715489!important}
.map-rail-station-list{margin-top:5px;border:1px solid #e3e8ef;border-radius:8px;background:#f8fafc;padding:7px 9px;font-size:12px}
.map-rail-station-list>summary{cursor:pointer;font-weight:900;color:#334f66;line-height:1.5}
.map-rail-station-list>div{display:flex;flex-direction:column;gap:5px;padding-top:8px;max-height:200px;overflow-y:auto}
.map-rail-station-list>div>span{font-size:12px;border-bottom:1px solid #e8eef3;padding-bottom:4px}
.map-rail-station-list small{font-size:12px;color:#805a9f}
.leaflet-tooltip.map-rail-station-label{padding:4px 7px;border:1px solid #d5c4e8;border-radius:7px;background:#fffdfd;color:#644184;font-size:12px;font-weight:850;box-shadow:0 2px 7px #37274918;pointer-events:none}
.leaflet-tooltip.map-rail-line-tooltip{padding:5px 8px;border-radius:7px;background:#fff;color:#583c78;font-size:12px;font-weight:850}


/* Apartment/aggregate map markers: real Leaflet layout bounds, precise card hit
   regions and a dedicated top pane (2026-10-12). The old 1x1 divIcon made
   clicks on the visually oversized label intermittent near other map layers. */
.leaflet-marker-icon.map-apartment-hit{
  background:transparent!important;
  border:0!important;
  overflow:visible!important;
  pointer-events:none!important;
  -webkit-tap-highlight-color:transparent;
}
.leaflet-marker-icon.map-apartment-hit>.map-apartment-marker{
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  width:1px!important;
  height:1px!important;
  transform:translate(-50%,-50%)!important;
  pointer-events:none!important;
}
.leaflet-marker-icon.map-apartment-hit .map-apartment-group-card,
.leaflet-marker-icon.map-apartment-hit .map-complex-price-card{
  pointer-events:auto!important;
  cursor:pointer!important;
  touch-action:manipulation;
}
.leaflet-marker-icon.map-apartment-hit .map-apartment-selected-label{
  pointer-events:none!important;
}


/* Planned railway stations use DOM hit targets, never a full-map Canvas
   covering airport and other POI markers in lower Leaflet panes. */
.leaflet-marker-icon.map-plan-rail-station-hit{
  display:flex!important;align-items:center!important;justify-content:center!important;
  width:32px!important;height:32px!important;
  padding:0!important;border:0!important;background:transparent!important;
  cursor:pointer!important;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.map-plan-rail-station-dot{
  display:block;box-sizing:border-box;
  width:13px;height:13px;border:2px solid #fff;border-radius:50%;
  background:var(--rail-color,#795bb0);
  box-shadow:0 0 0 1px rgba(75,57,97,.48),0 2px 5px rgba(32,36,49,.24);
  pointer-events:none;
}
.map-plan-rail-station-hit.is-verified .map-plan-rail-station-dot{
  width:14px;height:14px;border-color:var(--rail-color,#795bb0);
  background:#fff;box-shadow:0 0 0 2px #fff,0 2px 5px rgba(32,36,49,.24);
}
@media(max-width:760px){
  .leaflet-marker-icon.map-plan-rail-station-hit{width:36px!important;height:36px!important}
}

/* Planned/construction railway labels (2026-10-12).
   All hit testing passes through; only the line and station markers are clickable. */
.leaflet-railLabel-pane,
.leaflet-railLabel-pane *{
  pointer-events:none!important;
}
.leaflet-marker-icon.map-rail-name-icon{
  width:1px!important;height:1px!important;
  overflow:visible!important;
  background:transparent!important;border:0!important;
  pointer-events:none!important;
}
.map-rail-name-card{
  position:absolute;left:0;top:0;
  transform:translate(-50%,-50%);
  display:inline-flex;align-items:center;gap:5px;
  max-width:235px;min-height:27px;
  padding:4px 6px 4px 9px;border-radius:9px;
  border:1.5px solid #805caf;background:rgba(255,255,255,.96);
  color:#63438d;box-shadow:0 2px 8px rgba(34,30,56,.18);
  font-size:12px;line-height:1.15;white-space:nowrap;
  user-select:none;pointer-events:none!important;
}
.map-rail-name-card>b{
  min-width:0;max-width:165px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:12px;font-weight:900;
}
.map-rail-name-card>em{
  flex:none;display:inline-flex;align-items:center;
  padding:3px 5px;border-radius:6px;
  background:#efe7f8;color:#6a4698;
  font-size:11px;font-style:normal;font-weight:900;
}
.map-rail-name-card.is-construction{border-color:#d77b29;color:#a35b16}
.map-rail-name-card.is-construction>em{background:#fff0de;color:#ad5c10}
@media(max-width:760px){
  .map-rail-name-card{max-width:185px;padding:4px 5px 4px 7px;gap:4px;min-height:25px}
  .map-rail-name-card>b{max-width:117px;font-size:12px}
  .map-rail-name-card>em{padding:3px 4px;font-size:11px}
}
