// Lucide-style inline icons. Stroke 2, currentColor.
const _ic = (paths, size = 20) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor"
       strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">{paths}</svg>
);
const Ic = {
  FileText: (s=20) => _ic(<><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="16" y1="13" x2="8" y2="13"/><line x1="16" y1="17" x2="8" y2="17"/><line x1="10" y1="9" x2="8" y2="9"/></>, s),
  Mic: (s=20) => _ic(<><rect x="9" y="2" width="6" height="11" rx="3"/><path d="M19 10a7 7 0 0 1-14 0"/><line x1="12" y1="19" x2="12" y2="22"/></>, s),
  Mail: (s=20) => _ic(<><rect x="2" y="4" width="20" height="16" rx="2"/><polyline points="22 7 12 13 2 7"/></>, s),
  ClipboardList: (s=20) => _ic(<><rect x="8" y="2" width="8" height="4" rx="1"/><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><path d="M12 11h4"/><path d="M12 16h4"/><path d="M8 11h.01"/><path d="M8 16h.01"/></>, s),
  BookOpen: (s=20) => _ic(<><path d="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></>, s),
  GraduationCap: (s=20) => _ic(<><path d="M22 10v6M2 10l10-5 10 5-10 5z"/><path d="M6 12v5a6 6 0 0 0 12 0v-5"/></>, s),
  Target: (s=20) => _ic(<><circle cx="12" cy="12" r="10"/><circle cx="12" cy="12" r="6"/><circle cx="12" cy="12" r="2"/></>, s),
  Hash: (s=20) => _ic(<><line x1="4" y1="9" x2="20" y2="9"/><line x1="4" y1="15" x2="20" y2="15"/><line x1="10" y1="3" x2="8" y2="21"/><line x1="16" y1="3" x2="14" y2="21"/></>, s),
  Sparkles: (s=20) => _ic(<><path d="M12 3l1.9 4.6L18.5 9.5l-4.6 1.9L12 16l-1.9-4.6L5.5 9.5l4.6-1.9z"/><path d="M18 18l.8 2 2 .8-2 .8L18 24l-.8-2.4-2-.8 2-.8z"/></>, s),
  ArrowLeft: (s=18) => _ic(<><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></>, s),
  ArrowRight: (s=16) => _ic(<><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></>, s),
  Check: (s=16) => _ic(<polyline points="20 6 9 17 4 12"/>, s),
  Clock: (s=16) => _ic(<><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></>, s),
  Copy: (s=16) => _ic(<><rect x="9" y="9" width="13" height="13" rx="2"/><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/></>, s),
  Download: (s=16) => _ic(<><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><polyline points="7 10 12 15 17 10"/><line x1="12" y1="15" x2="12" y2="3"/></>, s),
  Refresh: (s=16) => _ic(<><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></>, s),
  X: (s=16) => _ic(<><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></>, s),
  Send: (s=16) => _ic(<><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></>, s),
  Pause: (s=18) => _ic(<><rect x="6" y="4" width="4" height="16"/><rect x="14" y="4" width="4" height="16"/></>, s),
  Play: (s=18) => _ic(<polygon points="5 3 19 12 5 21 5 3"/>, s),
  Stop: (s=18) => _ic(<rect x="5" y="5" width="14" height="14" rx="1"/>, s),
  Search: (s=16) => _ic(<><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></>, s),
  ChevronRight: (s=16) => _ic(<polyline points="9 18 15 12 9 6"/>, s),
  ChevronDown: (s=16) => _ic(<polyline points="6 9 12 15 18 9"/>, s),
  User: (s=18) => _ic(<><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></>, s),
  Menu: (s=20) => _ic(<><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></>, s),
  Calendar: (s=18) => _ic(<><rect x="3" y="4" width="18" height="18" rx="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></>, s),
  Stethoscope: (s=20) => _ic(<><path d="M4.8 2.3A.3.3 0 1 0 5 2H4a2 2 0 0 0-2 2v5a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6V4a2 2 0 0 0-2-2h-1a.2.2 0 1 0 .3.3"/><path d="M8 15v1a6 6 0 0 0 6 6v0a6 6 0 0 0 6-6v-4"/><circle cx="20" cy="10" r="2"/></>, s),
  Heart: (s=20) => _ic(<path d="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/>, s),
  Brain: (s=20) => _ic(<><path d="M12 5a3 3 0 1 0-5.997.142 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z"/><path d="M12 5a3 3 0 1 1 5.997.142 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z"/></>, s),
  Activity: (s=20) => _ic(<polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/>, s),
  Code: (s=20) => _ic(<><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></>, s),
  Zap: (s=18) => _ic(<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>, s),
  Shield: (s=18) => _ic(<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>, s),
  Pencil: (s=14) => _ic(<><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></>, s),
  Sliders: (s=18) => _ic(<><line x1="4" y1="21" x2="4" y2="14"/><line x1="4" y1="10" x2="4" y2="3"/><line x1="12" y1="21" x2="12" y2="12"/><line x1="12" y1="8" x2="12" y2="3"/><line x1="20" y1="21" x2="20" y2="16"/><line x1="20" y1="12" x2="20" y2="3"/><line x1="1" y1="14" x2="7" y2="14"/><line x1="9" y1="8" x2="15" y2="8"/><line x1="17" y1="16" x2="23" y2="16"/></>, s),
};
function IllustrationFor({ slug, size = 32 }) {
  const urls = (typeof window !== 'undefined' && window.ILLUSTRATION_URLS) || {};
  const src = urls[slug];
  if (!src) return <div style={{ width: size, height: size, flexShrink: 0 }} aria-hidden="true" />;
  return (
    <img
      src={src}
      width={size}
      height={size}
      alt=""
      aria-hidden="true"
      loading="lazy"
      style={{ objectFit: 'contain', flexShrink: 0, display: 'block' }}
    />
  );
}
window.IllustrationFor = IllustrationFor;
window.Ic = Ic;
