Polish across the map-dashboard family after the SPA → dashboard migration.
Changed
- Meshtastic dashboard layout. Reworked into a map + tabbed side panel (Messages / Channels / Info) with the node map always visible, matching the Meshcore dashboard. Presentation-only; the module and its element ids are unchanged.
- Accessibility (map dashboards). Added a shared keyboard focus ring and aria-labels for the selects and inputs that lacked a visible label on the APRS, Meshtastic and Meshcore dashboards.
- Internal. The APRS/Meshtastic/Meshcore dashboards now share their page chrome (background, scan line, header controls) via a single
dashboard-shell.cssinstead of duplicating it. The older ADS-B/AIS/satellite dashboards keep their own chrome pending a visual-QA pass.