// Lightweight stroke icons — tuned to feel close to Lucide/Phosphor
const I = ({ size = 22, stroke = 'currentColor', fill = 'none', sw = 1.8, children, style }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill} stroke={stroke}
    strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" style={style}>
    {children}
  </svg>
);

const Icon = {
  Home:    (p) => <I {...p}><path d="M3 11l9-7 9 7"/><path d="M5 10v10h14V10"/></I>,
  Shield:  (p) => <I {...p}><path d="M12 3l8 3v5c0 5-3.5 8.5-8 10-4.5-1.5-8-5-8-10V6l8-3z"/></I>,
  Scan:    (p) => <I {...p}><path d="M4 7V5a1 1 0 011-1h2"/><path d="M20 7V5a1 1 0 00-1-1h-2"/><path d="M4 17v2a1 1 0 001 1h2"/><path d="M20 17v2a1 1 0 01-1 1h-2"/><path d="M3 12h18"/></I>,
  Doc:     (p) => <I {...p}><path d="M14 3H6a2 2 0 00-2 2v14a2 2 0 002 2h12a2 2 0 002-2V9z"/><path d="M14 3v6h6"/><path d="M9 13h6M9 17h4"/></I>,
  More:    (p) => <I {...p}><circle cx="6" cy="12" r="1.5"/><circle cx="12" cy="12" r="1.5"/><circle cx="18" cy="12" r="1.5"/></I>,
  Bell:    (p) => <I {...p}><path d="M6 8a6 6 0 0112 0c0 7 3 8 3 8H3s3-1 3-8z"/><path d="M10 21a2 2 0 004 0"/></I>,
  Clock:   (p) => <I {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></I>,
  Map:     (p) => <I {...p}><path d="M9 4l-6 2v14l6-2 6 2 6-2V4l-6 2z"/><path d="M9 4v14M15 6v14"/></I>,
  Pin:     (p) => <I {...p}><path d="M12 22s7-7 7-12a7 7 0 10-14 0c0 5 7 12 7 12z"/><circle cx="12" cy="10" r="2.5"/></I>,
  AlertTri:(p) => <I {...p}><path d="M12 3l10 18H2L12 3z"/><path d="M12 10v5"/><circle cx="12" cy="18" r="0.6" fill="currentColor"/></I>,
  Radio:   (p) => <I {...p}><path d="M5 12a7 7 0 0114 0"/><path d="M2 12a10 10 0 0120 0"/><circle cx="12" cy="12" r="2"/></I>,
  Chat:    (p) => <I {...p}><path d="M21 12a8 8 0 11-3-6.2L21 5l-1 4.5A8 8 0 0121 12z"/></I>,
  Cal:     (p) => <I {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></I>,
  Gear:    (p) => <I {...p}><circle cx="12" cy="12" r="3"/><path d="M19 12a7 7 0 00-.1-1.2l2-1.5-2-3.5-2.4.9a7 7 0 00-2-1.2l-.4-2.5h-4l-.4 2.5a7 7 0 00-2 1.2l-2.4-.9-2 3.5 2 1.5A7 7 0 005 12c0 .4 0 .8.1 1.2l-2 1.5 2 3.5 2.4-.9c.6.5 1.3.9 2 1.2l.4 2.5h4l.4-2.5c.7-.3 1.4-.7 2-1.2l2.4.9 2-3.5-2-1.5c.1-.4.1-.8.1-1.2z"/></I>,
  ArrowR:  (p) => <I {...p}><path d="M5 12h14M13 5l7 7-7 7"/></I>,
  ArrowL:  (p) => <I {...p}><path d="M19 12H5M11 19l-7-7 7-7"/></I>,
  Chev:    (p) => <I {...p}><path d="M9 6l6 6-6 6"/></I>,
  ChevD:   (p) => <I {...p}><path d="M6 9l6 6 6-6"/></I>,
  Check:   (p) => <I {...p}><path d="M5 12.5l4.5 4.5L20 6"/></I>,
  X:       (p) => <I {...p}><path d="M6 6l12 12M18 6L6 18"/></I>,
  Plus:    (p) => <I {...p}><path d="M12 5v14M5 12h14"/></I>,
  Search:  (p) => <I {...p}><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.5-4.5"/></I>,
  Filter:  (p) => <I {...p}><path d="M3 5h18l-7 9v6l-4-2v-4L3 5z"/></I>,
  Power:   (p) => <I {...p}><path d="M12 3v9"/><path d="M5.5 7A8 8 0 1018.5 7"/></I>,
  Coffee:  (p) => <I {...p}><path d="M4 8h13v6a5 5 0 01-10 0V8z"/><path d="M17 10h2a3 3 0 010 6h-2"/><path d="M7 3l-1 2M11 3l-1 2M15 3l-1 2"/></I>,
  Camera:  (p) => <I {...p}><path d="M3 8h4l2-3h6l2 3h4v11H3z"/><circle cx="12" cy="13" r="4"/></I>,
  Mic:     (p) => <I {...p}><rect x="9" y="3" width="6" height="12" rx="3"/><path d="M5 11a7 7 0 0014 0M12 18v3"/></I>,
  Send:    (p) => <I {...p}><path d="M22 2L11 13"/><path d="M22 2l-7 20-4-9-9-4 20-7z"/></I>,
  Paperclip:(p) => <I {...p}><path d="M21 11l-9 9a5 5 0 01-7-7l9-9a3 3 0 014 4l-9 9a1 1 0 01-1-1l8-8"/></I>,
  Sun:     (p) => <I {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M2 12h2M20 12h2M5 5l1.5 1.5M17.5 17.5L19 19M5 19l1.5-1.5M17.5 6.5L19 5"/></I>,
  Moon:    (p) => <I {...p}><path d="M21 13A9 9 0 1111 3a7 7 0 0010 10z"/></I>,
  Logout:  (p) => <I {...p}><path d="M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4"/><path d="M16 17l5-5-5-5M21 12H9"/></I>,
  Edit:    (p) => <I {...p}><path d="M12 20h9"/><path d="M16.5 3.5a2.1 2.1 0 113 3L7 19l-4 1 1-4 12.5-12.5z"/></I>,
  QR:      (p) => <I {...p}><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><path d="M14 14h3v3M21 14v3M14 21h7"/></I>,
  NFC:     (p) => <I {...p}><path d="M5 8a14 14 0 0114 0M8 11a10 10 0 018 0M11 14a6 6 0 012 0"/><circle cx="12" cy="19" r="1.5" fill="currentColor"/></I>,
  Photo:   (p) => <I {...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"/></I>,
  Play:    (p) => <I {...p}><path d="M6 4l14 8-14 8V4z" fill="currentColor"/></I>,
  Pause:   (p) => <I {...p}><rect x="6" y="4" width="4" height="16" fill="currentColor"/><rect x="14" y="4" width="4" height="16" fill="currentColor"/></I>,
  Stop:    (p) => <I {...p}><rect x="6" y="6" width="12" height="12" fill="currentColor" rx="1"/></I>,
  Trash:   (p) => <I {...p}><path d="M3 6h18M8 6V4a2 2 0 012-2h4a2 2 0 012 2v2M6 6l1 14a2 2 0 002 2h6a2 2 0 002-2l1-14"/></I>,
  Eye:     (p) => <I {...p}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7S2 12 2 12z"/><circle cx="12" cy="12" r="3"/></I>,
  Star:    (p) => <I {...p}><path d="M12 3l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1 3-6z"/></I>,
  User:    (p) => <I {...p}><circle cx="12" cy="8" r="4"/><path d="M4 21a8 8 0 0116 0"/></I>,
  Users:   (p) => <I {...p}><circle cx="9" cy="8" r="4"/><path d="M2 21a7 7 0 0114 0"/><path d="M16 4a4 4 0 010 8M22 21a7 7 0 00-6-7"/></I>,
  Phone:   (p) => <I {...p}><path d="M22 16.9v3a2 2 0 01-2.2 2 19 19 0 01-8.3-3 19 19 0 01-6-6 19 19 0 01-3-8.4A2 2 0 014.5 2h3a2 2 0 012 1.7 12 12 0 00.7 2.6 2 2 0 01-.4 2L8.1 9.9a16 16 0 006 6l1.6-1.6a2 2 0 012-.4 12 12 0 002.6.7 2 2 0 011.7 2z"/></I>,
  Battery: (p) => <I {...p}><rect x="2" y="7" width="18" height="10" rx="2"/><path d="M22 11v2"/><rect x="4" y="9" width="11" height="6" rx="1" fill="currentColor" stroke="none"/></I>,
  Wifi:    (p) => <I {...p}><path d="M2 9a16 16 0 0120 0M5 13a11 11 0 0114 0M8.5 16.5a6 6 0 017 0"/><circle cx="12" cy="20" r="0.6" fill="currentColor"/></I>,
  Signal:  (p) => <I {...p}><rect x="2" y="14" width="3" height="6" rx="0.5" fill="currentColor" stroke="none"/><rect x="7" y="10" width="3" height="10" rx="0.5" fill="currentColor" stroke="none"/><rect x="12" y="6" width="3" height="14" rx="0.5" fill="currentColor" stroke="none"/><rect x="17" y="2" width="3" height="18" rx="0.5" fill="currentColor" stroke="none"/></I>,
  Flash:   (p) => <I {...p}><path d="M13 2L3 14h8l-1 8 10-12h-8l1-8z"/></I>,
  Stopwatch:(p) => <I {...p}><circle cx="12" cy="13" r="8"/><path d="M12 9v4l2 2M9 2h6M12 5V2"/></I>,
  Briefcase:(p) => <I {...p}><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 012-2h4a2 2 0 012 2v2M3 13h18"/></I>,
  Lock:    (p) => <I {...p}><rect x="4" y="11" width="16" height="10" rx="2"/><path d="M8 11V7a4 4 0 018 0v4"/></I>,
  Info:    (p) => <I {...p}><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8v.01"/></I>,
  Car:     (p) => <I {...p}><path d="M5 13l1.5-5a2 2 0 012-1.5h7a2 2 0 012 1.5L19 13"/><rect x="3" y="13" width="18" height="6" rx="1.5"/><circle cx="7.5" cy="19" r="1.5" fill="currentColor"/><circle cx="16.5" cy="19" r="1.5" fill="currentColor"/></I>,
  Speaker: (p) => <I {...p}><path d="M11 5L6 9H3v6h3l5 4V5z"/><path d="M16 9a4 4 0 010 6"/><path d="M19 6a8 8 0 010 12"/></I>,
  CheckDouble:(p) => <I {...p}><path d="M2 13l4 4 8-10"/><path d="M11 17l3 3 8-10"/></I>,
  Headset: (p) => <I {...p}><path d="M4 14a8 8 0 1116 0v4a2 2 0 01-2 2h-2v-6h4M4 14v4a2 2 0 002 2h2v-6H4z"/></I>,
  Globe:   (p) => <I {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3a14 14 0 010 18M12 3a14 14 0 000 18"/></I>,
  Video:   (p) => <I {...p}><rect x="3" y="6" width="13" height="12" rx="2"/><path d="M16 10l5-3v10l-5-3"/></I>,
  Sig:     (p) => <I {...p}><path d="M3 17c2 0 3-2 5-7s4-7 6-3-1 8 1 9 3-2 5-2"/><path d="M3 21h18"/></I>,
  Finger:  (p) => <I {...p}><path d="M5 12a7 7 0 0114 0v3"/><path d="M8 12a4 4 0 018 0v4a3 3 0 003 3"/><path d="M11 12v7"/><path d="M5 16v2a3 3 0 003 3"/></I>,
  Mail:    (p) => <I {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 7 9-7"/></I>,
  Bolt:    (p) => <I {...p}><path d="M13 2L3 14h7l-1 8 11-13h-7l1-7z"/></I>,
  Wrench:  (p) => <I {...p}><path d="M14 6a4 4 0 105 5l5 5-3 3-5-5a4 4 0 01-5-5l-3-3 3-3 3 3z"/></I>,
  Building:(p) => <I {...p}><rect x="4" y="3" width="16" height="18" rx="1.5"/><path d="M9 7h2M13 7h2M9 11h2M13 11h2M9 15h2M13 15h2"/><path d="M10 21v-3h4v3"/></I>,
  Truck:   (p) => <I {...p}><rect x="2" y="7" width="12" height="9" rx="1"/><path d="M14 10h4l3 4v2h-7"/><circle cx="6.5" cy="18" r="1.7"/><circle cx="17.5" cy="18" r="1.7"/></I>,
  ClipChk: (p) => <I {...p}><rect x="6" y="4" width="12" height="17" rx="2"/><path d="M9 4V3a1 1 0 011-1h4a1 1 0 011 1v1"/><path d="M9 13l2 2 4-5"/></I>,
  Swap:    (p) => <I {...p}><path d="M3 8h13l-3-3M21 16H8l3 3"/></I>,
  ChartUp: (p) => <I {...p}><path d="M3 17l6-6 4 4 7-8"/><path d="M14 7h6v6"/></I>,
  Crosshair:(p)=> <I {...p}><circle cx="12" cy="12" r="9"/><path d="M12 3v3M12 18v3M3 12h3M18 12h3"/><circle cx="12" cy="12" r="2"/></I>,
  Sparkle: (p) => <I {...p}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.5 5.5l2.5 2.5M16 16l2.5 2.5M5.5 18.5L8 16M16 8l2.5-2.5"/></I>,
  Refresh: (p) => <I {...p}><path d="M21 12a9 9 0 11-3-6.7L21 8"/><path d="M21 3v5h-5"/></I>,
  Pause2:  (p) => <I {...p}><rect x="6" y="5" width="4" height="14" rx="1"/><rect x="14" y="5" width="4" height="14" rx="1"/></I>,
  Wave:    (p) => <I {...p}><path d="M3 12c2-4 4-4 6 0s4 4 6 0 4-4 6 0"/></I>,
  PinAdd:  (p) => <I {...p}><path d="M19 11c0 5-7 11-7 11s-7-6-7-11a7 7 0 1114 0z"/><path d="M12 8v4M10 10h4"/></I>,
};

window.Icon = Icon;

// ByDuty shield logo
function BDLogo({ size = 28, gold = '#F5B544', dark = true }) {
  const r = size;
  return (
    <svg width={r} height={r} viewBox="0 0 64 64" fill="none">
      <defs>
        <linearGradient id="bd-gold" x1="0" y1="0" x2="0" y2="1">
          <stop offset="0" stopColor="#FFD580"/>
          <stop offset="1" stopColor={gold}/>
        </linearGradient>
      </defs>
      <path d="M32 4l22 7v15c0 14-9 22-22 26C19 48 10 40 10 26V11l22-7z"
        fill="url(#bd-gold)" stroke={gold} strokeWidth="1"/>
      <path d="M22 19h13c4 0 7 2 7 5.5 0 2.5-1.5 4-3.5 4.7 2.7.6 4.5 2.3 4.5 5.3 0 4-3 6-7.5 6H22V19zm5 4v6h6.5c1.7 0 3-.8 3-2.7 0-1.9-1.3-2.7-3-2.7H27zm0 9.5v6.7h7c1.9 0 3.4-.9 3.4-3.3 0-2.3-1.5-3.4-3.4-3.4h-7z"
        fill={dark ? '#0B1020' : '#1B2540'}/>
    </svg>
  );
}
window.BDLogo = BDLogo;
