New top-level page at /compliance with:
- 4-card header (Avg score, Assets covered, Pass total, Fail total)
- Worst-performing assets list (top 5) with click-through
- Full assets table sortable by avg score (lowest first)
- Asset detail modal: per-policy bars with pass/fail/N/A counters,
per-policy refresh button that hits /compliance/{asset_id}/refresh
Score colour bands match security-team convention:
>= 90 emerald | >= 70 yellow | >= 40 orange | < 40 red
Refresh All button hits /compliance/refresh; per-asset modal has its
own ↻ refresh button. Errors surface inline at the top of the page.
Sidebar nav: 'Compliance' between Assets and Scan Jobs, CheckBadge
icon. Visible to every authenticated user (read endpoints accept
readonly). Editor role still needed for the refresh actions — those
fail with 403 from backend if the user lacks privilege.
Per-check deep-dive view (compliance_checks table) not yet wired —
will land alongside the dashboard widget in the next commit.