The left pane used to show one global hotel chip pinned to the top for the
whole trip. Now the itinerary reads like the day actually happens:
- Arrival day starts with an airport card (✈️ Landed — CTG, arr 10:20, the
flight you booked) then a ground-transfer leg to the hotel ("drop bags"),
then the activities with travel legs between them, then a ride back to the
hotel and a per-night hotel card (🏨 … tonight, the right hotel + dates).
- Departure day ends with a ride to the airport and the flight. Fixed a bug
where apply_flight_anchors kept the dataset's placeholder flight (e.g.
AV 1352→BOG) instead of replacing it with the user's real ticket (CM 875→LGA).
- "Getting around" toggle (🚶 Walk / 🚗 Taxi) where the base-chip used to sit;
every travel leg re-estimates instantly (26 km/h car vs 4.6 walk), per-trip
and persisted.
- healTravelAnchors() rebuilds the arrival/departure airport cards + transfers
on load for plans saved before day objects carried them.
Verified: CDP suites — 12/12 structural checks (incl. reload persistence),
7/7 date re-dating, 4/4 no-JS-error smoke on the other two trips.