/* ── Glowing marker base ── */
.custom-marker-start,
.custom-marker-end {
    background: transparent !important;
    border: none !important;
}

.pulse-dot {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Glow ring (pseudo-element) */
.pulse-dot::before {
    content: "";
    position: absolute;
    top: -12px;
    left: -12px;
    right: -12px;
    bottom: -12px;
    border-radius: 50%;
    animation-duration: 1.6s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: infinite;
}

/* Start dot */
.start-dot {
    background: radial-gradient(circle at 30% 30%, #66ffbb, #00cc77);
    border: 2px solid #00ff88;
    box-shadow: 0 0 12px rgba(0, 255, 136, 0.7);
}
.start-dot::before {
    animation-name: pulseGlowGreen;
    box-shadow:
        0 0 10px rgba(0, 255, 136, 0.6),
        0 0 30px rgba(0, 255, 136, 0.3);
}

/* End dot */
.end-dot {
    background: radial-gradient(circle at 30% 30%, #ff7777, #dd2222);
    border: 2px solid #ff4444;
    box-shadow: 0 0 12px rgba(255, 68, 68, 0.7);
}
.end-dot::before {
    animation-name: pulseGlowRed;
    box-shadow:
        0 0 10px rgba(255, 68, 68, 0.6),
        0 0 30px rgba(255, 68, 68, 0.3);
}

/* Inner sparkle */
.pulse-dot::after {
    content: "";
    position: absolute;
    top: 5px;
    left: 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.7);
    filter: blur(1px);
}

/* Keyframes for green pulse */
@keyframes pulseGlowGreen {
    0% {
        transform: scale(1);
        opacity: 0.8;
        box-shadow:
            0 0 8px rgba(0, 255, 136, 0.7),
            0 0 25px rgba(0, 255, 136, 0.4);
    }
    50% {
        transform: scale(1.4);
        opacity: 1;
        box-shadow:
            0 0 25px rgba(0, 255, 136, 1),
            0 0 60px rgba(0, 255, 136, 0.8),
            0 0 100px rgba(0, 255, 136, 0.4);
    }
    100% {
        transform: scale(1);
        opacity: 0.8;
        box-shadow:
            0 0 8px rgba(0, 255, 136, 0.7),
            0 0 25px rgba(0, 255, 136, 0.4);
    }
}

/* Keyframes for red pulse */
@keyframes pulseGlowRed {
    0% {
        transform: scale(1);
        opacity: 0.8;
        box-shadow:
            0 0 8px rgba(255, 68, 68, 0.7),
            0 0 25px rgba(255, 68, 68, 0.4);
    }
    50% {
        transform: scale(1.4);
        opacity: 1;
        box-shadow:
            0 0 25px rgba(255, 68, 68, 1),
            0 0 60px rgba(255, 68, 68, 0.8),
            0 0 100px rgba(255, 68, 68, 0.4);
    }
    100% {
        transform: scale(1);
        opacity: 0.8;
        box-shadow:
            0 0 8px rgba(255, 68, 68, 0.7),
            0 0 25px rgba(255, 68, 68, 0.4);
    }
}
