UI Redesign:
- Admin sidebar: sections with SVG icons, system/tenant split, global tenant selector
- Console sidebar: matching modern design with green accent
- Dark mode: full support via CSS variables on :root with html.dark overrides
- Color picker: accent color flows through all UI elements
- All badge/link/table colors use CSS variables (no hardcoded hex)
Bug Fixes:
- Console API paths: /tenant/* → /api/v1/tenants/{tenantId}/*
- Dashboard data-table: explicit text colors for dark mode
- Tenant selector: localStorage persistence type mismatch (Number vs String)
- Dark mode: headings, form elements, page-header, panel backgrounds
Architecture:
- Theme CSS variables on :root (global inheritance)
- Module Vue pages auto-discovered by sidebar (module-loader.ts)
- Vite config: axios alias for module files outside SPA directory
- Ticket module: complete example (migration→model→service→controller→routes→Vue)
Modules: 26, Tests: 2351, Failures: 0