/* Custom scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
.dark ::-webkit-scrollbar-thumb { background: #4b5563; }

/* Smooth scroll */
html { scroll-behavior: smooth; }

/* Map container defaults */
.leaflet-container { border-radius: 0.75rem; z-index: 1; }

/* Animated gradient for hero */
.hero-gradient {
    background: linear-gradient(135deg, #f97316 0%, #ea580c 50%, #c2410c 100%);
}
.dark .hero-gradient {
    background: linear-gradient(135deg, #9a3412 0%, #7c2d12 50%, #431407 100%);
}

/* Timeline line */
.timeline-line { position: relative; padding-left: 2rem; }
.timeline-line::before {
    content: '';
    position: absolute;
    left: 0.5rem;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #fdba74;
}
.dark .timeline-line::before { background: #9a3412; }

.timeline-dot {
    position: absolute;
    left: 0.15rem;
    width: 0.875rem;
    height: 0.875rem;
    border-radius: 50%;
    background: #f97316;
    border: 2px solid white;
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}
.dark .timeline-dot { border-color: #1f2937; }

/* Podium styling */
.podium-gold { background: linear-gradient(to bottom, #fbbf24, #f59e0b); }
.podium-silver { background: linear-gradient(to bottom, #d1d5db, #9ca3af); }
.podium-bronze { background: linear-gradient(to bottom, #d97706, #b45309); }

/* Skeleton loading */
.skeleton {
    background: linear-gradient(90deg, #e5e7eb 25%, #f3f4f6 50%, #e5e7eb 75%);
    background-size: 200% 100%;
    animation: shimmer 1.5s infinite;
}
.dark .skeleton {
    background: linear-gradient(90deg, #374151 25%, #4b5563 50%, #374151 75%);
    background-size: 200% 100%;
}
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* Confetti animation for milestones */
@keyframes confetti-fall {
    0% { transform: translateY(-100vh) rotate(0deg); opacity: 1; }
    100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}

/* Admin sidebar transition */
.sidebar-transition { transition: transform 0.2s ease-in-out; }
