/* ===== Icon set (stroke, 1.7) ===== */
function Icon({ name, size = 18, color = "currentColor", sw = 1.7 }) {
  const P = {
    grid: "M3 3h7v7H3zM14 3h7v7h-7zM14 14h7v7h-7zM3 14h7v7H3z",
    wallet: "M3 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v0M3 7v10a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-3M3 7h16M17 12h4v4h-4a2 2 0 0 1 0-4z",
    arrowsDown: "M12 5v14M6 13l6 6 6-6",
    target: "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0-18 0M12 12m-5 0a5 5 0 1 0 10 0a5 5 0 1 0-10 0M12 12m-1 0a1 1 0 1 0 2 0a1 1 0 1 0-2 0",
    chart: "M4 20V10M10 20V4M16 20v-7M22 20H2",
    history: "M3 12a9 9 0 1 0 9-9 9 9 0 0 0-7.5 4M3 4v4h4M12 8v4l3 2",
    report: "M8 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2h-2M9 3h6v3H9zM8 12h8M8 16h5",
    gear: "M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 1 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-2.92.66 1.65 1.65 0 0 1-3.16 0 1.65 1.65 0 0 0-2.92-.66l-.06.06a2 2 0 1 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0-.66-2.92 1.65 1.65 0 0 1 0-3.16 1.65 1.65 0 0 0 .66-2.92l-.06-.06a2 2 0 1 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 2.92-.66 1.65 1.65 0 0 1 3.16 0 1.65 1.65 0 0 0 2.92.66l.06-.06a2 2 0 1 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82z",
    plus: "M12 5v14M5 12h14",
    search: "M11 11m-7 0a7 7 0 1 0 14 0a7 7 0 1 0-14 0M21 21l-4.3-4.3",
    bell: "M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9M13.7 21a2 2 0 0 1-3.4 0",
    bolt: "M13 2 4.5 13H11l-1 9 8.5-11H12l1-9z",
    home: "M3 10.5 12 3l9 7.5M5 9.5V21h14V9.5",
    cart: "M3 4h2l2.4 12.5a2 2 0 0 0 2 1.5h7.7a2 2 0 0 0 2-1.6L22 8H6M9 21h.01M18 21h.01",
    bus: "M5 17V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v11M5 17h14M5 17v2M19 17v2M5 11h14M8 21h0M16 21h0",
    cap: "M22 9 12 5 2 9l10 4 10-4zM6 11v4c0 1.5 2.7 3 6 3s6-1.5 6-3v-4",
    wifi: "M5 12.5a10 10 0 0 1 14 0M8.5 16a5 5 0 0 1 7 0M12 19.5h.01",
    heart: "M19 14c1.5-1.5 3-3.3 3-5.5A4.5 4.5 0 0 0 12 5.5 4.5 4.5 0 0 0 2 8.5c0 2.2 1.5 4 3 5.5l7 7z",
    spark: "M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2.5 2.5M15.5 15.5 18 18M18 6l-2.5 2.5M8.5 15.5 6 18",
    dots: "M5 12h.01M12 12h.01M19 12h.01",
    logout: "M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9",
    check: "M20 6 9 17l-5-5",
    edit: "M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z",
    trash: "M3 6h18M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6",
    google: "GOOGLE",
    sun: "M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10zM12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4",
    moon: "M21 12.8A9 9 0 1 1 11.2 3a7 7 0 0 0 9.8 9.8z",
    filter: "M3 5h18M6 12h12M10 19h4",
    cal: "M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zM3 9h18M8 3v4M16 3v4",
    flag: "M4 22V4M4 4h13l-2 4 2 4H4",
    arrowUp: "M12 19V5M6 11l6-6 6 6",
    arrowDown: "M12 5v14M6 13l6 6 6-6",
    chevR: "M9 6l6 6-6 6",
    info: "M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0-18 0M12 16v-4M12 8h.01",
    bank: "M3 10 12 4l9 6M5 10v8M9 10v8M15 10v8M19 10v8M3 20h18",
    link: "M9 15l6-6M10.5 6.5 12 5a4 4 0 0 1 6 6l-1.5 1.5M13.5 17.5 12 19a4 4 0 0 1-6-6l1.5-1.5",
    camera: "M3 8a2 2 0 0 1 2-2h2l1.2-1.6a1 1 0 0 1 .8-.4h6a1 1 0 0 1 .8.4L19 6h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2zM12 17a4 4 0 1 0 0-8 4 4 0 0 0 0 8z",
    sync: "M21 12a9 9 0 1 1-3-6.7M21 4v4h-4",
    coins: "M8 8m-5 0a5 5 0 1 0 10 0a5 5 0 1 0-10 0M21 12a5 5 0 0 1-8 4M8 13v3c0 1.1 2.2 2 5 2s5-.9 5-2v-3M16 8c2.8 0 5 .9 5 2s-2.2 2-5 2",
  };
  if (name === "google") {
    return (
      <svg width={size} height={size} viewBox="0 0 48 48" style={{ flex: "none" }}>
        <path fill="#4285F4" d="M45 24c0-1.6-.1-2.7-.4-3.9H24v7.5h11.8c-.2 1.9-1.5 4.8-4.4 6.7l-.04.3 6.4 5 .4.04C42.6 36.5 45 30.8 45 24z" />
        <path fill="#34A853" d="M24 46c5.8 0 10.7-1.9 14.2-5.2l-6.8-5.2c-1.8 1.3-4.3 2.2-7.4 2.2-5.7 0-10.5-3.8-12.2-9l-.3.02-6.6 5.1-.1.3C8.3 41 15.6 46 24 46z" />
        <path fill="#FBBC05" d="M11.8 28.8c-.5-1.3-.7-2.7-.7-4.2s.3-2.9.7-4.2l-.02-.3-6.7-5.2-.2.1C3.3 18.1 2.5 21 2.5 24s.8 5.9 2.2 8.4l7.1-3.6z" />
        <path fill="#EA4335" d="M24 9.5c4 0 6.8 1.7 8.3 3.2l6.1-5.9C34.7 3.4 29.8 1.5 24 1.5 15.6 1.5 8.3 6.5 5.7 13.7l7.1 5.5c1.7-5.2 6.5-9.7 11.2-9.7z" />
      </svg>
    );
  }
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
      stroke={color} strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" style={{ flex: "none" }}>
      <path d={P[name] || P.dots} />
    </svg>
  );
}
window.Icon = Icon;
