The duplicate functions at lines 455-486 were redefining cacheElements and
bindEvents with wrong element IDs (kebab-case vs camelCase in HTML).
This caused 'Cannot read properties of null' error on slides app init.
- Add CRM tab to header navigation after tasks
- Add CSS breakpoint at 1350px for CRM tab hiding
- Add app-item breakpoint for CRM in dropdown
- Delete i18n.js (translations moved to botlib .ftl files)
- Update TODO.md with completed phases
- CRM: Pipeline view with Lead → Opportunity → Account flow (Dynamics nomenclature)
- Kanban pipeline with stages: Lead, Qualified, Proposal, Negotiation, Won, Lost
- List views for Leads, Opportunities, Accounts, Contacts
- Summary stats: Pipeline value, Conversion rate, Avg deal, Won this month
- Billing: Invoices, Payments, Quotes management
- Summary cards: Pending, Overdue, Paid this month, Revenue
- Invoice list with status filters (draft, sent, paid, overdue, cancelled)
- Payments tracking with method filters
- Quotes with status workflow (draft → sent → accepted/rejected)
- Products: Product & Service catalog
- Grid and List views with category/status filters
- Services tab with type filters (hourly, fixed, recurring)
- Price Lists management with currency support
- Tickets: AI-assisted support cases
- Case management with priority/category filters
- AI suggestion banner and auto-suggestions on description
- List + Detail split view
- Summary stats: Open, Urgent, Resolved today, AI resolved %
- Forms: Redirect to Tasks with AI prompt
- Quick example chips for common form types
- Redirects to Tasks with 'Create a form for me about [topic]'
- Menu: Added all 5 apps to dropdown menu after People
- i18n: Added nav labels in English and Portuguese