.gacs-tracking-map {
    min-height: 320px;
    height: 100%;
    width: 100%;
    border-radius: 1rem;
    z-index: 0;
}

.gacs-tracking-map--compact {
    min-height: 280px;
}

.gacs-tracking-map--full {
    min-height: min(70vh, 560px);
}

.gacs-live-pulse {
    animation: gacsLivePulse 2s ease-in-out infinite;
}

@keyframes gacsLivePulse {
    0%, 100% { opacity: 1; box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.55); }
    50% { opacity: 0.85; box-shadow: 0 0 0 10px rgba(34, 197, 94, 0); }
}

.gacs-tracking-card {
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), border-color 0.3s ease, box-shadow 0.35s ease;
}

.gacs-tracking-card:hover {
    transform: translateY(-2px);
    border-color: rgba(14, 165, 233, 0.4);
}

.gacs-stage-timeline-item::before {
    content: '';
    position: absolute;
    left: 0.65rem;
    top: 1.75rem;
    bottom: -0.5rem;
    width: 2px;
    background: linear-gradient(180deg, rgba(56, 189, 248, 0.5), rgba(255, 255, 255, 0.08));
}

.gacs-stage-timeline-item:last-child::before {
    display: none;
}

.leaflet-popup-content-wrapper {
    border-radius: 0.75rem;
    box-shadow: 0 20px 60px -30px rgba(0, 0, 0, 0.45);
}

.gacs-tracking-live-marker {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #22c55e;
    border: 3px solid #fff;
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.35);
}

.gacs-route-playback input[type='range'] {
    accent-color: #0ea5e9;
}
