Due Diligence Tracking System I need you to build a due diligence tracking system based on the attached PRD and mockup. This is a web application for tracking corporate evaluation progress across multiple dimensions. Project Overview Build a React/TypeScript application with: Dashboard showing dimensions (Strategy, Sales, Product, Engineering, etc.) with progress tracking Expandable cards revealing KPIs and their associated checks SQLite database for data persistence Local file storage for document references Clean, professional UI matching the attached mockup Technical Requirements Stack: Frontend: React 18+ with TypeScript Styling: Tailwind CSS Database: SQLite (use sql.js for browser or better-sqlite3 for Node) Build: Vite Backend: Express.js (minimal API) Key Features to Implement: Dashboard Layout Dimension cards with icon, name, KPI count, and progress bars Expandable sections showing KPI details Progress calculated as (completed checks / total checks) × 100% Responsive design with print support Data Model Dimensions → KPIs → Checks (strict hierarchy) Check structure: question, current_value, expected_value, reference, comment, is_completed Check types: text, dropdown, number, percentage File uploads up to 100MB Core Functionality CRUD operations for checks Mark checks as complete/incomplete File upload with drag-and-drop Export data to JSON/CSV Progress tracking per dimension/KPI Implementation Steps Project Setup bash # Create the project structure due-diligence-tracker/ ├── client/ # React frontend ├── server/ # Express backend └── shared/ # Shared types Database Schema Create SQLite database with tables: dimensions, kpis, checks, files, check_types Seed with initial data (Strategy, Sales, Product, etc.) Set up migrations Frontend Components components/ ├── Dashboard/ │ ├── DimensionCard.tsx │ ├── ProgressBar.tsx │ └── KPIExpanded.tsx ├── Checks/ │ ├── CheckForm.tsx │ ├── CheckList.tsx │ └── CheckItem.tsx └── Common/ ├── FileUpload.tsx └── DynamicInput.tsx API Endpoints GET /api/dimensions # With nested KPIs and check counts GET /api/kpis/:id/checks # All checks for a KPI POST /api/checks # Create check PUT /api/checks/:id # Update check POST /api/files/upload # Handle file uploads GET /api/export/:format # Export data UI/UX Requirements Match the gray theme from mockup with customizable accent colors Smooth expand/collapse animations Loading states and error handling Keyboard navigation support Specific Implementation Details Check Type System: typescript interface CheckType { type: 'text' | 'dropdown' | 'number' | 'percentage'; options?: string[]; // For dropdowns validation?: { min?: number; max?: number; required?: boolean; }; } // Dynamic rendering based on check type const DynamicInput = ({ checkType, value, onChange }) => { switch(checkType.type) { case 'dropdown': return