/*
 * Public listing map styles.
 * These intentionally duplicate the active map rules in app.css for now.
 * Remove the originals from app.css only after this file has been verified in production.
 */

.listing-map-workspace{display:flex;height:calc(100dvh - 134px);min-height:620px;flex-direction:column}
.listing-map-titlebar{display:flex;flex:0 0 auto;align-items:flex-end;justify-content:space-between;margin-bottom:14px}
.listing-map-titlebar h2{margin:4px 0 3px;font-size:27px}
.listing-map-titlebar p{margin:0;color:var(--muted);font-size:12px}
.listing-map-titlebar>div:last-child{display:flex;gap:8px}
.listing-map-toolbar{position:relative;z-index:20;display:grid;flex:0 0 auto;grid-template-columns:minmax(220px,320px) minmax(130px,1.2fr) minmax(125px,1fr) repeat(6,minmax(95px,1fr)) auto;gap:8px;margin-bottom:10px;padding:9px 12px;border:1px solid #dbe3e6;border-radius:8px;background:#f7f9f9}
.listing-map-toolbar.public-only{grid-template-columns:minmax(220px,320px) minmax(130px,1.2fr) minmax(125px,1fr) repeat(5,minmax(95px,1fr)) auto}
.listing-map-toolbar select,.listing-map-search,.map-price-trigger,.map-filter-trigger{width:100%;height:42px;border:1px solid #cfdadd;border-radius:9px;color:#294451;background-color:#fff;font-size:13px;line-height:1;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease}
.listing-map-toolbar select{min-width:0;padding:0 40px 0 14px;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='17' height='17' viewBox='0 0 24 24' fill='none' stroke='%23445f6c' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 13px center;background-size:17px;font-weight:700;line-height:42px;cursor:pointer}
.listing-map-toolbar select:hover,.map-price-trigger:hover,.map-filter-trigger:hover{border-color:#91aaa4;color:#08785a;background-color:#f8fcfa;box-shadow:0 3px 10px rgba(18,62,55,.06)}
.listing-map-toolbar select.filter-active,.map-price-trigger.filter-active,.map-filter-trigger.filter-active{border-color:#11ad82;color:#08785a;background-color:#eefaf6;font-weight:800}
.listing-map-search{display:flex;align-items:center;gap:8px;padding:4px 5px 4px 14px}
.listing-map-search span{display:grid;width:18px;height:18px;flex:0 0 18px;place-items:center;color:#0aaa80}
.listing-map-search svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.listing-map-search input{width:100%;min-width:0;border:0;outline:0;color:#243b49;background:transparent;font-size:13px;line-height:1.4}
.listing-map-search button{height:32px;flex:0 0 auto;padding:0 17px;border:0;border-radius:6px;color:#fff;background:#153d52;font-size:12px;font-weight:900;line-height:1;cursor:pointer;transition:background .16s ease,transform .16s ease}
.listing-map-search button:hover{background:#087f62;transform:translateY(-1px)}
.listing-map-toolbar>[data-map-reset]{display:flex;height:42px;align-items:center;justify-content:center;gap:6px;padding:0 15px;border-color:#d84e55;border-radius:9px;color:#fff;background:#d84e55;font-size:13px;line-height:1;white-space:nowrap;box-shadow:0 3px 9px rgba(216,78,85,.16)}
.listing-map-toolbar>[data-map-reset]:hover{border-color:#bd3f46;color:#fff;background:#bd3f46}
.listing-map-toolbar>[data-map-reset] svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.map-mobile-filter-toggle,.map-mobile-filter-head{display:none}

.listing-map-board{display:grid;min-height:0;flex:1 1 auto;grid-template-columns:minmax(0,1fr) 370px;overflow:hidden;border:1px solid #d7e0e3;border-radius:8px;background:#fff;box-shadow:0 4px 18px rgba(19,43,57,.05)}
.listing-map-board.map-results-collapsed{grid-template-columns:minmax(0,1fr)}
.listing-map-board.map-results-collapsed .listing-map-results{display:none}
.listing-map-canvas-wrap{position:relative;min-width:0;background:#e8eeee}
.listing-map-canvas{position:absolute;inset:0}
.listing-map-canvas-wrap.map-tool-active .listing-complex-overlay,.listing-map-canvas-wrap.map-tool-active .listing-region-overlay,.listing-map-canvas-wrap.map-tool-active .listing-map-pin{pointer-events:none}
.listing-map-status{position:absolute;right:14px;bottom:14px;z-index:4;max-width:calc(100% - 28px);padding:10px 13px;border:1px solid #cae4dc;border-radius:5px;color:#08785a;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(17,43,56,.12);font-size:13px;font-weight:700;line-height:1.45}
.listing-map-status[data-state=error]{border-color:#edc6c0;color:#a64035}
.listing-map-status[data-state=warning]{border-color:#ead6a7;color:#8a641d}
.listing-map-legend{position:absolute;top:14px;left:14px;z-index:4;display:flex;gap:11px;padding:8px 11px;border:1px solid rgba(22,48,63,.1);border-radius:4px;background:rgba(255,255,255,.94);box-shadow:0 3px 12px rgba(17,43,56,.09)}
.listing-map-legend span{display:flex;align-items:center;gap:5px;color:#526572;font-size:12px;font-weight:700}
.listing-map-legend i{width:9px;height:9px;border-radius:50%;background:#d85257}
.listing-map-legend i.jeonse{background:#10aa7e}
.listing-map-legend i.monthly{background:#526fc2}
.listing-map-tools{position:absolute;z-index:8;display:flex;gap:7px;pointer-events:none}
.listing-map-tools button{display:flex;align-items:center;justify-content:center;border:1px solid rgba(28,58,72,.18);color:#294957;background:rgba(255,255,255,.97);box-shadow:0 4px 15px rgba(12,42,55,.15);font-family:inherit;font-weight:850;cursor:pointer;pointer-events:auto;transition:border-color .15s ease,color .15s ease,background .15s ease,transform .15s ease}
.listing-map-tools button:hover{border-color:#20ad86;color:#08775a;background:#f5fffb;transform:translateY(-1px)}
.listing-map-tools button.active,.listing-map-tools button[aria-pressed=true]{border-color:#0d9772;color:#fff;background:#0d9772;box-shadow:0 5px 16px rgba(7,121,91,.23)}
.listing-map-tools button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.listing-map-tools-left{top:59px;left:14px;flex-direction:column}
.listing-map-tools-left>button{width:54px;height:52px;flex-direction:column;gap:3px;border-radius:8px;font-size:10px;line-height:1}
.listing-map-tools-right{top:14px;right:14px;align-items:flex-end;flex-direction:column}
.listing-map-tools-right>button{width:48px;height:48px;flex-direction:column;gap:2px;border-radius:8px;font-size:10px;line-height:1}
.listing-map-type,.listing-map-zoom{display:flex;overflow:hidden;border:1px solid rgba(28,58,72,.18);border-radius:8px;background:#fff;box-shadow:0 4px 15px rgba(12,42,55,.15);pointer-events:auto}
.listing-map-type button,.listing-map-zoom button{border:0;border-radius:0;box-shadow:none}
.listing-map-type button{width:44px;height:38px;font-size:11px}
.listing-map-type button+button,.listing-map-zoom button+button{border-left:1px solid #dce5e6}
.listing-map-zoom button{width:42px;height:40px;font-size:24px;font-weight:500;line-height:1}
.listing-map-tool-toast{position:absolute;bottom:18px;left:50%;z-index:12;max-width:calc(100% - 180px);padding:10px 15px;border:1px solid rgba(16,58,72,.12);border-radius:999px;color:#fff;background:rgba(19,52,70,.93);box-shadow:0 7px 22px rgba(9,32,45,.24);font-size:12px;font-weight:800;line-height:1.4;text-align:center;transform:translateX(-50%)}
.listing-map-tool-toast[hidden]{display:none}
.listing-map-roadview{position:absolute;top:12px;right:74px;bottom:12px;z-index:11;width:min(520px,48%);overflow:hidden;border:1px solid #b7cfca;border-radius:10px;background:#fff;box-shadow:0 15px 40px rgba(9,37,50,.28)}
.listing-map-roadview[hidden]{display:none}
.listing-map-roadview>header{position:absolute;top:0;right:0;left:0;z-index:2;display:grid;min-height:58px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:9px 10px 9px 14px;color:#fff;background:rgba(19,52,70,.94)}
.listing-map-roadview>header strong{font-size:14px}.listing-map-roadview>header span{overflow:hidden;color:#bfe4d9;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.listing-map-roadview>header button{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(255,255,255,.28);border-radius:7px;color:#fff;background:rgba(255,255,255,.08);font-size:22px;line-height:1;cursor:pointer}
.listing-map-roadview>[data-map-roadview-canvas]{position:absolute;inset:0}
.listing-map-distance-label{padding:7px 10px;border:2px solid #fff;border-radius:7px;color:#fff;background:#153449;box-shadow:0 4px 13px rgba(11,38,51,.25);font-size:11px;font-weight:800;line-height:1.45;text-align:center;white-space:nowrap}
.listing-map-distance-label strong{display:block;color:#61e0b8;font-size:15px}
.listing-map-location-dot{width:22px;height:22px;border:4px solid #fff;border-radius:50%;background:#2585df;box-shadow:0 0 0 8px rgba(37,133,223,.2),0 3px 10px rgba(8,52,91,.35)}
.listing-map-measure-dot{display:block;width:14px;height:14px;border:3px solid #fff;border-radius:50%;background:#0d9772;box-shadow:0 2px 8px rgba(7,91,69,.35)}
.listing-map-results{display:flex;height:100%;min-width:0;min-height:0;overflow:hidden;flex-direction:column;border-left:1px solid #dce3e6;background:#f8fafb}
.listing-map-results>header{display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;padding:17px 18px;border-bottom:1px solid #dce3e6;background:#fff}
.listing-map-results>header strong,.listing-map-results>header small{display:block}
.listing-map-results>header strong{color:#1b3444;font-size:18px}
.listing-map-results>header small{margin-top:5px;color:#83919a;font-size:12px;line-height:1.45}
.listing-map-results>header>b{color:#0a9972;font-size:13px}
.listing-map-results>header>b span{font-size:23px}
.listing-map-cards{min-height:0;flex:1 1 auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:10px;scrollbar-gutter:stable}
.listing-map-card{margin-bottom:8px;padding:14px;border:1px solid #dce4e7;border-radius:6px;background:#fff;box-shadow:0 2px 6px rgba(25,48,62,.025);cursor:pointer;outline:0;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.listing-map-card:hover,.listing-map-card.active{transform:translateY(-1px);border-color:#18ad84;box-shadow:0 7px 20px rgba(16,74,61,.11)}
.listing-map-card.active{border-left:4px solid #10af82}
.listing-map-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.listing-map-card-head em{color:#87949c;font-size:12px;font-style:normal}
.listing-map-card-media{position:relative;height:128px;overflow:hidden;margin:-14px -14px 13px;border-radius:5px 5px 0 0;background:#e8efed}
.listing-map-card-media>img{display:block;width:100%;height:100%;object-fit:cover}
.listing-map-card-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:#56707b;background:linear-gradient(145deg,#edf3f2,#dce7e4)}
.listing-map-card-placeholder i{position:relative;display:block;width:54px;height:39px;border:3px solid #78928d;border-radius:6px;font-style:normal}
.listing-map-card-placeholder i:before{position:absolute;top:7px;left:8px;width:10px;height:10px;border-radius:50%;background:#78928d;content:""}
.listing-map-card-placeholder i:after{position:absolute;right:7px;bottom:6px;width:27px;height:19px;background:linear-gradient(135deg,transparent 48%,#78928d 49% 67%,transparent 68%),linear-gradient(45deg,transparent 42%,#78928d 43% 62%,transparent 63%);content:""}
.listing-map-card-placeholder strong{font-size:11px;font-weight:800}
.listing-map-photo-count{position:absolute;right:9px;bottom:9px;padding:5px 8px;border-radius:5px;color:#fff;background:rgba(13,42,55,.82);font-size:10px;font-style:normal;font-weight:800;line-height:1}
.listing-map-card h3{margin:10px 0 3px;color:#173143;font-size:16px}
.listing-map-card h3 small{margin-left:4px;color:#526773;font-size:11px}
.listing-map-card>p{overflow:hidden;margin:0;color:#819099;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.listing-map-card-price{display:flex;align-items:center;gap:8px;margin:12px 0}
.listing-map-card-price strong{color:#173143;font-size:16px}
.listing-map-card .deal-badge.sell{color:#ae4048;background:#ffedef}
.listing-map-card .deal-badge.full_rent{color:#08785a;background:#e4f8f1}
.listing-map-card .deal-badge.month_rent,.listing-map-card .deal-badge.short_rent{color:#3d61b8;background:#e9efff}
.listing-map-card dl{display:grid;grid-template-columns:1.55fr 1fr .85fr;margin:0;padding:10px 0;border-top:1px solid #edf1f2;border-bottom:1px solid #edf1f2}
.listing-map-card dl.without-status{grid-template-columns:1.3fr 1fr}
.listing-map-card dl div{min-width:0;padding:0 8px;border-left:1px solid #edf1f2}
.listing-map-card dl div:first-child{padding-left:0;border:0}
.listing-map-card dt{color:#89969e;font-size:12px}
.listing-map-card dd{overflow:hidden;margin:4px 0 0;color:#425762;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.listing-map-card>a{display:flex;align-items:center;justify-content:space-between;margin-top:10px;color:#08785a;font-size:12px;font-weight:800}
.listing-map-empty{padding:70px 20px;color:#6d7e88;text-align:center;font-size:15px;line-height:1.6}
.listing-map-empty small{display:block;margin-top:7px;color:#96a1a8;font-size:12px}

/* Price, area and detail filter popovers. */
.map-price-filter,.map-secondary-filter{position:relative;min-width:0;height:42px}
.map-price-trigger,.map-filter-trigger{display:flex;align-items:center;justify-content:space-between;gap:9px;padding:0 13px 0 14px;font-weight:700;line-height:1;text-align:left;cursor:pointer}
.map-price-trigger>span,.map-filter-trigger>span{display:flex;height:100%;min-width:0;align-items:center}
.map-price-trigger i{display:grid;width:15px;height:15px;flex:0 0 15px;place-items:center;font-style:normal}
.map-price-trigger svg,.map-filter-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.map-price-trigger[aria-expanded=true] svg,.map-filter-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.map-price-popover,.map-filter-popover{position:absolute;top:50px;right:0;z-index:60;width:min(470px,calc(100vw - 32px));overflow:hidden;border:1px solid #d4e0e2;border-radius:12px;background:#fff;box-shadow:0 20px 55px rgba(15,42,56,.22)}
.map-filter-popover{width:min(440px,calc(100vw - 32px))}
.map-detail-popover{width:min(520px,calc(100vw - 32px))}
.map-price-popover[hidden],.map-filter-popover[hidden]{display:none!important}
.map-price-popover>header,.map-filter-popover>header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px 14px;border-bottom:1px solid #e2e9eb}
.map-price-popover>header strong,.map-filter-popover>header strong{display:block;color:#173244;font-size:18px}
.map-price-popover>header small,.map-filter-popover>header small{display:block;margin-top:5px;color:#7b8d96;font-size:12px;line-height:1.45}
.map-price-popover>header button,.map-filter-popover>header button{display:grid;width:31px;height:31px;flex:0 0 31px;place-items:center;border:0;border-radius:8px;color:#6f828b;background:#f0f4f4;font-size:22px;line-height:1;cursor:pointer}
.map-price-popover>header button:hover,.map-filter-popover>header button:hover{color:#08785a;background:#e2f6f0}
.map-price-groups{max-height:min(590px,calc(100dvh - 225px));overflow-y:auto;padding:0 20px}
.map-price-group{padding:16px 0;border-bottom:1px solid #e4eaec}
.map-price-group:last-child{border-bottom:0}
.map-price-group>header{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}
.map-price-group>header strong{color:#29424f;font-size:13px}
.map-price-group>header span{padding:4px 7px;border-radius:5px;color:#6e8089;background:#f0f4f4;font-size:10px;font-weight:800}
.map-price-group.filter-active>header span{color:#08785a;background:#e5f7f1}
.map-price-presets,.map-area-presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.map-area-presets{grid-template-columns:repeat(5,minmax(0,1fr))}
.map-price-presets button,.map-area-presets button,.map-detail-group button{min-height:35px;padding:6px;border:1px solid #d6e1e3;border-radius:7px;color:#425c68;background:#f9fbfb;font-size:11px;font-weight:800;cursor:pointer}
.map-area-presets button{padding-right:3px;padding-left:3px;font-size:10px;letter-spacing:-.35px;white-space:nowrap}
.map-price-presets button:hover,.map-price-presets button.active,.map-area-presets button:hover,.map-area-presets button.active,.map-detail-group button:hover,.map-detail-group button.active{border-color:#12ad82;color:#08785a;background:#eaf8f4}
.map-price-inputs,.map-filter-inputs{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:10px}
.map-filter-inputs{padding-top:12px}
.map-price-inputs label,.map-filter-inputs label{display:grid;gap:5px}
.map-price-inputs label span,.map-filter-inputs label span{color:#788a93;font-size:10px;font-weight:700}
.map-price-inputs input,.map-filter-inputs input{width:100%;height:37px;min-width:0;padding:0 10px;border:1px solid #d2dee1;border-radius:6px;outline:0}
.map-price-inputs input:focus,.map-filter-inputs input:focus{border-color:#18ad84;box-shadow:0 0 0 3px rgba(24,173,132,.1)}
.map-price-inputs b,.map-filter-inputs b{padding-bottom:10px;color:#85949b;font-size:12px}
.map-price-inputs em,.map-filter-inputs em{padding-bottom:10px;color:#647883;font-size:10px;font-style:normal;font-weight:800}
.map-area-pair-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:14px 20px 12px;border-bottom:1px solid #e6ecee;background:#f8fbfa}
.map-area-pair-tabs button{min-height:36px;padding:6px 8px;border:1px solid #d5e1e3;border-radius:7px;color:#536b75;background:#fff;font-size:11px;font-weight:800;cursor:pointer}
.map-area-pair-tabs button:hover,.map-area-pair-tabs button.active{border-color:#83cfba;color:#08785a;background:#e9f8f3;box-shadow:0 2px 7px rgba(10,115,86,.07)}
.map-area-pair-panels{max-height:min(490px,calc(100dvh - 250px));overflow-y:auto;padding:0 20px}
.map-area-pair-panel[hidden]{display:none}
.map-area-field{padding:15px 0;border-bottom:1px solid #e5ebed}
.map-area-field:last-child{border-bottom:0}
.map-area-field-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.map-area-field-head strong{color:#29434f;font-size:13px}
.map-area-field-head span{padding:4px 7px;border-radius:5px;color:#6d7f88;background:#eef3f3;font-size:10px;font-weight:800}
.map-area-field.filter-active .map-area-field-head span{color:#08785a;background:#e5f7f1}
.map-price-popover>footer,.map-filter-popover>footer{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:13px 20px 18px;border-top:1px solid #e2e9eb}
.map-price-popover>footer button,.map-filter-popover>footer button{height:40px;border:1px solid #d4dfe2;border-radius:7px;color:#526975;background:#fff;font-size:12px;font-weight:800;cursor:pointer}
.map-price-popover>footer .map-price-apply,.map-filter-popover>footer .map-filter-done{border-color:#153d52;color:#fff;background:#153d52}
.map-price-popover>footer button:hover,.map-filter-popover>footer button:hover{border-color:#0aa77d;color:#08785a}
.map-price-popover>footer .map-price-apply:hover,.map-filter-popover>footer .map-filter-done:hover{border-color:#0a9972;color:#fff;background:#0a9972}
.map-detail-popover{padding-bottom:0}
.map-detail-group{padding:14px 20px;border-bottom:1px solid #e5ebed}
.map-detail-group>strong{display:block;margin-bottom:9px;color:#344e5a;font-size:12px}
.map-detail-group>div{display:flex;flex-wrap:wrap;gap:6px}
.map-detail-group button{min-width:72px;padding:6px 10px}

/* Public map shell. */
.public-map-page{height:100dvh;overflow:hidden;background:#f2f5f5}
.public-listing-map{height:calc(100dvh - 64px);min-height:0;padding:0}
.public-listing-map .listing-map-toolbar{margin:0;padding:9px 12px;border-width:0 0 1px;border-radius:0}
.public-listing-map .listing-map-board{border-width:0;border-radius:0;box-shadow:none}
.public-listing-map .listing-map-results{border-left:1px solid #dce3e6}
.public-listing-map .listing-map-canvas-wrap{border-radius:0}
.public-map-card h3{font-size:16px}

/* Compact single-line listing markers. */
.listing-map-pin{--pin-accent:#df5358;position:relative;display:flex;width:auto;height:38px;align-items:center;padding:0 10px;border:2px solid #fff;border-radius:11px;color:#fff;background:#153449;box-shadow:0 5px 14px rgba(15,42,56,.28);font-family:inherit;line-height:1;cursor:pointer;transform:translateY(-8px);transition:transform .15s ease,box-shadow .15s ease,background .15s ease}
.listing-map-pin:after{position:absolute;bottom:-6px;left:50%;width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;background:#153449;content:'';transform:translateX(-50%) rotate(45deg)}
.listing-map-pin .listing-map-pin-icon{display:none!important}
.listing-map-pin .listing-map-pin-text{position:relative;z-index:1;display:flex;min-width:0;flex-direction:row;align-items:center;gap:6px;transform:none}
.listing-map-pin-text small{padding:4px 6px;border-radius:5px;color:#fff;background:var(--pin-accent);font-size:10px;font-weight:900;line-height:1}
.listing-map-pin-text strong{color:#fff;font-size:14px;font-weight:900;letter-spacing:0}
.public-listing-map .listing-map-pin-text small{font-size:10px}
.public-listing-map .listing-map-pin-text strong{font-size:14px}
.listing-map-pin.full_rent{--pin-accent:#10aa7e}
.listing-map-pin.month_rent,.listing-map-pin.short_rent{--pin-accent:#526fc2}
.listing-map-pin:hover{z-index:3;background:#0b9f78;box-shadow:0 8px 20px rgba(9,84,66,.34);transform:translateY(-9px)}
.listing-map-pin.active{z-index:4;border-color:#78e4c4;background:#0b9f78;box-shadow:0 7px 18px rgba(9,84,66,.36);transform:translateY(-8px)}
.listing-map-pin:hover:after,.listing-map-pin.active:after{background:#0b9f78}
.listing-map-pin:hover .listing-map-pin-text small,.listing-map-pin.active .listing-map-pin-text small{color:#153449;background:#fff}

/* Complex-level inventory markers and summary card. */
.listing-map-cluster{display:flex;width:58px;height:58px;align-items:center;justify-content:center;flex-direction:column;border:3px solid #fff;border-radius:50%;color:#fff;background:#087f65;box-shadow:0 0 0 6px rgba(8,127,101,.2),0 8px 22px rgba(9,62,57,.28);font-family:inherit;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease}
.listing-map-cluster:hover,.listing-map-cluster:focus-visible{box-shadow:0 0 0 8px rgba(8,127,101,.24),0 10px 25px rgba(9,62,57,.32);transform:scale(1.06)}
.listing-map-cluster strong{font-size:17px;font-weight:900;line-height:1}
.listing-map-cluster small{margin-top:2px;font-size:9px;font-weight:800;line-height:1}
.listing-complex-overlay{position:relative;display:grid;width:66px;height:66px;place-items:center;font-family:inherit}
.listing-region-overlay{position:relative;display:grid;min-width:104px;height:56px;place-items:center;font-family:inherit}
.listing-region-marker{display:flex;min-width:96px;height:46px;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:3px solid #fff;border-radius:24px;color:#fff;background:#078665;box-shadow:0 7px 18px rgba(9,86,67,.28);cursor:pointer;white-space:nowrap;transition:transform .16s ease,box-shadow .16s ease}
.listing-region-marker strong{font-size:14px;font-weight:950;letter-spacing:-.03em}.listing-region-marker span{display:flex;align-items:baseline;gap:2px;color:#d8fff3;font-size:10px;font-weight:800}.listing-region-marker b{color:#fff;font-size:16px}.listing-region-marker:hover{box-shadow:0 10px 23px rgba(9,86,67,.38);transform:translateY(-2px) scale(1.04)}
.listing-region-overlay.city .listing-region-marker{background:#076b82}.listing-region-overlay.district .listing-region-marker{background:#087d68}.listing-region-overlay.neighborhood .listing-region-marker{background:#0a946e}
.listing-complex-marker{position:relative;display:flex;width:52px;height:42px;align-items:center;justify-content:center;flex-direction:column;border:2px solid #fff;border-radius:13px;color:#0b3c32;background:linear-gradient(145deg,#79dfc0,#34bd96);box-shadow:0 5px 14px rgba(8,75,60,.22);cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.listing-complex-marker:after{position:absolute;bottom:-6px;left:50%;width:10px;height:10px;border-right:2px solid #fff;border-bottom:2px solid #fff;background:#3fc19a;content:'';transform:translateX(-50%) rotate(45deg)}
.listing-complex-marker strong{font-size:16px;font-weight:950;line-height:1}
.listing-complex-marker small{margin-top:2px;color:#176b56;font-size:9px;font-weight:900;line-height:1}
.listing-complex-marker:hover,.listing-complex-overlay.open .listing-complex-marker{border-color:#d9fff3;box-shadow:0 8px 18px rgba(7,93,70,.28);transform:translateY(-2px) scale(1.04)}
.listing-complex-marker.has-image{padding:2px;border:2px solid #b8dcd2;background:#fff}
.listing-complex-marker.has-image:after{border-color:#b8dcd2;background:#fff}
.listing-complex-marker.has-image img{position:relative;z-index:1;display:block;width:34px;height:34px;border-radius:9px;object-fit:contain}
.listing-complex-marker.has-image:hover,.listing-complex-overlay.open .listing-complex-marker.has-image{border-color:#0fa87e;background:#fff}
.listing-complex-count{position:absolute;top:-7px;right:-7px;z-index:2;display:grid;min-width:21px;height:21px;place-items:center;padding:0 5px;border:2px solid #fff;border-radius:11px;color:#fff;background:#087e61;box-shadow:0 2px 6px rgba(9,68,54,.2);font-size:10px;font-weight:900;line-height:1}
.listing-complex-name{position:absolute;top:53px;left:50%;display:block;max-width:150px;overflow:hidden;padding:4px 9px;border:1px solid rgba(21,102,82,.12);border-radius:999px;color:#21453d;background:rgba(255,255,255,.96);box-shadow:0 2px 6px rgba(18,54,47,.11);font-size:11px;font-weight:800;line-height:1.15;text-align:center;text-overflow:ellipsis;white-space:nowrap;transform:translateX(-50%);pointer-events:none}
.listing-complex-overlay:hover .listing-complex-name,.listing-complex-overlay.open .listing-complex-name{color:#076d53;border-color:#79ccb4;background:#fff;box-shadow:0 3px 9px rgba(12,90,69,.16)}
.listing-complex-popup{position:absolute;bottom:72px;left:50%;z-index:50;width:286px;overflow:hidden;border:1px solid #bcdad2;border-radius:11px;background:#fff;box-shadow:0 14px 36px rgba(12,39,52,.23);transform:translateX(-50%)}
.listing-complex-popup[hidden]{display:none}
.listing-complex-popup:after{position:absolute;bottom:-7px;left:50%;width:13px;height:13px;border-right:1px solid #bcdad2;border-bottom:1px solid #bcdad2;background:#fff;content:'';transform:translateX(-50%) rotate(45deg)}
.listing-complex-popup header{position:relative;display:block;min-height:54px;padding:12px 48px 10px 14px;color:#fff;background:#153449}
.listing-complex-popup header small,.listing-complex-popup header strong{display:block}
.listing-complex-popup header small{margin-bottom:4px;color:#66dfbb;font-size:9px;font-weight:900;letter-spacing:.12em}
.listing-complex-popup header strong{font-size:14px;line-height:1.3}
.listing-complex-popup header>button{position:absolute;top:10px;right:10px;z-index:2;display:block;width:28px;height:28px;padding:0;border:1px solid rgba(255,255,255,.34);border-radius:7px;color:transparent;background:rgba(255,255,255,.08);font-size:0;line-height:0;cursor:pointer;transform:none}
.listing-complex-popup header>button:before,.listing-complex-popup header>button:after{position:absolute;top:50%;left:50%;width:14px;height:2px;border-radius:2px;background:#fff;content:'';transform-origin:center}
.listing-complex-popup header>button:before{transform:translate(-50%,-50%) rotate(45deg)}
.listing-complex-popup header>button:after{transform:translate(-50%,-50%) rotate(-45deg)}
.listing-complex-popup header>button:hover{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.16)}
.listing-complex-popup header>button:focus-visible{outline:2px solid #73e5c3;outline-offset:2px}
.listing-complex-popup ul{margin:0;padding:6px 13px;list-style:none}.listing-complex-info ul{margin:0;padding:9px 15px;list-style:none}
.listing-complex-popup li,.listing-complex-info li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:9px;padding:11px 0;border-bottom:1px solid #edf2f1;font-size:13px}
.listing-complex-popup li{grid-template-columns:48px minmax(0,1fr) auto;gap:7px;padding:8px 0;font-size:12px}
.listing-complex-popup li:last-child,.listing-complex-info li:last-child{border-bottom:0}
.listing-complex-popup li,.listing-complex-info li{--deal-color:#08785a;--deal-bg:#e6f7f2}
.listing-complex-popup li[data-deal="sell"],.listing-complex-info li[data-deal="sell"]{--deal-color:#c53f4d;--deal-bg:#ffedef}
.listing-complex-popup li[data-deal="full_rent"],.listing-complex-info li[data-deal="full_rent"]{--deal-color:#08785a;--deal-bg:#e5f8f2}
.listing-complex-popup li[data-deal="month_rent"],.listing-complex-info li[data-deal="month_rent"]{--deal-color:#5555b8;--deal-bg:#efefff}
.listing-complex-popup li[data-deal="short_rent"],.listing-complex-info li[data-deal="short_rent"]{--deal-color:#98600a;--deal-bg:#fff3dc}
.listing-complex-popup li span,.listing-complex-info li span{display:inline-flex;width:max-content;min-width:38px;height:24px;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;color:var(--deal-color);background:var(--deal-bg);font-size:12px;font-weight:900;line-height:1;white-space:nowrap}
.listing-complex-popup li span{min-width:36px;height:22px;padding:0 7px;font-size:11px}
.listing-complex-popup li strong,.listing-complex-info li strong{overflow:hidden;color:#203b49;text-overflow:ellipsis;white-space:nowrap}
.listing-complex-popup li em,.listing-complex-info li em{display:inline-flex;min-width:36px;height:28px;align-items:center;justify-content:center;padding:0 9px;border-radius:999px;color:var(--deal-color);background:var(--deal-bg);font-size:13px;font-style:normal;font-weight:900;line-height:1;white-space:nowrap}
.listing-complex-popup li em{min-width:32px;height:24px;padding:0 8px;font-size:12px}
.listing-complex-show{display:flex;width:calc(100% - 26px);height:38px;align-items:center;justify-content:center;margin:0 13px 13px;border:0;border-radius:7px;color:#fff;background:#0d8f6d;font-size:12px;font-weight:900;cursor:pointer}
.listing-complex-show:hover{background:#086f56}
.listing-complex-info{width:280px;padding:14px;border:1px solid #bcdad2;border-radius:10px;background:#fff;box-shadow:0 16px 42px rgba(12,39,52,.23);font-family:inherit}
.listing-complex-info>strong{display:block;padding:0 4px 7px;color:#183646;font-size:15px}.listing-complex-info>small{display:block;padding:6px 4px 0;color:#08785a;font-size:10px;font-weight:900}

/* Real-transaction map layer, modelled after the 80-port map workflow. */
.listing-map-real-panel{position:absolute;top:14px;right:76px;z-index:9;width:316px;overflow:hidden;border:1px solid rgba(20,60,74,.2);border-radius:13px;background:rgba(255,255,255,.98);box-shadow:0 12px 34px rgba(9,35,47,.2);font-family:inherit;backdrop-filter:blur(12px)}
.listing-map-real-panel[hidden]{display:none}
.listing-map-real-panel header{display:flex;align-items:center;justify-content:space-between;padding:14px 15px 10px}
.listing-map-real-panel header small,.listing-map-real-panel header strong{display:block}.listing-map-real-panel header small{margin-bottom:3px;color:#0b9270;font-size:9px;font-weight:900;letter-spacing:.13em}.listing-map-real-panel header strong{color:#173746;font-size:18px}
.listing-map-real-panel header>button{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:8px;color:#60757e;background:#eef3f4;font-size:21px;cursor:pointer}
.listing-map-real-panel>p{margin:0;padding:0 15px 9px;color:#73858d;font-size:11px;font-weight:700}
.listing-map-real-panel>div{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:0 15px 14px}
.listing-map-real-panel>div button{display:flex;height:36px;align-items:center;justify-content:space-between;padding:0 11px;border:1px solid #d9e3e5;border-radius:8px;color:#536872;background:#fff;font-size:12px;font-weight:800;cursor:pointer}
.listing-map-real-panel>div button b{display:grid;width:18px;height:18px;place-items:center;border-radius:50%;color:transparent;background:#edf2f3;font-size:10px}
.listing-map-real-panel>div button.active{border-color:#75cfb5;color:#08785a;background:#effbf7}.listing-map-real-panel>div button.active b{color:#fff;background:#0ba27b}
.listing-map-real-panel footer{display:flex;align-items:center;justify-content:space-between;padding:10px 15px;border-top:1px solid #e6ecee;color:#7b8b92;background:#f7f9f9;font-size:10px}.listing-map-real-panel footer strong{color:#08785a;font-size:11px}
.real-trade-mode .listing-map-results{display:none}.real-trade-mode .listing-map-board{grid-template-columns:minmax(0,1fr)}
.listing-real-region-overlay,.listing-real-complex-overlay{font-family:inherit}
.listing-real-region-marker{display:flex;min-width:116px;min-height:54px;align-items:center;justify-content:center;flex-direction:column;padding:7px 15px;border:3px solid #fff;border-radius:28px;color:#fff;background:#087d68;box-shadow:0 8px 21px rgba(8,72,62,.3);cursor:pointer;white-space:nowrap}
.listing-real-region-marker strong{font-size:14px;font-weight:950}.listing-real-region-marker span{margin-top:2px;color:#d9fff4;font-size:11px;font-weight:800}.listing-real-region-marker b{color:#fff;font-size:13px}
.listing-real-complex-overlay{position:relative;display:grid;min-width:126px;place-items:center}
.listing-real-complex-marker{position:relative;display:flex;min-width:112px;min-height:50px;align-items:center;justify-content:center;flex-direction:column;padding:7px 13px;border:3px solid #fff;border-radius:13px;color:#fff;background:#087d68;box-shadow:0 7px 18px rgba(7,67,57,.28);cursor:pointer}
.listing-real-complex-marker:after{position:absolute;bottom:-7px;left:50%;width:12px;height:12px;border-right:3px solid #fff;border-bottom:3px solid #fff;background:#087d68;content:'';transform:translateX(-50%) rotate(45deg)}
.listing-real-complex-marker small{position:relative;z-index:1;color:#cffff1;font-size:9px;font-weight:800}.listing-real-complex-marker strong{position:relative;z-index:1;margin-top:2px;font-size:14px;font-weight:950}
.listing-real-popup{position:absolute;bottom:68px;left:50%;z-index:60;width:310px;overflow:hidden;border:1px solid #b9d9d1;border-radius:12px;background:#fff;box-shadow:0 16px 42px rgba(10,34,45,.25);transform:translateX(-50%)}
.listing-real-popup[hidden]{display:none}.listing-real-popup header{position:relative;padding:13px 45px 11px 14px;color:#fff;background:#153449}.listing-real-popup header small,.listing-real-popup header strong{display:block}.listing-real-popup header small{color:#65dfba;font-size:9px;font-weight:900;letter-spacing:.12em}.listing-real-popup header strong{margin-top:3px;font-size:15px}.listing-real-popup header button{position:absolute;top:11px;right:11px;width:29px;height:29px;border:1px solid rgba(255,255,255,.28);border-radius:7px;color:#fff;background:rgba(255,255,255,.08);font-size:18px;cursor:pointer}
.listing-real-popup ul{max-height:240px;overflow:auto;margin:0;padding:5px 13px;list-style:none}.listing-real-popup li{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:7px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1f2;color:#526670;font-size:10px}.listing-real-popup li:last-child{border-bottom:0}.listing-real-popup li span{display:inline-flex;height:22px;align-items:center;justify-content:center;border-radius:999px;color:#08785a;background:#e5f8f2;font-weight:900}.listing-real-popup li.sell span{color:#c53f4d;background:#ffedef}.listing-real-popup li strong{color:#183744;font-size:12px;text-align:right}.listing-real-popup li em{font-style:normal;white-space:nowrap}

@media(min-width:761px){
    body:has(.listing-map-workspace){overflow:hidden}
    .admin-main:has(.listing-map-workspace){height:100dvh;overflow:hidden}
    .admin-content:has(.listing-map-workspace){height:calc(100dvh - 72px);max-width:none;padding:18px 24px}
}
@media(max-width:1250px){
    .listing-map-toolbar,.listing-map-toolbar.public-only{grid-template-columns:repeat(5,minmax(0,1fr))}
    .listing-map-search{grid-column:span 2}
    .listing-map-toolbar>[data-map-reset]{grid-column:auto}
}
@media(max-width:1050px){
    .listing-map-toolbar,.listing-map-toolbar.public-only{grid-template-columns:1fr 1fr 1fr}
    .listing-map-search{grid-column:1/-1}
    .listing-map-board{grid-template-columns:minmax(0,1fr) 320px}
}
@media(max-width:760px){
    .public-map-page{height:auto;overflow:auto}
    .listing-map-workspace,.public-listing-map{height:auto;min-height:0;padding:0}
    .listing-map-titlebar{align-items:flex-start;flex-direction:column;gap:12px}
    .listing-map-toolbar,.listing-map-toolbar.public-only{position:sticky;top:98px;z-index:70;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin:0;padding:8px;border-width:0 0 1px;border-radius:0;background:rgba(255,255,255,.97);box-shadow:0 4px 13px rgba(16,42,55,.08);backdrop-filter:blur(10px)}
    .listing-map-toolbar>select,.listing-map-toolbar>.map-price-filter,.listing-map-toolbar>.map-secondary-filter,.listing-map-toolbar>[data-map-status-filter],.listing-map-toolbar>[data-map-reset],.listing-map-toolbar>.map-mobile-filter-head{display:none}
    .listing-map-search{grid-column:1;min-width:0}
    .listing-map-search input{font-size:14px}
    .map-mobile-filter-toggle{display:flex;width:58px;height:42px;align-items:center;justify-content:center;gap:4px;border:1px solid #cddadd;border-radius:9px;color:#294956;background:#fff;font-size:12px;font-weight:900;cursor:pointer}
    .map-mobile-filter-toggle svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
    .listing-map-toolbar.mobile-filters-open,.listing-map-toolbar.public-only.mobile-filters-open{position:fixed;top:auto;right:8px;bottom:8px;left:8px;z-index:210;display:grid;max-height:calc(100dvh - 116px);grid-template-columns:1fr 1fr;gap:8px;overflow-x:hidden;overflow-y:auto;margin:0;padding:12px;border:1px solid #cfdbde;border-radius:16px;background:#fff;box-shadow:0 22px 65px rgba(8,29,41,.34);backdrop-filter:none}
    .listing-map-toolbar.mobile-filters-open>.map-mobile-filter-head{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;padding:0 2px 4px}
    .map-mobile-filter-head strong{color:#183747;font-size:17px}
    .map-mobile-filter-head button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:8px;color:#536b76;background:#edf3f3;font-size:23px;line-height:1;cursor:pointer}
    .listing-map-toolbar.mobile-filters-open>.listing-map-search{display:flex;grid-column:1/-1}
    .listing-map-toolbar.mobile-filters-open>select,.listing-map-toolbar.mobile-filters-open>.map-price-filter,.listing-map-toolbar.mobile-filters-open>.map-secondary-filter,.listing-map-toolbar.mobile-filters-open>[data-map-status-filter]{display:block}
    .listing-map-toolbar.mobile-filters-open>.map-mobile-filter-toggle{display:none}
    .listing-map-toolbar.mobile-filters-open>[data-map-reset]{display:flex;grid-column:1/-1;grid-row:auto}
    .listing-map-toolbar.mobile-filters-open select,.listing-map-toolbar.mobile-filters-open .map-price-trigger,.listing-map-toolbar.mobile-filters-open .map-filter-trigger{font-size:15px}
    body.map-mobile-filters-visible{overflow:hidden}
    body.map-mobile-filters-visible:before{position:fixed;z-index:200;inset:0;background:rgba(8,28,40,.48);content:'';backdrop-filter:blur(2px)}
    .listing-map-toolbar .map-secondary-filter:last-of-type,.listing-map-toolbar [data-map-status-filter]{grid-row:auto}
    .listing-map-board{display:flex;height:auto;min-height:0;flex-direction:column;border-radius:0}
    .listing-map-board.map-results-collapsed .listing-map-results{display:none}
    .listing-map-canvas-wrap{height:calc(100dvh - 158px);min-height:430px}
    .listing-map-tools-left{top:58px;left:10px;gap:5px}
    .listing-map-tools-left>button{width:48px;height:46px;border-radius:7px}
    .listing-map-tools-right{top:10px;right:10px;gap:5px}
    .listing-map-type button{width:40px;height:36px}
    .listing-map-zoom{display:none}
    .listing-map-tools-right>button{width:44px;height:44px}
    .listing-map-real-panel{top:58px;right:10px;width:min(316px,calc(100% - 20px))}
    .listing-map-tool-toast{bottom:12px;max-width:calc(100% - 24px);width:max-content;font-size:11px}
    .listing-map-roadview{top:62px;right:10px;bottom:10px;left:68px;width:auto}
    .listing-map-results{max-height:none;border-top:1px solid #dce3e6;border-left:0}
    .listing-map-cards{max-height:none}
    .listing-map-titlebar>div:last-child{width:100%}
    .listing-map-titlebar .btn{flex:1}
    .map-price-popover,.map-filter-popover,.map-detail-popover{position:fixed;top:auto;right:10px;bottom:10px;left:10px;z-index:220;width:auto;max-height:calc(100dvh - 20px)}
    .map-price-groups{max-height:calc(100dvh - 175px)}
    .map-area-presets{grid-template-columns:repeat(2,minmax(0,1fr))}
    .map-area-pair-tabs{padding-right:14px;padding-left:14px}
    .map-area-pair-panels{max-height:calc(100dvh - 240px);padding-right:14px;padding-left:14px}
}

@media(max-width:420px){
    .listing-map-toolbar,.listing-map-toolbar.public-only{gap:6px;padding:7px}
    .listing-map-search{padding-left:11px}
    .listing-map-search button{padding-right:12px;padding-left:12px}
    .listing-map-legend{top:10px;left:10px;gap:8px;padding:7px 9px}
    .listing-map-canvas-wrap{min-height:420px}
}
