// icons.jsx — small stroke icon set
const Icon = ({ name, size = 16, strokeWidth = 1.5, style }) => {
  const s = { width: size, height: size, ...style };
  const p = { fill: "none", stroke: "currentColor", strokeWidth, strokeLinecap: "round", strokeLinejoin: "round" };
  const paths = {
    target: <g {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.2" fill="currentColor"/></g>,
    arrow: <g {...p}><path d="M5 12h14M13 6l6 6-6 6"/></g>,
    arrowUR: <g {...p}><path d="M7 17L17 7M9 7h8v8"/></g>,
    check: <g {...p}><path d="M5 12.5l4.5 4.5L19 7.5"/></g>,
    checkC: <g {...p}><circle cx="12" cy="12" r="9"/><path d="M8 12.5l3 3 5-6"/></g>,
    alert: <g {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7.5v5M12 16v.5"/></g>,
    x: <g {...p}><circle cx="12" cy="12" r="9"/><path d="M9 9l6 6M15 9l-6 6"/></g>,
    home: <g {...p}><path d="M4 11l8-7 8 7v9a1 1 0 01-1 1h-4v-6h-6v6H5a1 1 0 01-1-1z"/></g>,
    key: <g {...p}><circle cx="8" cy="14" r="3.5"/><path d="M10.5 12L20 4M16 8l2 2M18 6l1.5 1.5"/></g>,
    stairs: <g {...p}><path d="M3 21h6v-4h6v-4h6V8"/><path d="M21 4l-2 4h4l-2-4z" fill="currentColor"/></g>,
    handshake: <g {...p}><path d="M4 13l4-4 3 2 3-2 6 5"/><path d="M14 9l2-2 3 3M8 17l2 2 2-2"/></g>,
    sparkles: <g {...p}><path d="M12 4v3M12 17v3M4 12h3M17 12h3"/><path d="M7 7l2 2M15 15l2 2M17 7l-2 2M9 15l-2 2"/></g>,
    bolt: <g {...p}><path d="M13 3L5 14h6l-1 7 8-11h-6l1-7z"/></g>,
    file: <g {...p}><path d="M6 3h8l4 4v14a1 1 0 01-1 1H6a1 1 0 01-1-1V4a1 1 0 011-1z"/><path d="M14 3v4h4M8 12h8M8 16h6"/></g>,
    chart: <g {...p}><path d="M4 19V5M4 19h16"/><path d="M8 15v-3M12 15V8M16 15v-5"/></g>,
    map: <g {...p}><path d="M9 4L3 6v14l6-2 6 2 6-2V4l-6 2-6-2z"/><path d="M9 4v14M15 6v14"/></g>,
    bell: <g {...p}><path d="M6 16V11a6 6 0 1112 0v5l2 2H4l2-2z"/><path d="M10 21a2 2 0 004 0"/></g>,
    chat: <g {...p}><path d="M4 6a2 2 0 012-2h12a2 2 0 012 2v9a2 2 0 01-2 2h-8l-4 3v-3H6a2 2 0 01-2-2V6z"/></g>,
    search: <g {...p}><circle cx="11" cy="11" r="6"/><path d="M16 16l4 4"/></g>,
    user: <g {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21c0-4 4-6 8-6s8 2 8 6"/></g>,
    euro: <g {...p}><path d="M18 6.5a7 7 0 100 11"/><path d="M4 10h10M4 14h10"/></g>,
    calendar: <g {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></g>,
    bldg: <g {...p}><path d="M5 21V5l7-2 7 2v16"/><path d="M9 9h2M13 9h2M9 13h2M13 13h2M9 17h2M13 17h2"/></g>,
    pin: <g {...p}><path d="M12 21s7-7 7-12a7 7 0 10-14 0c0 5 7 12 7 12z"/><circle cx="12" cy="9" r="2.5"/></g>,
    list: <g {...p}><path d="M4 6h16M4 12h16M4 18h10"/></g>,
    star: <g {...p}><path d="M12 4l2.4 5 5.6.8-4 4 1 5.6L12 16.8 6.9 19.4l1-5.6-4-4 5.6-.8z"/></g>,
    plus: <g {...p}><path d="M12 5v14M5 12h14"/></g>,
    minus: <g {...p}><path d="M5 12h14"/></g>,
    grid: <g {...p}><rect x="4" y="4" width="7" height="7"/><rect x="13" y="4" width="7" height="7"/><rect x="4" y="13" width="7" height="7"/><rect x="13" y="13" width="7" height="7"/></g>,
    upload: <g {...p}><path d="M12 16V4M7 9l5-5 5 5"/><path d="M4 16v3a1 1 0 001 1h14a1 1 0 001-1v-3"/></g>,
    lock: <g {...p}><rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V8a4 4 0 018 0v3"/></g>,
    shield: <g {...p}><path d="M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6z"/></g>,
    dot: <g {...p}><circle cx="12" cy="12" r="3" fill="currentColor" stroke="none"/></g>,
    chevR: <g {...p}><path d="M9 6l6 6-6 6"/></g>,
    chevD: <g {...p}><path d="M6 9l6 6 6-6"/></g>,
    heart: <g {...p}><path d="M12 20s-7-4-7-10a4 4 0 017-2.5A4 4 0 0119 10c0 6-7 10-7 10z"/></g>,
    refresh: <g {...p}><path d="M4 12a8 8 0 0114-5M20 12a8 8 0 01-14 5"/><path d="M16 4v4h4M8 20v-4H4"/></g>,
    quote: <g {...p}><path d="M7 7c-2 1-3 3-3 6h4v-4H6c0-1 1-2 2-2zM17 7c-2 1-3 3-3 6h4v-4h-2c0-1 1-2 2-2z" fill="currentColor" stroke="none"/></g>,
    play: <g {...p}><path d="M8 5l11 7-11 7z" fill="currentColor"/></g>,
  };
  return <svg viewBox="0 0 24 24" style={s} aria-hidden="true">{paths[name] || null}</svg>;
};

window.Icon = Icon;
