:root{--amber:#ffb000;--obsidian:#0a0a0b;--font-mono:"JetBrains Mono", ui-monospace, monospace;--red:#ff3b30;--matrix:#00ff41;--gold:#d4af37}.mpin{width:28px;height:28px;font-family:var(--font-mono);color:#000;border:2px solid var(--obsidian);cursor:pointer;pointer-events:auto;z-index:20;border-radius:50%;place-items:center;font-size:9px;font-weight:700;display:grid;position:relative}.mpin.cluster{background:var(--amber);width:38px;height:38px;font-size:10px}.mpin.stack{color:#000;border:2px solid var(--obsidian);width:36px;height:36px;font-size:12px;box-shadow:0 0 0 2px #ffb00073,0 0 12px #ffb00059}.mpin.stack:after{content:"≡";background:var(--amber);color:#000;border:1px solid var(--obsidian);pointer-events:none;border-radius:50%;place-items:center;width:16px;height:16px;font-size:11px;font-weight:700;line-height:1;display:grid;position:absolute;bottom:-6px;right:-6px}.mpin.bam{background:var(--amber)}.mpin.scb{background:var(--gold)}.mpin.led{background:var(--red);color:#fff}.mpin.kbank{background:#66d9a3}.mpin.gsb{background:var(--matrix)}.mpin.bay{color:#fff;background:#9d7cff}.mpin.ghb{color:#fff;background:#4a9eff}.mpin.ttb{color:#fff;background:#00c2d4}.mpin.sam{background:#ff8a3c}.mpin.ktb{color:#fff;background:#ff4d8d}.mpin.lh{background:#b3e436}.mpin.jam{color:#000;background:#eab308}.mpin.iam{color:#fff;background:#f0a}.mpin.mbk{color:#000;background:#5ec8ff}.mpin.rcam{color:#fff;background:#6366f1}.mpin.alpha{color:#fff;background:#f97316}.mpin.baania{color:#fff;background:#a78bfa}.mpin.bbl{color:#fff;background:#00529c;border-color:#70b7ff}.mpin.arunamc{color:#fff;background:#0f766e;border-color:#5eead4}.mpin.primezone{color:#111;background:#f05a28;border-color:#ffad82}.mpin.swpamc{color:#fff;background:#0b5cab;border-color:#93c5fd}.mpin.xspring{color:#fff;background:#0d6938;border-color:#86efac}.mpin.chayo{color:#fff;background:#00a6a6;border-color:#6ee7e7}.mpin.pbamc{color:#fff;background:#547b64;border-color:#a8c2b3}.mpin.capitalsure{color:#111;background:#cba368;border-color:#f4d9a2}.mpin.ddproperty{color:#fff;background:#c20000}.mpin.propertyhub{color:#111;background:#f58220}.mpin.oneatlaz{color:#031317;background:#22d3ee;border-color:#cffafe;box-shadow:0 0 0 2px #22d3ee42,0 0 12px #22d3ee61}.mpin-new-ring{border-radius:inherit;pointer-events:none;border:2px solid #69f0ae;position:absolute;inset:-5px;box-shadow:0 0 0 3px #69f0ae2e}.mpin-new-badge{border:1px solid var(--obsidian);color:#07110b;min-width:25px;height:13px;font-family:var(--font-mono);letter-spacing:.2px;pointer-events:none;z-index:2;background:#69f0ae;border-radius:7px;place-items:center;padding:0 4px;font-size:7px;font-weight:800;line-height:1;display:grid;position:absolute;top:-9px;right:calc(100% - 4px);box-shadow:0 2px 5px #0000008c}.mpin-ns3k-badge{border:1px solid var(--obsidian);background:var(--amber);min-width:max-content;height:14px;color:var(--obsidian);font-family:"Sarabun", var(--font-mono);white-space:nowrap;pointer-events:none;z-index:3;border-radius:7px;place-items:center;padding:0 5px;font-size:8px;font-weight:700;line-height:1;display:grid;position:absolute;top:calc(100% - 3px);left:50%;transform:translate(-50%);box-shadow:0 2px 5px #0000008c}.mpin-rent-badge{border:1px solid var(--obsidian);color:#fff;min-width:max-content;height:14px;font-family:"Sarabun", var(--font-mono);white-space:nowrap;pointer-events:none;z-index:3;background:#2563eb;border-radius:7px;place-items:center;padding:0 5px;font-size:8px;font-weight:700;line-height:1;display:grid;position:absolute;top:calc(100% - 3px);right:calc(100% - 4px);box-shadow:0 2px 5px #0000008c}.mpin.rental-cluster{color:#fff;background:#1d4ed8;border-color:#93c5fd}.mpin.pulse{animation:1.8s infinite pulseRing}.mpin.starred{outline:2px solid var(--amber);outline-offset:2px;box-shadow:0 0 0 3px #ffb00033}.mpin.starred:after{content:"★";background:var(--amber);color:#000;width:16px;height:16px;font-size:10px;font-family:var(--font-mono);box-shadow:0 0 0 1px var(--obsidian);pointer-events:none;border-radius:50%;place-items:center;line-height:1;display:grid;position:absolute;top:-8px;right:-8px}.mpin.selected{outline-offset:2px;z-index:25;outline:2px solid #fff;animation:1.4s ease-in-out infinite selectedPulse;transform:scale(1.3);box-shadow:0 0 0 4px #ffb00059,0 0 18px #ffb000e6}.mpin.selected:before{content:"▼";color:var(--amber);text-shadow:0 0 6px #ffb000, 0 0 14px #ffb000d9, 0 0 22px #ffb0008c, 0 2px 0 var(--obsidian);pointer-events:none;z-index:11;font-size:32px;line-height:1;animation:.9s ease-in-out infinite arrowBounce;position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%)}@keyframes selectedPulse{0%,to{box-shadow:0 0 0 4px #ffb00059,0 0 18px #ffb000e6}50%{box-shadow:0 0 0 6px #ffb00026,0 0 24px #ffb000}}@keyframes arrowBounce{0%,to{opacity:1;transform:translate(-50%)translateY(0)}50%{opacity:.9;transform:translate(-50%)translateY(-10px)}}.vertex-dot{cursor:grab;pointer-events:auto;background:#ffcf33;border:3px solid #050505;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 3px #ffb00052,0 0 14px #ffb000f2,0 2px 8px #000000d9}.vertex-dot:hover,.vertex-dot-active{background:#fff1a6;transform:scale(1.22)}.vertex-dot:active{cursor:grabbing}@keyframes pulseRing{0%{box-shadow:0 0 #00ff418c}70%{box-shadow:0 0 0 16px #00ff4100}to{box-shadow:0 0 #00ff4100}}.map-target{border:2px solid var(--amber);width:32px;height:32px;color:var(--amber);appearance:none;cursor:pointer;z-index:9;background:#ffb00014;border-radius:50%;padding:0;animation:1.4s ease-in-out infinite targetPulse;position:relative;box-shadow:0 0 0 3px #ffb00040,0 0 18px #ffb000e6}.map-target:focus-visible{outline-offset:5px;outline:3px solid #fff}.map-target:before,.map-target:after{content:"";background:var(--amber);pointer-events:none;position:absolute}.map-target:before{height:2px;top:50%;left:-10px;right:-10px;transform:translateY(-50%);box-shadow:0 0 6px #ffb000e6}.map-target:after{width:2px;top:-10px;bottom:-10px;left:50%;transform:translate(-50%);box-shadow:0 0 6px #ffb000e6}@keyframes targetPulse{0%,to{box-shadow:0 0 0 3px #ffb00040,0 0 18px #ffb000e6}50%{box-shadow:0 0 0 10px #ffb00014,0 0 32px #ffb000}}.map-current-location{pointer-events:none;z-index:12;background:#1688ff;border:3px solid #fff;border-radius:50%;width:18px;height:18px;box-shadow:0 0 0 7px #1688ff38,0 2px 10px #0000007a}.map-current-location.is-last-known{background:#7f8b96;box-shadow:0 0 0 7px #7f8b9633,0 2px 10px #0000007a}.sold-area-marker{color:#080808;cursor:pointer;font-family:var(--font-mono);pointer-events:auto;z-index:30;background:#f59e0bb8;border:1px solid #ffffffd9;border-radius:50%;place-items:center;padding:0;font-size:10px;font-weight:800;line-height:1;display:grid;position:relative;box-shadow:0 0 0 4px #f59e0b2e,0 0 18px #f59e0b73}.sold-area-marker:hover{background:#f59e0bf0;box-shadow:0 0 0 6px #f59e0b38,0 0 24px #f59e0bb3}.sold-pin-marker-anchor{cursor:pointer;pointer-events:auto;z-index:31;place-items:center;display:grid;position:relative}.map-overview-zoom .sold-area-marker,.map-overview-zoom .sold-pin-marker-anchor{z-index:8}.map-overview-zoom .mpin{z-index:20}.sold-pin-marker{color:#1a1200;min-width:30px;height:22px;font-family:var(--font-mono);white-space:nowrap;transform-origin:50%;background:#f59e0b;border:2px solid #fff;border-radius:11px;place-items:center;padding:0 6px;font-size:10px;font-weight:700;line-height:1;transition:transform .12s,box-shadow .12s,background .12s;display:grid;box-shadow:0 0 0 3px #f59e0b38,0 0 14px #f59e0bb8}.sold-pin-marker.fresh{color:#fff;background:#ef4444;box-shadow:0 0 0 3px #ef444442,0 0 14px #ef4444bf}.sold-pin-marker-anchor:hover .sold-pin-marker,.sold-pin-marker-anchor.selected .sold-pin-marker{background:#fbbf24;animation:1.35s ease-in-out infinite soldPinPulse;box-shadow:0 0 0 9px #f59e0b47,0 0 32px #f59e0b}@keyframes soldPinPulse{0%,to{transform:scale(1);box-shadow:0 0 0 3px #f59e0b42,0 0 16px #f59e0bc2}50%{transform:scale(1.18);box-shadow:0 0 0 11px #f59e0b14,0 0 34px #f59e0b}}@media (prefers-reduced-motion:reduce){.mpin.pulse,.mpin.selected,.mpin.selected:before,.map-target,.sold-pin-marker-anchor:hover .sold-pin-marker,.sold-pin-marker-anchor.selected .sold-pin-marker{animation:none}}
