        html, body { height: 100%; margin: 0; overflow: hidden; }
html {
	scroll-behavior: smooth;
}
        #map { height: 100%; width: 100%; z-index: 10; background-color: #f3f3f3;}
        .dark #map { background-color: #1a1a1a; }
        /* Dark mode map tile filter */
        .dark .leaflet-tile-container { filter: brightness(1.2) saturate(0.9); }

        .bus-icon { display: flex; align-items: center; justify-content: center; color: white; border-radius: 50%; font-weight: bold; font-size: 12px; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); transition: all 0.5s linear; }
        #times-list, #favorites-list { max-height: 40vh; overflow-y: auto; }
        .animated-panel { transition: opacity 300ms ease-in-out, transform 300ms ease-in-out; }
        .favorite-star.favorited { color: #facc15; }
        .loader {
            border: 4px solid #f3f3f3;
            border-top: 4px solid #1c85cb;
            border-radius: 50%;
            width: 60px;
            height: 60px;
            animation: spin 1s cubic-bezier(.75,.3,.3,.75) infinite;
        }
        @keyframes spin {
            0% { transform: rotate(0deg); }
            100% { transform: rotate(360deg); }
        }
        /* Theme toggle icon rotation */
        #theme-toggle-btn span { transition: transform 0.3s ease-in-out; }
        #theme-toggle-btn:active span { transform: rotate(45deg); }


/* Fonts */
h1,h2,h3,h4,h5,h6 {
    font-family: 'DSans', sans-serif;
}
.search-box {
    font-family: 'DSans', sans-serif;
    font-weight: 400; /*Normal */
}

body,:root {
    font-family: 'Public Sans', 'DSans', 'Inter', Roboto, Segoe UI, Arial, sans-serif;
}
