feat(ui): port Direction B layout shell (Phase 1)

Implements the layout-shell phase of the Direction B redesign from the
Anthropic Design handoff bundle.

Visual layer:
- Geist font + new --gd-* CSS token palette (panel/border/text scales,
  green/amber/blue/purple accents alongside the red).
- Top bar with brand chip, origin/destination inputs, chat composer
  with chip-based refinements, vehicle selector chip, Export/Share.
- Body split: map-left flex-1, stops rail 540px right (replaces the
  prior chat-sidebar + bottom-timeline layout).
- Stops rail: trip summary header (stops · days · km · drive · charge),
  sticky day headers with date label + per-day km/drive/charge totals,
  icon-led stop cards with colored type-icon tile (charge/sleep/hotel/
  attraction/cafe/viewpoint colour-coded), combo pill, description,
  charge/arrive meta inline.
- Leg row between cards (km · drive time), still computed from real
  OSRM routes.
- Click stop to expand: 4-stat grid (Charge/Arrive/Leave/Cost),
  amenity chip cloud, alternative-swap list (preserving the existing
  delta swap mechanic), Customise/Remove actions.
- Map ↔ rail bridge: clicking a card flies the map to that pin,
  hovering either highlights the other. Pins are custom Leaflet
  divIcons coloured per stop type with active/hover scaling.
- Empty state + quick-prompt buttons in the rail.

Not in Phase 1 (deferred):
- Variant strip (Fastest/Scenic/Cheapest) — needs backend prompt work.
- While-here food/do/see tabs — needs backend nearby[] data.
- Customise / Add-detour / GPX modals.
- Vehicle selector trim panel (still a native select for now).
- Drag-to-reorder, in-trip/compare/shared screens.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 11:37:48 +01:00
parent 225cd250a3
commit ece882ea29
2 changed files with 875 additions and 503 deletions
File diff suppressed because it is too large Load Diff