// Icon set — minimal stroke icons
const Ico = ({ d, size = 16, fill = "none", stroke = "currentColor", sw = 1.6, children, ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={stroke} strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" {...p}>
    {d ? <path d={d} /> : children}
  </svg>
);

const I = {
  plus: (p) => <Ico {...p}><path d="M12 5v14M5 12h14"/></Ico>,
  dash: (p) => <Ico {...p}><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"/></Ico>,
  users: (p) => <Ico {...p}><path d="M17 21v-2a4 4 0 0 0-4-4H7a4 4 0 0 0-4 4v2"/><circle cx="10" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></Ico>,
  user: (p) => <Ico {...p}><path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></Ico>,
  flask: (p) => <Ico {...p}><path d="M9 3h6M10 3v6L4 19a2 2 0 0 0 1.7 3h12.6A2 2 0 0 0 20 19L14 9V3"/><path d="M6.5 14h11"/></Ico>,
  upload: (p) => <Ico {...p}><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="M17 8l-5-5-5 5"/><path d="M12 3v12"/></Ico>,
  file: (p) => <Ico {...p}><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/></Ico>,
  doc: (p) => <Ico {...p}><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/><path d="M8 13h8M8 17h6"/></Ico>,
  cal: (p) => <Ico {...p}><rect x="3" y="4" width="18" height="18" rx="2"/><path d="M16 2v4M8 2v4M3 10h18"/></Ico>,
  bldg: (p) => <Ico {...p}><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M8 7h2M8 11h2M8 15h2M14 7h2M14 11h2M14 15h2"/></Ico>,
  check: (p) => <Ico {...p}><path d="M20 6 9 17l-5-5"/></Ico>,
  checkCircle: (p) => <Ico {...p}><circle cx="12" cy="12" r="9"/><path d="m9 12 2 2 4-4"/></Ico>,
  x: (p) => <Ico {...p}><path d="M18 6 6 18M6 6l12 12"/></Ico>,
  warn: (p) => <Ico {...p}><path d="M10.3 3.86a2 2 0 0 1 3.4 0l8.6 14.36A2 2 0 0 1 20.6 21H3.4a2 2 0 0 1-1.7-2.78L10.3 3.86z"/><path d="M12 9v4M12 17h.01"/></Ico>,
  shield: (p) => <Ico {...p}><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></Ico>,
  search: (p) => <Ico {...p}><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3"/></Ico>,
  filter: (p) => <Ico {...p}><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"/></Ico>,
  arrowR: (p) => <Ico {...p}><path d="M5 12h14M13 6l6 6-6 6"/></Ico>,
  arrowL: (p) => <Ico {...p}><path d="M19 12H5M11 6l-6 6 6 6"/></Ico>,
  chevR: (p) => <Ico {...p}><path d="m9 6 6 6-6 6"/></Ico>,
  chevL: (p) => <Ico {...p}><path d="m15 6-6 6 6 6"/></Ico>,
  chevD: (p) => <Ico {...p}><path d="m6 9 6 6 6-6"/></Ico>,
  chevU: (p) => <Ico {...p}><path d="m6 15 6-6 6 6"/></Ico>,
  more: (p) => <Ico {...p}><circle cx="12" cy="12" r="1.2"/><circle cx="19" cy="12" r="1.2"/><circle cx="5" cy="12" r="1.2"/></Ico>,
  trash: (p) => <Ico {...p}><path d="M3 6h18M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/></Ico>,
  edit: (p) => <Ico {...p}><path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5z"/></Ico>,
  refresh: (p) => <Ico {...p}><path d="M3 12a9 9 0 0 1 15.5-6.3L21 8M21 3v5h-5M21 12a9 9 0 0 1-15.5 6.3L3 16M3 21v-5h5"/></Ico>,
  cog: (p) => <Ico {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.7 1.7 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.7 1.7 0 0 0-1.8-.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-1.5 1.7 1.7 0 0 0-1.8.3l-.1.1A2 2 0 1 1 4.3 17l.1-.1a1.7 1.7 0 0 0 .3-1.8 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 1.7 1.7 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.7 1.7 0 0 0 1.8.3H9a1.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.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.7 1.7 0 0 0-.3 1.8V9a1.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"/></Ico>,
  help: (p) => <Ico {...p}><circle cx="12" cy="12" r="9"/><path d="M9.1 9a3 3 0 0 1 5.8 1c0 2-3 3-3 3M12 17h.01"/></Ico>,
  bolt: (p) => <Ico {...p}><path d="M13 2 3 14h9l-1 8 10-12h-9l1-8z"/></Ico>,
  clock: (p) => <Ico {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></Ico>,
  flag: (p) => <Ico {...p}><path d="M4 22V4M4 15h13l-2-4 2-4H4"/></Ico>,
  sparkle: (p) => <Ico {...p}><path d="M12 3v3M12 18v3M3 12h3M18 12h3M5.6 5.6l2 2M16.4 16.4l2 2M5.6 18.4l2-2M16.4 7.6l2-2"/></Ico>,
  pill: (p) => <Ico {...p}><path d="M10.5 20.5a7 7 0 1 1 10-10l-10 10z"/><path d="m8.5 8.5 7 7"/></Ico>,
  brain: (p) => <Ico {...p}><path d="M12 5a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V8a3 3 0 0 0-3-3z"/><path d="M9 8a3 3 0 1 0-3 3M15 8a3 3 0 1 1 3 3M9 16a3 3 0 1 0-3-3M15 16a3 3 0 1 1 3-3"/></Ico>,
  sidebar: (p) => <Ico {...p}><rect x="3" y="3" width="18" height="18" rx="2"/><path d="M9 3v18"/></Ico>,
  msg: (p) => <Ico {...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"/></Ico>,
  link: (p) => <Ico {...p}><path d="M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1"/><path d="M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1"/></Ico>,
  pdf: (p) => <Ico {...p}><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><path d="M14 2v6h6"/><text x="8" y="18" fontFamily="monospace" fontSize="5" fontWeight="700" fill="currentColor" stroke="none">PDF</text></Ico>,
  expand: (p) => <Ico {...p}><path d="M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7"/></Ico>,
  send: (p) => <Ico {...p}><path d="M22 2 11 13M22 2l-7 20-4-9-9-4z"/></Ico>,
};

window.I = I;
