// Lightweight inline SVG icons — stroke-based, monoline
const Icon = ({ d, size = 20, ...rest }) => (
  <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24"
    fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {d}
  </svg>
);

const IconCheck = (p) => <Icon {...p} d={<polyline points="4 12 10 18 20 6" />} />;
const IconArrow = (p) => <Icon {...p} d={<><line x1="4" y1="12" x2="20" y2="12" /><polyline points="14 6 20 12 14 18" /></>} />;
const IconShield = (p) => <Icon {...p} d={<><path d="M12 3 4 6v6c0 4.5 3.4 8.4 8 9 4.6-.6 8-4.5 8-9V6l-8-3z" /><polyline points="9 12 11 14 15 10" /></>} />;
const IconDesktop = (p) => <Icon {...p} d={<><rect x="3" y="4" width="18" height="12" rx="1.5" /><line x1="8" y1="20" x2="16" y2="20" /><line x1="12" y1="16" x2="12" y2="20" /></>} />;
const IconClock = (p) => <Icon {...p} d={<><circle cx="12" cy="12" r="9" /><polyline points="12 7 12 12 16 14" /></>} />;
const IconUpload = (p) => <Icon {...p} d={<><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" /><polyline points="8 8 12 4 16 8" /><line x1="12" y1="4" x2="12" y2="16" /></>} />;
const IconDownload = (p) => <Icon {...p} d={<><path d="M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2" /><polyline points="8 12 12 16 16 12" /><line x1="12" y1="4" x2="12" y2="16" /></>} />;
const IconLayers = (p) => <Icon {...p} d={<><polygon points="12 3 22 8 12 13 2 8 12 3" /><polyline points="2 13 12 18 22 13" /><polyline points="2 18 12 23 22 18" /></>} />;
const IconTag = (p) => <Icon {...p} d={<><path d="M3 12V4h8l10 10-8 8L3 12z" /><circle cx="8" cy="8" r="1.5" /></>} />;
const IconSquares = (p) => <Icon {...p} d={<><rect x="3" y="3" width="7" height="7" rx="1" /><rect x="14" y="3" width="7" height="7" rx="1" /><rect x="3" y="14" width="7" height="7" rx="1" /><rect x="14" y="14" width="7" height="7" rx="1" /></>} />;
const IconRefresh = (p) => <Icon {...p} d={<><polyline points="20 6 20 11 15 11" /><polyline points="4 18 4 13 9 13" /><path d="M5 13a7 7 0 0 1 12-3l3 1" /><path d="M19 11a7 7 0 0 1-12 3l-3-1" /></>} />;
const IconLock = (p) => <Icon {...p} d={<><rect x="4" y="11" width="16" height="10" rx="1.5" /><path d="M8 11V8a4 4 0 0 1 8 0v3" /></>} />;
const IconNoCloud = (p) => <Icon {...p} d={<><path d="M5 17a4 4 0 0 1 0-8 5 5 0 0 1 9-2 4 4 0 0 1 4 6" /><line x1="3" y1="3" x2="21" y2="21" /></>} />;
const IconCpu = (p) => <Icon {...p} d={<><rect x="6" y="6" width="12" height="12" rx="1.5" /><line x1="9" y1="2" x2="9" y2="6" /><line x1="15" y1="2" x2="15" y2="6" /><line x1="9" y1="18" x2="9" y2="22" /><line x1="15" y1="18" x2="15" y2="22" /><line x1="18" y1="9" x2="22" y2="9" /><line x1="18" y1="15" x2="22" y2="15" /><line x1="2" y1="9" x2="6" y2="9" /><line x1="2" y1="15" x2="6" y2="15" /></>} />;
const IconCalendar = (p) => <Icon {...p} d={<><rect x="3" y="5" width="18" height="16" rx="1.5" /><line x1="3" y1="10" x2="21" y2="10" /><line x1="8" y1="3" x2="8" y2="7" /><line x1="16" y1="3" x2="16" y2="7" /></>} />;

Object.assign(window, {
  Icon, IconCheck, IconArrow, IconShield, IconDesktop, IconClock,
  IconUpload, IconDownload, IconLayers, IconTag, IconSquares, IconRefresh,
  IconLock, IconNoCloud, IconCpu, IconCalendar,
});
