// Glassy iridescent icons
const Icon = {
  Compass: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="12" cy="12" r="9"/><path d="M15 9l-2 6-5 1 2-6 5-1Z"/></svg>,
  Home: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 11l9-7 9 7v9a1 1 0 01-1 1h-5v-7H10v7H4a1 1 0 01-1-1v-9Z"/></svg>,
  Agent: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><rect x="4" y="6" width="16" height="13" rx="3"/><path d="M9 10v3M15 10v3M8 19l-2 3M16 19l2 3M9 3l3 3 3-3"/></svg>,
  Flow: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><rect x="3" y="4" width="6" height="5" rx="1"/><rect x="15" y="4" width="6" height="5" rx="1"/><rect x="9" y="15" width="6" height="5" rx="1"/><path d="M6 9v3a2 2 0 002 2h4M18 9v3a2 2 0 01-2 2h-4"/></svg>,
  Funnel: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 4h18l-7 9v8l-4-2v-6L3 4Z"/></svg>,
  Megaphone: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 11v2l13 6V5L3 11ZM16 9a3 3 0 010 6M6 13v5a1 1 0 001 1h2v-5"/></svg>,
  Chart: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 21h18M6 17V11M11 17V7M16 17v-4M20 17V9"/></svg>,
  Inbox: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 13l3-8h12l3 8v6a1 1 0 01-1 1H4a1 1 0 01-1-1v-6Z"/><path d="M3 13h5l1 2h6l1-2h5"/></svg>,
  People: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="9" cy="9" r="3"/><path d="M3 19c0-3 3-5 6-5s6 2 6 5M16 5a3 3 0 010 6M21 19c0-2-1.5-3.5-4-4.3"/></svg>,
  Settings: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.5 1.5 0 00.3 1.7l.1.1a2 2 0 11-2.8 2.8l-.1-.1a1.5 1.5 0 00-1.7-.3 1.5 1.5 0 00-.9 1.4V21a2 2 0 11-4 0v-.1a1.5 1.5 0 00-1-1.4 1.5 1.5 0 00-1.6.3l-.1.1a2 2 0 11-2.8-2.8l.1-.1a1.5 1.5 0 00.3-1.7 1.5 1.5 0 00-1.4-.9H3a2 2 0 110-4h.1a1.5 1.5 0 001.4-1 1.5 1.5 0 00-.3-1.6l-.1-.1a2 2 0 112.8-2.8l.1.1a1.5 1.5 0 001.7.3h0a1.5 1.5 0 00.9-1.4V3a2 2 0 114 0v.1a1.5 1.5 0 00.9 1.4 1.5 1.5 0 001.7-.3l.1-.1a2 2 0 112.8 2.8l-.1.1a1.5 1.5 0 00-.3 1.7v0a1.5 1.5 0 001.4.9H21a2 2 0 110 4h-.1a1.5 1.5 0 00-1.4.9z"/></svg>,
  Search: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>,
  Bell: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M6 10a6 6 0 0112 0c0 5 2 6 2 6H4s2-1 2-6ZM10 20a2 2 0 004 0"/></svg>,
  Plus: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M12 5v14M5 12h14"/></svg>,
  Play: (p) => <svg viewBox="0 0 24 24" fill="currentColor" {...p}><path d="M7 5l12 7-12 7V5Z"/></svg>,
  Pause: (p) => <svg viewBox="0 0 24 24" fill="currentColor" {...p}><rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/></svg>,
  Filter: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 5h18l-7 9v6l-4-2v-4L3 5Z"/></svg>,
  Refresh: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 12a9 9 0 0115-6.7L21 8M21 3v5h-5M21 12a9 9 0 01-15 6.7L3 16M3 21v-5h5"/></svg>,
  ChevronR: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M9 6l6 6-6 6"/></svg>,
  ChevronD: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M6 9l6 6 6-6"/></svg>,
  X: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M6 6l12 12M18 6L6 18"/></svg>,
  Bolt: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M13 3L4 14h7l-1 7 9-11h-7l1-7Z"/></svg>,
  Phone: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M5 4h4l2 5-3 2a12 12 0 005 5l2-3 5 2v4a2 2 0 01-2 2A17 17 0 013 6a2 2 0 012-2Z"/></svg>,
  Mail: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 7 9-7"/></svg>,
  Code: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M8 8l-5 4 5 4M16 8l5 4-5 4M14 4l-4 16"/></svg>,
  Database: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/></svg>,
  Sparkles: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M12 3l1.5 5L19 9.5 13.5 11 12 16 10.5 11 5 9.5 10.5 8 12 3ZM19 16l.7 2 2 .7-2 .7-.7 2-.7-2-2-.7 2-.7.7-2Z"/></svg>,
  More: (p) => <svg viewBox="0 0 24 24" fill="currentColor" {...p}><circle cx="5" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="19" cy="12" r="1.5"/></svg>,
  Calendar: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg>,
  Arrow: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M5 12h14M13 6l6 6-6 6"/></svg>,
  Up: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" {...p}><path d="M7 14l5-5 5 5"/></svg>,
  Dn: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" {...p}><path d="M7 10l5 5 5-5"/></svg>,
  Sidebar: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M9 4v16"/></svg>,
  Tag: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M3 11V4h7l11 11-7 7L3 11Z"/><circle cx="7" cy="8" r="1.5"/></svg>,
  Split: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M6 4v4a4 4 0 004 4h4a4 4 0 014 4v4M14 18l4 4 4-4M2 8l4-4 4 4"/></svg>,
  Globe: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 010 18M12 3a14 14 0 000 18"/></svg>,
  Plug: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M9 7V3M15 7V3M7 11h10v2a5 5 0 01-5 5 5 5 0 01-5-5v-2ZM12 18v3"/></svg>,
  Book: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M4 19V5a2 2 0 012-2h13v18H6a2 2 0 01-2-2zM6 17h13"/></svg>,
  Check: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" {...p}><path d="M5 12l5 5L20 7"/></svg>,
  Star: (p) => <svg viewBox="0 0 24 24" fill="currentColor" {...p}><path d="M12 2l3 7h7l-6 4 2 8-6-4-6 4 2-8-6-4h7l3-7Z"/></svg>,
  Trophy: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M7 4h10v5a5 5 0 01-10 0V4ZM4 5h3v3a3 3 0 01-3-3ZM20 5h-3v3a3 3 0 003-3ZM10 14h4v3a2 2 0 002 2H8a2 2 0 002-2v-3Z"/></svg>,
  Pen: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M14 4l6 6-10 10H4v-6l10-10ZM13 5l6 6"/></svg>,
  Target: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5" fill="currentColor"/></svg>,
  Heart: (p) => <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" {...p}><path d="M12 21s-7-4.5-9-9a5 5 0 019-3 5 5 0 019 3c-2 4.5-9 9-9 9Z"/></svg>,
  Logo: (p) => <svg viewBox="0 0 32 32" fill="none" {...p}>
    <defs>
      <radialGradient id="logo-orb" cx="35%" cy="35%">
        <stop offset="0%" stopColor="#9bf0ff"/>
        <stop offset="50%" stopColor="#4be8ff"/>
        <stop offset="100%" stopColor="#1a1f4d"/>
      </radialGradient>
      <linearGradient id="logo-ring" x1="0" x2="1" y1="0" y2="1">
        <stop offset="0%" stopColor="#4be8ff"/>
        <stop offset="100%" stopColor="#8b6bff"/>
      </linearGradient>
    </defs>
    <circle cx="16" cy="16" r="11" fill="url(#logo-orb)"/>
    <ellipse cx="16" cy="16" rx="14" ry="4.5" fill="none" stroke="url(#logo-ring)" strokeWidth="1.5" transform="rotate(-20 16 16)"/>
    <path d="M11 11h5a5 5 0 010 10h-5V11Z" fill="#ffffff" opacity="0.9"/>
    <path d="M13 13h3a3 3 0 010 6h-3v-6Z" fill="#8b6bff"/>
  </svg>,
};

window.Icon = Icon;
