/* Icon library — inline Lucide SVGs as React components.
   All icons inherit currentColor; stroke-width 1.5 default. */

const SVG = ({ children, size = 18, sw = 1.5, style = {}, ...rest }) => (
  <svg
    xmlns="http://www.w3.org/2000/svg"
    width={size}
    height={size}
    viewBox="0 0 24 24"
    fill="none"
    stroke="currentColor"
    strokeWidth={sw}
    strokeLinecap="round"
    strokeLinejoin="round"
    style={{ flexShrink: 0, ...style }}
    {...rest}
  >
    {children}
  </svg>
);

const IconKey       = (p) => <SVG {...p}><path d="m21 2-9.6 9.6"/><circle cx="7.5" cy="15.5" r="5.5"/><path d="m21 2-3 3 2 2 3-3"/><path d="m18 5 2 2"/></SVG>;
const IconKeyRound  = (p) => <SVG {...p}><circle cx="8" cy="15" r="4"/><path d="M10.85 12.15 19 4"/><path d="m18 5 2 2"/><path d="m15 8 3 3"/></SVG>;
const IconHome      = (p) => <SVG {...p}><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M9 22V12h6v10"/></SVG>;
const IconGamepad   = (p) => <SVG {...p}><line x1="6" x2="10" y1="11" y2="11"/><line x1="8" x2="8" y1="9" y2="13"/><line x1="15" x2="15.01" y1="12" y2="12"/><line x1="18" x2="18.01" y1="10" y2="10"/><path d="M17.32 5H6.68a4 4 0 0 0-3.978 3.59c-.006.052-.01.101-.017.152C2.604 9.416 2 14.456 2 16a3 3 0 0 0 3 3c1 0 1.5-.5 2-1l1.414-1.414A2 2 0 0 1 9.828 16h4.344a2 2 0 0 1 1.414.586L17 18c.5.5 1 1 2 1a3 3 0 0 0 3-3c0-1.545-.604-6.584-.685-7.258C21.31 8.69 21.31 8.64 21.3 8.59A4 4 0 0 0 17.32 5"/></SVG>;
const IconApp       = (p) => <SVG {...p}><rect width="18" height="18" x="3" y="3" rx="2"/><path d="M3 8h18"/></SVG>;
const IconMessage   = (p) => <SVG {...p}><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></SVG>;
const IconDashboard = (p) => <SVG {...p}><rect width="7" height="9" x="3" y="3" rx="1"/><rect width="7" height="5" x="14" y="3" rx="1"/><rect width="7" height="9" x="14" y="12" rx="1"/><rect width="7" height="5" x="3" y="16" rx="1"/></SVG>;
const IconWallet    = (p) => <SVG {...p}><path d="M19 7V5a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/><path d="M3 5v14a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1V8a1 1 0 0 0-1-1H5a2 2 0 0 1-2-2"/><path d="M18 12a2 2 0 0 0 0 4h4v-4z"/></SVG>;
const IconPhone     = (p) => <SVG {...p}><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.127.96.361 1.903.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.907.339 1.85.573 2.81.7A2 2 0 0 1 22 16.92"/></SVG>;
const IconSearch    = (p) => <SVG {...p}><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></SVG>;
const IconShield    = (p) => <SVG {...p}><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12 2 2 4-4"/></SVG>;
const IconZap       = (p) => <SVG {...p}><path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z"/></SVG>;
const IconCheck     = (p) => <SVG {...p}><circle cx="12" cy="12" r="10"/><path d="m9 12 2 2 4-4"/></SVG>;
const IconAlert     = (p) => <SVG {...p}><circle cx="12" cy="12" r="10"/><line x1="12" x2="12" y1="8" y2="12"/><line x1="12" x2="12.01" y1="16" y2="16"/></SVG>;
const IconBell      = (p) => <SVG {...p}><path d="M10.268 21a2 2 0 0 0 3.464 0"/><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"/></SVG>;
const IconChevDown  = (p) => <SVG {...p}><path d="m6 9 6 6 6-6"/></SVG>;
const IconChevRight = (p) => <SVG {...p}><path d="m9 18 6-6-6-6"/></SVG>;
const IconX         = (p) => <SVG {...p}><path d="M18 6 6 18"/><path d="m6 6 12 12"/></SVG>;
const IconPlus      = (p) => <SVG {...p}><path d="M5 12h14"/><path d="M12 5v14"/></SVG>;
const IconSettings  = (p) => <SVG {...p}><path d="M19.43 12.98c.04-.32.07-.64.07-.98s-.03-.66-.07-.98l2.11-1.65a.5.5 0 0 0 .12-.64l-2-3.46a.5.5 0 0 0-.61-.22l-2.49 1a7 7 0 0 0-1.69-.98l-.38-2.65A.5.5 0 0 0 14 2h-4a.5.5 0 0 0-.49.42l-.38 2.65a7 7 0 0 0-1.69.98l-2.49-1a.5.5 0 0 0-.61.22l-2 3.46a.5.5 0 0 0 .12.64l2.11 1.65c-.04.32-.07.65-.07.98s.03.66.07.98l-2.11 1.65a.5.5 0 0 0-.12.64l2 3.46a.5.5 0 0 0 .61.22l2.49-1a7 7 0 0 0 1.69.98l.38 2.65A.5.5 0 0 0 10 22h4a.5.5 0 0 0 .49-.42l.38-2.65a7 7 0 0 0 1.69-.98l2.49 1a.5.5 0 0 0 .61-.22l2-3.46a.5.5 0 0 0-.12-.64z"/><circle cx="12" cy="12" r="3"/></SVG>;
const IconLogout    = (p) => <SVG {...p}><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" x2="9" y1="12" y2="12"/></SVG>;
const IconLock      = (p) => <SVG {...p}><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></SVG>;
const IconUser      = (p) => <SVG {...p}><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></SVG>;
const IconUsers     = (p) => <SVG {...p}><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></SVG>;
const IconQR        = (p) => <SVG {...p}><rect width="5" height="5" x="3" y="3" rx="1"/><rect width="5" height="5" x="16" y="3" rx="1"/><rect width="5" height="5" x="3" y="16" rx="1"/><path d="M21 16h-3a2 2 0 0 0-2 2v3"/><path d="M21 21v.01"/><path d="M12 7v3a2 2 0 0 1-2 2H7"/><path d="M3 12h.01"/><path d="M12 3h.01"/><path d="M12 16v.01"/><path d="M16 12h1"/><path d="M21 12v.01"/><path d="M12 21v-1"/></SVG>;
const IconCard      = (p) => <SVG {...p}><rect width="20" height="14" x="2" y="5" rx="2"/><line x1="2" x2="22" y1="10" y2="10"/></SVG>;
const IconCopy      = (p) => <SVG {...p}><rect width="14" height="14" x="8" y="8" rx="2" ry="2"/><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"/></SVG>;
const IconExternal  = (p) => <SVG {...p}><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></SVG>;
const IconDownload  = (p) => <SVG {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" x2="12" y1="15" y2="3"/></SVG>;
const IconFire      = (p) => <SVG {...p}><path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z"/></SVG>;
const IconBank      = (p) => <SVG {...p}><line x1="3" x2="21" y1="22" y2="22"/><line x1="6" x2="6" y1="18" y2="11"/><line x1="10" x2="10" y1="18" y2="11"/><line x1="14" x2="14" y1="18" y2="11"/><line x1="18" x2="18" y1="18" y2="11"/><polygon points="12 2 20 7 4 7"/></SVG>;
const IconChart     = (p) => <SVG {...p}><path d="M3 3v18h18"/><path d="M7 16V8"/><path d="M11 16v-3"/><path d="M15 16V6"/><path d="M19 16v-7"/></SVG>;
const IconReceipt   = (p) => <SVG {...p}><path d="M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1Z"/><path d="M16 8h-6a2 2 0 1 0 0 4h4a2 2 0 1 1 0 4H8"/><path d="M12 17.5v-11"/></SVG>;
const IconDiscord   = (p) => <SVG {...p}><circle cx="9" cy="12" r="1"/><circle cx="15" cy="12" r="1"/><path d="M7.5 7.2A14 14 0 0 1 12 6.5c1.5 0 3 .25 4.5.7"/><path d="M7 16.5a14 14 0 0 0 10 0"/><path d="m15.5 17.5 1 2c1.5-.4 2.9-1 4-1.8a17.5 17.5 0 0 0-3-12.4 13 13 0 0 0-4-1.3l-1 2"/><path d="m8.5 17.5-1 2c-1.5-.4-2.9-1-4-1.8a17.5 17.5 0 0 1 3-12.4A13 13 0 0 1 10.5 4l1 2"/></SVG>;
const IconSend      = (p) => <SVG {...p}><path d="m22 2-7 20-4-9-9-4z"/><path d="M22 2 11 13"/></SVG>;
const IconFacebook  = (p) => <SVG {...p}><path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"/></SVG>;
const IconGlobe     = (p) => <SVG {...p}><circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/></SVG>;
const IconSparkles  = (p) => <SVG {...p}><path d="m12 3-1.9 5.8a2 2 0 0 1-1.3 1.3L3 12l5.8 1.9a2 2 0 0 1 1.3 1.3L12 21l1.9-5.8a2 2 0 0 1 1.3-1.3L21 12l-5.8-1.9a2 2 0 0 1-1.3-1.3z"/><path d="M5 3v4"/><path d="M19 17v4"/><path d="M3 5h4"/><path d="M17 19h4"/></SVG>;
const IconMore      = (p) => <SVG {...p}><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/><circle cx="5" cy="12" r="1"/></SVG>;
const IconMenu      = (p) => <SVG {...p}><line x1="4" x2="20" y1="6" y2="6"/><line x1="4" x2="20" y1="12" y2="12"/><line x1="4" x2="20" y1="18" y2="18"/></SVG>;
const IconRefresh   = (p) => <SVG {...p}><path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16"/><path d="M3 21v-5h5"/></SVG>;
const IconMonitor   = (p) => <SVG {...p}><rect width="20" height="14" x="2" y="3" rx="2"/><line x1="8" x2="16" y1="21" y2="21"/><line x1="12" x2="12" y1="17" y2="21"/></SVG>;
const IconCheckSm   = (p) => <SVG {...p}><polyline points="20 6 9 17 4 12"/></SVG>;
const IconTrash     = (p) => <SVG {...p}><path d="M3 6h18"/><path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"/><line x1="10" x2="10" y1="11" y2="17"/><line x1="14" x2="14" y1="11" y2="17"/></SVG>;

Object.assign(window, {
  IconKey, IconKeyRound, IconHome, IconGamepad, IconApp, IconMessage,
  IconDashboard, IconWallet, IconPhone, IconSearch, IconShield, IconZap,
  IconCheck, IconAlert, IconBell, IconChevDown, IconChevRight, IconX,
  IconPlus, IconSettings, IconLogout, IconLock, IconUser, IconUsers,
  IconQR, IconCard, IconCopy, IconExternal, IconDownload, IconFire,
  IconBank, IconChart, IconReceipt, IconDiscord, IconSend, IconFacebook,
  IconGlobe, IconSparkles, IconMore, IconMenu, IconRefresh, IconMonitor,
  IconCheckSm, IconTrash,
});
