/* ===== Covera icon set (stroke SVG) ===== */
const Icon = ({name, size=24, c="currentColor", sw=1.8, style}) => {
  const p = { width:size, height:size, viewBox:"0 0 24 24", fill:"none",
    stroke:c, strokeWidth:sw, strokeLinecap:"round", strokeLinejoin:"round", style };
  const P = {
    users:<g><path d="M16 19c0-2.2-1.8-4-4-4s-4 1.8-4 4"/><circle cx="12" cy="9" r="3"/><path d="M19.5 18.5c0-1.6-.9-3-2.3-3.7M4.5 18.5c0-1.6.9-3 2.3-3.7M18 9.5a2.2 2.2 0 0 0 0-4.3M6 9.5a2.2 2.2 0 0 1 0-4.3"/></g>,
    user:<g><circle cx="12" cy="8" r="3.4"/><path d="M5.5 19c.6-3.2 3.3-5 6.5-5s5.9 1.8 6.5 5"/></g>,
    shield:<g><path d="M12 3l7 2.5v5c0 4.3-2.9 7.8-7 9-4.1-1.2-7-4.7-7-9v-5L12 3z"/></g>,
    shieldCheck:<g><path d="M12 3l7 2.5v5c0 4.3-2.9 7.8-7 9-4.1-1.2-7-4.7-7-9v-5L12 3z"/><path d="M9 11.5l2 2 4-4"/></g>,
    doc:<g><path d="M7 3h7l4 4v14H7z"/><path d="M14 3v4h4"/><path d="M9.5 12h6M9.5 15.5h6M9.5 8.5h2"/></g>,
    docStack:<g><rect x="7" y="6" width="11" height="14" rx="2"/><path d="M5 4h9l1 1"/><path d="M10.5 11h5M10.5 14h5"/></g>,
    chart:<g><path d="M4 20V4M4 20h16"/><path d="M8 16l3-4 3 2 4-6"/></g>,
    chartBar:<g><path d="M4 20h16"/><rect x="6" y="11" width="3" height="6" rx="1"/><rect x="11" y="7" width="3" height="10" rx="1"/><rect x="16" y="13" width="3" height="4" rx="1"/></g>,
    plus:<g><path d="M12 5v14M5 12h14"/></g>,
    plusUser:<g><circle cx="10" cy="8" r="3.2"/><path d="M4.5 19c.5-2.8 2.8-4.5 5.5-4.5"/><path d="M17 13v6M14 16h6"/></g>,
    plusDoc:<g><path d="M7 3h7l4 4v6"/><path d="M14 3v4h4"/><path d="M16 16v5M13.5 18.5h5"/></g>,
    bell:<g><path d="M18 8a6 6 0 0 0-12 0c0 6-2 7-2 7h16s-2-1-2-7"/><path d="M10.5 20a2 2 0 0 0 3 0"/></g>,
    phone:<g><path d="M6 4h3l1.5 4-2 1.5a11 11 0 0 0 5 5l1.5-2 4 1.5V19a2 2 0 0 1-2 2A15 15 0 0 1 4 6a2 2 0 0 1 2-2z"/></g>,
    calendar:<g><rect x="4" y="5" width="16" height="16" rx="2.5"/><path d="M4 9.5h16M8 3v4M16 3v4"/></g>,
    send:<g><path d="M21 4L10 14M21 4l-7 17-3-7-7-3 17-7z"/></g>,
    link:<g><path d="M9.5 14.5l5-5M8 12l-2 2a3 3 0 0 0 4 4l2-2M16 12l2-2a3 3 0 0 0-4-4l-2 2"/></g>,
    camera:<g><path d="M4 8.5A1.5 1.5 0 0 1 5.5 7H8l1.2-2h5.6L16 7h2.5A1.5 1.5 0 0 1 20 8.5V17a1.5 1.5 0 0 1-1.5 1.5h-13A1.5 1.5 0 0 1 4 17z"/><circle cx="12" cy="12.5" r="3.2"/></g>,
    keyboard:<g><rect x="3" y="6" width="18" height="12" rx="2.5"/><path d="M7 10h.01M11 10h.01M15 10h.01M17 10h.01M7 13.5h10"/></g>,
    chevR:<g><path d="M9 6l6 6-6 6"/></g>,
    chevL:<g><path d="M15 6l-6 6 6 6"/></g>,
    chevD:<g><path d="M6 9l6 6 6-6"/></g>,
    arrowL:<g><path d="M19 12H5M11 6l-6 6 6 6"/></g>,
    arrowR:<g><path d="M5 12h14M13 6l6 6-6 6"/></g>,
    check:<g><path d="M5 12.5l4.5 4.5L19 7"/></g>,
    checkCircle:<g><circle cx="12" cy="12" r="9"/><path d="M8.5 12l2.5 2.5L16 9"/></g>,
    x:<g><path d="M6 6l12 12M18 6L6 18"/></g>,
    close:<g><path d="M6 6l12 12M18 6L6 18"/></g>,
    alert:<g><path d="M12 3l9 16H3l9-16z"/><path d="M12 10v4M12 17h.01"/></g>,
    heart:<g><path d="M12 20s-7-4.3-9.2-8.5C1.3 8.5 2.8 5.5 6 5.5c1.9 0 3.2 1.1 4 2.3.8-1.2 2.1-2.3 4-2.3 3.2 0 4.7 3 3.2 6C19 15.7 12 20 12 20z"/></g>,
    pulse:<g><path d="M3 12h4l2-5 3 11 2.5-6H21"/></g>,
    crash:<g><path d="M5 17l2-5 4 1 2-4 3 3h3"/><path d="M12 3v3M16 4l-1.5 2.5M8 4l1.5 2.5"/></g>,
    income:<g><circle cx="12" cy="12" r="8.5"/><path d="M12 7v10M14.5 9.2c-.6-.9-1.6-1.2-2.7-1.2-1.4 0-2.5.7-2.5 1.9 0 2.8 5.3 1.5 5.3 4.3 0 1.3-1.2 2-2.8 2-1.2 0-2.3-.4-2.9-1.3"/></g>,
    home:<g><path d="M4 11l8-6 8 6"/><path d="M6 10v9h12v-9"/><path d="M10 19v-5h4v5"/></g>,
    coins:<g><ellipse cx="9" cy="7" rx="5" ry="2.5"/><path d="M4 7v4c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5V7"/><path d="M10 14.5c0 1.4 2.2 2.5 5 2.5s5-1.1 5-2.5v-4c0-1.4-2.2-2.5-5-2.5"/></g>,
    seedling:<g><path d="M12 20v-7"/><path d="M12 13c0-3 2-5 6-5 0 3-2 5-6 5z"/><path d="M12 14c0-2.5-1.7-4.5-5-4.5 0 2.8 1.8 4.5 5 4.5z"/></g>,
    crown:<g><path d="M4 8l3 8h10l3-8-5 3-3-5-3 5-5-3z"/><path d="M6 19h12"/></g>,
    star:<g><path d="M12 4l2.3 4.8 5.2.7-3.8 3.6 1 5.2L12 16.4 7.3 18.9l1-5.2L4.5 10l5.2-.7L12 4z"/></g>,
    target:<g><circle cx="12" cy="12" r="8.5"/><circle cx="12" cy="12" r="4.5"/><circle cx="12" cy="12" r="1"/></g>,
    eye:<g><path d="M2.5 12S6 5.5 12 5.5 21.5 12 21.5 12 18 18.5 12 18.5 2.5 12 2.5 12z"/><circle cx="12" cy="12" r="3"/></g>,
    lock:<g><rect x="5" y="11" width="14" height="9" rx="2.5"/><path d="M8 11V8a4 4 0 0 1 8 0v3"/></g>,
    mail:<g><rect x="3" y="5" width="18" height="14" rx="2.5"/><path d="M4 7l8 6 8-6"/></g>,
    settings:<g><circle cx="12" cy="12" r="3"/><path d="M12 3v2.5M12 18.5V21M21 12h-2.5M5.5 12H3M18.4 5.6l-1.8 1.8M7.4 16.6l-1.8 1.8M18.4 18.4l-1.8-1.8M7.4 7.4L5.6 5.6"/></g>,
    logout:<g><path d="M14 7V5a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-2"/><path d="M18 12H9M15 9l3 3-3 3"/></g>,
    qr:<g><rect x="4" y="4" width="6" height="6" rx="1"/><rect x="14" y="4" width="6" height="6" rx="1"/><rect x="4" y="14" width="6" height="6" rx="1"/><path d="M14 14h2v2M20 14v2M14 18v2h2M18 18h2v2"/></g>,
    edit:<g><path d="M5 19l1-4L16 5l3 3L9 18l-4 1z"/><path d="M14 7l3 3"/></g>,
    clock:<g><circle cx="12" cy="12" r="8.5"/><path d="M12 7.5V12l3 2"/></g>,
    refresh:<g><path d="M20 11a8 8 0 0 0-14-4l-2 2M4 13a8 8 0 0 0 14 4l2-2"/><path d="M4 5v4h4M20 19v-4h-4"/></g>,
    search:<g><circle cx="11" cy="11" r="6.5"/><path d="M20 20l-4-4"/></g>,
    sliders:<g><path d="M4 8h10M18 8h2M4 16h2M10 16h10"/><circle cx="16" cy="8" r="2.2"/><circle cx="8" cy="16" r="2.2"/></g>,
    wallet:<g><rect x="3.5" y="6" width="17" height="13" rx="3"/><path d="M3.5 10h17"/><circle cx="16.5" cy="13.5" r="1.2"/></g>,
    info:<g><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8h.01"/></g>,
    download:<g><path d="M12 4v11M8 11l4 4 4-4"/><path d="M5 19h14"/></g>,
    fingerprint:<g><path d="M5.5 11a6.5 6.5 0 0 1 13 0v2M8 12v1.5a4 4 0 0 0 .5 2M16 12a4 4 0 0 0-8 0M12 12v3.5M12 18.5v.5"/></g>,
  };
  return <svg {...p}>{P[name]||null}</svg>;
};

Object.assign(window, { Icon });
