/* ============================================================
   ZERO — Icon set (lucide-style, inline SVG). window.Icon
   ============================================================ */
(function () {
  const S = ({ d, children, w = 18, sw = 1.8, fill = 'none' }) => (
    <svg width={w} height={w} viewBox="0 0 24 24" fill={fill} stroke="currentColor"
      strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round">
      {d ? <path d={d} /> : children}
    </svg>
  );

  const Icon = {
    grid: (p) => <S {...p}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/></S>,
    cpu: (p) => <S {...p}><rect x="6" y="6" width="12" height="12" rx="2"/><rect x="9" y="9" width="6" height="6" rx="1"/><path d="M9 2v2M15 2v2M9 20v2M15 20v2M2 9h2M2 15h2M20 9h2M20 15h2"/></S>,
    map: (p) => <S {...p}><path d="M9 3 3 6v15l6-3 6 3 6-3V3l-6 3-6-3Z"/><path d="M9 3v15M15 6v15"/></S>,
    mega: (p) => <S {...p}><path d="m3 11 18-5v12L3 14v-3z"/><path d="M11.6 16.8a3 3 0 1 1-5.8-1.6"/></S>,
    funnel: (p) => <S {...p}><path d="M3 4h18l-7 9v6l-4 2v-8L3 4Z"/></S>,
    headset: (p) => <S {...p}><path d="M3 14v-3a9 9 0 0 1 18 0v3"/><path d="M21 16a2 2 0 0 1-2 2h-1v-6h1a2 2 0 0 1 2 2v2ZM3 16a2 2 0 0 0 2 2h1v-6H5a2 2 0 0 0-2 2v2Z"/><path d="M19 18a4 4 0 0 1-4 3h-2"/></S>,
    cog: (p) => <S {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.6 1.6 0 0 0-1-1.5 1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0 .3-1.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.6 1.6 0 0 0 1.5-1 1.6 1.6 0 0 0-.3-1.8l-.1-.1A2 2 0 1 1 7 4.6l.1.1a1.6 1.6 0 0 0 1.8.3H9a1.6 1.6 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V9a1.6 1.6 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1Z"/></S>,
    bolt: (p) => <S {...p} fill="currentColor" sw="0"><path d="M13 2 4 14h6l-1 8 9-12h-6l1-8Z"/></S>,
    bell: (p) => <S {...p}><path d="M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9Z"/><path d="M13.7 21a2 2 0 0 1-3.4 0"/></S>,
    search: (p) => <S {...p}><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></S>,
    plus: (p) => <S {...p}><path d="M12 5v14M5 12h14"/></S>,
    arrowUp: (p) => <S {...p}><path d="M12 19V5M5 12l7-7 7 7"/></S>,
    arrowDown: (p) => <S {...p}><path d="M12 5v14M5 12l7 7 7-7"/></S>,
    arrowRight: (p) => <S {...p}><path d="M5 12h14M13 5l7 7-7 7"/></S>,
    check: (p) => <S {...p}><path d="M20 6 9 17l-5-5"/></S>,
    checkCircle: (p) => <S {...p}><circle cx="12" cy="12" r="9"/><path d="m9 12 2 2 4-4"/></S>,
    dots: (p) => <S {...p}><circle cx="5" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.4" fill="currentColor" stroke="none"/></S>,
    filter: (p) => <S {...p}><path d="M3 5h18l-7 8v6l-4-2v-4L3 5Z"/></S>,
    send: (p) => <S {...p}><path d="m22 2-7 20-4-9-9-4 20-7Z"/><path d="M22 2 11 13"/></S>,
    sparkle: (p) => <S {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2 2M16 16l2 2M18 6l-2 2M8 16l-2 2"/></S>,
    spark: (p) => <S {...p}><path d="M12 2 9.2 9.2 2 12l7.2 2.8L12 22l2.8-7.2L22 12l-7.2-2.8L12 2Z" fill="currentColor" stroke="none"/></S>,
    clock: (p) => <S {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></S>,
    user: (p) => <S {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></S>,
    users: (p) => <S {...p}><circle cx="9" cy="8" r="3.5"/><path d="M2 21a7 7 0 0 1 14 0"/><path d="M16 5a3.5 3.5 0 0 1 0 7M22 21a7 7 0 0 0-5-6.7"/></S>,
    trend: (p) => <S {...p}><path d="m3 17 6-6 4 4 8-8"/><path d="M17 7h4v4"/></S>,
    dollar: (p) => <S {...p}><path d="M12 2v20M17 6.5c0-2-2.2-3-5-3s-5 1-5 3.2c0 4.8 10 2.8 10 7.6 0 2.2-2.2 3.2-5 3.2s-5-1-5-3"/></S>,
    target: (p) => <S {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.4" fill="currentColor" stroke="none"/></S>,
    code: (p) => <S {...p}><path d="m9 8-5 4 5 4M15 8l5 4-5 4"/></S>,
    rocket: (p) => <S {...p}><path d="M5 13c-1.5 1.5-2 5-2 5s3.5-.5 5-2M9 11a9 9 0 0 1 9-9c0 4-1 7-4 9l-2 4-4-2 1-2Z"/><circle cx="14.5" cy="6.5" r="1.4"/></S>,
    play: (p) => <S {...p} fill="currentColor" sw="0"><path d="M7 4v16l13-8z"/></S>,
    pause: (p) => <S {...p}><rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/></S>,
    shield: (p) => <S {...p}><path d="M12 2 4 5v6c0 5 3.5 9 8 11 4.5-2 8-6 8-11V5l-8-3Z"/><path d="m9 12 2 2 4-4"/></S>,
    star: (p) => <S {...p} fill="currentColor" sw="0"><path d="m12 2 2.9 6.3 6.9.7-5.2 4.6 1.5 6.8L12 17.8 5.9 20.4l1.5-6.8L2.2 9l6.9-.7L12 2Z"/></S>,
    chevDown: (p) => <S {...p}><path d="m6 9 6 6 6-6"/></S>,
    chevRight: (p) => <S {...p}><path d="m9 6 6 6-6 6"/></S>,
    menu: (p) => <S {...p}><path d="M3 6h18M3 12h18M3 18h18"/></S>,
    logout: (p) => <S {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9"/></S>,
    calendar: (p) => <S {...p}><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M3 9h18M8 2v4M16 2v4"/></S>,
    layers: (p) => <S {...p}><path d="m12 2 9 5-9 5-9-5 9-5ZM3 12l9 5 9-5M3 17l9 5 9-5"/></S>,
    inbox: (p) => <S {...p}><path d="M3 12h5l2 3h4l2-3h5"/><path d="M5 5h14l2 7v5a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-5l2-7Z"/></S>,
    flame: (p) => <S {...p}><path d="M12 2s5 4 5 9a5 5 0 0 1-10 0c0-1.5.8-3 .8-3S9 11 10 11c0-3 2-5 2-9Z"/></S>,
    key: (p) => <S {...p}><circle cx="8" cy="15" r="4"/><path d="m10.8 12.2 9.2-9.2M17 5l2 2M14 8l2 2"/></S>,
    globe: (p) => <S {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18"/></S>,
    eye: (p) => <S {...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"/></S>,
    moon: (p) => <S {...p}><path d="M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8Z"/></S>,
    palette: (p) => <S {...p}><path d="M12 3a9 9 0 1 0 0 18c1.1 0 2-.9 2-2 0-.5-.2-.9-.5-1.3-.3-.3-.5-.8-.5-1.2 0-1 .9-1.8 1.9-1.8H17a4 4 0 0 0 4-4c0-4.4-4-7.7-9-7.7Z"/><circle cx="7.5" cy="11.5" r="1"/><circle cx="12" cy="8" r="1"/><circle cx="16.5" cy="11.5" r="1"/></S>,
    link: (p) => <S {...p}><path d="M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1.5 1.5M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1.5-1.5"/></S>,
    activity: (p) => <S {...p}><path d="M3 12h4l3 8 4-16 3 8h4"/></S>,
    x: (p) => <S {...p}><path d="M18 6 6 18M6 6l12 12"/></S>,
    trash: (p) => <S {...p}><path d="M3 6h18M8 6V4h8v2M19 6l-1 14H6L5 6M10 11v6M14 11v6"/></S>,
    upload: (p) => <S {...p}><path d="M12 16V4M7 9l5-5 5 5M4 17v2a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-2"/></S>,
    grip: (p) => <S {...p}><circle cx="9" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="6" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="12" r="1.3" fill="currentColor" stroke="none"/><circle cx="9" cy="18" r="1.3" fill="currentColor" stroke="none"/><circle cx="15" cy="18" r="1.3" fill="currentColor" stroke="none"/></S>,
    sliders: (p) => <S {...p}><path d="M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6"/></S>,
    copy: (p) => <S {...p}><rect x="9" y="9" width="11" height="11" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></S>,
    download: (p) => <S {...p}><path d="M12 4v12M7 11l5 5 5-5M4 19v1a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-1"/></S>,
    wand: (p) => <S {...p}><path d="m15 4 1.5 3L20 8.5 16.5 10 15 13l-1.5-3L10 8.5 13.5 7 15 4ZM3 21l8-8"/></S>,
    network: (p) => <S {...p}><circle cx="12" cy="5" r="2.5"/><circle cx="5" cy="19" r="2.5"/><circle cx="19" cy="19" r="2.5"/><path d="M12 7.5v4M12 11.5 6.5 17M12 11.5 17.5 17"/></S>,
    store: (p) => <S {...p}><path d="M4 9V5h16v4M3 9h18l-1 11H4L3 9ZM4 9l1-4M20 9l-1-4M9 9V5M15 9V5"/></S>,
    plug: (p) => <S {...p}><path d="M9 2v6M15 2v6M7 8h10v3a5 5 0 0 1-10 0V8ZM12 16v6"/></S>,
  };

  window.Icon = Icon;
})();
