// Stroked, consistent icon set (Lucide-style, hand-tuned)
const Icon = ({ d, size = 20, stroke = 1.6, children, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round"
    {...rest}>
    {d ? <path d={d} /> : children}
  </svg>
);

const I = {
  Arrow: (p) => <Icon {...p}><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></Icon>,
  ArrowUR: (p) => <Icon {...p}><path d="M7 17L17 7"/><path d="M8 7h9v9"/></Icon>,
  Check: (p) => <Icon {...p}><path d="M4 12l5 5L20 6"/></Icon>,
  Spark: (p) => <Icon {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5L18 18M6 18l2.5-2.5M15.5 8.5L18 6"/></Icon>,
  Bot: (p) => <Icon {...p}><rect x="4" y="7" width="16" height="12" rx="3"/><path d="M12 3v4"/><circle cx="9" cy="13" r="1"/><circle cx="15" cy="13" r="1"/><path d="M9 17h6"/></Icon>,
  Doc: (p) => <Icon {...p}><path d="M7 3h7l5 5v13a1 1 0 01-1 1H7a1 1 0 01-1-1V4a1 1 0 011-1z"/><path d="M14 3v5h5"/><path d="M9 14h6M9 17h4"/></Icon>,
  Flow: (p) => <Icon {...p}><rect x="3" y="3" width="6" height="6" rx="1"/><rect x="15" y="3" width="6" height="6" rx="1"/><rect x="9" y="15" width="6" height="6" rx="1"/><path d="M6 9v3h12V9"/><path d="M12 12v3"/></Icon>,
  Users: (p) => <Icon {...p}><circle cx="9" cy="8" r="3"/><path d="M3 20c0-3 3-5 6-5s6 2 6 5"/><circle cx="17" cy="9" r="2.5"/><path d="M15 20c0-2 2-3.5 4-3.5s2.5 1 2.5 2"/></Icon>,
  Cube: (p) => <Icon {...p}><path d="M12 3l8 4.5v9L12 21l-8-4.5v-9L12 3z"/><path d="M12 12l8-4.5M12 12v9M12 12L4 7.5"/></Icon>,
  Chat: (p) => <Icon {...p}><path d="M21 12a8 8 0 01-11.6 7.1L4 21l1.9-5.4A8 8 0 1121 12z"/></Icon>,
  Briefcase: (p) => <Icon {...p}><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M9 7V5a2 2 0 012-2h2a2 2 0 012 2v2"/><path d="M3 13h18"/></Icon>,
  Factory: (p) => <Icon {...p}><path d="M3 21V10l5 3V10l5 3V8l8 4v9z"/><path d="M9 17h2M14 17h2"/></Icon>,
  Heart: (p) => <Icon {...p}><path d="M12 20s-7-4.5-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.5-7 10-7 10z"/></Icon>,
  Bag: (p) => <Icon {...p}><path d="M5 8h14l-1 12H6L5 8z"/><path d="M9 8a3 3 0 016 0"/></Icon>,
  Truck: (p) => <Icon {...p}><rect x="2" y="7" width="12" height="9" rx="1"/><path d="M14 10h4l3 3v3h-7"/><circle cx="6.5" cy="18" r="1.6"/><circle cx="17.5" cy="18" r="1.6"/></Icon>,
  Bed: (p) => <Icon {...p}><path d="M3 18V8M21 18v-5a3 3 0 00-3-3H3"/><path d="M3 14h18"/><circle cx="8" cy="11" r="1.5"/></Icon>,
  Cart: (p) => <Icon {...p}><path d="M3 4h2l2.4 11.2a2 2 0 002 1.6h7.2a2 2 0 002-1.6L20 8H6"/><circle cx="9" cy="20" r="1.5"/><circle cx="17" cy="20" r="1.5"/></Icon>,
  Building: (p) => <Icon {...p}><path d="M4 21V5a1 1 0 011-1h9a1 1 0 011 1v16"/><path d="M15 11h4a1 1 0 011 1v9"/><path d="M8 8h2M8 12h2M8 16h2"/></Icon>,
  Cap: (p) => <Icon {...p}><path d="M2 9l10-4 10 4-10 4L2 9z"/><path d="M6 11v5c0 1.5 3 3 6 3s6-1.5 6-3v-5"/></Icon>,
  Car: (p) => <Icon {...p}><path d="M3 14l2-5a2 2 0 012-1h10a2 2 0 012 1l2 5"/><rect x="3" y="14" width="18" height="5" rx="1"/><circle cx="7" cy="19" r="1"/><circle cx="17" cy="19" r="1"/></Icon>,
  Shield: (p) => <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3z"/></Icon>,
  Cloud: (p) => <Icon {...p}><path d="M7 18a4 4 0 010-8 6 6 0 0111.5 1.5A3.5 3.5 0 0117 18H7z"/></Icon>,
  Plug: (p) => <Icon {...p}><path d="M9 7V3M15 7V3M7 7h10v5a5 5 0 01-10 0V7zM12 17v4"/></Icon>,
  Stack: (p) => <Icon {...p}><path d="M12 3l9 4-9 4-9-4 9-4z"/><path d="M3 12l9 4 9-4M3 17l9 4 9-4"/></Icon>,
  Sun: (p) => <Icon {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5L19 19M5 19l1.5-1.5M17.5 6.5L19 5"/></Icon>,
  Moon: (p) => <Icon {...p}><path d="M20 14A8 8 0 1110 4a7 7 0 1010 10z"/></Icon>,
  Close: (p) => <Icon {...p}><path d="M6 6l12 12M18 6L6 18"/></Icon>,
  Menu: (p) => <Icon {...p}><path d="M4 7h16M4 12h16M4 17h16"/></Icon>,
  Send: (p) => <Icon {...p}><path d="M4 12L20 4l-7 16-2-7-7-1z"/></Icon>,
  Database: (p) => <Icon {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/><path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></Icon>,
  Bolt: (p) => <Icon {...p}><path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z"/></Icon>,
  Target: (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5"/></Icon>,
  Loop: (p) => <Icon {...p}><path d="M3 12a9 9 0 0115-6.7L21 8"/><path d="M21 4v4h-4"/><path d="M21 12a9 9 0 01-15 6.7L3 16"/><path d="M3 20v-4h4"/></Icon>,
  Globe: (p) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 010 18M12 3a14 14 0 000 18"/></Icon>,
  Lock: (p) => <Icon {...p}><rect x="4" y="11" width="16" height="9" rx="2"/><path d="M8 11V8a4 4 0 018 0v3"/></Icon>,
  Layers: (p) => <Icon {...p}><path d="M12 3l9 5-9 5-9-5 9-5z"/><path d="M3 13l9 5 9-5"/><path d="M3 18l9 5 9-5"/></Icon>,
  Settings: (p) => <Icon {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 00.3 1.8l.1.1a2 2 0 11-2.8 2.8l-.1-.1a1.7 1.7 0 00-1.8-.3 1.7 1.7 0 00-1 1.5V21a2 2 0 11-4 0v-.1a1.7 1.7 0 00-1-1.5 1.7 1.7 0 00-1.8.3l-.1.1a2 2 0 11-2.8-2.8l.1-.1a1.7 1.7 0 00.3-1.8 1.7 1.7 0 00-1.5-1H3a2 2 0 110-4h.1a1.7 1.7 0 001.5-1 1.7 1.7 0 00-.3-1.8l-.1-.1a2 2 0 112.8-2.8l.1.1a1.7 1.7 0 001.8.3h0a1.7 1.7 0 001-1.5V3a2 2 0 114 0v.1a1.7 1.7 0 001 1.5 1.7 1.7 0 001.8-.3l.1-.1a2 2 0 112.8 2.8l-.1.1a1.7 1.7 0 00-.3 1.8v0a1.7 1.7 0 001.5 1H21a2 2 0 110 4h-.1a1.7 1.7 0 00-1.5 1z"/></Icon>,
  Code: (p) => <Icon {...p}><path d="M16 18l6-6-6-6M8 6l-6 6 6 6"/></Icon>,
  Eye: (p) => <Icon {...p}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></Icon>,
  Rocket: (p) => <Icon {...p}><path d="M12 2c4 3 6 7 6 11l-3 3h-6l-3-3c0-4 2-8 6-11z"/><circle cx="12" cy="10" r="2"/><path d="M9 17l-2 5 5-2M15 17l2 5-5-2"/></Icon>,
  Brush: (p) => <Icon {...p}><path d="M14 4l6 6-9 9-6 1 1-6 8-10z"/><path d="M5 19l3-3"/></Icon>,
  Beaker: (p) => <Icon {...p}><path d="M9 3h6M10 3v6L4 20a1 1 0 001 1h14a1 1 0 001-1l-6-11V3"/><path d="M7 14h10"/></Icon>,
  Pen: (p) => <Icon {...p}><path d="M12 19l7-7-3-3-7 7v3h3z"/><path d="M14 7l3 3"/></Icon>,
  Pause: (p) => <Icon {...p}><rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/></Icon>,
  Play: (p) => <Icon {...p}><path d="M6 4l14 8-14 8V4z"/></Icon>,
};

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