- Add react-markdown, remark-gfm, react-syntax-highlighter for AI responses
- Code blocks with syntax highlighting, language labels, and copy button
- Fix AIChatPage height to fit within MainLayout (calc 100vh-6rem)
- Align top headers (Sidebar logo h-16 = Header h-16)
- Align bottom sections (User info h-14 = Quota h-14 = Input h-14)
- Add /ai/chat page title to MainLayout
- Left sidebar: conversation list, new chat, balance display
- Center: message list with real-time streaming
- Bottom: textarea input with model selector
- Auto-scroll, conversation CRUD, rename/delete
- AI types: AIModelInfo, AIConversation, AIChatMessage, AIQuotaInfo
- chatStream() AsyncGenerator for SSE streaming
- Conversation CRUD + model list + quota API methods
- Add getProfile(), updateProfile(), changePassword() methods to apiClient
- Add getDashboardStats(), getRecentActivities() methods to apiClient
- Add DashboardStats and Activity types
- Update UpdateProfileRequest to include username field