// Tiny inline SVG icon set. Stroke-based, Lucide-style. Each icon is a function returning JSX.
// Usage: <Icon name="home" size={20} color="#fff" />

const ICON_PATHS = {
  // Nav / actions
  home:        '<path d="M3 12l9-8 9 8"/><path d="M5 10v10h14V10"/>',
  ticket:      '<path d="M2 9a3 3 0 0 1 0 6v3a1 1 0 0 0 1 1h18a1 1 0 0 0 1-1v-3a3 3 0 0 1 0-6V6a1 1 0 0 0-1-1H3a1 1 0 0 0-1 1z"/><path d="M13 5v14" stroke-dasharray="2 2"/>',
  wallet:      '<path d="M3 7a2 2 0 0 1 2-2h13a1 1 0 0 1 1 1v2"/><path d="M3 7v12a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-3"/><path d="M22 11h-5a2 2 0 0 0 0 4h5z"/>',
  barchart:    '<path d="M4 20V10"/><path d="M10 20V4"/><path d="M16 20v-8"/><path d="M22 20H2"/>',
  user:        '<circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0 1 16 0"/>',
  trending:    '<path d="M3 17l6-6 4 4 8-8"/><path d="M14 7h7v7"/>',
  smartphone:  '<rect x="7" y="2" width="10" height="20" rx="2"/><circle cx="12" cy="18" r="0.8" fill="currentColor"/>',
  clock:       '<circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/>',
  bluetooth:   '<path d="M7 7l10 10-5 5V2l5 5L7 17"/>',
  arrow:       '<path d="M5 12h14"/><path d="M13 5l7 7-7 7"/>',
  back:        '<path d="M19 12H5"/><path d="M11 5l-7 7 7 7"/>',
  close:       '<path d="M6 6l12 12"/><path d="M18 6L6 18"/>',
  check:       '<path d="M5 12l5 5 9-11"/>',
  checkcircle: '<circle cx="12" cy="12" r="9"/><path d="M8 12l3 3 5-6"/>',
  qr:          '<rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><path d="M14 14h3v3h-3z"/><path d="M20 14v3"/><path d="M14 20h3"/><path d="M17 17h4v4h-4z" fill="currentColor" stroke="none"/>',
  nfc:         '<path d="M5 7a14 14 0 0 1 0 10"/><path d="M9 9a8 8 0 0 1 0 6"/><path d="M13 11a4 4 0 0 1 0 2"/><circle cx="17.5" cy="12" r="1" fill="currentColor" stroke="none"/>',
  search:      '<circle cx="11" cy="11" r="7"/><path d="M21 21l-4-4"/>',
  filter:      '<path d="M3 5h18l-7 9v6l-4-2v-4z"/>',
  chevright:   '<path d="M9 5l7 7-7 7"/>',
  chevdown:    '<path d="M5 9l7 7 7-7"/>',
  plus:        '<path d="M12 5v14"/><path d="M5 12h14"/>',
  edit:        '<path d="M4 20h4l11-11-4-4L4 16z"/><path d="M14 5l4 4"/>',
  bell:        '<path d="M6 9a6 6 0 0 1 12 0v5l1.5 3h-15L6 14z"/><path d="M10 21a2 2 0 0 0 4 0"/>',
  printer:     '<path d="M6 9V3h12v6"/><rect x="3" y="9" width="18" height="8" rx="2"/><rect x="7" y="14" width="10" height="7"/><circle cx="17.5" cy="12.5" r="0.8" fill="currentColor"/>',
  rotate:      '<path d="M21 12a9 9 0 1 1-3-6.7"/><path d="M21 4v5h-5"/>',
  download:    '<path d="M12 4v12"/><path d="M7 11l5 5 5-5"/><path d="M4 20h16"/>',
  // Achievement icons
  footprints:  '<path d="M5 4a2 2 0 0 0-2 2v3a2 2 0 0 0 4 0V6a2 2 0 0 0-2-2zM4 13a2 2 0 0 0-1 1.7c0 1 1 1.8 2 2.2.7.3 1 .9 1 1.6V20a1 1 0 0 0 2 0v-2.2c0-1.2-.6-2.3-1.6-2.9L4 13zM17 8a2 2 0 0 0-2 2v3a2 2 0 0 0 4 0v-3a2 2 0 0 0-2-2zM16 17a2 2 0 0 0-1 1.7v1.3a1 1 0 0 0 2 0v-1c0-.4.2-.8.6-1l1-.7c.7-.4 1-1 1-1.7 0-.6-.4-1-1-1.2L16 17z"/>',
  flame:       '<path d="M12 3c2 4 6 5 6 10a6 6 0 1 1-12 0c0-3 2-4 3-7 1 2 2 2 3 4 0-3 2-5 0-7z"/>',
  moon:        '<path d="M21 14A9 9 0 1 1 10 3a7 7 0 0 0 11 11z"/>',
  award:       '<circle cx="12" cy="9" r="6"/><path d="M8.5 13.5L7 21l5-3 5 3-1.5-7.5"/>',
  trophy:      '<path d="M7 4h10v4a5 5 0 0 1-10 0z"/><path d="M5 4H2v2a3 3 0 0 0 3 3"/><path d="M19 4h3v2a3 3 0 0 1-3 3"/><path d="M10 14h4v3l1 4H9l1-4z"/>',
  shield:      '<path d="M12 3l8 3v5c0 5-3 9-8 10-5-1-8-5-8-10V6z"/>',
  sunrise:     '<path d="M3 18h18"/><path d="M5 14a7 7 0 0 1 14 0"/><path d="M12 4v3"/><path d="M5 8l2 2"/><path d="M19 8l-2 2"/>',
  ghost:       '<path d="M4 11a8 8 0 1 1 16 0v9l-2-2-2 2-2-2-2 2-2-2-2 2-2-2-2 2z"/><circle cx="9.5" cy="11" r="1" fill="currentColor"/><circle cx="14.5" cy="11" r="1" fill="currentColor"/>',
  sword:       '<path d="M14 4l6 6-9 9-3-3z"/><path d="M14 4l6 6"/><path d="M9 14l-5 5 1 1 5-5"/>',
  snowflake:   '<path d="M12 2v20"/><path d="M2 12h20"/><path d="M5 5l14 14"/><path d="M19 5L5 19"/>',
  sun:         '<circle cx="12" cy="12" r="4"/><path d="M12 2v3"/><path d="M12 19v3"/><path d="M2 12h3"/><path d="M19 12h3"/><path d="M4.9 4.9l2.1 2.1"/><path d="M17 17l2.1 2.1"/><path d="M4.9 19.1L7 17"/><path d="M17 7l2.1-2.1"/>',
  lock:        '<rect x="5" y="11" width="14" height="10" rx="2"/><path d="M8 11V7a4 4 0 0 1 8 0v4"/>',
  // Admin
  dashboard:   '<rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/>',
  users:       '<circle cx="9" cy="8" r="4"/><path d="M2 21a7 7 0 0 1 14 0"/><circle cx="17" cy="8" r="3"/><path d="M17 14a5 5 0 0 1 5 5"/>',
  card:        '<rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 11h18"/>',
  log:         '<rect x="4" y="3" width="16" height="18" rx="2"/><path d="M8 8h8"/><path d="M8 12h8"/><path d="M8 16h5"/>',
  settings:    '<circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .4 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.4 1.7 1.7 0 0 0-1 1.5V21a2 2 0 0 1-4 0v-.1A1.7 1.7 0 0 0 9 19.4a1.7 1.7 0 0 0-1.8.4l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .4-1.8 1.7 1.7 0 0 0-1.5-1H3a2 2 0 0 1 0-4h.1A1.7 1.7 0 0 0 4.6 9 1.7 1.7 0 0 0 4.2 7.2L4.1 7a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.4H9A1.7 1.7 0 0 0 10 3.1V3a2 2 0 0 1 4 0v.1A1.7 1.7 0 0 0 15 4.6a1.7 1.7 0 0 0 1.8-.4l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.4 1.8V9a1.7 1.7 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/>',
  door:        '<rect x="5" y="3" width="14" height="18" rx="1"/><circle cx="15" cy="12" r="1" fill="currentColor"/>',
  logout:      '<path d="M16 17l5-5-5-5"/><path d="M21 12H9"/><path d="M9 4H5a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h4"/>',
  trash:       '<path d="M3 6h18"/><path d="M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/>',
  mail:        '<rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/>',
  apple:       '<path d="M16 4a4 4 0 0 1-3 1.5A4 4 0 0 1 16 2zM18 16c-1 2-2 4-4 4-1 0-2-1-3-1s-2 1-3 1c-2 0-4-3-5-6-1-4 1-7 4-7 1 0 2 1 3 1s2-1 4-1c2 0 3 1 4 3-3 2-3 5 0 6z"/>',
  google:      '<path d="M12 4v8h8c-1 4-5 6-8 6a8 8 0 1 1 5-14"/>',
  zap:         '<path d="M13 2L4 14h7l-1 8 9-12h-7z"/>',
  flag:        '<path d="M4 22V4"/><path d="M4 4h14l-3 5 3 5H4"/>',
  eye:         '<path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/>',
};

function Icon({ name, size = 20, color = 'currentColor', strokeWidth = 2, style = {} }) {
  const body = ICON_PATHS[name];
  if (!body) return null;
  return (
    <svg
      xmlns="http://www.w3.org/2000/svg"
      width={size}
      height={size}
      viewBox="0 0 24 24"
      fill="none"
      stroke={color}
      strokeWidth={strokeWidth}
      strokeLinecap="round"
      strokeLinejoin="round"
      style={{ flexShrink: 0, ...style }}
      dangerouslySetInnerHTML={{ __html: body }}
    />
  );
}

window.Icon = Icon;
