// Lucide-style line icons — 1.5px stroke, rounded caps, per the NLC design system.
// Single <Icon name size strokeWidth> component. Paths kept minimal & on-grid.
(function () {
  const P = {
    home: 'M3 10.5 12 3l9 7.5M5 9.5V20a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V9.5',
    play: 'M6 4.5v15l13-7.5z',
    playCircle: ['M12 3a9 9 0 1 0 0 18 9 9 0 0 0 0-18z', 'M10 8.5v7l6-3.5z'],
    book: 'M4 4.5A1.5 1.5 0 0 1 5.5 3H19a1 1 0 0 1 1 1v15a1 1 0 0 1-1 1H6a2 2 0 0 1-2-2zM20 17H6a2 2 0 0 0-2 2',
    bookOpen: 'M12 6.5C12 5 9.5 4 7 4S2.5 5 2.5 5v13S5 17 7.5 17s4.5 1 4.5 1m0-11.5C12 5 14.5 4 17 4s4.5 1 4.5 1v13S19 17 16.5 17 12 18 12 18m0-11.5V18',
    heart: 'M12 20s-7-4.6-9.3-9.2C1.2 7.9 2.6 4.8 5.7 4.8c1.9 0 3.3 1.2 4.3 2.6 1-1.4 2.4-2.6 4.3-2.6 3.1 0 4.5 3.1 3 6C19 15.4 12 20 12 20z',
    grid: 'M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z',
    calendar: 'M4 6.5A1.5 1.5 0 0 1 5.5 5H18a1.5 1.5 0 0 1 1.5 1.5V19a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zM4 9.5h15.5M8 3v4M16 3v4',
    gift: 'M4 11h16v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zM3 7.5h18V11H3zM12 7.5V20M12 7.5S11 4 8.5 4 6 7.5 8.5 7.5M12 7.5S13 4 15.5 4 18 7.5 15.5 7.5',
    users: 'M16 20v-1.5a3.5 3.5 0 0 0-3.5-3.5h-5A3.5 3.5 0 0 0 4 18.5V20M10 11.5a3.25 3.25 0 1 0 0-6.5 3.25 3.25 0 0 0 0 6.5M20 20v-1.5a3.5 3.5 0 0 0-2.6-3.4M15 5.2a3.25 3.25 0 0 1 0 6.1',
    bell: 'M18 8.5a6 6 0 1 0-12 0c0 6-2.5 7.5-2.5 7.5h17S18 14.5 18 8.5M10.3 20a2 2 0 0 0 3.4 0',
    download: 'M12 3v12m0 0 4.5-4.5M12 15l-4.5-4.5M4 17v2a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-2',
    search: 'M11 18a7 7 0 1 0 0-14 7 7 0 0 0 0 14zM20 20l-4-4',
    chevronRight: 'M9 5l7 7-7 7',
    chevronLeft: 'M15 5l-7 7 7 7',
    chevronDown: 'M5 9l7 7 7-7',
    x: 'M6 6l12 12M18 6L6 18',
    bookmark: 'M6 4.5A1.5 1.5 0 0 1 7.5 3h9A1.5 1.5 0 0 1 18 4.5V21l-6-4-6 4z',
    highlighter: 'M4 20h5M14.5 4.5l5 5L9 20H4v-5zM12.5 6.5l5 5',
    pencil: 'M4 20h4l10.5-10.5a2 2 0 0 0-3-3L5 17z',
    share: 'M12 3v13M12 3 8 7M12 3l4 4M5 12v7a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-7',
    more: 'M6 12h.01M12 12h.01M18 12h.01',
    moreVertical: 'M12 6h.01M12 12h.01M12 18h.01',
    mapPin: 'M12 21s7-5.6 7-11a7 7 0 1 0-14 0c0 5.4 7 11 7 11zM12 12.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5z',
    clock: 'M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18zM12 7.5V12l3 2',
    check: 'M5 12.5l4.5 4.5L19 7',
    plus: 'M12 5v14M5 12h14',
    settings: 'M12 15.5a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7zM19.4 13a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-2.9 1.2V20a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-2.9-1.2l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0-1.2-2.9H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.2-2.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 2.9-1.2V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 2.9 1.2l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0 1.2 2.9H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z',
    user: 'M19 20v-1.5a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4V20M12 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8z',
    image: 'M4 5.5A1.5 1.5 0 0 1 5.5 4h13A1.5 1.5 0 0 1 20 5.5v13a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 18.5zM8.5 11a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M20 15l-4.5-4.5L5 20',
    pause: 'M8 5v14M16 5v14',
    volume: 'M11 5 6.5 9H4v6h2.5L11 19zM15.5 8.5a4 4 0 0 1 0 7M18 6a7 7 0 0 1 0 12',
    maximize: 'M4 9V5a1 1 0 0 1 1-1h4M15 4h4a1 1 0 0 1 1 1v4M20 15v4a1 1 0 0 1-1 1h-4M9 20H5a1 1 0 0 1-1-1v-4',
    cast: 'M3 7V6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-7M3 12a6 6 0 0 1 6 6M3 16a2 2 0 0 1 2 2M3 20h.01',
    lock: 'M6 11h12a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1zM8 11V8a4 4 0 0 1 8 0v3',
    logout: 'M9 20H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h3M15.5 16.5 20 12l-4.5-4.5M20 12H10',
    headphones: 'M4 14v-2a8 8 0 0 1 16 0v2M4 14h2a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1zM20 14h-2a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1z',
    sun: 'M12 16a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM12 2v2M12 20v2M4 12H2M22 12h-2M5.6 5.6 4.2 4.2M19.8 19.8l-1.4-1.4M18.4 5.6l1.4-1.4M4.2 19.8l1.4-1.4',
    note: 'M5 4.5A1.5 1.5 0 0 1 6.5 3h11A1.5 1.5 0 0 1 19 4.5v10L13.5 20H6.5A1.5 1.5 0 0 1 5 18.5zM18.5 14.5H14a1 1 0 0 0-1 1v4.5M8.5 8.5h7M8.5 12h5',
    arrowRight: 'M5 12h14M13 6l6 6-6 6',
    filter: 'M4 6h16M7 12h10M10 18h4',
    flame: 'M12 21a6 6 0 0 0 6-6c0-3-2-5-3-7-1.5 1-2 2.5-2 3.5C12 9 10.5 6 10.5 3 8 5 6 8.5 6 12a6 6 0 0 0 6 9z',
    quote: 'M9 7H6a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h2v3H5M20 7h-3a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h2v3h-3',
    handHeart: 'M11 14l-3-2.5a1.8 1.8 0 0 1 2.4-2.7L11 9.6l.6-.8a1.8 1.8 0 0 1 2.4 2.7zM4 13l3 3v4H4zM7 16l3 1.5 4 .5 5.5-2.2a1.4 1.4 0 0 0-1-2.5L14 17',
    send: 'M21 4 3 11l6 2.5L11 20l3.5-6L21 4z',
  };

  function Icon({ name, size = 24, strokeWidth = 1.6, fill = 'none', style = {}, color }) {
    const d = P[name];
    if (!d) return null;
    const arr = Array.isArray(d) ? d : [d];
    return (
      <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
        style={{ flexShrink: 0, display: 'block', color, ...style }}>
        {arr.map((p, i) => (
          <path key={i} d={p} fill={fill === 'currentColor' ? 'currentColor' : 'none'}
            stroke="currentColor" strokeWidth={strokeWidth}
            strokeLinecap="round" strokeLinejoin="round" />
        ))}
      </svg>
    );
  }

  window.Icon = Icon;
})();
