// Icon library — minimal stroke icons, sized via prop
const Icon = ({ d, size = 16, fill = "none", stroke = "currentColor", strokeWidth = 1.5, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={stroke} strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    <path d={d} />
  </svg>
);

const I = {
  Home: (p) => <Icon {...p} d="M3 11l9-7 9 7v9a2 2 0 0 1-2 2h-3v-7H8v7H5a2 2 0 0 1-2-2v-9z" />,
  User: (p) => <Icon {...p} d="M20 21a8 8 0 0 0-16 0M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8z" />,
  Users: (p) => <Icon {...p} d="M16 21a6 6 0 0 0-12 0M10 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM22 21v-1a4 4 0 0 0-3-3.85M16 3.13a4 4 0 0 1 0 7.75" />,
  Car: (p) => <Icon {...p} d="M5 17h14M5 17v-4l2-5h10l2 5v4M5 17v3M19 17v3M8 13h.01M16 13h.01M7 8a3 3 0 0 0-2 2.5h14a3 3 0 0 0-2-2.5" />,
  Wrench: (p) => <Icon {...p} d="M14.7 6.3a4 4 0 1 0 4 4l-7 7a3 3 0 0 1-4-4l7-7" />,
  Quote: (p) => <Icon {...p} d="M14 3v5h5M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-5zM9 13h6M9 17h4" />,
  Invoice: (p) => <Icon {...p} d="M14 3v5h5M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8l-6-5zM9 13h6M9 17h6M9 9h2" />,
  Money: (p) => <Icon {...p} d="M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" />,
  Dispatch: (p) => <Icon {...p} d="M3 6h6v6H3zM15 6h6v6h-6zM3 14h6v6H3zM15 14h6v6h-6z" />,
  Wallet: (p) => <Icon {...p} d="M3 7h18v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7zM3 7l2-3h14l2 3M16 13h2" />,
  Truck: (p) => <Icon {...p} d="M1 17V7a1 1 0 0 1 1-1h12v11M14 9h4l3 4v4h-7M5.5 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4zM18.5 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4z" />,
  Shield: (p) => <Icon {...p} d="M12 2L3 6v6c0 5 3.8 9.6 9 11 5.2-1.4 9-6 9-11V6l-9-4zM9 12l2 2 4-4" />,
  Chart: (p) => <Icon {...p} d="M3 3v18h18M7 14l4-4 4 4 5-5" />,
  Receipt: (p) => <Icon {...p} d="M5 3v18l3-2 2 2 2-2 2 2 2-2 3 2V3l-3 2-2-2-2 2-2-2-2 2-3-2zM8 9h8M8 13h6" />,
  Box: (p) => <Icon {...p} d="M3 7l9-4 9 4v10l-9 4-9-4V7zM3 7l9 4M21 7l-9 4M12 11v10" />,
  Settings: (p) => <Icon {...p} d="M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1.1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1A2 2 0 1 1 4.3 17l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1.1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z" />,
  Search: (p) => <Icon {...p} d="M21 21l-4.3-4.3M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16z" />,
  Plus: (p) => <Icon {...p} d="M12 5v14M5 12h14" />,
  Minus: (p) => <Icon {...p} d="M5 12h14" />,
  Bell: (p) => <Icon {...p} d="M6 8a6 6 0 1 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10.3 21a2 2 0 0 0 3.4 0" />,
  Calendar: (p) => <Icon {...p} d="M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6zM3 10h18M8 2v4M16 2v4" />,
  Clock: (p) => <Icon {...p} d="M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 6v6l4 2" />,
  Check: (p) => <Icon {...p} d="M20 6L9 17l-5-5" />,
  X: (p) => <Icon {...p} d="M18 6L6 18M6 6l12 12" />,
  Arrow: (p) => <Icon {...p} d="M5 12h14M13 6l6 6-6 6" />,
  ArrowDown: (p) => <Icon {...p} d="M12 5v14M6 13l6 6 6-6" />,
  ArrowUp: (p) => <Icon {...p} d="M12 19V5M6 11l6-6 6 6" />,
  ChevronR: (p) => <Icon {...p} d="M9 6l6 6-6 6" />,
  ChevronL: (p) => <Icon {...p} d="M15 6l-6 6 6 6" />,
  ChevronD: (p) => <Icon {...p} d="M6 9l6 6 6-6" />,
  Filter: (p) => <Icon {...p} d="M3 4h18l-7 8v6l-4 2v-8L3 4z" />,
  Sort: (p) => <Icon {...p} d="M3 6h18M6 12h12M10 18h4" />,
  More: (p) => <Icon {...p} d="M5 12h.01M12 12h.01M19 12h.01" strokeWidth={3} />,
  Edit: (p) => <Icon {...p} d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7M18.5 2.5a2.1 2.1 0 1 1 3 3L12 15l-4 1 1-4 9.5-9.5z" />,
  Trash: (p) => <Icon {...p} d="M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M5 6l1 14a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-14M10 11v6M14 11v6" />,
  Eye: (p) => <Icon {...p} d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z" />,
  Print: (p) => <Icon {...p} d="M6 9V2h12v7M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2M6 14h12v8H6z" />,
  Download: (p) => <Icon {...p} d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" />,
  Tag: (p) => <Icon {...p} d="M20 12l-8 8a2 2 0 0 1-2.8 0l-7.2-7.2a2 2 0 0 1 0-2.8l8-8H20v10zM7 7h.01" />,
  Zap: (p) => <Icon {...p} d="M13 2L3 14h9l-1 8 10-12h-9l1-8z" />,
  Phone: (p) => <Icon {...p} d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3.1-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1.9.4 1.8.7 2.6a2 2 0 0 1-.5 2.1L8.1 9.6a16 16 0 0 0 6 6l1.2-1.2a2 2 0 0 1 2.1-.5c.8.3 1.7.6 2.6.7a2 2 0 0 1 1.7 2z" />,
  Mail: (p) => <Icon {...p} d="M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zM22 6l-10 7L2 6" />,
  Logout: (p) => <Icon {...p} d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9" />,
  Menu: (p) => <Icon {...p} d="M3 6h18M3 12h18M3 18h18" />,
  Lock: (p) => <Icon {...p} d="M5 11h14a2 2 0 0 1 2 2v8H3v-8a2 2 0 0 1 2-2zM7 11V7a5 5 0 0 1 10 0v4" />,
  Wifi: (p) => <Icon {...p} d="M5 13a10 10 0 0 1 14 0M9 17a4 4 0 0 1 6 0M2 9a16 16 0 0 1 20 0M12 21h.01" />,
  Star: (p) => <Icon {...p} d="M12 2l3 7 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1 3-7z" />,
  Drag: (p) => <Icon {...p} d="M9 5h.01M9 12h.01M9 19h.01M15 5h.01M15 12h.01M15 19h.01" strokeWidth={2.5} />,
  Pin: (p) => <Icon {...p} d="M12 2l-2 5H5l3.5 3L7 17l5-3 5 3-1.5-7L19 7h-5l-2-5z" />,
  Coin: (p) => <Icon {...p} d="M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM9.5 9a2.5 2.5 0 0 1 5 0c0 1.5-1 2-2.5 2.5S9.5 12 9.5 14a2.5 2.5 0 0 0 5 0M12 6v2M12 16v2" />,
  Spark: (p) => <Icon {...p} d="M5 3v4M3 5h4M6 17v4M4 19h4M13 3l3 7 7 3-7 3-3 7-3-7-7-3 7-3 3-7z" />,
  Database: (p) => <Icon {...p} d="M12 8c4.97 0 9-1.34 9-3s-4.03-3-9-3-9 1.34-9 3 4.03 3 9 3zM3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5M3 12c0 1.66 4 3 9 3s9-1.34 9-3" />,
  Garage: (p) => <Icon {...p} d="M3 10l9-6 9 6v11H3V10zM6 21V14h12v7M6 17h12" />,
  Layers: (p) => <Icon {...p} d="M12 2l10 6-10 6L2 8l10-6zM2 16l10 6 10-6M2 12l10 6 10-6" />,
};

window.Icon = Icon;
window.I = I;
