// Icon components — small, consistent stroke-based SVGs
const Icon = {
  ArrowRight: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} data-icon="arrow-right" {...p}>
      <path d="M3 8h10M9 4l4 4-4 4" />
    </svg>
  ),
  Check: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M3 8.5l3.5 3.5L13 5" />
    </svg>
  ),
  CheckSm: (p) => (
    <svg viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon-sm'} {...p}>
      <path d="M2 6.5l2.5 2.5L10 3.5" />
    </svg>
  ),
  Clock: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" className={p.className || 'icon'} {...p}>
      <circle cx="8" cy="8" r="6.25" />
      <path d="M8 4.5V8l2.5 1.5" />
    </svg>
  ),
  Share: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <circle cx="4" cy="8" r="1.75"/>
      <circle cx="12" cy="4" r="1.75"/>
      <circle cx="12" cy="12" r="1.75"/>
      <path d="M5.5 7l5-2M5.5 9l5 2"/>
    </svg>
  ),
  Bookmark: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M4 3h8v11l-4-2.5L4 14V3z" />
    </svg>
  ),
  Refresh: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M13 8a5 5 0 11-1.5-3.5L13 6" />
      <path d="M13 3v3h-3" />
    </svg>
  ),
  Copy: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <rect x="5" y="5" width="8" height="8" rx="1.2"/>
      <path d="M3 11V4a1 1 0 011-1h7"/>
    </svg>
  ),
  X: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" className={p.className || 'icon'} {...p}>
      <path d="M4 4l8 8M12 4l-8 8" />
    </svg>
  ),
  Minus: (p) => (
    <svg viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" className={p.className || 'icon-sm'} {...p}>
      <path d="M3 6h6" />
    </svg>
  ),
  Alert: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M8 2.5L14 13H2L8 2.5z" />
      <path d="M8 7v3M8 11.5v.01" />
    </svg>
  ),
  Info: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <circle cx="8" cy="8" r="6.25"/>
      <path d="M8 7.5v4M8 5v.01"/>
    </svg>
  ),
  Activity: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M2 8h2.5l1.2-3.5 3 7 1.4-3.5H14" />
    </svg>
  ),
  Sparkle: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M8 2v4M8 10v4M2 8h4M10 8h4" />
    </svg>
  ),
  Search: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <circle cx="7" cy="7" r="4.25" />
      <path d="M10.2 10.2L13.5 13.5" />
    </svg>
  ),
  ChevronDown: (p) => (
    <svg viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon-sm'} {...p}>
      <path d="M3 4.5l3 3 3-3" />
    </svg>
  ),
  Menu: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.6" strokeLinecap="round" className={p.className || 'icon'} {...p}>
      <path d="M3 4.5h10M3 8h10M3 11.5h10" />
    </svg>
  ),
  ExternalLink: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon-sm'} {...p}>
      <path d="M9 3h4v4M13 3l-6 6M11 9v3a1 1 0 01-1 1H4a1 1 0 01-1-1V6a1 1 0 011-1h3"/>
    </svg>
  ),
  ArrowLeft: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <path d="M13 8H3M7 4L3 8l4 4" />
    </svg>
  ),
  LinkedIn: (p) => (
    <svg viewBox="0 0 16 16" fill="currentColor" className={p.className || 'icon'} {...p}>
      <path d="M3 6h2v8H3V6zm1-3a1.2 1.2 0 110 2.4A1.2 1.2 0 014 3zm3 3h2v1.2c.4-.7 1.3-1.4 2.6-1.4 2 0 2.4 1.3 2.4 3.1V14h-2v-3.6c0-.9 0-2-1.2-2s-1.4 1-1.4 2V14H7V6z"/>
    </svg>
  ),
  Mail: (p) => (
    <svg viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" className={p.className || 'icon'} {...p}>
      <rect x="2" y="3.5" width="12" height="9" rx="1"/>
      <path d="M2.5 4.5l5.5 4 5.5-4"/>
    </svg>
  ),
};

window.Icon = Icon;
