.custom-map { position: relative; width: 100%; height: auto; overflow: auto; max-width: 100%; max-height: 80vh; border-radius: 14px; box-shadow: 0 6px 24px rgba(0,0,0,0.15), 0 1.5px 6px #c6c8c9; background: #f7f9fb; border: none; padding: 24px 0 24px 0; } .custom-map #map-container.dragging { cursor: grabbing; } .custom-map #map-viewport { display: block !important; width: auto !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; } .custom-map #main-map { display: block; width: auto !important; height: auto !important; max-width: none !important; max-height: none !important; min-width: 0 !important; min-height: 0 !important; } .custom-map #pins { position: absolute; top: 0; left: 0; pointer-events: none; /* Clicks fall through to map image */ } .custom-map .pin { position: absolute; width: 64px; height: 64px; transform: translate(-50%, -100%); /* Center bottom point on location */ pointer-events: auto; /* Pins remain clickable */ z-index: 10; transition: transform 0.1s; cursor: pointer; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.15)); } .custom-map .pin:hover { transform: translate(-50%, -120%) scale(1.1); filter: drop-shadow(0 6px 18px rgba(0,104,207,0.15)) brightness(1.15); z-index: 18; } .custom-map .pin img { width: 100%; height: 100%; display: block; border-radius: 10px; user-select: none; } .pin-label { display: block; min-width: 45px; max-width: 168px; margin-top: 7px; font-size: 1rem; font-weight: 500; color: #1452b9; background: #fff; border-radius: 24px; padding: 2px 10px; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,0.11); text-align: center; pointer-events: none; /* so clicks go to the pin anchor */ opacity: 0.90; position: absolute; left: 50%; transform: translate(-50%, 0%); z-index: 15; border: 1.5px solid #dde7fa; } .pin:hover .pin-label { opacity: 1; background: #f3f8ff; color: #1d4ba0; } .pin-highlight { animation: pinPulse 0.8s ease; } @keyframes pinPulse { 0% { box-shadow: 0 0 0 0px rgba(45,156,219,0.52);} 80% { box-shadow: 0 0 0 18px rgba(45,156,219,0);} 100% { box-shadow: 0 0 0 0px rgba(45,156,219,0);} }