The dashboard has two access levels determined at login by Supabase Auth user ID.
Admin (Aryan Sharma — UUID: 1fedca49-18b3-4705-a3d4-25cf8f471fe9): Full access to all eight screens, Run Agents button, Agent Actions approval queue, Agent Logs.
Client/Demo ([email protected]): Read-only access to all data screens. Run Agents button hidden. Agent Actions and Logs hidden.
Role detection runs client-side immediately after Supabase Auth session is confirmed. No separate roles table required — the UUID comparison is sufficient for a two-user system.
Split-panel layout. Left panel (dark, #0A0C10) shows rotating feature cards with ambient glow and floating metric pills. Five cards auto-rotate on a 4-second fade cycle.
Right panel (white) shows:
The primary operational view. Four summary cards at the top pull from GET /api/dashboard/summary: Active Alerts, Revenue at Risk (full dollar figure, never abbreviated), Pending Actions, Critical Inventory count.
Below the cards: Supplier Risk Assessment table (all suppliers with reliability score, risk badge, and status note) and Critical Inventory panel (4 items below reorder point with animated progress bars).
Full-width At-Risk Orders table below: Order#, Customer, Value, Status, Ship Date, Risk badge. Risk badge logic: delayed + >10 days = CRITICAL, delayed = HIGH, in_production with ship date <14 days = HIGH, delivered/dispatched = no badge.
All numbers animate on load using count-up. Cards have staggered entrance animation. Progress bars fill from 0 on mount.