#map {
	image-rendering: pixelated;
}

header {
	transition: all 0.3s ease;
}

#navigation-bar {
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

@media (min-width: 1024px) {
	#filters {
		transition: all 0.3s ease;
		animation: fadeIn 0.7s ease-in;
		box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
	}
}

.leaflet-control-zoom {
	z-index: 99;
}

/* Animation speed slider */
#animation-speed::-webkit-slider-thumb {
	appearance: none;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #9333ea;
	cursor: pointer;
	transition: all 0.2s ease;
}

#animation-speed::-webkit-slider-thumb:hover {
	background: #7c3aed;
	transform: scale(1.1);
}

#animation-speed::-moz-range-thumb {
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #9333ea;
	cursor: pointer;
	border: none;
	transition: all 0.2s ease;
}

/* Temporal slider */
#temporal-slider::-webkit-slider-thumb {
	appearance: none;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2563eb;
	cursor: pointer;
	transition: all 0.2s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#temporal-slider::-webkit-slider-thumb:hover {
	background: #1d4ed8;
	transform: scale(1.15);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

#temporal-slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: #2563eb;
	cursor: pointer;
	border: none;
	transition: all 0.2s ease;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

#temporal-slider::-moz-range-thumb:hover {
	background: #1d4ed8;
	transform: scale(1.15);
	box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
}

#animation-speed::-moz-range-thumb:hover {
	background: #7c3aed;
	transform: scale(1.1);
}

/* AI Assistant Floating Button */
#ai-assistant-btn {
	animation: pulse-glow 2s infinite;
}

@keyframes pulse-glow {
	0%, 100% {
		box-shadow: 0 10px 15px -3px rgba(37, 99, 235, 0.3), 0 4px 6px -2px rgba(37, 99, 235, 0.2);
	}
	50% {
		box-shadow: 0 20px 25px -5px rgba(37, 99, 235, 0.4), 0 10px 10px -5px rgba(37, 99, 235, 0.3);
	}
}

#ai-chat-popup {
	animation: slideInUp 0.3s ease-out;
}

@keyframes slideInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

#ai-assistant-container {
	-webkit-tap-highlight-color: transparent;
}

/* Smooth transitions for chat popup */
#ai-chat-popup.hidden {
	display: none;
}

#ai-chat-popup:not(.hidden) {
	display: block;
}