isGate() now keys off topology node kind 'gate' (clarify) or the 'gate' stage,
not stage.gated — which actually means INERT (disabled P3 nodes build/verify/
dispatch). Inert columns get a dimmed + 'inert' treatment instead of a false
'human gate' lock. Verified against the live R720 dashboard (10 stages) via a
dev-proxy smoke test; typecheck + 36 tests + build all green.
Adds the styling foundation for the UI redesign (vibe-kanban / Magentic-UI /
Langflow references): Tailwind CSS + shadcn/ui primitives, HSL design tokens
(index.css) ported from theme.css, @/ alias, and the App.tsx Board|Pipeline tabs
shell. Extends StateResponse with the backend's existing stages[] for the Board.
theme.css kept transiently until components migrate to Tailwind. No backend
changes. Component fan-out (Board, MapNode, TaskDrawer, TopBar) follows.