Bug A — TypeError 'r is not iterable' on /site-finder/analysis/[cad]:
Backend /parcels/{cad}/poi-score returns {cad_num, radius_m, top_poi:[...]}
but useParcelPoiScoreQuery expected {items, poi_weighted_score}. Added
adapter in queryFn that maps top_poi → items and computes poi_weighted_score
from weight field. No backend changes needed.
Bug B — Sidebar hides on parcel select (bad UX):
ParcelDrawer was position:fixed over the whole page, causing sidebar
(CadInput + RecentParcels + ParcelLegend) to hide. Fix: drawer is now
position:absolute within the map container (parent given position:relative),
overlapping only the map area. Sidebar stays permanently visible so user
can type a cad directly alongside the drawer.
Bug C — CSS design tokens missing (all var(--*) undefined):
Created frontend/src/app/globals.css with all design tokens from
UI_Brief_GenDesign_May17 (surface, border, text, brand, semantic, viz).
Imported in layout.tsx. Removes invisible UI caused by undefined CSS vars.
Also sets font-variant-numeric: tabular-nums globally per brief.