// ── Minimal line icons (stroke = currentColor) ────────────────
function Icon({ name, size = 22, sw = 1.6, fill = false, style }) {
  const p = {
    width: size, height: size, viewBox: '0 0 24 24', fill: 'none',
    stroke: 'currentColor', strokeWidth: sw, strokeLinecap: 'round',
    strokeLinejoin: 'round', style,
  };
  switch (name) {
    case 'home': return (<svg {...p}><path d="M4 10.5 12 4l8 6.5"/><path d="M5.5 9.5V20h13V9.5"/><path d="M10 20v-5h4v5"/></svg>);
    case 'chat': return (<svg {...p}><path d="M4 5.5h16v11H9l-4 3.5v-3.5H4z"/><path d="M8 10h8M8 13h5"/></svg>);
    case 'users': return (<svg {...p}><circle cx="9" cy="8" r="3"/><path d="M3.5 19c.6-3 2.9-4.5 5.5-4.5S14 16 14.5 19"/><path d="M16 5.5a3 3 0 0 1 0 5.4M17.5 14.6c2 .6 3.3 2 3.7 4.4"/></svg>);
    case 'more': return (<svg {...p}><path d="M4 7h16M4 12h16M4 17h10"/></svg>);
    case 'grid': return (<svg {...p}><rect x="4" y="4" width="7" height="7" rx="1.5"/><rect x="13" y="4" width="7" height="7" rx="1.5"/><rect x="4" y="13" width="7" height="7" rx="1.5"/><rect x="13" y="13" width="7" height="7" rx="1.5"/></svg>);
    case 'search': return (<svg {...p}><circle cx="11" cy="11" r="6.5"/><path d="m20 20-3.6-3.6"/></svg>);
    case 'bell': return (<svg {...p}><path d="M6.5 10a5.5 5.5 0 0 1 11 0c0 4 1.5 5.5 1.5 5.5H5s1.5-1.5 1.5-5.5Z"/><path d="M10 18.5a2 2 0 0 0 4 0"/></svg>);
    case 'chevron-left': return (<svg {...p}><path d="M15 5l-7 7 7 7"/></svg>);
    case 'chevron-right': return (<svg {...p}><path d="M9 5l7 7-7 7"/></svg>);
    case 'chevron-down': return (<svg {...p}><path d="M5 9l7 7 7-7"/></svg>);
    case 'plus': return (<svg {...p}><path d="M12 5v14M5 12h14"/></svg>);
    case 'send': return (<svg {...p}><path d="M20 4 3.5 11.5 11 13l2 7L20 4Z"/></svg>);
    case 'filter': return (<svg {...p}><path d="M4 6h16M7 12h10M10 18h4"/></svg>);
    case 'check': return (<svg {...p}><path d="M5 12.5 10 17l9-10"/></svg>);
    case 'check-double': return (<svg {...p}><path d="M3 12.5 7.5 17l8-10"/><path d="M12 16l1 1 8-10"/></svg>);
    case 'clock': return (<svg {...p}><circle cx="12" cy="12" r="8"/><path d="M12 8v4.5l3 2"/></svg>);
    case 'arrow-up': return (<svg {...p}><path d="M12 19V6M6 11l6-6 6 6"/></svg>);
    case 'arrow-down': return (<svg {...p}><path d="M12 5v13M6 12l6 6 6-6"/></svg>);
    case 'arrow-up-right': return (<svg {...p}><path d="M7 17 17 7M8 7h9v9"/></svg>);
    case 'tag': return (<svg {...p}><path d="M4 11.5V5h6.5L20 14.5 13.5 21 4 11.5Z"/><circle cx="8" cy="9" r="1.3" fill="currentColor" stroke="none"/></svg>);
    case 'note': return (<svg {...p}><path d="M5 4h14v16H5z"/><path d="M8 9h8M8 13h8M8 17h4"/></svg>);
    case 'sun': return (<svg {...p}><circle cx="12" cy="12" r="4"/><path d="M12 2v2M12 20v2M4 12H2M22 12h-2M5 5l1.5 1.5M17.5 17.5 19 19M19 5l-1.5 1.5M6.5 17.5 5 19"/></svg>);
    case 'moon': return (<svg {...p}><path d="M20 13.5A8 8 0 1 1 10.5 4a6.3 6.3 0 0 0 9.5 9.5Z"/></svg>);
    case 'info': return (<svg {...p}><circle cx="12" cy="12" r="8.5"/><path d="M12 11v5"/><circle cx="12" cy="8" r="0.6" fill="currentColor" stroke="none"/></svg>);
    case 'phone': return (<svg {...p}><path d="M6 4h3l1.5 4.5L8 10.5a11 11 0 0 0 5.5 5.5l2-2.5 4.5 1.5V18a2 2 0 0 1-2 2A14 14 0 0 1 4 6a2 2 0 0 1 2-2Z"/></svg>);
    case 'sliders': return (<svg {...p}><path d="M4 8h10M18 8h2M4 16h2M10 16h10"/><circle cx="16" cy="8" r="2"/><circle cx="8" cy="16" r="2"/></svg>);
    case 'ticket': return (<svg {...p}><path d="M4 7h16v3a2 2 0 0 0 0 4v3H4v-3a2 2 0 0 0 0-4z"/><path d="M14 7v10" strokeDasharray="2 2"/></svg>);
    case 'funnel': return (<svg {...p}><path d="M4 5h16l-6 7v6l-4 2v-8L4 5Z"/></svg>);
    case 'star': return (<svg {...p} fill={fill ? 'currentColor' : 'none'}><path d="m12 4 2.4 5 5.4.7-4 3.7 1 5.4-4.8-2.7L7.2 21.5l1-5.4-4-3.7 5.4-.7L12 4Z"/></svg>);
    case 'dot': return (<svg {...p} fill="currentColor" stroke="none"><circle cx="12" cy="12" r="5"/></svg>);
    case 'bolt': return (<svg {...p}><path d="M13 3 5 13h6l-1 8 8-10h-6l1-8Z"/></svg>);
    case 'logout': return (<svg {...p}><path d="M14 4h4v16h-4"/><path d="M10 12H3m0 0 3-3m-3 3 3 3"/></svg>);
    case 'building': return (<svg {...p}><path d="M5 21V5l8-2v18M13 21V9l6 2v10"/><path d="M8 8h1M8 12h1M8 16h1M16 13h0M16 17h0"/></svg>);
    case 'shield': return (<svg {...p}><path d="M12 3 5 6v5c0 4.5 3 8 7 10 4-2 7-5.5 7-10V6l-7-3Z"/><path d="m9 12 2 2 4-4"/></svg>);
    case 'robot': return (<svg {...p}><rect x="5" y="8" width="14" height="10" rx="3"/><path d="M12 4v4M9 13h0M15 13h0"/><circle cx="9" cy="13" r="0.3" fill="currentColor"/><circle cx="15" cy="13" r="0.3" fill="currentColor"/><path d="M3 12v3M21 12v3"/></svg>);
    default: return null;
  }
}
window.Icon = Icon;
