Problem
Simulated runs fabricate elevation with Math.round(Math.random()*12) (useRecorder.ts), and real GPS runs record elevation 0 because the track has no elevation and no elevation source is queried. Elevation gain is a core Strava metric.
Acceptance
- Derive elevation from an elevation source (tile/elevation API or trail metadata) for real and simulated runs.
- Persist computed elevation_gain; stop using random values.