// Lucide subset for portfolio
const SvgBase = ({ children, size = 16, sw = 2, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
       stroke="currentColor" strokeWidth={sw} strokeLinecap="round"
       strokeLinejoin="round" {...rest}>{children}</svg>
);

const Plus = (p) => <SvgBase {...p}><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></SvgBase>;
const X    = (p) => <SvgBase {...p}><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></SvgBase>;
const Check= (p) => <SvgBase {...p}><polyline points="20 6 9 17 4 12"/></SvgBase>;
const ChevronUp   = (p) => <SvgBase {...p}><polyline points="18 15 12 9 6 15"/></SvgBase>;
const ChevronDown = (p) => <SvgBase {...p}><polyline points="6 9 12 15 18 9"/></SvgBase>;
const Send = (p) => <SvgBase {...p}><line x1="22" y1="2" x2="11" y2="13"/><polygon points="22 2 15 22 11 13 2 9 22 2"/></SvgBase>;
const Sparkles = (p) => <SvgBase {...p}><path d="M12 3l1.7 4.6L18 9l-4.3 1.4L12 15l-1.7-4.6L6 9l4.3-1.4L12 3z"/></SvgBase>;
const Inbox  = (p) => <SvgBase {...p}><polyline points="22 12 16 12 14 15 10 15 8 12 2 12"/><path d="M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"/></SvgBase>;
const Columns= (p) => <SvgBase {...p}><path d="M3 3h7v18H3z"/><path d="M14 3h7v18h-7z"/></SvgBase>;
const Trash2 = (p) => <SvgBase {...p}><polyline points="3 6 5 6 21 6"/><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"/></SvgBase>;
const Calendar = (p) => <SvgBase {...p}><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"/></SvgBase>;
const Filter = (p) => <SvgBase {...p}><polygon points="22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3"/></SvgBase>;
const Bell = (p) => <SvgBase {...p}><path d="M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></SvgBase>;
const Wallet = (p) => <SvgBase {...p}><path d="M20 12V8a2 2 0 0 0-2-2H5a2 2 0 0 1 0-4h14v4"/><path d="M3 6v12a2 2 0 0 0 2 2h15a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-3a2 2 0 0 1 0-4h3a1 1 0 0 0 1-1V8"/></SvgBase>;
const ChevronRight = (p) => <SvgBase {...p}><polyline points="9 18 15 12 9 6"/></SvgBase>;
const ChevronLeft  = (p) => <SvgBase {...p}><polyline points="15 18 9 12 15 6"/></SvgBase>;
const Mail = (p) => <SvgBase {...p}><rect x="2" y="4" width="20" height="16" rx="2"/><path d="M22 6l-10 7L2 6"/></SvgBase>;
const MessageCircle = (p) => <SvgBase {...p}><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/></SvgBase>;
const Phone = (p) => <SvgBase {...p}><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.72 12.84 12.84 0 0 0 .7 2.81 2 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-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></SvgBase>;
const Play = (p) => <SvgBase {...p}><polygon points="5 3 19 12 5 21 5 3"/></SvgBase>;
const MessageSquare = (p) => <SvgBase {...p}><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></SvgBase>;
const Clock = (p) => <SvgBase {...p}><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></SvgBase>;
const Folder = (p) => <SvgBase {...p}><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></SvgBase>;
const FileText = (p) => <SvgBase {...p}><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"/></SvgBase>;
const ArrowRight = (p) => <SvgBase {...p}><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></SvgBase>;
const ArrowLeft = (p) => <SvgBase {...p}><line x1="19" y1="12" x2="5" y2="12"/><polyline points="12 19 5 12 12 5"/></SvgBase>;
const ListChecks = (p) => <SvgBase {...p}><polyline points="3 17 5 19 9 15"/><polyline points="3 7 5 9 9 5"/><line x1="13" y1="6" x2="21" y2="6"/><line x1="13" y1="12" x2="21" y2="12"/><line x1="13" y1="18" x2="21" y2="18"/></SvgBase>;
const Eye = (p) => <SvgBase {...p}><path d="M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"/><circle cx="12" cy="12" r="3"/></SvgBase>;
const GripV  = ({ size=14 }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
    <circle cx="9" cy="6" r="1.5"/><circle cx="15" cy="6" r="1.5"/>
    <circle cx="9" cy="12" r="1.5"/><circle cx="15" cy="12" r="1.5"/>
    <circle cx="9" cy="18" r="1.5"/><circle cx="15" cy="18" r="1.5"/>
  </svg>
);

Object.assign(window, {
  Plus, X, Check, ChevronUp, ChevronDown, ChevronLeft, ChevronRight,
  Send, Sparkles, Inbox, Columns, Trash2,
  Calendar, Filter, Bell, Wallet, Mail, MessageCircle, MessageSquare,
  Phone, Play, Clock, Folder, FileText, ArrowRight, ArrowLeft,
  ListChecks, Eye, GripV,
});
