/* ============================================================
   CURIO — Icon set (stroke, 1.7 weight, Lucide-ish)
   Uses children (not fragment-as-prop) for multi-element icons.
   ============================================================ */
const Ic = ({ d, size = 18, sw = 1.7, fill, children, ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill={fill || "none"}
    stroke="currentColor" strokeWidth={sw} strokeLinecap="round" strokeLinejoin="round" {...p}>
    {children || (d ? <path d={d} /> : null)}
  </svg>
);

const Spark = (p) => <Ic {...p}><path d="M12 2.5l1.85 5.5a3.6 3.6 0 0 0 2.3 2.3l5.5 1.85-5.5 1.85a3.6 3.6 0 0 0-2.3 2.3L12 21.8l-1.85-5.5a3.6 3.6 0 0 0-2.3-2.3L2.35 12.15l5.5-1.85a3.6 3.6 0 0 0 2.3-2.3z" fill="currentColor" stroke="none"/></Ic>;
const SparkOutline = (p) => <Ic {...p} d="M12 3l1.9 5.6a3 3 0 0 0 1.9 1.9L21.4 12l-5.6 1.9a3 3 0 0 0-1.9 1.9L12 21.4l-1.9-5.6a3 3 0 0 0-1.9-1.9L2.6 12l5.6-1.9a3 3 0 0 0 1.9-1.9z" />;
const Home = (p) => <Ic {...p} d="M3 10.5L12 3l9 7.5M5 9.5V20a1 1 0 0 0 1 1h4v-6h4v6h4a1 1 0 0 0 1-1V9.5" />;
const Compass = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M15.5 8.5l-2 5-5 2 2-5z"/></Ic>;
const Library = (p) => <Ic {...p}><rect x="4" y="4" width="6" height="16" rx="1.5"/><rect x="14" y="4" width="6" height="11" rx="1.5"/><path d="M14 19h6"/></Ic>;
const Plus = (p) => <Ic {...p} d="M12 5v14M5 12h14" sw={2} />;
const Search = (p) => <Ic {...p}><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></Ic>;
const Bell = (p) => <Ic {...p} d="M18 8a6 6 0 1 0-12 0c0 7-3 8-3 8h18s-3-1-3-8M13.7 21a2 2 0 0 1-3.4 0" />;
const Settings = (p) => <Ic {...p}><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-2.7 1.1V21a2 2 0 1 1-4 0v-.1A1.6 1.6 0 0 0 7 19.4a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0-1.1-2.7H1a2 2 0 1 1 0-4h.1A1.6 1.6 0 0 0 2.6 7a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H7a1.6 1.6 0 0 0 1-1.5V1a2 2 0 1 1 4 0v.1a1.6 1.6 0 0 0 2.7 1.1l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V7a1.6 1.6 0 0 0 1.5 1H21a2 2 0 1 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z" /></Ic>;
const Grid = (p) => <Ic {...p}><rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/><rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/></Ic>;
const Users = (p) => <Ic {...p} d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8M22 21v-2a4 4 0 0 0-3-3.9M16 3.1A4 4 0 0 1 16 11" />;
const Chart = (p) => <Ic {...p} d="M3 3v18h18M7 14l3-4 3 3 4-6" />;
const Shield = (p) => <Ic {...p} d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6z" />;
const Book = (p) => <Ic {...p} d="M4 5a2 2 0 0 1 2-2h13v15H6a2 2 0 0 0-2 2zM4 19a2 2 0 0 0 2 2h13" />;
const Play = (p) => <Ic {...p}><path d="M7 5.5v13l11-6.5z" fill="currentColor" stroke="currentColor" strokeWidth="1.5"/></Ic>;
const PlayCircle = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M10 8.5v7l6-3.5z" fill="currentColor" stroke="none"/></Ic>;
const Check = (p) => <Ic {...p} d="M4 12.5l5 5L20 6.5" sw={2} />;
const CheckCircle = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M8.5 12l2.5 2.5L16 9"/></Ic>;
const ChevR = (p) => <Ic {...p} d="M9 5l7 7-7 7" />;
const ChevL = (p) => <Ic {...p} d="M15 5l-7 7 7 7" />;
const ChevD = (p) => <Ic {...p} d="M5 9l7 7 7-7" />;
const ArrowR = (p) => <Ic {...p} d="M5 12h14M13 6l6 6-6 6" />;
const ArrowUpR = (p) => <Ic {...p} d="M7 17L17 7M9 7h8v8" />;
const Send = (p) => <Ic {...p} d="M22 2L11 13M22 2l-7 20-4-9-9-4z" />;
const Download = (p) => <Ic {...p} d="M12 3v12M7 11l5 5 5-5M5 21h14" />;
const Edit = (p) => <Ic {...p} d="M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z" />;
const Sparkles = (p) => <Ic {...p}><path d="M12 3l1.6 4.4L18 9l-4.4 1.6L12 15l-1.6-4.4L6 9l4.4-1.6z" fill="currentColor" stroke="none"/><path d="M19 14l.7 1.9L21.5 17l-1.8.7L19 19.5l-.7-1.8L16.5 17l1.8-.7z" fill="currentColor" stroke="none"/></Ic>;
const Clock = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3.5 2"/></Ic>;
const Star = (p) => <Ic {...p} d="M12 3l2.6 5.7 6.2.7-4.6 4.2 1.2 6.1L12 17l-5.4 2.7 1.2-6.1L3.2 9.4l6.2-.7z" />;
const StarFill = (p) => <Ic {...p} fill="currentColor" sw={0} d="M12 3l2.6 5.7 6.2.7-4.6 4.2 1.2 6.1L12 17l-5.4 2.7 1.2-6.1L3.2 9.4l6.2-.7z" />;
const Globe = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.5 2.5 2.5 15 0 18M12 3c-2.5 2.5-2.5 15 0 18"/></Ic>;
const Layers = (p) => <Ic {...p} d="M12 3l9 5-9 5-9-5zM3 14l9 5 9-5M3 12l9 5 9-5" />;
const Target = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1.3" fill="currentColor"/></Ic>;
const Zap = (p) => <Ic {...p} d="M13 2L4 14h7l-1 8 9-12h-7z" />;
const Filter = (p) => <Ic {...p} d="M3 5h18l-7 8v6l-4-2v-4z" />;
const Dots = (p) => <Ic {...p}><circle cx="5" cy="12" r="1.4" fill="currentColor"/><circle cx="12" cy="12" r="1.4" fill="currentColor"/><circle cx="19" cy="12" r="1.4" fill="currentColor"/></Ic>;
const X = (p) => <Ic {...p} d="M6 6l12 12M18 6L6 18" sw={2} />;
const Menu = (p) => <Ic {...p} d="M3 6h18M3 12h18M3 18h18" />;
const Logout = (p) => <Ic {...p} d="M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4M16 17l5-5-5-5M21 12H9" />;
const File = (p) => <Ic {...p} d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8zM14 3v5h5" />;
const Code = (p) => <Ic {...p} d="M9 8l-4 4 4 4M15 8l4 4-4 4" />;
const Mic = (p) => <Ic {...p} d="M12 2a3 3 0 0 0-3 3v6a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM5 11a7 7 0 0 0 14 0M12 18v3" />;
const Paperclip = (p) => <Ic {...p} d="M21 11l-9 9a5 5 0 0 1-7-7l9-9a3.5 3.5 0 0 1 5 5l-9 9a2 2 0 0 1-3-3l8-8" />;
const Trend = (p) => <Ic {...p} d="M3 17l6-6 4 4 8-8M21 7v5h-5" />;
const Dollar = (p) => <Ic {...p} d="M12 2v20M17 6H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" />;
const Heart = (p) => <Ic {...p} d="M12 20s-7-4.3-9.5-8.5C.9 8.4 2.5 5 6 5c2 0 3.2 1.2 4 2.5C10.8 6.2 12 5 14 5c3.5 0 5.1 3.4 3.5 6.5C19 15.7 12 20 12 20z" />;
const Bookmark = (p) => <Ic {...p} d="M6 3h12a1 1 0 0 1 1 1v17l-7-4-7 4V4a1 1 0 0 1 1-1z" />;
const Flame = (p) => <Ic {...p} d="M12 2c1 4-2 5-2 8a2 2 0 0 0 4 0c2 1.5 3 3.5 3 6a5 5 0 0 1-10 0c0-3 2-5 3-7 0 2 1 3 2 3" />;
const Lock = (p) => <Ic {...p}><rect x="4" y="10" width="16" height="11" rx="2"/><path d="M8 10V7a4 4 0 0 1 8 0v3"/></Ic>;
const Mail = (p) => <Ic {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M4 7l8 6 8-6"/></Ic>;
const Google = ({ size = 18, ...p }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" {...p}>
    <path fill="#4285F4" d="M22.5 12.2c0-.7-.1-1.4-.2-2H12v3.8h5.9a5 5 0 0 1-2.2 3.3v2.7h3.5c2-1.9 3.3-4.7 3.3-7.8z"/>
    <path fill="#34A853" d="M12 23c3 0 5.5-1 7.3-2.7l-3.5-2.7c-1 .7-2.3 1.1-3.8 1.1-2.9 0-5.4-2-6.3-4.6H2v2.8A11 11 0 0 0 12 23z"/>
    <path fill="#FBBC05" d="M5.7 14.1a6.6 6.6 0 0 1 0-4.2V7.1H2a11 11 0 0 0 0 9.8z"/>
    <path fill="#EA4335" d="M12 5.4c1.6 0 3 .6 4.2 1.6l3.1-3.1A11 11 0 0 0 2 7.1l3.7 2.8C6.6 7.3 9.1 5.4 12 5.4z"/>
  </svg>
);
const Briefcase = (p) => <Ic {...p}><rect x="3" y="7" width="18" height="13" rx="2"/><path d="M8 7V5a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2M3 12h18"/></Ic>;
const Palette = (p) => <Ic {...p} d="M12 3a9 9 0 0 0 0 18c1.7 0 2-1.3 1.2-2.2-.8-1 0-2.3 1.3-2.3H17a4 4 0 0 0 4-4c0-5-4-9.5-9-9.5zM7.5 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM10.5 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2zM15 8a1 1 0 1 0 0-2 1 1 0 0 0 0 2z" />;
const Cpu = (p) => <Ic {...p}><rect x="6" y="6" width="12" height="12" rx="2"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"/></Ic>;
const Wand = (p) => <Ic {...p} d="M15 4V2M15 10V8M11 6H9M21 6h-2M18.5 3.5l-1.4 1.4M18.5 8.5l-1.4-1.4M3 21l9-9M12 12l1.5-1.5" />;
const Eye = (p) => <Ic {...p}><path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></Ic>;
const Refresh = (p) => <Ic {...p} d="M21 12a9 9 0 1 1-3-6.7L21 8M21 3v5h-5" />;
const Calendar = (p) => <Ic {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></Ic>;
const Quote = (p) => <Ic {...p} fill="currentColor" sw={0} d="M9 7H5a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2v2a2 2 0 0 1-2 2H4v2h1a4 4 0 0 0 4-4zm10 0h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h2v2a2 2 0 0 1-2 2h-1v2h1a4 4 0 0 0 4-4z" />;
const Help = (p) => <Ic {...p}><circle cx="12" cy="12" r="9"/><path d="M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.8.4-1 .8-1 1.7"/><circle cx="12" cy="16.5" r="0.6" fill="currentColor"/></Ic>;
const List = (p) => <Ic {...p} d="M8 6h13M8 12h13M8 18h13M3.5 6h.01M3.5 12h.01M3.5 18h.01" />;
const Trash = (p) => <Ic {...p} d="M4 7h16M9 7V5a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2M6 7l1 13a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-13" />;

Object.assign(window, {
  Spark, SparkOutline, Home, Compass, Library, Plus, Search, Bell, Settings, Grid, Users,
  Chart, Shield, Book, Play, PlayCircle, Check, CheckCircle, ChevR, ChevL, ChevD, ArrowR, ArrowUpR,
  Send, Download, Edit, Sparkles, Clock, Star, StarFill, Globe, Layers, Target, Zap, Filter,
  Dots, X, Menu, Logout, File, Code, Mic, Paperclip, Trend, Dollar, Heart, Bookmark, Flame,
  Lock, Mail, Google, Briefcase, Palette, Cpu, Wand, Eye, Refresh, Calendar, Quote, Help, List, Trash,
});
