99 lines
2.2 KiB
CSS
99 lines
2.2 KiB
CSS
.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);}
|
|
} |