// Icon library — thin 1.5px stroke, 24x24 viewBox, currentColor.
// Matches WorkForge's Remix-line icon style.

const iconPaths = {
  home: 'M3 10.5 12 3l9 7.5V20a1 1 0 0 1-1 1h-5v-6h-6v6H4a1 1 0 0 1-1-1v-9.5Z',
  product: 'M12 3 3 7.5v9L12 21l9-4.5v-9L12 3Zm0 0v18M3 7.5l9 4.5 9-4.5',
  features: 'M12 3v3M12 18v3M4.2 5.6l2.1 2.1M17.7 16.3l2.1 2.1M3 12h3M18 12h3M4.2 18.4l2.1-2.1M17.7 7.7l2.1-2.1M12 8.5A3.5 3.5 0 1 0 12 15.5A3.5 3.5 0 1 0 12 8.5',
  projects: 'M4 6a2 2 0 0 1 2-2h4l2 2h6a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Z',
  decisions: 'M8 6h13M8 12h13M8 18h13M4 6h.01M4 12h.01M4 18h.01',
  decisionsAlt: 'M12 3 3 8v8l9 5 9-5V8l-9-5Zm-9 5 9 5 9-5m-9 5v10',
  roadmap: 'M9 4v16M15 4v16M4 8h5M15 8h5M4 12h5M15 12h5M4 16h5M15 16h5',
  research: 'M11 4a7 7 0 1 1 0 14 7 7 0 0 1 0-14ZM20 20l-3.5-3.5',
  files: 'M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9l-6-6Zm0 0v6h6',
  team: 'M17 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M10 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm11 10v-2a4 4 0 0 0-3-3.87M17 3.13A4 4 0 0 1 17 11',
  settings: 'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm7.4-3a7.4 7.4 0 0 0-.15-1.5l2-1.55-2-3.46-2.34.94a7.4 7.4 0 0 0-2.6-1.5L13.5 2h-3l-.8 2.44a7.4 7.4 0 0 0-2.6 1.5l-2.35-.94-2 3.46 2 1.55c-.1.49-.15 1-.15 1.5s.05 1 .15 1.49l-2 1.56 2 3.46 2.35-.94a7.4 7.4 0 0 0 2.6 1.5l.8 2.42h3l.8-2.44a7.4 7.4 0 0 0 2.6-1.5l2.35.94 2-3.46-2-1.55c.1-.5.15-1 .15-1.5Z',
  search: 'M11 4a7 7 0 1 1 0 14 7 7 0 0 1 0-14ZM20 20l-3.5-3.5',
  plus: 'M12 5v14M5 12h14',
  bell: 'M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10 21a2 2 0 0 0 4 0',
  inbox: 'M22 12h-6l-2 3h-4l-2-3H2M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11Z',
  caretDown: 'm6 9 6 6 6-6',
  chevronRight: 'm9 6 6 6-6 6',
  chevronDown: 'm6 9 6 6 6-6',
  check: 'm5 12 5 5L20 7',
  circleAlert: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 5v5m0 3v.01',
  circleClock: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 4v5l3 2',
  filter: 'M4 5h16l-6 8v6l-4-2v-4Z',
  arrowRight: 'M5 12h14m-5-5 5 5-5 5',
  arrowUpRight: 'M7 17 17 7M8 7h9v9',
  gitBranch: 'M6 3v12m0 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6Zm12 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0 0v3a5 5 0 0 1-5 5H9',
  spark: 'M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M6 18l2.5-2.5M15.5 8.5 18 6',
  block: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18ZM5.6 5.6l12.8 12.8',
  flag: 'M4 21V4h13l-2 5 2 5H4',
  users: 'M17 20v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2M10 10a4 4 0 1 0 0-8 4 4 0 0 0 0 8Zm11 10v-2a4 4 0 0 0-3-3.87',
  book: 'M4 4h6a3 3 0 0 1 3 3v14a3 3 0 0 0-3-3H4V4Zm16 0h-6a3 3 0 0 0-3 3v14a3 3 0 0 1 3-3h6V4Z',
  fileText: 'M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9l-6-6Zm0 0v6h6M8 13h8M8 17h8M8 9h2',
  image: 'M4 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5Zm0 12 5-5 3 3 4-4 4 4M9 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z',
  presentation: 'M3 4h18v11H3zM3 4v11a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V4M9 21l3-4 3 4',
  target: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 4a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 4a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z',
  zap: 'M13 3 4 14h7l-1 7 9-11h-7l1-7Z',
  edit: 'M4 20h4L20 8l-4-4L4 16v4Zm12-12 4 4',
  message: 'M4 5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-6l-4 4v-4H6a2 2 0 0 1-2-2V5Z',
  clock: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 4v5l3 2',
  eye: 'M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12Zm10 3a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z',
  moreH: 'M5 12h.01M12 12h.01M19 12h.01',
  layers: 'M12 3 2 8l10 5 10-5-10-5ZM2 12l10 5 10-5M2 16l10 5 10-5',
  play: 'M6 4l14 8-14 8V4Z',
  contracts: 'M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9l-6-6Zm0 0v6h6M8 14h8M8 18h5M10 8h1',
  work: 'M4 7h16v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V7Zm4 0V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M9 12h6M9 16h4',
  bolt: 'M13 3 4 14h7l-1 7 9-11h-7l1-7Z',
  grid: 'M4 4h6v6H4V4Zm10 0h6v6h-6V4ZM4 14h6v6H4v-6Zm10 0h6v6h-6v-6Z',
  list: 'M8 6h13M8 12h13M8 18h13M4 6h.01M4 12h.01M4 18h.01',
  sort: 'M7 4v16m0 0-3-3m3 3 3-3M17 20V4m0 0-3 3m3-3 3 3',
  dollar: 'M12 2v20m-6-4h9a3 3 0 0 0 0-6H9a3 3 0 0 1 0-6h9',
  calendar: 'M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6Zm0 4h16M9 3v4M15 3v4',
  paperclip: 'M21 11.5 12.5 20a5.5 5.5 0 1 1-7.8-7.8L14 3a3.5 3.5 0 0 1 5 5L9.9 17.1a1.5 1.5 0 0 1-2.1-2.1L16 6.8',
  chevronL: 'm15 6-6 6 6 6',
  pin: 'M12 2c2 0 4 2 4 4l-1 3 3 3-3 1v6l-3-5H8l2 5v-6l-3-1 3-3-1-3c0-2 2-4 3-4Z',
  building: 'M4 21V6a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v15M17 9h3a2 2 0 0 1 2 2v10M8 8h1M8 12h1M8 16h1M12 8h1M12 12h1M12 16h1M4 21h18',
  compass: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm4-4-2 6-6 2 2-6 6-2Z',
  route:   'M6 20V10a5 5 0 0 1 10 0v4a5 5 0 0 0 10 0V4M6 20a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm14-16a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z',
  briefcase:'M3 8h18v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8Zm5 0V6a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 13h18',
  flask:    'M9 3h6v4l5 12a2 2 0 0 1-1.8 2.8H5.8A2 2 0 0 1 4 19l5-12V3Zm-3 12h12',
  palette:  'M12 3a9 9 0 1 0 0 18 3 3 0 0 0 0-6h-1a2 2 0 0 1 0-4h4a5 5 0 0 0 5-5 8 8 0 0 0-8-3Zm-4 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm3-5a1 1 0 1 1 0-2 1 1 0 0 1 0 2Zm5 1a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z',
  terminal: 'M4 5h16v14H4V5Zm4 5 3 3-3 3m5 0h6',
  stages:   'M4 4h5v5H4V4Zm11 0h5v5h-5V4ZM4 15h5v5H4v-5Zm11 0h5v5h-5v-5ZM9 6.5h6M17.5 9v6M9 17.5h6M6.5 9v6',
  externalLink: 'M15 3h6v6M10 14 21 3M19 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h6',
  arrowLeft: 'M19 12H5m0 0 7-7m-7 7 7 7',
  kanban:   'M6 4v16M12 4v10M18 4v14',
  copy:     'M8 8h11a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2V10a2 2 0 0 1 2-2Zm-5 8V5a2 2 0 0 1 2-2h11',
  shield:   'M12 3 4 6v6c0 5 4 8 8 9 4-1 8-4 8-9V6l-8-3Z',
  wallet:   'M20 12v6a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v3h-4a2 2 0 0 0 0 4h4Z',
  gears:    'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm0 0v0M4 12h1M19 12h1M12 4v1M12 19v1',
  cloud:    'M7 18a5 5 0 1 1 .9-9.9 6 6 0 0 1 11.5 3.4A4 4 0 0 1 19 18H7Z',
  layers2:  'M12 3 3 8l9 5 9-5-9-5Zm-9 9 9 5 9-5m-18 4 9 5 9-5',
  target2:  'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm0 4a5 5 0 1 1 0 10 5 5 0 0 1 0-10Zm0 4a1 1 0 1 1 0 2 1 1 0 0 1 0-2Z',
  spec:     'M6 3h9l5 5v13a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Zm9 0v5h5M8 13h8M8 17h6M8 9h2',
  chartLine:'M4 20h16M4 4v16m0-3 5-5 4 3 7-9',
  x:        'M18 6 6 18M6 6l12 12',
  code:     'M8 6 2 12l6 6M16 6l6 6-6 6M14 4l-4 16',
  stack:    'M12 3 3 8l9 5 9-5-9-5Zm-9 9 9 5 9-5m-18 4 9 5 9-5',
  lock:     'M6 11h12v9a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-9Zm3 0V7a3 3 0 0 1 6 0v4',
  unlock:   'M6 11h12v9a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1v-9Zm3 0V7a3 3 0 0 1 5.9-.7',
  chartBar: 'M4 20V10m5 10V4m5 16v-8m5 8V8',
  circleCheck: 'M12 3a9 9 0 1 1 0 18 9 9 0 0 1 0-18Zm-4.5 9 3 3 6-6',
};

function Icon({ name, size = 20, strokeWidth = 1.5, className = '', style = {} }) {
  const d = iconPaths[name] || iconPaths.circleAlert;
  return (
    <svg
      xmlns="http://www.w3.org/2000/svg"
      viewBox="0 0 24 24"
      width={size} height={size}
      fill="none"
      stroke="currentColor"
      strokeWidth={strokeWidth}
      strokeLinecap="round"
      strokeLinejoin="round"
      className={className}
      style={{ flex: 'none', ...style }}
      aria-hidden="true"
    >
      <path d={d} />
    </svg>
  );
}

window.Icon = Icon;
