:root{--hs-map-green:#087f5b;--hs-map-ink:#17332b;--hs-map-muted:#687a74;--hs-map-border:#dfe9e5}
body.homestay-map-page{padding:0!important;overflow:hidden;background:#e8efec;color:var(--hs-map-ink)}
.homestay-map-page .navbar{height:68px;background:linear-gradient(135deg,#064e3b,#087f5b)!important;box-shadow:0 5px 20px rgba(6,78,59,.2)}
#map{height:calc(100dvh - 68px);z-index:1}
.sidebar{height:calc(100dvh - 68px);overflow-y:auto;border-left:1px solid var(--hs-map-border);background:#f7faf8}
.sidebar-head{position:sticky;top:0;z-index:10;padding:14px;border-bottom:1px solid #e2ebe7;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}
.sidebar-handle{display:none;width:44px;height:5px;margin:0 auto 10px;border-radius:99px;background:#ccd8d3}
.property-results-count{color:var(--hs-map-muted);font-size:12px}
.map-location-status{display:flex;align-items:center;gap:7px;margin-bottom:10px;padding:7px 9px;border:1px solid #e1ebe7;border-radius:10px;background:#f7faf8;color:var(--hs-map-muted);font-size:11px}.map-location-status>span{min-width:0;flex:1}.map-location-status>i{color:var(--hs-map-green)}.map-location-status .btn{padding:0;color:var(--hs-map-green);font-size:11px;text-decoration:none}.map-location-status.is-active{border-color:#a9dac7;background:#eefaf5;color:#176347}.map-location-status.is-loading>i{animation:hsMapPulse 1s ease-in-out infinite}.map-location-status.is-error{background:#fffaf0;color:#80652b}@keyframes hsMapPulse{50%{opacity:.35}}
.property-card{margin:8px;padding:14px;border:1px solid #e2ebe7;border-radius:16px;background:#fff;box-shadow:0 5px 18px rgba(23,51,43,.06);cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.property-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(23,51,43,.1)}.property-card:focus-visible{outline:3px solid rgba(8,127,91,.2);outline-offset:1px}.property-card .small{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;margin-top:4px}.distance{display:inline-flex;align-items:center;gap:4px;margin-top:9px;padding:4px 8px;border-radius:999px;background:#e4f6ee;color:var(--hs-map-green);font-size:12px;font-weight:800}
.map-popup-content{min-width:220px}.map-popup-distance{margin-top:8px;padding:6px 8px;border-radius:8px;background:#eaf8f2;color:var(--hs-map-green);font-size:12px;font-weight:750}.leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 12px 35px rgba(15,40,31,.18)}
.map-loading-card{padding:14px;margin:8px;border-radius:16px;background:#fff}.map-loading-line{height:12px;margin-bottom:9px;border-radius:99px;background:linear-gradient(90deg,#e5ece9 25%,#f8faf9 50%,#e5ece9 75%);background-size:200% 100%;animation:hsMapShimmer 1.1s infinite}.map-loading-line.short{width:62%}@keyframes hsMapShimmer{to{background-position:-200% 0}}
.map-empty{display:flex;min-height:170px;align-items:center;justify-content:center;flex-direction:column;gap:7px;margin:8px;padding:24px;border-radius:16px;background:#fff;color:var(--hs-map-muted);text-align:center}.map-empty>i{font-size:1.8rem;color:#9aacA4}
.map-fab{position:fixed;right:14px;bottom:18px;z-index:900;display:none;border:0;border-radius:999px!important;box-shadow:0 10px 28px rgba(6,78,59,.28)}
.map-gps-loading{position:fixed;inset:0;z-index:9999;display:none;align-items:center;justify-content:center;background:#00000066}.map-gps-loading__card{padding:20px 30px;border-radius:12px;background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.2);text-align:center}
@media(max-width:767.98px){.homestay-map-page .navbar{height:60px}.homestay-map-page .navbar-brand{max-width:48vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#map{height:calc(100dvh - 60px)}.sidebar{position:fixed;top:auto;right:0;bottom:0;left:0;width:100%;height:min(62dvh,580px);z-index:1000;border:0;border-radius:22px 22px 0 0;box-shadow:0 -12px 35px rgba(19,49,38,.18);transform:translateY(calc(100% - 68px));transition:transform .28s ease}.sidebar.show{transform:translateY(0)}.sidebar-handle{display:block}.sidebar-head{border-radius:22px 22px 0 0}.map-fab{display:inline-flex;align-items:center;gap:7px}.sidebar.show~.map-fab{display:none}.property-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.property-card,.sidebar{transition:none}.map-loading-line,.map-location-status.is-loading>i{animation:none}}
