// Tiny stroke-icon set — Lucide-style.
// All 24×24 viewBox, stroke=currentColor, no fills.
const I = (d, opts={}) => ({d, ...opts});
const PATHS = {
  home:      'M3 11.5L12 4l9 7.5M5 10v10h5v-6h4v6h5V10',
  cart:      'M3 4h2l2.5 11h10l2.5-8H6M9 20a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm9 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z',
  bolt:      'M13 3L4 14h6l-1 7 9-11h-6l1-7z',
  car:       'M4 14l2-6h12l2 6M5 14h14v5H5zM7.5 17.5h.01M16.5 17.5h.01',
  heart:     'M12 21s-7-4.5-9-9a4.5 4.5 0 0 1 8-3 4.5 4.5 0 0 1 8 3c-2 4.5-7 9-7 9z',
  fork:      'M7 3v8a3 3 0 0 0 3 3v7M10 14a3 3 0 0 0 3-3V3M17 3v18',
  coffee:    'M4 8h13v6a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V8zM17 10h2a2 2 0 0 1 0 4h-2M6 3v2M10 3v2M14 3v2',
  spark:     'M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8zM18 17l.6 1.6L20 19l-1.4.4L18 21l-.6-1.6L16 19l1.4-.4z',
  bag:       'M6 8h12l-1 12H7zM9 8a3 3 0 1 1 6 0',
  play:      'M9 7v10l8-5z',
  dollar:    'M12 3v18M16 7H10a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6H8',
  trend:     'M3 17l6-6 4 4 8-8M14 7h7v7',
  shield:    'M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6z',
  gift:      'M3 9h18v4H3zM5 13v8h14v-8M12 9v12M8 9a2.5 2.5 0 0 1 0-5c2 0 4 2.5 4 5C12 4 14 4 16 4a2.5 2.5 0 0 1 0 5',
  paw:       'M5 14a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM15 14a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM8 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM14 8a2 2 0 1 0 4 0 2 2 0 0 0-4 0zM8 18c0-2 2-3 4-3s4 1 4 3-1 3-4 3-4-1-4-3z',
  briefcase: 'M3 8h18v12H3zM8 8V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v3',
  laptop:    'M4 6h16v10H4zM2 18h20',
  key:       'M14 7a4 4 0 1 1-4 4h-2v3H6v3H3v-3l7-7h4z',
  plus:      'M12 5v14M5 12h14',
  minus:     'M5 12h14',
  arrowUp:   'M12 19V5M5 12l7-7 7 7',
  arrowDown: 'M12 5v14M5 12l7 7 7-7',
  arrowRight:'M5 12h14M13 5l7 7-7 7',
  arrowLeft: 'M19 12H5M11 5l-7 7 7 7',
  check:     'M5 12l5 5L20 7',
  x:         'M6 6l12 12M18 6L6 18',
  search:    'M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14zM21 21l-5-5',
  bell:      'M6 17V11a6 6 0 0 1 12 0v6l2 2H4zM10 21a2 2 0 0 0 4 0',
  cards:     'M4 8h16v10H4zM4 12h16M7 16h3',
  swap:      'M7 4l-4 4 4 4M3 8h14M17 20l4-4-4-4M21 16H7',
  filter:    'M3 5h18M6 11h12M10 17h4',
  more:      'M5 12h.01M12 12h.01M19 12h.01',
  menu:      'M4 7h16M4 12h16M4 17h16',
  mic:       'M9 4a3 3 0 0 1 6 0v8a3 3 0 0 1-6 0zM5 11v1a7 7 0 0 0 14 0v-1M12 19v3',
  spend:     'M3 17l6-6 4 4 8-8M14 7h7v7', // alias of trend
  calendar:  'M4 7h16v13H4zM4 11h16M8 3v4M16 3v4',
  chevDown:  'M6 9l6 6 6-6',
  chevRight: 'M9 6l6 6-6 6',
  chevLeft:  'M15 6l-6 6 6 6',
  star:      'M12 3l2.7 6.2L21 10l-5 4.5L17.5 21 12 17.5 6.5 21 8 14.5 3 10l6.3-.8z',
  pin:       'M12 21v-7M7 4h10l-1 8H8z',
  user:      'M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM4 21a8 8 0 0 1 16 0',
  exchange:  'M7 7h12l-3-3M17 17H5l3 3',
  wallet:    'M3 7h16v12H3zM3 7l3-3h13v3M16 13h.01',
  eye:       'M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z',
  eyeOff:    'M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24M1 1l22 22',
  pie:       'M12 3a9 9 0 1 0 9 9h-9z M12 3v9h9a9 9 0 0 0-9-9z',
  pause:     'M9 5v14M15 5v14',
  settings:     'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z',
  chevronLeft:  'M15 18l-6-6 6-6',
  chevronRight: 'M9 18l6-6-6-6',
  chevronUp:    'M18 15l-6-6-6 6',
  chevronDown:  'M6 9l6 6 6-6',
  arrowLeft:    'M19 12H5M12 5l-7 7 7 7',
  arrowRight:   'M5 12h14M12 19l7-7-7-7',
};

function Icon({ name, size = 18, strokeWidth = 1.8, style = {} }) {
  const d = PATHS[name] || PATHS.more;
  return (
    <svg
      width={size} height={size} viewBox="0 0 24 24"
      fill="none" stroke="currentColor" strokeWidth={strokeWidth}
      strokeLinecap="round" strokeLinejoin="round"
      style={{ flexShrink: 0, ...style }}
    >
      {d.split('M').filter(Boolean).map((seg, i) => (
        <path key={i} d={'M' + seg} />
      ))}
    </svg>
  );
}

window.Icon = Icon;
window.IconPaths = PATHS;
