(()=>{
// === Icon components — minimal stroke icons ===
const Icon = ({ name, size=18, className="", strokeWidth=1.6 }) => {
  const s = size, sw = strokeWidth;
  const props = { width:s, height:s, viewBox:"0 0 24 24", fill:"none", stroke:"currentColor", strokeWidth:sw, strokeLinecap:"round", strokeLinejoin:"round", className };
  switch(name) {
    case "home":    return <svg {...props}><path d="M3 11l9-7 9 7"/><path d="M5 10v10h14V10"/><path d="M10 20v-5h4v5"/></svg>;
    case "camera":  return <svg {...props}><path d="M3 8h4l2-3h6l2 3h4v11H3z"/><circle cx="12" cy="13" r="3.5"/></svg>;
    case "gauge":   return <svg {...props}><path d="M3 13a9 9 0 1 1 18 0"/><path d="M12 13l4-5"/><circle cx="12" cy="13" r="1"/></svg>;
    case "pulse":   return <svg {...props}><path d="M3 12h4l2-6 4 12 2-6h6"/></svg>;
    case "droplet": return <svg {...props}><path d="M12 3s-6 7-6 11a6 6 0 0 0 12 0c0-4-6-11-6-11z"/></svg>;
    case "kidney":  return <svg {...props}><path d="M8 4c-3 0-5 3-5 8s2 8 5 8c2 0 3-1 4-1s2 1 4 1c3 0 5-3 5-8s-2-8-5-8c-2 0-3 1-4 1s-2-1-4-1z"/></svg>;
    case "leaf":    return <svg {...props}><path d="M5 19c0-8 6-14 14-14 0 8-6 14-14 14z"/><path d="M5 19l9-9"/></svg>;
    case "history": return <svg {...props}><path d="M3 12a9 9 0 1 0 3-6.7"/><path d="M3 4v4h4"/><path d="M12 7v5l3 2"/></svg>;
    case "user":    return <svg {...props}><circle cx="12" cy="8" r="4"/><path d="M4 20c1-4 5-6 8-6s7 2 8 6"/></svg>;
    case "settings":return <svg {...props}><circle cx="12" cy="12" r="3"/><path d="M19 12a7 7 0 0 0-.1-1.3l2-1.5-2-3.4-2.3.9a7 7 0 0 0-2.2-1.3L14 3h-4l-.4 2.4a7 7 0 0 0-2.2 1.3l-2.3-.9-2 3.4 2 1.5A7 7 0 0 0 5 12c0 .5 0 .9.1 1.3l-2 1.5 2 3.4 2.3-.9a7 7 0 0 0 2.2 1.3L10 21h4l.4-2.4a7 7 0 0 0 2.2-1.3l2.3.9 2-3.4-2-1.5c.1-.4.1-.8.1-1.3z"/></svg>;
    case "menu":    return <svg {...props}><path d="M4 7h16M4 12h16M4 17h16"/></svg>;
    case "chevron-right": return <svg {...props}><path d="M9 6l6 6-6 6"/></svg>;
    case "chevron-left":  return <svg {...props}><path d="M15 6l-6 6 6 6"/></svg>;
    case "chevron-down":  return <svg {...props}><path d="M6 9l6 6 6-6"/></svg>;
    case "arrow-right":   return <svg {...props}><path d="M5 12h14m-6-6 6 6-6 6"/></svg>;
    case "check":   return <svg {...props}><path d="M4 12l5 5L20 6"/></svg>;
    case "x":       return <svg {...props}><path d="M5 5l14 14M19 5L5 19"/></svg>;
    case "info":    return <svg {...props}><circle cx="12" cy="12" r="9"/><path d="M12 8h.01M11 12h1v5h1"/></svg>;
    case "warn":    return <svg {...props}><path d="M12 3l10 17H2z"/><path d="M12 10v5M12 18h.01"/></svg>;
    case "spark":   return <svg {...props}><path d="M12 3v4M12 17v4M3 12h4M17 12h4M5.6 5.6l2.8 2.8M15.6 15.6l2.8 2.8M5.6 18.4l2.8-2.8M15.6 8.4l2.8-2.8"/></svg>;
    case "layers":  return <svg {...props}><path d="M12 3l9 5-9 5-9-5 9-5z"/><path d="M3 13l9 5 9-5"/><path d="M3 18l9 5 9-5"/></svg>;
    case "code":    return <svg {...props}><path d="M8 7l-5 5 5 5M16 7l5 5-5 5M14 4l-4 16"/></svg>;
    case "cpu":     return <svg {...props}><rect x="4" y="4" width="16" height="16" rx="2"/><rect x="9" y="9" width="6" height="6"/><path d="M9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3"/></svg>;
    case "target":  return <svg {...props}><circle cx="12" cy="12" r="9"/><circle cx="12" cy="12" r="5"/><circle cx="12" cy="12" r="1"/></svg>;
    case "sun":     return <svg {...props}><circle cx="12" cy="12" r="4"/><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6l1.4 1.4M17 17l1.4 1.4M5.6 18.4l1.4-1.4M17 7l1.4-1.4"/></svg>;
    case "play":    return <svg {...props}><path d="M6 4l14 8-14 8z"/></svg>;
    case "pause":   return <svg {...props}><rect x="6" y="4" width="4" height="16"/><rect x="14" y="4" width="4" height="16"/></svg>;
    case "refresh": return <svg {...props}><path d="M3 12a9 9 0 0 1 15-6.7L21 8"/><path d="M21 3v5h-5"/><path d="M21 12a9 9 0 0 1-15 6.7L3 16"/><path d="M3 21v-5h5"/></svg>;
    case "calendar":return <svg {...props}><rect x="3" y="5" width="18" height="16" rx="2"/><path d="M3 9h18M8 3v4M16 3v4"/></svg>;
    case "trending-up":   return <svg {...props}><path d="M3 17l6-6 4 4 8-8"/><path d="M14 7h7v7"/></svg>;
    case "trending-down": return <svg {...props}><path d="M3 7l6 6 4-4 8 8"/><path d="M14 17h7v-7"/></svg>;
    case "lightbulb":return <svg {...props}><path d="M9 18h6"/><path d="M10 21h4"/><path d="M12 3a6 6 0 0 0-4 10c1 1 1 2 1 3h6c0-1 0-2 1-3a6 6 0 0 0-4-10z"/></svg>;
    case "tooth":   return <svg {...props}><path d="M7 3c-2 0-4 2-4 5 0 2 1 3 2 4l1 8c0 1 1 2 2 2s2-1 2-3v-3c0-1 0-2 2-2s2 1 2 2v3c0 2 1 3 2 3s2-1 2-2l1-8c1-1 2-2 2-4 0-3-2-5-4-5-1 0-2 1-3 1s-2-1-3-1z"/></svg>;
    case "walk":    return <svg {...props}><circle cx="13" cy="4" r="2"/><path d="M9 22l3-8 3 3v5"/><path d="M9 14l-2-4 4-2 4 3 2 1"/></svg>;
    case "bowl":    return <svg {...props}><path d="M3 11h18l-1 5a3 3 0 0 1-3 2H7a3 3 0 0 1-3-2z"/><path d="M8 11c0-3 4-5 4-7M16 11c-1-2-2-3-3-4"/></svg>;
    case "hospital":return <svg {...props}><rect x="4" y="6" width="16" height="15"/><path d="M12 10v6M9 13h6"/><path d="M9 6V3h6v3"/></svg>;
    case "atom":    return <svg {...props}><circle cx="12" cy="12" r="2"/><ellipse cx="12" cy="12" rx="10" ry="4"/><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(60 12 12)"/><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(120 12 12)"/></svg>;
    case "filter":  return <svg {...props}><path d="M3 4h18l-7 9v5l-4 2v-7z"/></svg>;
    case "shield":  return <svg {...props}><path d="M12 3l8 3v6c0 5-4 8-8 9-4-1-8-4-8-9V6z"/></svg>;
    case "phone":   return <svg {...props}><rect x="6" y="2" width="12" height="20" rx="2"/><path d="M11 19h2"/></svg>;
    case "logo":    return (
      <svg width={size} height={size} viewBox="0 0 32 32" fill="none">
        <circle cx="16" cy="16" r="14" stroke="#1462AB" strokeWidth="1.5"/>
        <path d="M10 18c2 2 4 3 6 3s4-1 6-3" stroke="#1462AB" strokeWidth="1.5" strokeLinecap="round"/>
        <circle cx="11.5" cy="13" r="1.2" fill="#13A37D"/>
        <circle cx="20.5" cy="13" r="1.2" fill="#13A37D"/>
        <path d="M16 8v4" stroke="#C9342B" strokeWidth="1.5" strokeLinecap="round"/>
      </svg>
    );
    default: return <svg {...props}><circle cx="12" cy="12" r="9"/></svg>;
  }
};

window.Icon = Icon;

})();
