.mmm-combinedmap-wrapper { position: relative; border-radius: 8px; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); } .mmm-combinedmap-wrapper .leaflet-container { background: #1a1a1a; } /* Inverted basemap for dark mode - enhanced for label visibility */ .mmm-combinedmap-wrapper .inverted-tiles { filter: invert(1) hue-rotate(180deg) brightness(0.95) contrast(1.1); } /* Smooth radar tile edges */ .mmm-combinedmap-wrapper .leaflet-layer img { image-rendering: auto; } /* Radar smoothing applied in individual color scheme rules above */ /* Vibrant radar colors - enhance visibility + smooth edges */ .mmm-combinedmap-wrapper .radar-vibrant { filter: saturate(1.5) brightness(1.2) blur(2px); image-rendering: smooth; } /* Bright radar for maximum visibility */ .mmm-combinedmap-wrapper .radar-bright { filter: saturate(2) brightness(1.4) contrast(1.1) blur(2px); image-rendering: smooth; } /* Default radar smoothing (no color boost) */ .mmm-combinedmap-wrapper .leaflet-tile-pane .leaflet-layer:not(:first-child) img { image-rendering: smooth; } /* Hide Leaflet attribution */ .mmm-combinedmap-wrapper .leaflet-control-attribution { display: none; } /* Marker styling */ .mmm-combinedmap-marker { background: transparent !important; border: none !important; } /* Radar timeline display */ .radar-timeline { position: absolute; bottom: 12px; left: 12px; right: 12px; height: 24px; z-index: 1000; pointer-events: none; } .timeline-track { position: absolute; top: 10px; left: 30px; right: 30px; height: 4px; background: rgba(255, 255, 255, 0.2); border-radius: 2px; overflow: hidden; } .timeline-past { position: absolute; left: 0; top: 0; width: 33%; /* ~1h of 3h total */ height: 100%; background: rgba(150, 150, 150, 0.5); } .timeline-future { position: absolute; right: 0; top: 0; width: 67%; /* ~2h of 3h total */ height: 100%; background: rgba(0, 120, 200, 0.4); } .timeline-now { position: absolute; top: 0; transform: translateX(-50%); color: #fff; font-size: 8px; text-align: center; left: 33%; /* Will be updated by JS */ margin-left: 30px; width: calc(100% - 60px); left: 0; } .timeline-now span { position: absolute; left: 33%; transform: translateX(-50%); } .timeline-indicator { position: absolute; top: 6px; width: 12px; height: 12px; background: #fff; border: 2px solid #0af; border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 6px rgba(0, 170, 255, 0.8); transition: left 0.2s ease-out; /* Position is set by JS */ } .timeline-time { position: absolute; top: -2px; left: 50%; transform: translateX(-50%); background: rgba(0, 0, 0, 0.7); color: #fff; padding: 2px 8px; border-radius: 3px; font-size: 11px; font-family: "Roboto Condensed", sans-serif; white-space: nowrap; } .timeline-time.forecast { background: rgba(0, 100, 180, 0.9); } .timeline-label { position: absolute; top: 6px; color: rgba(255, 255, 255, 0.6); font-size: 9px; font-family: "Roboto Condensed", sans-serif; } .timeline-start { left: 0; } .timeline-end { right: 0; } /* Legend (optional, can be enabled) */ .mmm-combinedmap-legend { position: absolute; bottom: 8px; right: 8px; background: rgba(0, 0, 0, 0.7); padding: 6px 10px; border-radius: 4px; font-size: 10px; color: #ccc; z-index: 1000; } .mmm-combinedmap-legend .legend-item { display: flex; align-items: center; margin: 2px 0; } .mmm-combinedmap-legend .legend-color { width: 12px; height: 12px; margin-right: 6px; border-radius: 2px; } /* Traffic colors */ .legend-traffic-free { background: #00b300; } .legend-traffic-moderate { background: #ffcc00; } .legend-traffic-heavy { background: #ff6600; } .legend-traffic-blocked { background: #cc0000; } /* Rain intensity gradient hint */ .legend-rain-light { background: #a0d0ff; } .legend-rain-moderate { background: #4080ff; } .legend-rain-heavy { background: #0040cc; } .legend-rain-extreme { background: #ff00ff; }