// Icons — minimal line icons, 16x16 stroke
const Icon = ({ name, size = 16, stroke = 1.5 }) => {
  const paths = {
    dashboard:  <><path d="M3 3h7v7H3z"/><path d="M14 3h7v7h-7z"/><path d="M14 14h7v7h-7z"/><path d="M3 14h7v7H3z"/></>,
    bullhorn:   <><path d="M3 11v2a2 2 0 0 0 2 2h1"/><path d="M3 11l14-5v12L3 13z"/><path d="M19 8v6"/><path d="M7 15l1 4"/></>,
    car:        <><path d="M5 17h14M5 13l1.5-5A2 2 0 0 1 8.4 6.5h7.2a2 2 0 0 1 1.9 1.5L19 13"/><path d="M3 17h2v2H3zM19 17h2v2h-2z"/><circle cx="8" cy="15.5" r="1.2"/><circle cx="16" cy="15.5" r="1.2"/></>,
    tag:        <><path d="M12 2H5a3 3 0 0 0-3 3v7l10 10 10-10z"/><circle cx="7.5" cy="7.5" r="1.4"/></>,
    archive:    <><path d="M3 4h18v4H3z"/><path d="M5 8v12h14V8"/><path d="M9 12h6"/></>,
    user:       <><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/></>,
    plus:       <><path d="M12 5v14M5 12h14"/></>,
    search:     <><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></>,
    bell:       <><path d="M6 8a6 6 0 0 1 12 0c0 7 3 7 3 9H3c0-2 3-2 3-9z"/><path d="M10 21h4"/></>,
    chev_r:     <><path d="m9 6 6 6-6 6"/></>,
    chev_d:     <><path d="m6 9 6 6 6-6"/></>,
    chev_l:     <><path d="m15 18-6-6 6-6"/></>,
    arrow_up:   <><path d="m6 14 6-6 6 6"/></>,
    arrow_dn:   <><path d="m6 10 6 6 6-6"/></>,
    arrow_ur:   <><path d="M7 17 17 7M9 7h8v8"/></>,
    arrow_dr:   <><path d="M7 7l10 10M17 9v8H9"/></>,
    check:      <><path d="m5 12 5 5 9-11"/></>,
    x:          <><path d="M6 6l12 12M18 6 6 18"/></>,
    dot_3:      <><circle cx="6" cy="12" r="1.4"/><circle cx="12" cy="12" r="1.4"/><circle cx="18" cy="12" r="1.4"/></>,
    settings:   <><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.6 1.6 0 0 0 .3 1.7l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-1.7-.3 1.6 1.6 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.6 1.6 0 0 0-1-1.5 1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1A1.6 1.6 0 0 0 4.6 15a1.6 1.6 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1A1.6 1.6 0 0 0 4.6 9a1.6 1.6 0 0 0-.3-1.7l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1A1.6 1.6 0 0 0 9 4.7 1.6 1.6 0 0 0 10 3.2V3a2 2 0 1 1 4 0v.1c0 .65.4 1.25 1 1.5a1.6 1.6 0 0 0 1.7-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1A1.6 1.6 0 0 0 19.3 9c.25.6.85 1 1.5 1H21a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z"/></>,
    filter:     <><path d="M4 5h16l-6 8v6l-4-2v-4z"/></>,
    sort:       <><path d="M8 4v16M4 8l4-4 4 4M16 20V4M12 16l4 4 4-4"/></>,
    wrench:     <><path d="M14 6a4 4 0 0 0 5 5l-9 9-3-3 9-9a4 4 0 0 0-2-2z"/></>,
    money:      <><rect x="3" y="6" width="18" height="12" rx="2"/><circle cx="12" cy="12" r="3"/><path d="M6 9v6M18 9v6"/></>,
    receipt:    <><path d="M5 3v18l2-1 2 1 2-1 2 1 2-1 2 1V3z"/><path d="M8 8h8M8 12h8M8 16h5"/></>,
    camera:     <><path d="M3 7h4l2-2h6l2 2h4v12H3z"/><circle cx="12" cy="13" r="3.5"/></>,
    image:      <><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="m3 17 5-5 4 4 3-3 6 6"/></>,
    download:   <><path d="M12 3v12m0 0-4-4m4 4 4-4M4 21h16"/></>,
    upload:     <><path d="M12 15V3m0 0-4 4m4-4 4 4M4 21h16"/></>,
    link:       <><path d="M10 14a3.5 3.5 0 0 0 5 0l3-3a3.5 3.5 0 0 0-5-5l-1 1"/><path d="M14 10a3.5 3.5 0 0 0-5 0l-3 3a3.5 3.5 0 0 0 5 5l1-1"/></>,
    clock:      <><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></>,
    flag:       <><path d="M5 21V4h13l-2 4 2 4H5"/></>,
    trend_up:   <><path d="M3 17 9 11l4 4 8-8"/><path d="M14 4h7v7"/></>,
    pie:        <><path d="M12 3v9h9a9 9 0 1 1-9-9z"/></>,
    chat:       <><path d="M21 12a8 8 0 0 1-12 7l-5 1 1.5-4.5A8 8 0 1 1 21 12z"/></>,
    logout:     <><path d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4"/><path d="m16 17 5-5-5-5"/><path d="M21 12H9"/></>,
    eye:        <><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></>,
  };
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
         stroke="currentColor" strokeWidth={stroke}
         strokeLinecap="round" strokeLinejoin="round" className="s-icon">
      {paths[name] || null}
    </svg>
  );
};

window.Icon = Icon;
