// Line icons — outline style, gold/navy strokes
// Each accepts { size, color, stroke }
const Icon = ({ children, size = 24, color = "currentColor", stroke = 1.5, ...rest }) => (
  <svg xmlns="http://www.w3.org/2000/svg" width={size} height={size} viewBox="0 0 24 24"
       fill="none" stroke={color} strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" {...rest}>
    {children}
  </svg>
);

const ClockIcon = (p) => (<Icon {...p}><circle cx="12" cy="12" r="9"/><polyline points="12,7 12,12 15.5,14"/></Icon>);
const PinIcon = (p) => (<Icon {...p}><path d="M12 21s-7-7.5-7-12a7 7 0 1 1 14 0c0 4.5-7 12-7 12z"/><circle cx="12" cy="9" r="2.5"/></Icon>);
const ChatIcon = (p) => (<Icon {...p}><path d="M21 12a8 8 0 0 1-11.6 7.1L4 20l1-4.5A8 8 0 1 1 21 12z"/></Icon>);
const PhoneIcon = (p) => (<Icon {...p}><path d="M21 16.5v3a1.5 1.5 0 0 1-1.6 1.5A18 18 0 0 1 3 5.6 1.5 1.5 0 0 1 4.5 4h3a1.5 1.5 0 0 1 1.5 1.3c.1.9.3 1.8.6 2.6.2.6.1 1.2-.3 1.6L7.9 11a16 16 0 0 0 5 5l1.5-1.4c.4-.4 1-.5 1.6-.3.8.3 1.7.5 2.6.6a1.5 1.5 0 0 1 1.4 1.6z"/></Icon>);
const MailIcon = (p) => (<Icon {...p}><rect x="3" y="5" width="18" height="14" rx="2"/><polyline points="3,7 12,13 21,7"/></Icon>);
const CalendarIcon = (p) => (<Icon {...p}><rect x="3" y="5" width="18" height="16" rx="2"/><line x1="3" y1="10" x2="21" y2="10"/><line x1="8" y1="3" x2="8" y2="7"/><line x1="16" y1="3" x2="16" y2="7"/></Icon>);

// Service icons
const FolderIcon = (p) => (<Icon {...p}><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"/></Icon>);
const PenIcon = (p) => (<Icon {...p}><path d="M16 3l5 5L8 21H3v-5L16 3z"/><line x1="14" y1="5" x2="19" y2="10"/></Icon>);
const InvoiceIcon = (p) => (<Icon {...p}><path d="M7 3h8l4 4v14H7V3z"/><polyline points="14,3 14,8 19,8"/><line x1="10" y1="13" x2="16" y2="13"/><line x1="10" y1="17" x2="14" y2="17"/></Icon>);
const TaskIcon = (p) => (<Icon {...p}><rect x="4" y="4" width="16" height="16" rx="2"/><polyline points="8,12 11,15 16,9"/></Icon>);
const HeadsetIcon = (p) => (<Icon {...p}><path d="M3 14v-2a9 9 0 0 1 18 0v2"/><path d="M21 14v3a3 3 0 0 1-3 3h-1v-6h4z"/><path d="M3 14v3a3 3 0 0 0 3 3h1v-6H3z"/></Icon>);
const SocialIcon = (p) => (<Icon {...p}><circle cx="6" cy="12" r="3"/><circle cx="18" cy="6" r="3"/><circle cx="18" cy="18" r="3"/><line x1="8.6" y1="10.6" x2="15.4" y2="7.4"/><line x1="8.6" y1="13.4" x2="15.4" y2="16.6"/></Icon>);

// Misc
const CheckIcon = (p) => (<Icon {...p}><polyline points="5,12 10,17 19,7"/></Icon>);
const ArrowIcon = (p) => (<Icon {...p}><line x1="5" y1="12" x2="19" y2="12"/><polyline points="13,6 19,12 13,18"/></Icon>);
const CloseIcon = (p) => (<Icon {...p}><line x1="6" y1="6" x2="18" y2="18"/><line x1="18" y1="6" x2="6" y2="18"/></Icon>);
const SparkleIcon = (p) => (<Icon {...p}><path d="M12 3l1.5 5.5L19 10l-5.5 1.5L12 17l-1.5-5.5L5 10l5.5-1.5L12 3z"/></Icon>);

Object.assign(window, {
  Icon,
  ClockIcon, PinIcon, ChatIcon, PhoneIcon, MailIcon, CalendarIcon,
  FolderIcon, PenIcon, InvoiceIcon, TaskIcon, HeadsetIcon, SocialIcon,
  CheckIcon, ArrowIcon, CloseIcon, SparkleIcon,
});
