// Lucide-style inline icons. Stroke-based, 24x24, currentColor.
const iconBase = {
  xmlns: 'http://www.w3.org/2000/svg',
  width: 24, height: 24, viewBox: '0 0 24 24',
  fill: 'none', stroke: 'currentColor',
  strokeWidth: 2, strokeLinecap: 'round', strokeLinejoin: 'round',
};
const I = (size, children) => (props) => {
  const { className = '', size: sz = size || 20, strokeWidth = 2, ...rest } = props || {};
  return (
    <svg {...iconBase} width={sz} height={sz} strokeWidth={strokeWidth} className={className} {...rest}>
      {children}
    </svg>
  );
};

const LayoutDashboard = I(20, <>
  <rect x="3" y="3" width="7" height="9" rx="1.5" />
  <rect x="14" y="3" width="7" height="5" rx="1.5" />
  <rect x="14" y="12" width="7" height="9" rx="1.5" />
  <rect x="3" y="16" width="7" height="5" rx="1.5" />
</>);
const Database = I(20, <>
  <ellipse cx="12" cy="5" rx="9" ry="3" />
  <path d="M3 5v6c0 1.66 4.03 3 9 3s9-1.34 9-3V5" />
  <path d="M3 11v6c0 1.66 4.03 3 9 3s9-1.34 9-3v-6" />
</>);
const Target = I(20, <>
  <circle cx="12" cy="12" r="9" />
  <circle cx="12" cy="12" r="5" />
  <circle cx="12" cy="12" r="1.5" fill="currentColor" stroke="none" />
</>);
const Search = I(18, <>
  <circle cx="11" cy="11" r="7" />
  <path d="m20 20-3.5-3.5" />
</>);
const Upload = I(20, <>
  <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
  <polyline points="17 8 12 3 7 8" />
  <line x1="12" x2="12" y1="3" y2="15" />
</>);
const Bell = I(20, <>
  <path d="M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9" />
  <path d="M10.3 21a1.94 1.94 0 0 0 3.4 0" />
</>);
const ChevronDown = I(16, <polyline points="6 9 12 15 18 9" />);
const ChevronRight = I(16, <polyline points="9 6 15 12 9 18" />);
const ChevronLeft = I(16, <polyline points="15 6 9 12 15 18" />);
const Play = I(20, <polygon points="6 4 20 12 6 20 6 4" />);
const ImageIcon = I(28, <>
  <rect x="3" y="3" width="18" height="18" rx="2" />
  <circle cx="9" cy="9" r="2" />
  <path d="m21 15-3.5-3.5a2 2 0 0 0-2.8 0L7 19" />
</>);
const MapPin = I(20, <>
  <path d="M20 10c0 6-8 12-8 12s-8-6-8-12a8 8 0 0 1 16 0Z" />
  <circle cx="12" cy="10" r="3" />
</>);
const TrendingUp = I(20, <>
  <polyline points="22 7 13.5 15.5 8.5 10.5 2 17" />
  <polyline points="16 7 22 7 22 13" />
</>);
const DollarSign = I(20, <>
  <line x1="12" x2="12" y1="2" y2="22" />
  <path d="M17 5H9.5a3.5 3.5 0 1 0 0 7h5a3.5 3.5 0 1 1 0 7H6" />
</>);
const CheckCircle2 = I(20, <>
  <circle cx="12" cy="12" r="10" />
  <path d="m9 12 2 2 4-4" />
</>);
const Download = I(18, <>
  <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" x2="12" y1="15" y2="3" />
</>);
const Copy = I(16, <>
  <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" />
</>);
const ExternalLink = I(16, <>
  <path d="M15 3h6v6" />
  <path d="M10 14 21 3" />
  <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
</>);
const FileText = I(28, <>
  <path d="M14 3H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" />
  <polyline points="14 3 14 9 20 9" />
  <line x1="9" x2="15" y1="13" y2="13" />
  <line x1="9" x2="15" y1="17" y2="17" />
</>);
const Quote = I(28, <>
  <path d="M3 21c3 0 7-1 7-8V5c0-1.25-.75-2-2-2H4c-1.25 0-2 .75-2 2v6c0 1.25.75 2 2 2h3" />
  <path d="M15 21c3 0 7-1 7-8V5c0-1.25-.75-2-2-2h-4c-1.25 0-2 .75-2 2v6c0 1.25.75 2 2 2h3" />
</>);
const Mic = I(14, <>
  <rect x="9" y="2" width="6" height="12" rx="3" />
  <path d="M19 10v1a7 7 0 0 1-14 0v-1" />
  <line x1="12" x2="12" y1="18" y2="22" />
</>);
const Video = I(14, <>
  <path d="m22 8-6 4 6 4V8Z" />
  <rect x="2" y="6" width="14" height="12" rx="2" />
</>);
const Type = I(14, <>
  <polyline points="4 7 4 4 20 4 20 7" />
  <line x1="9" x2="15" y1="20" y2="20" />
  <line x1="12" x2="12" y1="4" y2="20" />
</>);
const Headphones = I(14, <>
  <path d="M3 18v-6a9 9 0 0 1 18 0v6" />
  <path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z" />
</>);
const ArrowLeft = I(18, <>
  <line x1="19" x2="5" y1="12" y2="12" />
  <polyline points="12 19 5 12 12 5" />
</>);
const ArrowRight = I(16, <>
  <line x1="5" x2="19" y1="12" y2="12" />
  <polyline points="12 5 19 12 12 19" />
</>);
const ArrowDownRight = I(14, <>
  <line x1="7" x2="17" y1="7" y2="17" />
  <polyline points="17 7 17 17 7 17" />
</>);
const Grid3 = I(16, <>
  <rect x="3" y="3" width="7" height="7" rx="1" />
  <rect x="14" y="3" width="7" height="7" rx="1" />
  <rect x="3" y="14" width="7" height="7" rx="1" />
  <rect x="14" y="14" width="7" height="7" rx="1" />
</>);
const List = I(16, <>
  <line x1="8" x2="21" y1="6" y2="6" />
  <line x1="8" x2="21" y1="12" y2="12" />
  <line x1="8" x2="21" y1="18" y2="18" />
  <line x1="3" x2="3.01" y1="6" y2="6" />
  <line x1="3" x2="3.01" y1="12" y2="12" />
  <line x1="3" x2="3.01" y1="18" y2="18" />
</>);
const Sparkles = I(16, <>
  <path d="m12 3-1.9 5.8a2 2 0 0 1-1.3 1.3L3 12l5.8 1.9a2 2 0 0 1 1.3 1.3L12 21l1.9-5.8a2 2 0 0 1 1.3-1.3L21 12l-5.8-1.9a2 2 0 0 1-1.3-1.3z" />
</>);
const BadgeCheck = I(16, <>
  <path d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z" />
  <path d="m9 12 2 2 4-4" />
</>);
const Clock = I(14, <>
  <circle cx="12" cy="12" r="10" />
  <polyline points="12 6 12 12 16 14" />
</>);
const Calendar = I(14, <>
  <rect x="3" y="4" width="18" height="18" rx="2" />
  <line x1="16" x2="16" y1="2" y2="6" />
  <line x1="8" x2="8" y1="2" y2="6" />
  <line x1="3" x2="21" y1="10" y2="10" />
</>);
const Phone = I(14, <>
  <path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.37 1.9.72 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.35 1.85.59 2.81.72A2 2 0 0 1 22 16.92Z" />
</>);
const Command = I(14, <>
  <path d="M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z" />
</>);
const CornerDownRight = I(14, <>
  <polyline points="15 10 20 15 15 20" />
  <path d="M4 4v7a4 4 0 0 0 4 4h12" />
</>);
const X = I(16, <>
  <line x1="18" x2="6" y1="6" y2="18" />
  <line x1="6" x2="18" y1="6" y2="18" />
</>);
const Menu = I(18, <>
  <line x1="3" x2="21" y1="6" y2="6" />
  <line x1="3" x2="21" y1="12" y2="12" />
  <line x1="3" x2="21" y1="18" y2="18" />
</>);
const CheckIcon = I(12, <polyline points="20 6 9 17 4 12" />);

Object.assign(window, {
  LayoutDashboard, Database, Target, Search, Upload, Bell,
  ChevronDown, ChevronRight, ChevronLeft, Play, ImageIcon, MapPin,
  TrendingUp, DollarSign, CheckCircle2, Download, Copy, ExternalLink,
  FileText, Quote, Mic, Video, Type, Headphones, ArrowLeft, ArrowRight,
  ArrowDownRight, Grid3, List, Sparkles, BadgeCheck, Clock, Calendar,
  Phone, Command, CornerDownRight, X, Menu, CheckIcon,
});
