// Shared icons (line, 1.5px, rounded) — original strokes
const Icon = ({ name, size = 18, className = '', style = {} }) => {
  const s = size;
  const common = { width: s, height: s, viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', strokeWidth: 1.6, strokeLinecap: 'round', strokeLinejoin: 'round', className, style };
  switch(name) {
    case 'sparkle': return <svg {...common}><path d="M12 4v4M12 16v4M4 12h4M16 12h4M7 7l2 2M15 15l2 2M17 7l-2 2M7 17l2-2"/></svg>;
    case 'plus': return <svg {...common}><path d="M12 5v14M5 12h14"/></svg>;
    case 'check': return <svg {...common}><path d="M5 12l4 4 10-10"/></svg>;
    case 'arrow-right': return <svg {...common}><path d="M5 12h14M13 6l6 6-6 6"/></svg>;
    case 'arrow-left': return <svg {...common}><path d="M19 12H5M11 6l-6 6 6 6"/></svg>;
    case 'search': return <svg {...common}><circle cx="11" cy="11" r="7"/><path d="M20 20l-3.5-3.5"/></svg>;
    case 'menu-book': return <svg {...common}><path d="M4 5c3 0 6 1 8 2 2-1 5-2 8-2v13c-3 0-6 1-8 2-2-1-5-2-8-2V5zM12 7v13"/></svg>;
    case 'register': return <svg {...common}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 9h18M7 13h4M7 16h6"/></svg>;
    case 'calendar': return <svg {...common}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 10h18M8 3v4M16 3v4"/></svg>;
    case 'chart': return <svg {...common}><path d="M4 20V9M10 20V4M16 20v-7M22 20H2"/></svg>;
    case 'qr': return <svg {...common}><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"/><path d="M14 14h3v3h-3zM20 14v3M14 20h3M20 20h1"/></svg>;
    case 'globe': return <svg {...common}><circle cx="12" cy="12" r="9"/><path d="M3 12h18M12 3c2.5 3 2.5 15 0 18M12 3c-2.5 3-2.5 15 0 18"/></svg>;
    case 'settings': return <svg {...common}><circle cx="12" cy="12" r="3"/><path d="M12 2v3M12 19v3M4.2 4.2l2.1 2.1M17.7 17.7l2.1 2.1M2 12h3M19 12h3M4.2 19.8l2.1-2.1M17.7 6.3l2.1-2.1"/></svg>;
    case 'bell': return <svg {...common}><path d="M6 8a6 6 0 1112 0c0 5 2 6 2 6H4s2-1 2-6zM10 20a2 2 0 004 0"/></svg>;
    case 'user': return <svg {...common}><circle cx="12" cy="8" r="4"/><path d="M4 21c1-4 4-6 8-6s7 2 8 6"/></svg>;
    case 'x': return <svg {...common}><path d="M6 6l12 12M18 6L6 18"/></svg>;
    case 'upload': return <svg {...common}><path d="M12 16V4M7 9l5-5 5 5M4 17v3h16v-3"/></svg>;
    case 'image': return <svg {...common}><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="2"/><path d="M3 17l5-5 4 4 3-3 6 6"/></svg>;
    case 'edit': return <svg {...common}><path d="M4 20h4L20 8l-4-4L4 16v4zM14 6l4 4"/></svg>;
    case 'tag': return <svg {...common}><path d="M3 12V3h9l9 9-9 9-9-9z"/><circle cx="8" cy="8" r="1.5"/></svg>;
    case 'mail': return <svg {...common}><rect x="3" y="5" width="18" height="14" rx="2"/><path d="M3 7l9 6 9-6"/></svg>;
    case 'download': return <svg {...common}><path d="M12 4v12M7 11l5 5 5-5M4 20h16"/></svg>;
    case 'trash': return <svg {...common}><path d="M4 7h16M10 7V4h4v3M6 7l1 13h10l1-13M10 11v6M14 11v6"/></svg>;
    case 'eye': return <svg {...common}><path d="M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7z"/><circle cx="12" cy="12" r="3"/></svg>;
    case 'moon': return <svg {...common}><path d="M20 14A8 8 0 1110 4a7 7 0 0010 10z"/></svg>;
    case 'sun': return <svg {...common}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.5 1.5M17.5 17.5L19 19M5 19l1.5-1.5M17.5 6.5L19 5"/></svg>;
    case 'chevron-down': return <svg {...common}><path d="M6 9l6 6 6-6"/></svg>;
    case 'chevron-right': return <svg {...common}><path d="M9 6l6 6-6 6"/></svg>;
    case 'grid': return <svg {...common}><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"/></svg>;
    case 'list': return <svg {...common}><path d="M4 6h16M4 12h16M4 18h16"/></svg>;
    case 'filter': return <svg {...common}><path d="M4 5h16l-6 8v6l-4-2v-4L4 5z"/></svg>;
    case 'receipt': return <svg {...common}><path d="M6 3h12v18l-3-2-3 2-3-2-3 2V3zM9 8h6M9 12h6M9 16h4"/></svg>;
    case 'coffee': return <svg {...common}><path d="M4 8h12v5a5 5 0 01-10 0V8zM16 10h2a2 2 0 010 4h-2M4 20h14"/></svg>;
    case 'home': return <svg {...common}><path d="M3 11l9-8 9 8v10a1 1 0 01-1 1h-5v-7h-6v7H4a1 1 0 01-1-1V11z"/></svg>;
    case 'star': return <svg {...common}><path d="M12 3l3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1z"/></svg>;
    case 'heart': return <svg {...common}><path d="M12 21s-7-4.5-9-9a5 5 0 019-3 5 5 0 019 3c-2 4.5-9 9-9 9z"/></svg>;
    case 'clock': return <svg {...common}><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></svg>;
    case 'location': return <svg {...common}><path d="M12 22s-7-7-7-12a7 7 0 0114 0c0 5-7 12-7 12z"/><circle cx="12" cy="10" r="2.5"/></svg>;
    case 'card': return <svg {...common}><rect x="3" y="6" width="18" height="12" rx="2"/><path d="M3 10h18M7 15h3"/></svg>;
    case 'table': return <svg {...common}><circle cx="12" cy="12" r="6"/><path d="M12 18v3M9 21h6"/></svg>;
    case 'more': return <svg {...common}><circle cx="6" cy="12" r="1"/><circle cx="12" cy="12" r="1"/><circle cx="18" cy="12" r="1"/></svg>;
    case 'play': return <svg {...common}><path d="M7 4v16l13-8z"/></svg>;
    case 'dollar': return <svg {...common}><path d="M12 3v18M17 7a4 4 0 00-8 1c0 2 2 3 5 4s5 2 5 4a4 4 0 01-8 1"/></svg>;
    case 'lightning': return <svg {...common}><path d="M13 3L4 14h7l-1 7 9-11h-7l1-7z"/></svg>;
    case 'book': return <svg {...common}><path d="M4 4h12a4 4 0 014 4v12H8a4 4 0 01-4-4V4zM4 16a4 4 0 014-4h12"/></svg>;
    case 'bag': return <svg {...common}><path d="M5 8h14l-1 12H6L5 8zM9 8V6a3 3 0 016 0v2"/></svg>;
    case 'bolt': return <svg {...common}><path d="M13 2L4 14h6l-1 8 10-12h-7l1-8z"/></svg>;
    case 'layers': return <svg {...common}><path d="M12 3l9 5-9 5-9-5 9-5zM3 13l9 5 9-5M3 18l9 5 9-5"/></svg>;
    case 'external': return <svg {...common}><path d="M14 4h6v6M10 14L20 4M18 14v5a1 1 0 01-1 1H5a1 1 0 01-1-1V7a1 1 0 011-1h5"/></svg>;
    case 'printer': return <svg {...common}><path d="M7 9V3h10v6M5 9h14a2 2 0 012 2v6h-4v4H7v-4H3v-6a2 2 0 012-2z"/></svg>;
    case 'phone': return <svg {...common}><path d="M5 4h4l2 5-3 2a11 11 0 005 5l2-3 5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z"/></svg>;
    case 'users': return <svg {...common}><circle cx="9" cy="8" r="3.5"/><path d="M3 20c1-3 3-5 6-5s5 2 6 5M16 10a3 3 0 100-6M17 20c1-3 2-4 4-4"/></svg>;
    case 'kitchen': return <svg {...common}><rect x="4" y="4" width="16" height="4" rx="1"/><rect x="4" y="10" width="16" height="10" rx="1"/><path d="M8 14h8M8 17h5"/></svg>;
    case 'stop': return <svg {...common}><rect x="6" y="6" width="12" height="12" rx="1"/></svg>;
    default: return null;
  }
};

window.Icon = Icon;
