interface MobileCapacityCardProps { totalResources: number; activeResources: number; avgUtilizationPct: number; overbookedCount?: number; } export function MobileCapacityCard({ totalResources, activeResources, avgUtilizationPct, overbookedCount = 0, }: MobileCapacityCardProps) { const pct = Math.min(100, Math.max(0, avgUtilizationPct)); const circumference = 2 * Math.PI * 34; // radius = 34 const dashOffset = circumference * (1 - pct / 100); const color = pct >= 90 ? "#d97706" : pct >= 70 ? "#059669" : "#6b7280"; return (
Team Capacity
{/* CSS-only donut */} {Math.round(pct)}%
Resources {activeResources} / {totalResources}
{overbookedCount > 0 && (
Overbooked {overbookedCount}
)}
); }