// Reusable icon set — minimal stroke icons (Lucide-style)
const I = (path, fill = false) => ({ size = 16, ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill ? "currentColor" : "none"}
       stroke="currentColor" strokeWidth="1.75" strokeLinecap="round" strokeLinejoin="round" {...p}>
    {path}
  </svg>
);

const Icon = {
  home:    I(<><path d="M3 11l9-7 9 7"/><path d="M5 10v10h14V10"/></>),
  grid:    I(<><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></>),
  bell:    I(<><path d="M6 8a6 6 0 1112 0c0 7 3 8 3 8H3s3-1 3-8z"/><path d="M10 21a2 2 0 004 0"/></>),
  alert:   I(<><path d="M12 9v4"/><circle cx="12" cy="17" r=".5" fill="currentColor"/><path d="M10.3 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"/></>),
  chart:   I(<><path d="M3 3v18h18"/><path d="M7 16l4-4 4 4 5-7"/></>),
  cog:     I(<><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 008 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06a1.65 1.65 0 00.33-1.82 1.65 1.65 0 00-1.51-1H2a2 2 0 010-4h.09A1.65 1.65 0 003.6 8a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06a1.65 1.65 0 001.82.33H8a1.65 1.65 0 001-1.51V2a2 2 0 014 0v.09c0 .67.39 1.27 1 1.51a1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06a1.65 1.65 0 00-.33 1.82V8c.24.61.84 1 1.51 1H21a2 2 0 010 4h-.09c-.67 0-1.27.39-1.51 1z"/></>),
  link:    I(<><path d="M10 13a5 5 0 007.54.54l3-3a5 5 0 00-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 00-7.54-.54l-3 3a5 5 0 007.07 7.07l1.71-1.71"/></>),
  doc:     I(<><path d="M14 2H6a2 2 0 00-2 2v16a2 2 0 002 2h12a2 2 0 002-2V8z"/><path d="M14 2v6h6"/></>),
  cal:     I(<><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></>),
  search:  I(<><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></>),
  add:     I(<><path d="M12 5v14M5 12h14"/></>),
  arrow:   I(<><path d="M5 12h14M13 5l7 7-7 7"/></>),
  arrowL:  I(<><path d="M19 12H5M11 5l-7 7 7 7"/></>),
  check:   I(<path d="M5 13l4 4L19 7"/>),
  close:   I(<><path d="M18 6L6 18M6 6l12 12"/></>),
  chev:    I(<path d="M6 9l6 6 6-6"/>),
  sun:     I(<><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M4.93 19.07l1.41-1.41M17.66 6.34l1.41-1.41"/></>),
  moon:    I(<path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/>),
  flash:   I(<path d="M13 2L3 14h7l-1 8 10-12h-7l1-8z"/>),
  shield:  I(<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>),
  mail:    I(<><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6l-10 7L2 6"/></>),
  phone:   I(<path d="M22 16.92v3a2 2 0 01-2.18 2 19.79 19.79 0 01-8.63-3.07 19.5 19.5 0 01-6-6 19.79 19.79 0 01-3.07-8.67A2 2 0 014.11 2h3a2 2 0 012 1.72 12.84 12.84 0 00.7 2.81 2 2 0 01-.45 2.11L8.09 9.91a16 16 0 006 6l1.27-1.27a2 2 0 012.11-.45 12.84 12.84 0 002.81.7A2 2 0 0122 16.92z"/>),
  send:    I(<><path d="M22 2L11 13M22 2l-7 20-4-9-9-4 20-7z"/></>),
  drag:    I(<><circle cx="9" cy="6" r="1.2" fill="currentColor"/><circle cx="9" cy="12" r="1.2" fill="currentColor"/><circle cx="9" cy="18" r="1.2" fill="currentColor"/><circle cx="15" cy="6" r="1.2" fill="currentColor"/><circle cx="15" cy="12" r="1.2" fill="currentColor"/><circle cx="15" cy="18" r="1.2" fill="currentColor"/></>),
  filter:  I(<path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/>),
  refresh: I(<><path d="M3 12a9 9 0 0115-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 01-15 6.7L3 16"/><path d="M3 21v-5h5"/></>),
  trend:   I(<><path d="M22 7l-9.5 9.5-5-5L1 18"/><path d="M16 7h6v6"/></>),
  user:    I(<><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0116 0"/></>),
  lock:    I(<><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 018 0v4"/></>),
  eye:     I(<><path d="M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z"/><circle cx="12" cy="12" r="3"/></>),
  globe:   I(<><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 010 18M12 3a14 14 0 000 18"/></>),
  card:    I(<><rect x="2" y="5" width="20" height="14" rx="2"/><path d="M2 10h20"/></>),
  burger:  I(<><path d="M3 6h18M3 12h18M3 18h18"/></>),
};

window.Icon = Icon;
