// Icons — minimal stroke line icons (no emoji)
const Icon = {
  Fleet: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <rect x="1.5" y="3.5" width="5" height="4.5" rx="0.5"/>
      <rect x="9.5" y="3.5" width="5" height="4.5" rx="0.5"/>
      <rect x="1.5" y="10" width="5" height="4.5" rx="0.5"/>
      <rect x="9.5" y="10" width="5" height="4.5" rx="0.5"/>
    </svg>
  ),
  Genset: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <rect x="1.5" y="4" width="13" height="8" rx="0.5"/>
      <path d="M4 4v-1.5M12 4v-1.5M4 12v1.5M12 12v1.5"/>
      <circle cx="6" cy="8" r="1.2"/><circle cx="10" cy="8" r="1.2"/>
    </svg>
  ),
  Alarm: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M3 12.5c0-3.3 2.2-6 5-6s5 2.7 5 6"/>
      <path d="M2 12.5h12"/>
      <path d="M8 3.5v1.5"/>
      <path d="M2.5 5.5L3.5 6.5M13.5 5.5L12.5 6.5"/>
    </svg>
  ),
  Report: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <rect x="2.5" y="2" width="11" height="12" rx="0.5"/>
      <path d="M5 6h6M5 9h6M5 12h4"/>
    </svg>
  ),
  Chart: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M2 13h12"/>
      <path d="M4 11V8M7 11V5M10 11V9M13 11V3"/>
    </svg>
  ),
  Site: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M8 14.5s5-4.2 5-8.5A5 5 0 0 0 3 6c0 4.3 5 8.5 5 8.5z"/>
      <circle cx="8" cy="6" r="1.6"/>
    </svg>
  ),
  Settings: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="8" cy="8" r="2"/>
      <path d="M8 1v2M8 13v2M1 8h2M13 8h2M3.5 3.5l1.4 1.4M11.1 11.1l1.4 1.4M3.5 12.5l1.4-1.4M11.1 4.9l1.4-1.4"/>
    </svg>
  ),
  Users: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="6" cy="5.5" r="2.3"/>
      <path d="M1.5 14c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5"/>
      <circle cx="11.5" cy="5.5" r="1.8"/>
      <path d="M14.5 12c0-1.8-1.1-3.2-2.8-3.7"/>
    </svg>
  ),
  Search: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="7" cy="7" r="4.5"/>
      <path d="M10.5 10.5L14 14"/>
    </svg>
  ),
  Bell: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M4 6.5A4 4 0 0 1 8 2.5a4 4 0 0 1 4 4c0 3.5 1.5 4.5 1.5 4.5h-11s1.5-1 1.5-4.5z"/>
      <path d="M6.5 13a1.5 1.5 0 0 0 3 0"/>
    </svg>
  ),
  Refresh: (p) => (
    <svg width={p.size||14} height={p.size||14} viewBox="0 0 16 16" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M2.5 8A5.5 5.5 0 0 1 12 4.2"/>
      <path d="M13.5 8A5.5 5.5 0 0 1 4 11.8"/>
      <path d="M10 2.5v2.5h2.5M6 13.5V11H3.5"/>
    </svg>
  ),
  Caret: (p) => (
    <svg width={p.size||10} height={p.size||10} viewBox="0 0 10 10" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
      <path d="M2.5 4l2.5 2.5L7.5 4"/>
    </svg>
  ),
  ChevR: (p) => (
    <svg width={p.size||10} height={p.size||10} viewBox="0 0 10 10" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
      <path d="M3.5 2.5L6.5 5L3.5 7.5"/>
    </svg>
  ),
  Plus: (p) => (
    <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.4" strokeLinecap="round">
      <path d="M6 2v8M2 6h8"/>
    </svg>
  ),
  Download: (p) => (
    <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M6 1.5v7M3 6l3 3 3-3"/>
      <path d="M2 10.5h8"/>
    </svg>
  ),
  Filter: (p) => (
    <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <path d="M1.5 2.5h9L7 7v3.5L5 9.5V7L1.5 2.5z"/>
    </svg>
  ),
  Grid: (p) => (
    <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <rect x="1.5" y="1.5" width="3.5" height="3.5"/>
      <rect x="7" y="1.5" width="3.5" height="3.5"/>
      <rect x="1.5" y="7" width="3.5" height="3.5"/>
      <rect x="7" y="7" width="3.5" height="3.5"/>
    </svg>
  ),
  Rows: (p) => (
    <svg width={p.size||12} height={p.size||12} viewBox="0 0 12 12" fill="none" stroke="currentColor" strokeWidth="1.3" strokeLinecap="round" strokeLinejoin="round">
      <rect x="1.5" y="1.5" width="9" height="2.3"/>
      <rect x="1.5" y="5" width="9" height="2.3"/>
      <rect x="1.5" y="8.5" width="9" height="2.3"/>
    </svg>
  ),
};

// Owl mark — Otus rust/orange owl, front-facing, heart-shaped facial disc
const OwlMark = ({ size = 22 }) => (
  <svg width={size} height={size} viewBox="0 0 32 32" fill="none">
    <defs>
      <linearGradient id="owlBody" x1="0" y1="0" x2="0" y2="1">
        <stop offset="0" stopColor="#F4A261"/>
        <stop offset="1" stopColor="#C8571E"/>
      </linearGradient>
    </defs>
    {/* body + head silhouette: round head with pointed ear tufts, body tapering to tail */}
    <path d="M16 2.5c-1.2 0-1.9 0.6-2.6 1.6-0.7-1-1.7-1.4-2.5-0.9-0.8 0.5-0.9 1.6-0.4 2.8C8.5 7 6.5 9.4 6.5 12.3c0 2 0.8 3.8 2 5.2 -1 1.3-1.6 3-1.6 5 0 3.5 2 6.5 4.6 7.6 1.4 0.6 2.9 0.9 4.5 0.9s3.1-0.3 4.5-0.9c2.6-1.1 4.6-4.1 4.6-7.6 0-2-0.6-3.7-1.6-5 1.2-1.4 2-3.2 2-5.2 0-2.9-2-5.3-4-6.3 0.5-1.2 0.4-2.3-0.4-2.8-0.8-0.5-1.8-0.1-2.5 0.9C17.9 3.1 17.2 2.5 16 2.5z" fill="url(#owlBody)"/>
    {/* facial disc — slightly lighter heart shape */}
    <path d="M16 9c-2.2 0-4 1.4-4.5 3.4-0.3 1.2 0.1 2.5 1 3.4l3.5 3.4 3.5-3.4c0.9-0.9 1.3-2.2 1-3.4C20 10.4 18.2 9 16 9z" fill="#FFE4CE" opacity="0.95"/>
    {/* eyes — big dark circles */}
    <circle cx="13.2" cy="12" r="1.5" fill="#0A0D10"/>
    <circle cx="18.8" cy="12" r="1.5" fill="#0A0D10"/>
    <circle cx="13.5" cy="11.6" r="0.4" fill="#F4A261"/>
    <circle cx="19.1" cy="11.6" r="0.4" fill="#F4A261"/>
    {/* beak */}
    <path d="M16 13.5l-0.9 2h1.8z" fill="#0A0D10"/>
    {/* chest feather texture hint */}
    <path d="M11.5 22c0.8-0.8 2.5-1.2 4.5-1.2s3.7 0.4 4.5 1.2" stroke="#0A0D10" strokeWidth="0.4" opacity="0.25" fill="none"/>
    <path d="M12 24.5c0.8-0.6 2.3-1 4-1s3.2 0.4 4 1" stroke="#0A0D10" strokeWidth="0.4" opacity="0.2" fill="none"/>
  </svg>
);

Object.assign(window, { Icon, OwlMark });
