// Minimal icon set — stroke-based, inherit currentColor.
// Keep SVGs simple: rectangles, circles, strokes. No complex illustrations.

const Icon = ({ name, size = 18, stroke = 1.8, style = {} }) => {
  const paths = {
    play:       <path d="M7 5v14l11-7z" fill="currentColor" stroke="none" />,
    pause:      <><rect x="6" y="5" width="4" height="14" rx="1" fill="currentColor" stroke="none"/><rect x="14" y="5" width="4" height="14" rx="1" fill="currentColor" stroke="none"/></>,
    search:     <><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></>,
    bell:       <><path d="M6 10a6 6 0 1 1 12 0v4l1.5 3H4.5L6 14v-4z"/><path d="M10 20a2 2 0 0 0 4 0"/></>,
    user:       <><circle cx="12" cy="8" r="4"/><path d="M4 20c0-4 4-6 8-6s8 2 8 6"/></>,
    settings:   <><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1"/></>,
    home:       <path d="M4 10 12 4l8 6v9a1 1 0 0 1-1 1h-4v-6h-6v6H5a1 1 0 0 1-1-1v-9z"/>,
    grid:       <><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></>,
    book:       <><path d="M4 5a2 2 0 0 1 2-2h12v16H6a2 2 0 0 0-2 2V5z"/><path d="M4 19h14"/></>,
    check:      <path d="m5 12 5 5L20 7"/>,
    x:          <><path d="M6 6l12 12M18 6 6 18"/></>,
    chevronR:   <path d="m9 6 6 6-6 6"/>,
    chevronL:   <path d="m15 6-6 6 6 6"/>,
    chevronD:   <path d="m6 9 6 6 6-6"/>,
    chevronU:   <path d="m6 15 6-6 6 6"/>,
    arrowR:     <path d="M5 12h14m-6-6 6 6-6 6"/>,
    arrowL:     <path d="M19 12H5m6-6-6 6 6 6"/>,
    plus:       <path d="M12 5v14M5 12h14"/>,
    minus:      <path d="M5 12h14"/>,
    star:       <path d="m12 3 2.9 6 6.6.6-5 4.5 1.5 6.4L12 17l-6 3.5L7.5 14 2.5 9.6 9.1 9 12 3z"/>,
    heart:      <path d="M12 20s-7-4.5-7-10a4 4 0 0 1 7-2.7A4 4 0 0 1 19 10c0 5.5-7 10-7 10z"/>,
    bookmark:   <path d="M6 3h12v18l-6-4-6 4V3z"/>,
    clock:      <><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>,
    video:      <><rect x="3" y="6" width="13" height="12" rx="2"/><path d="m16 10 5-3v10l-5-3z"/></>,
    file:       <><path d="M6 3h8l4 4v14H6V3z"/><path d="M14 3v4h4"/></>,
    image:      <><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="m4 18 5-5 4 4 3-3 4 4"/></>,
    mic:        <><rect x="9" y="3" width="6" height="12" rx="3"/><path d="M5 11a7 7 0 0 0 14 0M12 18v3"/></>,
    edit:       <><path d="M4 20h4l10-10-4-4L4 16v4z"/><path d="m14 6 4 4"/></>,
    trash:      <><path d="M5 7h14M10 7V4h4v3M6 7v13a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1V7"/></>,
    upload:     <><path d="M12 16V4m0 0-5 5m5-5 5 5"/><path d="M4 20h16"/></>,
    download:   <><path d="M12 4v12m0 0-5-5m5 5 5-5"/><path d="M4 20h16"/></>,
    sparkle:    <><path d="M12 3v6m0 6v6M3 12h6m6 0h6"/><path d="m6 6 3 3m6 6 3 3M18 6l-3 3m-6 6-3 3"/></>,
    wand:       <><path d="m4 20 14-14 2 2-14 14-2-2z"/><path d="M14 6 18 10M3 3l1 2 2 1-2 1-1 2-1-2-2-1 2-1 1-2z" fill="currentColor"/></>,
    dollar:     <path d="M12 4v16M16 8a4 2 0 0 0-4-2H10a3 3 0 0 0 0 6h4a3 3 0 0 1 0 6h-2a4 2 0 0 1-4-2"/>,
    shield:     <><path d="M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6l-8-3z"/></>,
    lang:       <><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18"/></>,
    palette:    <><path d="M12 3a9 9 0 1 0 0 18c1.5 0 2-1 2-2 0-1-1-1.5-1-2.5s.5-1.5 2-1.5h2a4 4 0 0 0 4-4 8 8 0 0 0-9-8z"/><circle cx="7" cy="11" r="1" fill="currentColor" stroke="none"/><circle cx="10" cy="7" r="1" fill="currentColor" stroke="none"/><circle cx="15" cy="7" r="1" fill="currentColor" stroke="none"/></>,
    menu:       <><path d="M4 7h16M4 12h16M4 17h16"/></>,
    filter:     <path d="M3 5h18l-7 8v6l-4-2v-4L3 5z"/>,
    external:   <><path d="M14 4h6v6M20 4 10 14"/><path d="M20 14v5a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h5"/></>,
    eye:        <><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></>,
    eyeOff:     <><path d="M3 3l18 18M10.5 6.2A9 9 0 0 1 12 6c6 0 10 6 10 6a19 19 0 0 1-3 3.7M6.3 7.5A19 19 0 0 0 2 12s4 6 10 6a9 9 0 0 0 4.5-1.2"/><path d="M9.5 9.5a3 3 0 0 0 4 4"/></>,
    cart:       <><path d="M3 5h2l2.5 10h11l2-7H6"/><circle cx="9" cy="19" r="1.5"/><circle cx="17" cy="19" r="1.5"/></>,
    check2:     <path d="M5 12l5 5L20 7"/>,
    lock:       <><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></>,
    mail:       <><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></>,
    chart:      <><path d="M4 20V4M4 20h16"/><path d="M8 16v-4M12 16V8M16 16v-6M20 16v-2"/></>,
    users:      <><circle cx="9" cy="8" r="3"/><path d="M3 20c0-3 3-5 6-5s6 2 6 5M17 8a3 3 0 1 1 0 6M17 14c2 .5 4 2 4 5"/></>,
    flame:      <path d="M12 3c3 4 6 5 6 10a6 6 0 0 1-12 0c0-2 1-3 2-4 .5-1 .5-2 0-3 2 1 3 2 4-3z"/>,
    globe:      <><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18"/></>,
    back:       <path d="M19 12H5m6-6-6 6 6 6"/>,
    more:       <><circle cx="5" cy="12" r="1.5" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none"/><circle cx="19" cy="12" r="1.5" fill="currentColor" stroke="none"/></>,
    moreV:      <><circle cx="12" cy="5" r="1.5" fill="currentColor" stroke="none"/><circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none"/><circle cx="12" cy="19" r="1.5" fill="currentColor" stroke="none"/></>,
    volume:     <><path d="M4 9h4l5-4v14l-5-4H4V9z"/><path d="M17 8a5 5 0 0 1 0 8M20 5a9 9 0 0 1 0 14"/></>,
    fullscreen: <><path d="M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5"/></>,
    captions:   <><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M7 12h3M13 12h3M7 15h5M13 15h3"/></>,
    skipF:      <><path d="M5 5v14l9-7z" fill="currentColor" stroke="none"/><path d="M19 5v14" /></>,
    skipB:      <><path d="M19 5v14l-9-7z" fill="currentColor" stroke="none"/><path d="M5 5v14" /></>,
    refresh:    <path d="M21 12a9 9 0 1 1-3-6.7L21 8M21 4v4h-4"/>,
    flag:       <path d="M5 21V4h12l-2 4 2 4H5"/>,
    brush:      <><path d="M3 21c0-3 2-4 4-4 1.5 0 3 1 3 3 0 .8-.5 1-1 1H3z"/><path d="m7 14 10-10 4 4L11 18"/></>,
    sun:        <><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4"/></>,
    moon:       <path d="M20 14A8 8 0 0 1 10 4a8 8 0 1 0 10 10z"/>,
    code:       <><path d="m8 6-6 6 6 6M16 6l6 6-6 6M14 4l-4 16"/></>,
    yin:        <><circle cx="12" cy="12" r="9"/><path d="M12 3a4.5 4.5 0 0 1 0 9 4.5 4.5 0 0 0 0 9" fill="currentColor"/><circle cx="12" cy="7.5" r="1" fill="#fff" stroke="none"/><circle cx="12" cy="16.5" r="1" fill="currentColor" stroke="none"/></>,
    lotus:      <><path d="M12 3c-2 3-2 6 0 9 2-3 2-6 0-9z"/><path d="M3 12c3 0 6 1 9 3 3-2 6-3 9-3M5 12c1 5 4 7 7 7s6-2 7-7"/></>,
    brain:      <><path d="M9 4a3 3 0 0 0-3 3 3 3 0 0 0-2 4c0 1.5 1 2.5 2 3a3 3 0 0 0 3 3h3V4H9z"/><path d="M15 4a3 3 0 0 1 3 3 3 3 0 0 1 2 4c0 1.5-1 2.5-2 3a3 3 0 0 1-3 3h-3"/></>,
    briefcase:  <><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18"/></>,
    leaf:       <><path d="M20 4c0 10-6 16-14 16C6 12 12 4 20 4z"/><path d="M20 4C14 8 10 14 6 20"/></>,
    logout:     <><path d="M9 4H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h4"/><path d="M16 8l4 4-4 4M10 12h10"/></>,
    folder:     <><path d="M3 7a1 1 0 0 1 1-1h5l2 3h9a1 1 0 0 1 1 1v9a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V7z"/></>,
    save:       <><path d="M5 4h12l3 3v13a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z"/><path d="M8 4v6h8V4M8 20v-6h8v6"/></>,
  };
  return (
    <svg
      viewBox="0 0 24 24"
      width={size} height={size}
      fill="none" stroke="currentColor"
      strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round"
      style={{ flexShrink: 0, ...style }}
    >
      {paths[name] || null}
    </svg>
  );
};

window.Icon = Icon;
