// Минимальный набор линейных иконок (1.5 stroke, currentColor)
const Ic = ({ d, children, size = 22, sw = 1.5, className = '' }) => (
  <svg
    viewBox="0 0 24 24"
    width={size}
    height={size}
    fill="none"
    stroke="currentColor"
    strokeWidth={sw}
    strokeLinecap="round"
    strokeLinejoin="round"
    className={className}
    aria-hidden="true"
  >
    {d ? <path d={d} /> : children}
  </svg>
);

const Icon = {
  Arrow: (p) => <Ic {...p}><path d="M5 12h14M13 5l7 7-7 7"/></Ic>,
  ArrowSmall: (p) => <Ic size={16} {...p}><path d="M5 12h14M13 5l7 7-7 7"/></Ic>,
  ArrowDown: (p) => <Ic {...p}><path d="M12 5v14M5 13l7 7 7-7"/></Ic>,
  Check: (p) => <Ic {...p}><path d="M5 12.5l4.5 4.5L20 6.5"/></Ic>,
  X: (p) => <Ic {...p}><path d="M6 6l12 12M18 6L6 18"/></Ic>,
  Close: (p) => <Ic {...p}><path d="M6 6l12 12M18 6L6 18"/></Ic>,
  Whatsapp: ({ size = 22, className = '' }) => (
    <svg viewBox="0 0 24 24" width={size} height={size} fill="currentColor" className={className} aria-hidden="true">
      <path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 0 1-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 0 1-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 0 1 2.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0 0 12.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 0 0 5.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 0 0-3.48-8.413"/>
    </svg>
  ),
  Calendar: (p) => (
    <Ic {...p}>
      <rect x="3.5" y="5" width="17" height="15" rx="2"/>
      <path d="M3.5 10h17M8 3.5v3M16 3.5v3"/>
    </Ic>
  ),
  Clock: (p) => <Ic {...p}><circle cx="12" cy="12" r="8.5"/><path d="M12 7v5l3 2"/></Ic>,
  Shield: (p) => <Ic {...p}><path d="M12 3l8 3v6c0 4.5-3.4 8.4-8 9-4.6-.6-8-4.5-8-9V6l8-3z"/></Ic>,
  ShieldCheck: (p) => <Ic {...p}><path d="M12 3l8 3v6c0 4.5-3.4 8.4-8 9-4.6-.6-8-4.5-8-9V6l8-3z"/><path d="M8.5 12l2.5 2.5L16 10"/></Ic>,
  Users: (p) => <Ic {...p}><circle cx="9" cy="9" r="3.2"/><path d="M3 19c.6-2.8 3-4.5 6-4.5s5.4 1.7 6 4.5"/><circle cx="17" cy="8" r="2.6"/><path d="M15.5 14c2.5 0 4.4 1.4 5 3.5"/></Ic>,
  Wallet: (p) => <Ic {...p}><rect x="3" y="6" width="18" height="13" rx="2"/><path d="M3 9h18M16.5 13h2"/></Ic>,
  Doc: (p) => <Ic {...p}><path d="M7 3h7l4 4v14H7z"/><path d="M14 3v4h4M9 12h7M9 16h5"/></Ic>,
  Tools: (p) => <Ic {...p}><path d="M14.5 4.5a3.5 3.5 0 0 0 4.5 4.5l-9 9-4.5.5.5-4.5 8.5-9.5z"/></Ic>,
  Gear: (p) => <Ic {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 13l1.7 1-2 3.4-2-.6a7.4 7.4 0 0 1-2 .9l-.4 2H10.3l-.4-2a7.4 7.4 0 0 1-2-.9l-2 .6-2-3.4 1.7-1a7.6 7.6 0 0 1 0-2L4 9l2-3.4 2 .6a7.4 7.4 0 0 1 2-.9l.4-2h3.4l.4 2c.7.2 1.3.5 2 .9l2-.6L20.1 9l-1.7 1c.1.7.1 1.3 0 2z"/></Ic>,
  Chart: (p) => <Ic {...p}><path d="M4 20V8M10 20v-7M16 20v-9M22 20H2"/></Ic>,
  Calc: (p) => <Ic {...p}><rect x="5" y="3" width="14" height="18" rx="2"/><path d="M8 7h8M8 11h2M12 11h2M16 11h0M8 15h2M12 15h2M16 15h0M8 19h2M12 19h2M16 19h0"/></Ic>,
  Bell: (p) => <Ic {...p}><path d="M6 16V11a6 6 0 0 1 12 0v5l1.5 2H4.5L6 16z"/><path d="M10 20a2 2 0 0 0 4 0"/></Ic>,
  Phone: (p) => <Ic {...p}><path d="M5 4h4l2 5-2.5 1.5a11 11 0 0 0 5 5L15 13l5 2v4a2 2 0 0 1-2 2A14 14 0 0 1 4 6a2 2 0 0 1 1-2z"/></Ic>,
  Photo: (p) => <Ic {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="11" r="2"/><path d="M21 17l-5-5-9 9"/></Ic>,
  Sparkle: (p) => <Ic {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.5 5.5l2.8 2.8M15.7 15.7l2.8 2.8M5.5 18.5l2.8-2.8M15.7 8.3l2.8-2.8"/></Ic>,
  Broom: (p) => <Ic {...p}><path d="M14 4l6 6-3 3-6-6 3-3z"/><path d="M11 7l-5 5-2 8 8-2 5-5"/></Ic>,
  Trash: (p) => <Ic {...p}><path d="M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13"/></Ic>,
  Smile: (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M8 14c1 1.5 2.4 2.2 4 2.2s3-.7 4-2.2M9 10h.01M15 10h.01"/></Ic>,
  Eye: (p) => <Ic {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></Ic>,
  Map: (p) => <Ic {...p}><path d="M9 3l-6 2v16l6-2 6 2 6-2V3l-6 2-6-2z"/><path d="M9 3v16M15 5v16"/></Ic>,
  Pin: (p) => <Ic {...p}><path d="M12 22s7-7 7-12a7 7 0 1 0-14 0c0 5 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></Ic>,
  Quote: (p) => <Ic {...p}><path d="M7 7h4v4H7c0 3 1 4 4 4v2c-5 0-7-2-7-6V7zM14 7h4v4h-4c0 3 1 4 4 4v2c-5 0-7-2-7-6V7z"/></Ic>,
  Plus: (p) => <Ic {...p}><path d="M12 5v14M5 12h14"/></Ic>,
  Upload: (p) => <Ic {...p}><path d="M12 16V4M7 9l5-5 5 5M4 20h16"/></Ic>,
  Globe: (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c3 3.5 3 14 0 18M12 3c-3 3.5-3 14 0 18"/></Ic>,
  Menu: (p) => <Ic {...p}><path d="M4 7h16M4 12h16M4 17h16"/></Ic>,
  Excel: (p) => <Ic {...p}><path d="M7 3h7l4 4v14H7z"/><path d="M14 3v4h4"/><path d="M9.5 11.5l4 5M13.5 11.5l-4 5"/></Ic>,
  Download: (p) => <Ic {...p}><path d="M12 4v12M7 11l5 5 5-5M5 20h14"/></Ic>,
};

window.Icon = Icon;
