// Icon components — minimalist line icons drawn as inline SVG
// All sized via parent font-size with 1em
const Icon = ({ children, size = 16, stroke = 1.6, style, className, ...rest }) => (
  <svg width={size} height={size} viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round"
    style={style} className={className} {...rest}>
    {children}
  </svg>
);

const IconHome      = (p) => <Icon {...p}><path d="M3 11l9-8 9 8" /><path d="M5 10v10h14V10" /></Icon>;
const IconTrophy    = (p) => <Icon {...p}><path d="M8 21h8M12 17v4M7 4h10v3a5 5 0 01-10 0V4z" /><path d="M7 6H4v2a3 3 0 003 3M17 6h3v2a3 3 0 01-3 3" /></Icon>;
const IconCalendar  = (p) => <Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2" /><path d="M3 10h18M8 3v4M16 3v4" /></Icon>;
const IconList      = (p) => <Icon {...p}><path d="M8 6h13M8 12h13M8 18h13M3 6h.01M3 12h.01M3 18h.01" /></Icon>;
const IconUsers     = (p) => <Icon {...p}><circle cx="9" cy="8" r="3" /><path d="M3 20a6 6 0 0112 0" /><path d="M16 4a3 3 0 010 6M21 20a5 5 0 00-4-5" /></Icon>;
const IconBuilding  = (p) => <Icon {...p}><rect x="4" y="3" width="16" height="18" rx="1" /><path d="M9 7h.01M14 7h.01M9 11h.01M14 11h.01M9 15h.01M14 15h.01M10 21v-4h4v4" /></Icon>;
const IconSwords    = (p) => <Icon {...p}><path d="M14 4l6 6-3 3-6-6 3-3z" /><path d="M3 21l4-4M5 19l4-4-2-2-4 4 2 2zM17 13l4 4-2 2-4-4" /></Icon>;
const IconBracket   = (p) => <Icon {...p}><path d="M3 6h6v6h6v6h6M3 18h6" /></Icon>;
const IconShield    = (p) => <Icon {...p}><path d="M12 3l8 3v6c0 5-3.5 8-8 9-4.5-1-8-4-8-9V6l8-3z" /></Icon>;
const IconChat      = (p) => <Icon {...p}><path d="M21 12a8 8 0 11-3-6.2L21 5l-1.2 3a8 8 0 011.2 4z" /></Icon>;
const IconSend      = (p) => <Icon {...p}><path d="M21 3l-9 18-2-9-9-2 20-7z" /></Icon>;
const IconCheck     = (p) => <Icon {...p}><path d="M5 12l5 5L20 7" /></Icon>;
const IconX         = (p) => <Icon {...p}><path d="M6 6l12 12M18 6L6 18" /></Icon>;
const IconClock     = (p) => <Icon {...p}><circle cx="12" cy="12" r="9" /><path d="M12 7v5l3 3" /></Icon>;
const IconBolt      = (p) => <Icon {...p}><path d="M13 2L4 14h7l-1 8 9-12h-7l1-8z" /></Icon>;
const IconBell      = (p) => <Icon {...p}><path d="M6 8a6 6 0 0112 0v5l2 3H4l2-3V8z" /><path d="M10 21a2 2 0 004 0" /></Icon>;
const IconSearch    = (p) => <Icon {...p}><circle cx="11" cy="11" r="7" /><path d="M21 21l-5-5" /></Icon>;
const IconChevDown  = (p) => <Icon {...p}><path d="M6 9l6 6 6-6" /></Icon>;
const IconChevRight = (p) => <Icon {...p}><path d="M9 6l6 6-6 6" /></Icon>;
const IconChevLeft  = (p) => <Icon {...p}><path d="M15 6l-6 6 6 6" /></Icon>;
const IconPlus      = (p) => <Icon {...p}><path d="M12 5v14M5 12h14" /></Icon>;
const IconMinus     = (p) => <Icon {...p}><path d="M5 12h14" /></Icon>;
const IconDots      = (p) => <Icon {...p}><circle cx="5" cy="12" r="1.5" /><circle cx="12" cy="12" r="1.5" /><circle cx="19" cy="12" r="1.5" /></Icon>;
const IconExternal  = (p) => <Icon {...p}><path d="M14 4h6v6M20 4l-9 9M19 13v6a1 1 0 01-1 1H5a1 1 0 01-1-1V6a1 1 0 011-1h6" /></Icon>;
const IconLink      = (p) => <Icon {...p}><path d="M10 14a4 4 0 010-6l3-3a4 4 0 016 6l-1 1M14 10a4 4 0 010 6l-3 3a4 4 0 01-6-6l1-1" /></Icon>;
const IconDiscord   = (p) => <Icon {...p} stroke={0}><path fill="currentColor" d="M19.6 5.6A16.4 16.4 0 0015.5 4l-.3.4a14 14 0 00-1.5-.1c-.5 0-1 0-1.5.1l-.3-.4a16.4 16.4 0 00-4.1 1.6C5 9.4 4.4 13 4.7 16.5a16.6 16.6 0 005 2.6l.6-.9a11 11 0 01-1.7-.8l.4-.3a11.7 11.7 0 0010 0l.4.3a11 11 0 01-1.7.8l.6.9a16.6 16.6 0 005-2.6c.4-3.6-.4-7.1-3-10.9zM10 14.5c-1 0-1.7-1-1.7-2 0-1.2.8-2.1 1.7-2.1 1 0 1.7 1 1.7 2.1 0 1.1-.8 2-1.7 2zm4 0c-1 0-1.7-1-1.7-2 0-1.2.8-2.1 1.7-2.1 1 0 1.7 1 1.7 2.1 0 1.1-.8 2-1.7 2z"/></Icon>;
const IconCog       = (p) => <Icon {...p}><circle cx="12" cy="12" r="3" /><path d="M19 12a7 7 0 00-.1-1.3l2-1.5-2-3.4-2.3.9a7 7 0 00-2.2-1.3L14 3h-4l-.4 2.4a7 7 0 00-2.2 1.3l-2.3-1-2 3.5 2 1.5a7 7 0 000 2.6l-2 1.5 2 3.4 2.3-.9a7 7 0 002.2 1.3L10 21h4l.4-2.4a7 7 0 002.2-1.3l2.3 1 2-3.5-2-1.5c.1-.4.1-.9.1-1.3z" /></Icon>;
const IconLogout    = (p) => <Icon {...p}><path d="M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4M16 17l5-5-5-5M21 12H9" /></Icon>;
const IconWarn      = (p) => <Icon {...p}><path d="M12 3l10 18H2L12 3z" /><path d="M12 10v5M12 18h.01" /></Icon>;
const IconInfo      = (p) => <Icon {...p}><circle cx="12" cy="12" r="9" /><path d="M12 11v5M12 7h.01" /></Icon>;
const IconLock      = (p) => <Icon {...p}><rect x="4" y="11" width="16" height="10" rx="2" /><path d="M8 11V7a4 4 0 018 0v4" /></Icon>;
const IconStar      = (p) => <Icon {...p}><path d="M12 3l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1 3-6z" /></Icon>;
const IconFire      = (p) => <Icon {...p}><path d="M12 22s7-4 7-10c0-3-2-4-2-4s.5 2-1.5 3c0 0 .5-3-2-5-1.5-1-3 0-3 0s1 1.5 0 3-3 2-3 5 0 4 2 5c-1.5 0-2-1-2-1s-1 1-1 3c0 1.5 1 5 5.5 5z" /></Icon>;
const IconDrag      = (p) => <Icon {...p}><circle cx="9" cy="6" r="1" /><circle cx="15" cy="6" r="1" /><circle cx="9" cy="12" r="1" /><circle cx="15" cy="12" r="1" /><circle cx="9" cy="18" r="1" /><circle cx="15" cy="18" r="1" /></Icon>;
const IconTrash     = (p) => <Icon {...p}><path d="M3 6h18M8 6V4a1 1 0 011-1h6a1 1 0 011 1v2M19 6l-1 14a2 2 0 01-2 2H8a2 2 0 01-2-2L5 6" /></Icon>;
const IconEdit      = (p) => <Icon {...p}><path d="M16 3l5 5L8 21H3v-5L16 3z" /></Icon>;
const IconCopy      = (p) => <Icon {...p}><rect x="9" y="9" width="12" height="12" rx="2" /><path d="M5 15H4a1 1 0 01-1-1V4a1 1 0 011-1h10a1 1 0 011 1v1" /></Icon>;
const IconArrowR    = (p) => <Icon {...p}><path d="M5 12h14M13 6l6 6-6 6" /></Icon>;
const IconGrad      = (p) => <Icon {...p}><path d="M2 9l10-5 10 5-10 5L2 9z" /><path d="M6 11v5a6 6 0 0012 0v-5" /></Icon>;

Object.assign(window, {
  Icon,
  IconHome, IconTrophy, IconCalendar, IconList, IconUsers, IconBuilding,
  IconSwords, IconBracket, IconShield, IconChat, IconSend, IconCheck, IconX,
  IconClock, IconBolt, IconBell, IconSearch, IconChevDown, IconChevRight, IconChevLeft,
  IconPlus, IconMinus, IconDots, IconExternal, IconLink, IconDiscord, IconCog,
  IconLogout, IconWarn, IconInfo, IconLock, IconStar, IconFire, IconDrag,
  IconTrash, IconEdit, IconCopy, IconArrowR, IconGrad,
});
