Monthly summary:
- GET /api/summary/monthly returns income, bills, actuals, one-time
expense totals and surplus/deficit for a given month
- MonthlySummary page shows stat cards and breakdown table
Annual overview:
- AnnualOverview page fetches all 12 months in parallel via Promise.all
- Year navigation, summary cards, monthly table with totals row
- Fix: normalize nested API response to flat fields expected by component
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>