// Custom SVG icon set. All icons render at currentColor at 1em size.
// Industry icons + UI icons. Stroke-based, 1.5–2px, 24x24 viewBox.

const Icon = ({ children, size = 24, stroke = 1.75, fill = "none" }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke="currentColor"
       strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
    {children}
  </svg>
);

const ICONS = {
  // Industry — outline marks
  scales:    (p) => <Icon {...p}><path d="M12 4v16"/><path d="M5 20h14"/><path d="M5 8h14"/><path d="M5 8l-2 6a3 3 0 0 0 6 0L7 8z"/><path d="M17 8l-2 6a3 3 0 0 0 6 0L19 8z"/></Icon>,
  fork:      (p) => <Icon {...p}><path d="M8 3v8a2 2 0 0 0 4 0V3"/><path d="M10 11v10"/><path d="M16 3c-2 0-3 2-3 5s1 5 3 5v8"/></Icon>,
  home:      (p) => <Icon {...p}><path d="M3 11l9-7 9 7"/><path d="M5 10v10h14V10"/><path d="M10 20v-5h4v5"/></Icon>,
  spine:     (p) => <Icon {...p}><path d="M12 3v18"/><path d="M8 5h8"/><path d="M9 9h6"/><path d="M8 13h8"/><path d="M9 17h6"/><path d="M8 21h8"/></Icon>,
  cup:       (p) => <Icon {...p}><path d="M4 8h13v8a4 4 0 0 1-4 4H8a4 4 0 0 1-4-4V8z"/><path d="M17 10h2a2 2 0 0 1 0 6h-2"/><path d="M8 3c0 1 1 1 1 2s-1 1-1 2"/><path d="M12 3c0 1 1 1 1 2s-1 1-1 2"/></Icon>,
  wrench:    (p) => <Icon {...p}><path d="M14 6a4 4 0 0 1 4 5l3 3-3 3-3-3a4 4 0 0 1-5-4l-7 7-2-2 7-7a4 4 0 0 1 4-5l1 3 1 1 3-1z"/></Icon>,
  tooth:     (p) => <Icon {...p}><path d="M12 3c-3 0-4 2-7 2-1 0-2 1-2 3 0 4 2 6 2 9 0 4 2 7 3 7s2-4 4-4 3 4 4 4 3-3 3-7c0-3 2-5 2-9 0-2-1-3-2-3-3 0-4-2-7-2z"/></Icon>,
  scissors:  (p) => <Icon {...p}><circle cx="6" cy="7" r="3"/><circle cx="6" cy="17" r="3"/><path d="M9 9l12 11"/><path d="M9 15l12-11"/><path d="M14 12l-2 1"/></Icon>,
  dumbbell:  (p) => <Icon {...p}><path d="M3 9v6"/><path d="M6 7v10"/><path d="M9 11v2"/><path d="M15 11v2"/><path d="M18 7v10"/><path d="M21 9v6"/><path d="M6 12h12"/></Icon>,
  roof:      (p) => <Icon {...p}><path d="M2 12L12 4l10 8"/><path d="M5 11v9h14v-9"/><path d="M9 20v-5h6v5"/></Icon>,
  car:       (p) => <Icon {...p}><path d="M5 11l2-5h10l2 5"/><path d="M3 11h18v6h-2v2h-3v-2H8v2H5v-2H3v-6z"/><circle cx="7.5" cy="14.5" r="1"/><circle cx="16.5" cy="14.5" r="1"/></Icon>,
  bug:       (p) => <Icon {...p}><ellipse cx="12" cy="13" rx="5" ry="6"/><path d="M12 7V4"/><path d="M9 5l-2-2"/><path d="M15 5l2-2"/><path d="M7 11l-4-1"/><path d="M7 14H3"/><path d="M7 17l-4 2"/><path d="M17 11l4-1"/><path d="M17 14h4"/><path d="M17 17l4 2"/></Icon>,
  calc:      (p) => <Icon {...p}><rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 7h8v3H8z"/><path d="M8 14h.01M12 14h.01M16 14h.01M8 17h.01M12 17h.01M16 17h.01"/></Icon>,
  bolt:      (p) => <Icon {...p}><path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z"/></Icon>,
  shield:    (p) => <Icon {...p}><path d="M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6l8-3z"/><path d="M9 12l2 2 4-4"/></Icon>,

  // Capability icons
  voice:     (p) => <Icon {...p}><rect x="9" y="3" width="6" height="11" rx="3"/><path d="M5 11a7 7 0 0 0 14 0"/><path d="M12 18v3"/></Icon>,
  sms:       (p) => <Icon {...p}><path d="M4 5h16v11H10l-5 4V5z"/><path d="M8 10h.01M12 10h.01M16 10h.01"/></Icon>,
  email:     (p) => <Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></Icon>,
  calendar:  (p) => <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18"/><path d="M8 3v4M16 3v4"/><path d="M8 14h2M14 14h2M8 17h2"/></Icon>,
  music:     (p) => <Icon {...p}><path d="M9 18V6l11-2v12"/><circle cx="6" cy="18" r="3"/><circle cx="17" cy="16" r="3"/></Icon>,
  workflow:  (p) => <Icon {...p}><rect x="3" y="3" width="6" height="6" rx="1"/><rect x="15" y="3" width="6" height="6" rx="1"/><rect x="9" y="15" width="6" height="6" rx="1"/><path d="M6 9v3h12V9"/><path d="M12 12v3"/></Icon>,

  // Pain / state
  phoneMissed:(p)=> <Icon {...p}><path d="M3 5l3-2 3 4-2 2a11 11 0 0 0 6 6l2-2 4 3-2 3a3 3 0 0 1-3 1A18 18 0 0 1 2 8a3 3 0 0 1 1-3z"/><path d="M15 3l6 6M21 3l-6 6"/></Icon>,
  stopwatch: (p) => <Icon {...p}><circle cx="12" cy="14" r="7"/><path d="M12 14V9"/><path d="M9 3h6"/><path d="M19 5l1-1"/></Icon>,
  scaleDown: (p) => <Icon {...p}><path d="M3 20h18"/><path d="M6 20V8"/><path d="M18 20V12"/><path d="M3 8l3-3 3 3"/><path d="M15 12l3-3 3 3"/><path d="M9 14l3-3 3 3"/></Icon>,

  // UI
  arrow:     (p) => <Icon {...p}><path d="M5 12h14"/><path d="M13 5l7 7-7 7"/></Icon>,
  arrowDown: (p) => <Icon {...p}><path d="M12 5v14"/><path d="M5 13l7 7 7-7"/></Icon>,
  play:      (p) => <Icon {...p}><path d="M6 4l14 8-14 8z" fill="currentColor"/></Icon>,
  check:     (p) => <Icon {...p}><path d="M4 12l5 5L20 6"/></Icon>,
  close:     (p) => <Icon {...p}><path d="M5 5l14 14M19 5L5 19"/></Icon>,
  external: (p) => <Icon {...p}><path d="M7 17L17 7"/><path d="M9 7h8v8"/></Icon>,
  spark:    (p) => <Icon {...p}><path d="M12 3v6M12 15v6M3 12h6M15 12h6M5 5l4 4M15 15l4 4M19 5l-4 4M9 15l-4 4"/></Icon>,
  dot:      (p) => <Icon {...p}><circle cx="12" cy="12" r="4" fill="currentColor" stroke="none"/></Icon>,
  pulse:    (p) => <Icon {...p}><path d="M2 12h4l3-8 6 16 3-8h4"/></Icon>,
};

window.ICONS = ICONS;
window.IconRender = ({ name, ...p }) => {
  const C = ICONS[name];
  return C ? C(p) : null;
};
