diff --git a/CLAUDE.md b/CLAUDE.md
index 3267b2b..62d3e9b 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -45,10 +45,31 @@ The bincio_activity server must allow CORS from `planner.bincio.org` — this is
- [x] Auth gate with redirect to bincio login
- [x] Deployed to `https://planner.bincio.org` with HTTPS
+## Activity-year colour palette
+
+Year-coded colours used for GPX reference tracks (and potentially other per-year data). Defined as `GPX_PALETTE` in `Planner.svelte`.
+
+| Year | Color | Description |
+|------|-------|-------------|
+| 2014 | `hsl(265, 38%, 52%)` | muted purple |
+| 2015 | `hsl(248, 40%, 53%)` | slate-indigo |
+| 2016 | `hsl(232, 43%, 54%)` | slate-blue |
+| 2017 | `hsl(208, 48%, 52%)` | steel blue |
+| 2018 | `hsl(185, 52%, 50%)` | teal |
+| 2019 | `hsl(165, 50%, 49%)` | green-teal |
+| 2020 | `hsl(145, 48%, 47%)` | green |
+| 2021 | `hsl(100, 57%, 49%)` | yellow-green |
+| 2022 | `hsl(50, 72%, 52%)` | amber |
+| 2023 | `hsl(34, 75%, 53%)` | orange |
+| 2024 | `hsl(16, 77%, 56%)` | red-orange |
+| 2025 | `hsl(5, 70%, 57%)` | warm coral |
+| 2026 | `#60a5fa` | bright blue |
+| — | `#71717a` | grey (undated) |
+
## What's missing (from original plan)
- [ ] **Map tile switcher** — toggle between OSM and OpenCycleMap (Thunderforest, requires free API key). OpenCycleMap is significantly better for route planning.
-- [ ] **Drag-to-modify route polyline** — click and drag a point on the route line to insert a new waypoint. Deferred: requires hit-testing which segment was dragged, then inserting a waypoint at the right index. Doable but fiddly.
+- [x] **Drag-to-modify route polyline** — click and drag a point on the route line to insert a new waypoint. Deferred: requires hit-testing which segment was dragged, then inserting a waypoint at the right index. Doable but fiddly.
- [ ] **Heatmap overlay** — nice-to-have. Our own data is too sparse (~20 users). Public options: Strava global heatmap (legally gray), Waymarked Trails (clean, OSM-based).
- [ ] **Palette flash** — the race-calendar palette runs in `onMount`, so there's a brief flash from the default CSS vars to the correct palette. In bincio_activity this is avoided by an inline `
-