// Lucide-style outline icons. Stroke 1.6, 20px default.
const Icon = ({ name, size = 20, stroke = 1.6, className = '', style = {} }) => {
  const props = {
    width: size, height: size, viewBox: '0 0 24 24',
    fill: 'none', stroke: 'currentColor', strokeWidth: stroke,
    strokeLinecap: 'round', strokeLinejoin: 'round',
    className, style,
  };
  const paths = {
    home: <><path d="M3 11l9-8 9 8" /><path d="M5 10v10h14V10" /><path d="M10 20v-6h4v6" /></>,
    target: <><circle cx="12" cy="12" r="9" /><circle cx="12" cy="12" r="5" /><circle cx="12" cy="12" r="1.5" fill="currentColor" /></>,
    calendar: <><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 9h18M8 3v4M16 3v4" /></>,
    book: <><path d="M4 5a2 2 0 0 1 2-2h12v16H6a2 2 0 0 0-2 2V5z" /><path d="M6 17h12" /></>,
    blueprint: <><rect x="3" y="3" width="18" height="18" rx="2" /><path d="M3 9h18M9 3v18M15 13h3M15 17h3" /></>,
    trophy: <><path d="M8 21h8M12 17v4M7 4h10v3a5 5 0 0 1-10 0V4z" /><path d="M17 5h2a2 2 0 0 1 0 4h-2M7 5H5a2 2 0 0 0 0 4h2" /></>,
    rocket: <><path d="M12 2a8 8 0 0 1 6 14l-2 2H8l-2-2A8 8 0 0 1 12 2z" /><circle cx="12" cy="10" r="2" /><path d="M8 18l-2 4M16 18l2 4" /></>,
    users: <><circle cx="9" cy="8" r="3.5" /><path d="M3 20a6 6 0 0 1 12 0" /><circle cx="17" cy="9" r="2.6" /><path d="M15 14h2a4 4 0 0 1 4 4" /></>,
    user: <><circle cx="12" cy="8" r="4" /><path d="M4 21a8 8 0 0 1 16 0" /></>,
    layout: <><rect x="3" y="3" width="18" height="18" rx="2" /><path d="M3 9h18M9 9v12" /></>,
    chart: <><path d="M4 20V8M10 20V4M16 20v-8M22 20H2" /></>,
    map: <><path d="M9 4l-6 2v14l6-2 6 2 6-2V4l-6 2-6-2z" /><path d="M9 4v14M15 6v14" /></>,
    bell: <><path d="M6 8a6 6 0 0 1 12 0c0 7 3 8 3 8H3s3-1 3-8z" /><path d="M10 21a2 2 0 0 0 4 0" /></>,
    chevronRight: <path d="M9 6l6 6-6 6" />,
    chevronDown: <path d="M6 9l6 6 6-6" />,
    chevronLeft: <path d="M15 6l-6 6 6 6" />,
    arrowRight: <><path d="M5 12h14M13 6l6 6-6 6" /></>,
    plus: <><path d="M12 5v14M5 12h14" /></>,
    check: <path d="M5 12l5 5L20 7" />,
    checkCircle: <><circle cx="12" cy="12" r="9" /><path d="M8 12l3 3 5-6" /></>,
    circle: <circle cx="12" cy="12" r="9" />,
    clock: <><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 2" /></>,
    flame: <path d="M12 2c1 4 5 5 5 10a5 5 0 0 1-10 0c0-2 1-3 2-4-1 3 1 4 1 4s-1-3 2-10z" />,
    sparkles: <><path d="M12 3v4M12 17v4M3 12h4M17 12h4" /><path d="M6 6l2 2M16 16l2 2M6 18l2-2M16 8l2-2" /></>,
    pin: <><path d="M12 22s7-7 7-12a7 7 0 1 0-14 0c0 5 7 12 7 12z" /><circle cx="12" cy="10" r="2.5" /></>,
    download: <><path d="M12 4v12M6 12l6 6 6-6" /><path d="M4 20h16" /></>,
    share: <><circle cx="6" cy="12" r="2.5" /><circle cx="18" cy="6" r="2.5" /><circle cx="18" cy="18" r="2.5" /><path d="M8.2 11l7.6-3.6M8.2 13l7.6 3.6" /></>,
    edit: <><path d="M14 4l6 6-10 10H4v-6L14 4z" /></>,
    save: <><path d="M5 4h11l4 4v12H5z" /><path d="M9 4v6h6V4M9 20v-6h6v6" /></>,
    file: <><path d="M14 3H6v18h12V7l-4-4z" /><path d="M14 3v4h4" /></>,
    fileText: <><path d="M14 3H6v18h12V7l-4-4z" /><path d="M14 3v4h4M9 12h6M9 16h6" /></>,
    play: <path d="M7 5l12 7-12 7V5z" />,
    pause: <><rect x="7" y="5" width="3" height="14" rx="1" /><rect x="14" y="5" width="3" height="14" rx="1" /></>,
    chat: <><path d="M21 12a8 8 0 0 1-12 6.9L4 21l1.1-5A8 8 0 1 1 21 12z" /></>,
    chatDots: <><path d="M21 12a8 8 0 0 1-12 6.9L4 21l1.1-5A8 8 0 1 1 21 12z" /><circle cx="9" cy="12" r="0.7" fill="currentColor" /><circle cx="13" cy="12" r="0.7" fill="currentColor" /><circle cx="17" cy="12" r="0.7" fill="currentColor" /></>,
    phone: <path d="M5 4h4l2 5-3 2a12 12 0 0 0 5 5l2-3 5 2v4a2 2 0 0 1-2 2A16 16 0 0 1 3 6a2 2 0 0 1 2-2z" />,
    video: <><rect x="3" y="6" width="13" height="12" rx="2" /><path d="M16 10l5-3v10l-5-3z" /></>,
    settings: <><circle cx="12" cy="12" r="3" /><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3h0a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8v0a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z" /></>,
    search: <><circle cx="11" cy="11" r="7" /><path d="M21 21l-4.3-4.3" /></>,
    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" /></>,
    alert: <><path d="M12 3l10 18H2L12 3z" /><path d="M12 10v5M12 18v.5" /></>,
    info: <><circle cx="12" cy="12" r="9" /><path d="M12 11v6M12 7.5v.5" /></>,
    star: <path d="M12 3l2.7 6 6.3.5-4.8 4.2 1.5 6.3L12 17l-5.7 3 1.5-6.3L3 9.5 9.3 9 12 3z" />,
    arrowUpRight: <><path d="M7 17L17 7M9 7h8v8" /></>,
    moon: <path d="M21 13A8 8 0 0 1 11 3a8 8 0 1 0 10 10z" />,
    paperclip: <path d="M21 11l-9 9a5 5 0 0 1-7-7l9-9a3.5 3.5 0 1 1 5 5l-9 9a2 2 0 0 1-3-3l8-8" />,
    grip: <><circle cx="9" cy="6" r="1.4" fill="currentColor" /><circle cx="15" cy="6" r="1.4" fill="currentColor" /><circle cx="9" cy="12" r="1.4" fill="currentColor" /><circle cx="15" cy="12" r="1.4" fill="currentColor" /><circle cx="9" cy="18" r="1.4" fill="currentColor" /><circle cx="15" cy="18" r="1.4" fill="currentColor" /></>,
    factory: <><path d="M2 21V11l6 4V11l6 4V7l8 14H2z" /><path d="M10 21v-4M14 21v-4M18 21v-4" /></>,
    badge: <><path d="M12 2l3 3 4-1 1 4 3 3-3 3-1 4-4-1-3 3-3-3-4 1-1-4-3-3 3-3 1-4 4 1 3-3z" /><path d="M9 12l2 2 4-4" /></>,
    spark: <><path d="M12 2v6M12 16v6M2 12h6M16 12h6" /><path d="M5 5l3 3M16 16l3 3M5 19l3-3M16 8l3-3" /></>,
    arrowLeft: <path d="M19 12H5M11 6l-6 6 6 6" />,
    grid: <><rect x="3" y="3" width="7" height="7" rx="1.4" /><rect x="14" y="3" width="7" height="7" rx="1.4" /><rect x="3" y="14" width="7" height="7" rx="1.4" /><rect x="14" y="14" width="7" height="7" rx="1.4" /></>,
    list: <><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" /></>,
    lock: <><rect x="5" y="11" width="14" height="10" rx="2" /><path d="M8 11V8a4 4 0 0 1 8 0v3" /></>,
    upload: <><path d="M12 20V8M6 12l6-6 6 6" /><path d="M4 4h16" /></>,
    handshake: <><path d="M11 7l-3 3 4 4 4-4-3-3" /><path d="M2 12l5-5 4 4-4 4-5-5z" /><path d="M22 12l-5 5-4-4 4-4 5 5z" /></>,
  };
  return <svg {...props}>{paths[name] || null}</svg>;
};

window.Icon = Icon;
