// Minimal hand-tuned stroke icons — 1.5px ink feel, square.
const I = ({ children, size = 16, ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" {...p}>{children}</svg>
);
const Icons = {
  Home: p => <I {...p}><path d="M3 11 12 4l9 7" /><path d="M5 10v10h14V10" /></I>,
  Calendar: p => <I {...p}><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M8 3v4M16 3v4M3 10h18" /></I>,
  Ticket: p => <I {...p}><path d="M3 8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4V8z"/><path d="M14 6v12" strokeDasharray="2 2"/></I>,
  Inbox: p => <I {...p}><path d="M3 13l3-7h12l3 7" /><path d="M3 13v6h18v-6" /><path d="M3 13h4l2 2h6l2-2h4" /></I>,
  Key: p => <I {...p}><circle cx="8" cy="12" r="4"/><path d="M12 12h9"/><path d="M17 12v3"/><path d="M20 12v2"/></I>,
  Chart: p => <I {...p}><path d="M3 20h18"/><path d="M6 16v-5"/><path d="M12 16V7"/><path d="M18 16v-3"/></I>,
  Receipt: p => <I {...p}><path d="M5 3h14v18l-3-2-3 2-3-2-3 2-2-2z"/><path d="M8 8h8M8 12h8M8 16h5"/></I>,
  Building: p => <I {...p}><path d="M4 21V5a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v16"/><path d="M8 7h2M14 7h2M8 11h2M14 11h2M8 15h2M14 15h2"/><path d="M3 21h18"/></I>,
  Broom: p => <I {...p}><path d="M5 21l6-6"/><path d="M14 4l6 6-5 5-6-6z"/><path d="M9 16l-3 3-2-2 3-3"/></I>,
  Star: p => <I {...p}><path d="M12 3l2.7 5.6 6.2.9-4.5 4.4 1.1 6.1L12 17l-5.5 2.9 1.1-6.1L3.1 9.5l6.2-.9z"/></I>,
  Settings: p => <I {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.9l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.9-.3 1.7 1.7 0 0 0-1 1.5V21a2 2 0 1 1-4 0v-.1a1.7 1.7 0 0 0-1-1.5 1.7 1.7 0 0 0-1.9.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.7 1.7 0 0 0 .3-1.9 1.7 1.7 0 0 0-1.5-1H3a2 2 0 1 1 0-4h.1a1.7 1.7 0 0 0 1.5-1 1.7 1.7 0 0 0-.3-1.9l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.9.3h0a1.7 1.7 0 0 0 1-1.5V3a2 2 0 1 1 4 0v.1a1.7 1.7 0 0 0 1 1.5 1.7 1.7 0 0 0 1.9-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.9v0a1.7 1.7 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.7 1.7 0 0 0-1.5 1z"/></I>,
  Search: p => <I {...p}><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></I>,
  Bell: p => <I {...p}><path d="M6 8a6 6 0 1 1 12 0c0 7 3 7 3 9H3c0-2 3-2 3-9"/><path d="M10 21a2 2 0 0 0 4 0"/></I>,
  Plus: p => <I {...p}><path d="M12 5v14M5 12h14"/></I>,
  Check: p => <I {...p}><path d="M5 12l5 5L20 7"/></I>,
  ChevL: p => <I {...p}><path d="M15 6l-6 6 6 6"/></I>,
  ChevR: p => <I {...p}><path d="M9 6l6 6-6 6"/></I>,
  ChevD: p => <I {...p}><path d="M6 9l6 6 6-6"/></I>,
  Arrow: p => <I {...p}><path d="M5 12h14"/><path d="M13 6l6 6-6 6"/></I>,
  Filter: p => <I {...p}><path d="M3 5h18l-7 9v5l-4 2v-7z"/></I>,
  Download: p => <I {...p}><path d="M12 4v12"/><path d="M7 11l5 5 5-5"/><path d="M4 20h16"/></I>,
  X: p => <I {...p}><path d="M6 6l12 12M18 6 6 18"/></I>,
  Phone: p => <I {...p}><path d="M5 4h3l2 5-2 1a11 11 0 0 0 6 6l1-2 5 2v3a2 2 0 0 1-2 2A17 17 0 0 1 3 6a2 2 0 0 1 2-2z"/></I>,
  Mail: p => <I {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="m3 7 9 6 9-6"/></I>,
  MoreH: p => <I {...p}><circle cx="5" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="19" cy="12" r="1"/></I>,
  Pin: p => <I {...p}><path d="M12 21v-7"/><path d="M7 7V3h10v4l2 5H5z"/></I>,
  Shield: p => <I {...p}><path d="M12 3 4 6v6c0 5 3.5 8 8 9 4.5-1 8-4 8-9V6z"/><path d="m9 12 2 2 4-4"/></I>,
  Wifi: p => <I {...p}><path d="M2 9a16 16 0 0 1 20 0"/><path d="M5 12a11 11 0 0 1 14 0"/><path d="M8.5 15a6 6 0 0 1 7 0"/><circle cx="12" cy="18" r="1"/></I>,
  Sparkle: p => <I {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M6 6l2 2M16 16l2 2M6 18l2-2M16 8l2-2"/></I>,
  Logo: p => <I viewBox="0 0 24 24" {...p}><path d="M3 19 L8 5 L12 14 L16 5 L21 19" fill="none" /></I>,
};
window.Icons = Icons;
