e9f6af0590
- Added global let map/heatLayer/heatVisible declarations - Leaflet map initializes on first visit to Map tab (OSM tiles) - Implemented loadAssetPins() - fetches assets with coords from API, creates Leaflet markers with popups, auto-fits bounds - Guard toggleHeatmap() with proper declared globals - Closes #31 H1, #32 H2 Also confirmed M1 (empty asset list) is not a bug: API returns [] because DB has no assets yet. Empty state renders correctly.