/* DMS icon set — stroke-based, currentColor, replaces decorative emoji with institutional iconography.
   Semantic state markers (lock, eye, ban, clock) are kept per the brief — color is never the only signal. */
(function () {
  const P = {
    home: 'M3 10.5 12 4l9 6.5M5 9.5V20h14V9.5M9.5 20v-5.5h5V20',
    search: 'M11 4a7 7 0 1 0 0 14 7 7 0 0 0 0-14ZM20 20l-3.6-3.6',
    checks: 'M4 7l2 2 3.5-3.5M4 16l2 2 3.5-3.5M13 7h7M13 17h7',
    archive: 'M4 7h16M4 7V5.5h16V7M5 7v12.5h14V7M9.5 11h5',
    inbox: 'M4 13h4l1.5 2.5h5L16 13h4M4 13l2.5-8h11L20 13v6H4v-6Z',
    vault: 'M4 5h16v14H4zM12 9.2a2.8 2.8 0 1 0 0 5.6 2.8 2.8 0 0 0 0-5.6ZM12 12v0M16.5 7.5v9M7.5 7.5v9',
    book: 'M12 6.5C10.5 5.2 8 4.8 4.5 5v13c3.5-.2 6 .2 7.5 1.5 1.5-1.3 4-1.7 7.5-1.5V5c-3.5-.2-6 .2-7.5 1.5ZM12 6.5v13',
    history: 'M4.5 9a8 8 0 1 1-.5 4M4.5 5v4h4M12 8v4.5l3 1.8',
    settings: 'M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6ZM19.4 12c0-.5 0-1-.1-1.4l1.7-1.3-1.8-3-2 .8a6.7 6.7 0 0 0-2.5-1.4L14.2 2.5h-3.5l-.3 2.2c-.9.3-1.7.8-2.5 1.4l-2-.8-1.8 3 1.7 1.3c-.1.4-.1.9-.1 1.4s0 1 .1 1.4l-1.7 1.3 1.8 3 2-.8c.8.6 1.6 1.1 2.5 1.4l.3 2.2h3.5l.3-2.2c.9-.3 1.7-.8 2.5-1.4l2 .8 1.8-3-1.7-1.3c.1-.4.1-.9.1-1.4Z',
    building: 'M5 21V4.5C5 3.7 5.7 3 6.5 3h7c.8 0 1.5.7 1.5 1.5V21M15 9h3.5c.8 0 1.5.7 1.5 1.5V21M4 21h16M8 7h3M8 11h3M8 15h3',
    folder: 'M4 6.5C4 5.7 4.7 5 5.5 5h3.4c.5 0 1 .25 1.3.7l.9 1.3h7.4c.8 0 1.5.7 1.5 1.5V18c0 .8-.7 1.5-1.5 1.5h-13C4.7 19.5 4 18.8 4 18V6.5Z',
    file: 'M7 3.5h7L19 8.5V20a.5.5 0 0 1-.5.5h-12A.5.5 0 0 1 6 20V4a.5.5 0 0 1 .5-.5ZM14 3.5V8.5h5M9 13h6M9 16h6',
    clock: 'M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM12 7.5V12l3 1.8',
    coins: 'M9 4.5c-3 0-5.5 1-5.5 2.5S6 9.5 9 9.5s5.5-1 5.5-2.5S12 4.5 9 4.5ZM3.5 7v5c0 1.4 2.5 2.5 5.5 2.5M14.5 11c3 0 5.5 1 5.5 2.5S17.5 16 14.5 16 9 15 9 13.5M9 11.5v5.5c0 1.4 2.5 2.5 5.5 2.5s5.5-1 5.5-2.5v-5.5',
    lock: 'M6.5 11V8a5.5 5.5 0 0 1 11 0v3M5 11h14v9.5H5zM12 15v2.5',
    eye: '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 12ZM12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6Z',
    ban: 'M12 4a8 8 0 1 0 0 16 8 8 0 0 0 0-16ZM6.5 6.5l11 11',
    check: 'M5 12.5l4.5 4.5L19 7',
    x: 'M6 6l12 12M18 6 6 18',
    chevron: 'M9 6l6 6-6 6',
    arrowLeft: 'M19 12H5M11 6l-6 6 6 6',
    sparkles: 'M12 4.5l1.6 3.9L17.5 10l-3.9 1.6L12 15.5l-1.6-3.9L6.5 10l3.9-1.6L12 4.5ZM18 14l.8 2 2 .8-2 .8-.8 2-.8-2-2-.8 2-.8.8-2Z',
    alert: 'M12 4.5 21 20H3L12 4.5ZM12 10v4M12 17v.5',
    inboxEmpty: 'M4 13h4l1.5 2.5h5L16 13h4M4 13l2.5-8h11L20 13v6H4v-6Z',
    shield: 'M12 3.5 5 6v5c0 4.2 2.9 7.6 7 9 4.1-1.4 7-4.8 7-9V6l-7-2.5Z',
    user: 'M12 4a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7ZM5 20c0-3.3 3.1-5.5 7-5.5s7 2.2 7 5.5',
    link: 'M9.5 14.5l5-5M8 11l-1.8 1.8a3.2 3.2 0 0 0 4.5 4.5L12.5 16M11.5 8l1.8-1.8a3.2 3.2 0 0 1 4.5 4.5L16 12.5',
    layers: 'M12 4 3.5 8.5 12 13l8.5-4.5L12 4ZM4 13l8 4.5L20 13M4 16.5 12 21l8-4.5',
    filter: 'M4 6h16M7 12h10M10 18h4',
    plus: 'M12 5v14M5 12h14',
    grid: 'M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z',
    download: 'M12 4v10M8 11l4 4 4-4M5 19h14',
    edit: 'M4 20l1-4L16 5l3 3L8 19l-4 1ZM14 7l3 3',
    flag: 'M6 4v16M6 5h11l-2.2 3.5L17 12H6',
    refresh: 'M20 11a8 8 0 1 0-1 5M20 5v6h-6',
  };

  function Icon({ name, size = 16, className = '', strokeWidth = 1.7, style }) {
    const d = P[name];
    if (!d) return null;
    return (
      <svg
        width={size}
        height={size}
        viewBox="0 0 24 24"
        fill="none"
        stroke="currentColor"
        strokeWidth={strokeWidth}
        strokeLinecap="round"
        strokeLinejoin="round"
        className={className}
        style={style}
        aria-hidden="true"
        focusable="false"
      >
        {d.split('M').filter(Boolean).map((seg, i) => (
          <path key={i} d={'M' + seg.trim()} />
        ))}
      </svg>
    );
  }

  window.Icon = Icon;
  window.ICON_PATHS = P;
})();
