Wire up /projects route with a card-based project list, create dialog,
and delete confirmation. Adds projects API client with full CRUD using
the existing apiGet/apiPost/apiPatch/apiDelete helpers.
- Projects API client with typed DTOs matching backend schema
- Card grid layout (2-col md+, 1-col mobile) with hover states
- Create project dialog with name/description fields
- Delete confirmation dialog with danger styling
- Loading (MosaicSpinner), empty, and error states
- Status badges for PLANNING/ACTIVE/PAUSED/COMPLETED/ARCHIVED
- All design tokens from globals.css, no hardcoded colors
Refs #468