// Lucide-style 1.5px stroke icons
const Icon = ({ children, size = 18, className = "", style = {} }) => (
  <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24"
       fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"
       className={className} style={style}>
    {children}
  </svg>
);

const I = {
  arrowRight: (p={}) => <Icon {...p}><path d="M5 12h14M13 5l7 7-7 7"/></Icon>,
  play: (p={}) => <Icon {...p}><polygon points="5 3 19 12 5 21 5 3" fill="currentColor"/></Icon>,
  sparkle: (p={}) => <Icon {...p}><path d="M12 3l1.8 5.2L19 10l-5.2 1.8L12 17l-1.8-5.2L5 10l5.2-1.8z"/><path d="M18 3v3M19.5 4.5h-3"/></Icon>,
  brain: (p={}) => <Icon {...p}><path d="M12 5a3 3 0 0 0-5.7-1.2A3 3 0 0 0 3 7a3 3 0 0 0 2 2.8V11a3 3 0 0 0 3 3v3a3 3 0 0 0 4 2.8"/><path d="M12 5a3 3 0 0 1 5.7-1.2A3 3 0 0 1 21 7a3 3 0 0 1-2 2.8V11a3 3 0 0 1-3 3v3a3 3 0 0 1-4 2.8"/><path d="M9 13a1.5 1.5 0 0 0 3 0"/></Icon>,
  book: (p={}) => <Icon {...p}><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20V3H6.5A2.5 2.5 0 0 0 4 5.5z"/><path d="M4 19.5V21h16"/></Icon>,
  bot: (p={}) => <Icon {...p}><rect x="4" y="8" width="16" height="12" rx="3"/><path d="M12 4v4M8 14h.01M16 14h.01M9 18h6"/></Icon>,
  radar: (p={}) => <Icon {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><path d="M12 12 L17 8"/><circle cx="17" cy="8" r="1" fill="currentColor"/></Icon>,
  zap: (p={}) => <Icon {...p}><polygon points="13 2 4 14 11 14 9 22 20 10 13 10 13 2" fill="currentColor" fillOpacity=".15"/><polyline points="13 2 4 14 11 14 9 22 20 10 13 10 13 2"/></Icon>,
  target: (p={}) => <Icon {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.5" fill="currentColor"/></Icon>,
  bell: (p={}) => <Icon {...p}><path d="M6 8a6 6 0 0 1 12 0c0 7 3 5 3 9H3c0-4 3-2 3-9z"/><path d="M10 21a2 2 0 0 0 4 0"/></Icon>,
  upload: (p={}) => <Icon {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="17 8 12 3 7 8"/><line x1="12" y1="3" x2="12" y2="15"/></Icon>,
  check: (p={}) => <Icon {...p}><polyline points="4 12 10 18 20 6"/></Icon>,
  x: (p={}) => <Icon {...p}><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></Icon>,
  plus: (p={}) => <Icon {...p}><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></Icon>,
  chart: (p={}) => <Icon {...p}><polyline points="3 17 9 11 13 15 21 7"/><polyline points="14 7 21 7 21 14"/></Icon>,
  calendar: (p={}) => <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><line x1="3" y1="10" x2="21" y2="10"/><line x1="8" y1="3" x2="8" y2="7"/><line x1="16" y1="3" x2="16" y2="7"/></Icon>,
  mic: (p={}) => <Icon {...p}><rect x="9" y="3" width="6" height="12" rx="3"/><path d="M5 11a7 7 0 0 0 14 0"/><line x1="12" y1="18" x2="12" y2="22"/></Icon>,
  flame: (p={}) => <Icon {...p}><path d="M12 22c-4 0-7-3-7-7 0-3 2-5 4-7 0 2 1 3 2 3 0-4 3-7 5-9 0 5 5 7 5 13 0 4-3 7-9 7z" fill="currentColor" fillOpacity=".15"/><path d="M12 22c-4 0-7-3-7-7 0-3 2-5 4-7 0 2 1 3 2 3 0-4 3-7 5-9 0 5 5 7 5 13 0 4-3 7-9 7z"/></Icon>,
  shield: (p={}) => <Icon {...p}><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></Icon>,
  lock: (p={}) => <Icon {...p}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/></Icon>,
  eye: (p={}) => <Icon {...p}><path d="M2 12s3-7 10-7 10 7 10 7-3 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></Icon>,
  layers: (p={}) => <Icon {...p}><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></Icon>,
  dollar: (p={}) => <Icon {...p}><line x1="12" y1="2" x2="12" y2="22"/><path d="M17 6H9a3 3 0 0 0 0 6h6a3 3 0 0 1 0 6H7"/></Icon>,
  clock: (p={}) => <Icon {...p}><circle cx="12" cy="12" r="9"/><polyline points="12 7 12 12 15 14"/></Icon>,
  mirror: (p={}) => <Icon {...p}><rect x="3" y="3" width="18" height="18" rx="3"/><line x1="12" y1="3" x2="12" y2="21"/></Icon>,
  heart: (p={}) => <Icon {...p}><path d="M20.8 5.6a5 5 0 0 0-7 0L12 7.4l-1.8-1.8a5 5 0 0 0-7 7L12 21l8.8-8.4a5 5 0 0 0 0-7z"/></Icon>,
  dna: (p={}) => <Icon {...p}><path d="M4 3c8 6 8 12 16 18M20 3c-8 6-8 12-16 18"/><path d="M7 5h10M7 9h10M7 15h10M7 19h10" strokeDasharray="2 3"/></Icon>,
  pulse: (p={}) => <Icon {...p}><polyline points="3 12 7 12 10 4 14 20 17 12 21 12"/></Icon>,
  wave: (p={}) => <Icon {...p}><path d="M3 12c3 0 3-6 6-6s3 12 6 12 3-6 6-6"/></Icon>,
  copy: (p={}) => <Icon {...p}><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15V5a2 2 0 0 1 2-2h10"/></Icon>,
  git: (p={}) => <Icon {...p}><circle cx="6" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="12" r="2"/><path d="M6 8v8M8 18h4a4 4 0 0 0 4-4v-4"/></Icon>,
  users: (p={}) => <Icon {...p}><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87M16 3.13a4 4 0 0 1 0 7.75"/></Icon>,
  trophy: (p={}) => <Icon {...p}><path d="M8 21h8M12 17v4M7 4h10v5a5 5 0 0 1-10 0zM7 4H4v3a3 3 0 0 0 3 3M17 4h3v3a3 3 0 0 1-3 3"/></Icon>,
  grid: (p={}) => <Icon {...p}><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><rect x="14" y="14" width="7" height="7" rx="1"/></Icon>,
  filter: (p={}) => <Icon {...p}><polygon points="22 3 2 3 10 12.5 10 19 14 21 14 12.5 22 3"/></Icon>,
  cube: (p={}) => <Icon {...p}><polygon points="12 2 2 7 12 12 22 7 12 2"/><path d="M12 12v10M2 7v10l10 5M22 7v10l-10 5"/></Icon>,
  download: (p={}) => <Icon {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></Icon>,
  globe: (p={}) => <Icon {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c3 3 3 15 0 18M12 3c-3 3-3 15 0 18"/></Icon>,
  quote: (p={}) => <Icon {...p}><path d="M7 8h3v3a3 3 0 0 1-3 3M14 8h3v3a3 3 0 0 1-3 3" /></Icon>,
  star: (p={}) => <Icon {...p}><polygon points="12 2 15 9 22 9.5 17 14.5 18.5 22 12 18 5.5 22 7 14.5 2 9.5 9 9" fill="currentColor"/></Icon>,
  menu: (p={}) => <Icon {...p}><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></Icon>,
  tag: (p={}) => <Icon {...p}><path d="M21 12L13 4H4v9l8 8z"/><circle cx="8" cy="8" r="1.5" fill="currentColor"/></Icon>,
  compass: (p={}) => <Icon {...p}><circle cx="12" cy="12" r="9"/><polygon points="16 8 14 14 8 16 10 10"/></Icon>,
  message: (p={}) => <Icon {...p}><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></Icon>,
  pen: (p={}) => <Icon {...p}><path d="M12 20h9M16.5 3.5a2 2 0 1 1 3 3L7 19l-4 1 1-4z"/></Icon>,
  mt5: (p={}) => <Icon {...p}><rect x="3" y="4" width="18" height="16" rx="2"/><path d="M3 9h18M7 13l2 2 2-3 2 4 2-2"/></Icon>,
  card: (p={}) => <Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><line x1="3" y1="10" x2="21" y2="10"/></Icon>,
  search: (p={}) => <Icon {...p}><circle cx="11" cy="11" r="7"/><line x1="16.5" y1="16.5" x2="21" y2="21"/></Icon>,
  scatter: (p={}) => <Icon {...p}><circle cx="5" cy="19" r="1.5" fill="currentColor"/><circle cx="9" cy="14" r="1.5" fill="currentColor"/><circle cx="13" cy="16" r="1.5" fill="currentColor"/><circle cx="16" cy="9" r="1.5" fill="currentColor"/><circle cx="19" cy="6" r="1.5" fill="currentColor"/><circle cx="11" cy="8" r="1.5" fill="currentColor"/><circle cx="7" cy="10" r="1.5" fill="currentColor"/></Icon>,
};

window.I = I;
window.Icon = Icon;
