// ── Oasis HMS · Icon set (inline SVG, faithful to the Figma glyphs) ──────────
// Usage: <Icon name="bed" size={24} color="#4A90E2" />
function Icon({ name, size = 24, color = "currentColor", stroke = 2, style }) {
  const s = { width: size, height: size, display: "block", flexShrink: 0, ...style };
  const P = (d, extra = {}) =>
    React.createElement("path", { d, fill: "none", stroke: color, strokeWidth: stroke,
      strokeLinecap: "round", strokeLinejoin: "round", ...extra });
  const FP = (d, extra = {}) => React.createElement("path", { d, fill: color, ...extra });

  const G = {
    // ── Sidebar / chrome (stroke) ──
    grid: [P("M3 3h7v9H3z"), P("M14 3h7v5h-7z"), P("M14 12h7v9h-7z"), P("M3 16h7v5H3z")],
    "bed-line": [P("M3 18V9a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v9"), P("M3 14h18"), P("M3 18v2"), P("M21 18v2"), P("M7 11h4")],
    users: [P("M16 19v-1a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v1"), P("M9 10a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Z"), P("M22 19v-1a4 4 0 0 0-3-3.87"), P("M16 3.13a4 4 0 0 1 0 7.75")],
    "wrench-line": [P("M14.7 6.3a4 4 0 0 0-5.2 5.2L3 18l3 3 6.5-6.5a4 4 0 0 0 5.2-5.2l-2.6 2.6-2.1-.5-.5-2.1z")],
    "shield-line": [P("M12 3l7 3v5c0 4.5-3 7.5-7 9-4-1.5-7-4.5-7-9V6z")],
    "calendar-check": [P("M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"), P("M3 9h18"), P("M8 3v3"), P("M16 3v3"), P("M9 15l2 2 4-4")],
    "user-circle": [P("M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z"), P("M12 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6Z"), P("M6.3 18.5a6 6 0 0 1 11.4 0")],

    // ── Sidebar FILLED (active) variants ──
    "grid-fill": [FP("M4 3h6a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z"), FP("M14 3h6a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1Z"), FP("M14 12h6a1 1 0 0 1 1 1v7a1 1 0 0 1-1 1h-6a1 1 0 0 1-1-1v-7a1 1 0 0 1 1-1Z"), FP("M4 14h6a1 1 0 0 1 1 1v5a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1Z")],
    "users-fill": [FP("M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z"), FP("M9 13c-3.3 0-6 2-6 4.5V20a1 1 0 0 0 1 1h10a1 1 0 0 0 1-1v-2.5C15 15 12.3 13 9 13Z"), FP("M16.5 11a3.5 3.5 0 1 0 0-7c-.5 0-1 .1-1.4.3a5.5 5.5 0 0 1 0 6.4c.4.2.9.3 1.4.3Z"), FP("M17 13c-.6 0-1.2.1-1.7.2 1.4 1.1 2.2 2.6 2.2 4.3V20a3 3 0 0 1-.2 1H21a1 1 0 0 0 1-1v-2c0-2.5-2.4-4.5-5-4.5Z")],
    "bed-fill": [FP("M2 7a1 1 0 0 1 2 0v4h7V9a1 1 0 0 1 1-1h6a4 4 0 0 1 4 4v6a1 1 0 0 1-2 0v-2H4v2a1 1 0 0 1-2 0z"), FP("M7 9a2.2 2.2 0 1 0 0 4.4A2.2 2.2 0 0 0 7 9Z")],
    "wrench-fill": [FP("M21.3 5.3a.7.7 0 0 0-1.1-.2l-2.6 2.6-2.3-.4-.4-2.3 2.6-2.6a.7.7 0 0 0-.3-1.2 6 6 0 0 0-7.4 7.3L2.6 18.6a2.2 2.2 0 0 0 3.1 3.1l9.6-9.5a6 6 0 0 0 6-6.9z")],
    "shield-fill": [FP("M12 2.2 4.5 5.4v5.1c0 4.9 3.2 8.6 7.5 10 4.3-1.4 7.5-5.1 7.5-10V5.4L12 2.2Z")],
    "calendar-check-fill": [FP("M7 2a1 1 0 0 1 1 1v1h8V3a1 1 0 1 1 2 0v1h1a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1V3a1 1 0 0 1 1-1Zm13 7H4v10h16z"), P("M9 14.5l2 2 4-4", { stroke: "#fff", strokeWidth: 2 })],

    // ── KPI / department (filled) ──
    droplet: [FP("M12 2.5S5.5 9.2 5.5 14a6.5 6.5 0 0 0 13 0C18.5 9.2 12 2.5 12 2.5Z")],
    wrench: [FP("M21.3 5.3a.7.7 0 0 0-1.1-.2l-2.6 2.6-2.3-.4-.4-2.3 2.6-2.6a.7.7 0 0 0-.3-1.2 6 6 0 0 0-7.4 7.3L2.6 18.6a2.2 2.2 0 0 0 3.1 3.1l9.6-9.5a6 6 0 0 0 6-6.9z")],
    shield: [FP("M12 2.2 4.5 5.4v5.1c0 4.9 3.2 8.6 7.5 10 4.3-1.4 7.5-5.1 7.5-10V5.4L12 2.2Z")],
    heart: [FP("M12 21s-7.5-4.6-10-9.3C.3 8.4 1.8 4.5 5.4 4.5c2 0 3.4 1.1 4.3 2.4l.6.8.6-.8c.9-1.3 2.3-2.4 4.3-2.4 3.6 0 5.1 3.9 3.4 7.2C19.5 16.4 12 21 12 21Z")],
    utensils: [FP("M7 2c-.4 0-.7.3-.7.7V8c0 .8-.5 1.3-1 1.5V2.7c0-.4-.3-.7-.7-.7s-.7.3-.7.7v6.8c-.6-.2-1-.7-1-1.5V2.7C2.2 2.3 1.9 2 1.6 2S1 2.3.9 2.7V8a3 3 0 0 0 2.3 2.9V21a1 1 0 0 0 2 0V10.9A3 3 0 0 0 7.5 8V2.7C7.5 2.3 7.2 2 7 2Z"), FP("M14 2c-1.7 0-3 2.2-3 5 0 2.4 1 4.3 2.3 4.8V21a1 1 0 0 0 2 0V2.4A.4.4 0 0 0 14 2Z")],
    beer: [FP("M16 4H5a1 1 0 0 0-1 1v13a3 3 0 0 0 3 3h6a3 3 0 0 0 3-3v-2h2a3 3 0 0 0 3-3v-3a3 3 0 0 0-3-3h-2a1 1 0 0 0 0-1V5a1 1 0 0 0-1-1Zm1 6h2a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-2zM7.5 8a.8.8 0 0 1-.8-.8c0-.4.4-.7.8-.7s.7.3.7.7-.3.8-.7.8Zm3 0a.8.8 0 0 1 0-1.5.8.8 0 0 1 0 1.5Z")],
    concierge: [FP("M12 2a3 3 0 0 0-3 3c0 .5.1.9.3 1.3A8 8 0 0 0 4 14h16a8 8 0 0 0-5.3-7.7c.2-.4.3-.8.3-1.3a3 3 0 0 0-3-3Z"), FP("M3 15.5h18a1 1 0 0 1 1 1V18a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1v-1.5a1 1 0 0 1 1-1Z")],
    bed: [FP("M2 7a1 1 0 0 1 2 0v4h7V9a1 1 0 0 1 1-1h6a4 4 0 0 1 4 4v6a1 1 0 0 1-2 0v-2H4v2a1 1 0 0 1-2 0z"), FP("M7 9a2.2 2.2 0 1 0 0 4.4A2.2 2.2 0 0 0 7 9Z")],
    star: [FP("M12 2.5l2.9 5.9 6.5.95-4.7 4.6 1.1 6.5L12 18.4 6.2 20.4l1.1-6.5-4.7-4.6 6.5-.95z")],
    "alert-triangle": [FP("M10.3 3.2 1.7 18a2 2 0 0 0 1.7 3h17.2a2 2 0 0 0 1.7-3L13.7 3.2a2 2 0 0 0-3.4 0Z", { fillOpacity: 1 }), P("M12 9v4", { stroke: "#fff", strokeWidth: 2 }), P("M12 17h.01", { stroke: "#fff", strokeWidth: 2.2 })],
    briefcase: [FP("M9 3a2 2 0 0 0-2 2v1H4a2 2 0 0 0-2 2v3h20V8a2 2 0 0 0-2-2h-3V5a2 2 0 0 0-2-2zm0 3V5h6v1zM2 13v5a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5h-9v1.5h-2V13z")],
    calendar: [FP("M7 2a1 1 0 0 1 1 1v1h8V3a1 1 0 1 1 2 0v1h1a2 2 0 0 1 2 2v13a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h1V3a1 1 0 0 1 1-1Zm13 7H4v10h16z")],

    // ── UI chrome (stroke) ──
    "arrow-right": [P("M5 12h14"), P("M13 6l6 6-6 6")],
    "arrow-left": [P("M19 12H5"), P("M11 6l-6 6 6 6")],
    plus: [P("M12 5v14"), P("M5 12h14")],
    "chevron-down": [P("M6 9l6 6 6-6")],
    search: [P("M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z"), P("M21 21l-4.3-4.3")],
    edit: [P("M12 20h9"), P("M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z")],
    "message": [P("M21 15a2 2 0 0 1-2 2H8l-4 4V5a2 2 0 0 1 2-2h13a2 2 0 0 1 2 2z")],
    bell: [P("M18 8a6 6 0 1 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"), P("M13.7 21a2 2 0 0 1-3.4 0")],
    sun: [P("M12 17a5 5 0 1 0 0-10 5 5 0 0 0 0 10Z"), P("M12 1v2M12 21v2M4.2 4.2l1.4 1.4M18.4 18.4l1.4 1.4M1 12h2M21 12h2M4.2 19.8l1.4-1.4M18.4 5.6l1.4-1.4")],
    "more-h": [FP("M5 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"), FP("M12 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z"), FP("M19 10a2 2 0 1 0 0 4 2 2 0 0 0 0-4Z")],
    check: [P("M20 6 9 17l-5-5")],
    "check-circle": [FP("M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Z"), P("M8 12.5l2.5 2.5 5-5.5", { stroke: "#fff", strokeWidth: 2.2 })],
    x: [P("M18 6 6 18"), P("M6 6l12 12")],
    send: [P("M22 2 11 13"), P("M22 2 15 22l-4-9-9-4z")],
    info: [P("M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z"), P("M12 11v5"), P("M12 8h.01")],
    "alert-circle": [P("M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z"), P("M12 7.5v5.5"), P("M12 16.5h.01")],
    "id-card": [P("M3 5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"), P("M9 11a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z"), P("M6 17a3 3 0 0 1 6 0"), P("M15 9h3"), P("M15 13h3")],
    phone: [P("M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3 19.5 19.5 0 0 1-6-6 19.8 19.8 0 0 1-3-8.7A2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 1.9.7 2.8a2 2 0 0 1-.5 2.1L8.1 9.9a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.4c.9.3 1.8.6 2.8.7a2 2 0 0 1 1.7 2z")],
    globe: [P("M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18Z"), P("M3 12h18"), P("M12 3a14 14 0 0 1 0 18 14 14 0 0 1 0-18Z")],
    mail: [P("M3 6a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"), P("M3 7l9 6 9-6")],
    sort: [FP("M12 4l4 5H8z"), FP("M12 20l-4-5h8z", { fillOpacity: .9 })],

    // ── Amenities (stroke) ──
    wifi: [P("M5 12.5a10 10 0 0 1 14 0"), P("M8.5 16a5 5 0 0 1 7 0"), P("M2 9a15 15 0 0 1 20 0"), P("M12 20h.01")],
    snow: [P("M12 3v18"), P("M5 7l14 10"), P("M19 7 5 17"), P("M12 6 9.5 4M12 6l2.5-2M12 18l-2.5 2M12 18l2.5 2")],
    tv: [P("M3 7a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"), P("M8 21h8"), P("M8 2l4 3 4-3")],
    coffee: [P("M5 8h12v5a5 5 0 0 1-5 5H10a5 5 0 0 1-5-5z"), P("M17 9h2a2 2 0 0 1 0 6h-2"), P("M8 2v2M12 2v2")],
    safe: [P("M4 5a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1z"), P("M14 12a3 3 0 1 0-6 0 3 3 0 0 0 6 0Z"), P("M11 12h.01")],
    dryer: [P("M3 6h11a3 3 0 0 1 0 6H8l-2 3"), P("M3 6v6"), P("M14 18h4M14 21h6")],
    waves: [P("M2 8c2 0 2 2 4 2s2-2 4-2 2 2 4 2 2-2 4-2"), P("M2 13c2 0 2 2 4 2s2-2 4-2 2 2 4 2 2-2 4-2"), P("M2 18c2 0 2 2 4 2s2-2 4-2 2 2 4 2 2-2 4-2")],
    bath: [P("M4 12V6a2 2 0 0 1 3.4-1.4L9 6"), P("M2 12h20v3a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4z"), P("M6 19l-1 2M19 19l-1 2")],
  };
  const paths = G[name] || [];
  return React.createElement("svg", { viewBox: "0 0 24 24", style: s, "aria-hidden": true }, ...paths);
}
window.Icon = Icon;
