/* ============================================================
   NeuroRoute — Icons + Logo mark
   Lucide-style 24x24 stroke icons. <Icon name="..." />
   ============================================================ */
const ICON_PATHS = {
  dashboard:'M3 13h8V3H3zM13 21h8V3h-8zM3 21h8v-6H3z',
  analytics:'M3 3v18h18 M7 14l3-3 3 2 5-6',
  billing:'M2 7h20v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1zM2 7l1.6-3.2A1 1 0 0 1 4.5 3h15a1 1 0 0 1 .9.6L22 7 M6 16h4',
  card:'M2 7h20v12a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1zM2 11h20 M6 16h4',
  key:'M14 7a4 4 0 1 1-3.8 5.2L4 18.4 2 16.4l1.5-1.5-1-1 1.4-1.4 1 1L8.8 11A4 4 0 0 1 14 7zM15.5 9.5h.01',
  apikey:'M21 2l-2 2m-7.6 7.6a5 5 0 1 0-1.4 1.4l2.6-2.6 2 2 2-2 1.5 1.5 2-2-2-2',
  code:'M8 6l-6 6 6 6 M16 6l6 6-6 6',
  estimator:'M4 3h16a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zM8 7h8M8 12h2M8 16h2M14 12h2v4h-2z',
  route:'M6 3v12 M6 21a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM18 9a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM18 9c0 6-12 4-12 9',
  playground:'M21 11.5a8.4 8.4 0 0 1-9 8.4l-5 1 1.3-3.9A8.4 8.4 0 1 1 21 11.5zM8 11h.01M12 11h.01M16 11h.01',
  team:'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2 M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM22 21v-2a4 4 0 0 0-3-3.9 M16 3.1a4 4 0 0 1 0 7.8',
  settings:'M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM19.4 15a1.6 1.6 0 0 0 .3 1.8l.1.1a2 2 0 1 1-2.8 2.8l-.1-.1a1.6 1.6 0 0 0-2.7 1.1V21a2 2 0 0 1-4 0v-.1A1.6 1.6 0 0 0 7 19.4a1.6 1.6 0 0 0-1.8.3l-.1.1a2 2 0 1 1-2.8-2.8l.1-.1a1.6 1.6 0 0 0-1.1-2.7H1a2 2 0 0 1 0-4h.1A1.6 1.6 0 0 0 2.6 7a1.6 1.6 0 0 0-.3-1.8l-.1-.1a2 2 0 1 1 2.8-2.8l.1.1a1.6 1.6 0 0 0 1.8.3H7a1.6 1.6 0 0 0 1-1.5V1a2 2 0 0 1 4 0v.1a1.6 1.6 0 0 0 1 1.5 1.6 1.6 0 0 0 1.8-.3l.1-.1a2 2 0 1 1 2.8 2.8l-.1.1a1.6 1.6 0 0 0-.3 1.8V7a1.6 1.6 0 0 0 1.5 1H23a2 2 0 0 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z',
  customers:'M3 21h18 M5 21V7l8-4v18 M19 21V11l-6-3 M9 9v.01M9 12v.01M9 15v.01M9 18v.01',
  onboard:'M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2 M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM19 8v6M22 11h-6',
  provider:'M5 3h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1zM5 15h14a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-4a1 1 0 0 1 1-1zM8 6h.01M8 18h.01',
  pricing:'M20 12V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v6 M2 12h20 M7 16h.01M11 16h6',
  health:'M22 12h-4l-3 9L9 3l-3 9H2',
  audit:'M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6 M9 13h6M9 17h4',
  modelpref:'M12 2v4M12 18v4M4.9 4.9l2.8 2.8M16.3 16.3l2.8 2.8M2 12h4M18 12h4M4.9 19.1l2.8-2.8M16.3 7.7l2.8-2.8M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8z',
  search:'M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16zM21 21l-4.3-4.3',
  bell:'M18 8a6 6 0 0 0-12 0c0 7-3 9-3 9h18s-3-2-3-9 M13.7 21a2 2 0 0 1-3.4 0',
  logout:'M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4 M16 17l5-5-5-5 M21 12H9',
  chevron:'M9 18l6-6-6-6',
  chevdown:'M6 9l6 6 6-6',
  check:'M20 6L9 17l-5-5',
  checkcircle:'M22 11.1V12a10 10 0 1 1-5.9-9.1 M22 4L12 14.1l-3-3',
  copy:'M9 9h11a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V10a1 1 0 0 1 1-1zM5 15H4a1 1 0 0 1-1-1V3a1 1 0 0 1 1-1h11a1 1 0 0 1 1 1v1',
  x:'M18 6L6 18M6 6l12 12',
  plus:'M12 5v14M5 12h14',
  arrowright:'M5 12h14M13 6l6 6-6 6',
  arrowup:'M12 19V5M5 12l7-7 7 7',
  arrowdown:'M12 5v14M19 12l-7 7-7-7',
  zap:'M13 2L3 14h9l-1 8 10-12h-9z',
  shield:'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
  lock:'M5 11h14a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1zM8 11V7a4 4 0 0 1 8 0v4',
  sparkles:'M12 3l1.9 5.1L19 10l-5.1 1.9L12 17l-1.9-5.1L5 10l5.1-1.9zM19 15l.9 2.1L22 18l-2.1.9L19 21l-.9-2.1L16 18l2.1-.9z',
  trendup:'M22 7l-8.5 8.5-4-4L2 19 M16 7h6v6',
  trenddown:'M22 17l-8.5-8.5-4 4L2 5 M16 17h6v-6',
  dollar:'M12 1v22M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6',
  cpu:'M5 5h14a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1zM9 9h6v6H9zM9 1v3M15 1v3M9 20v3M15 20v3M1 9h3M1 15h3M20 9h3M20 15h3',
  globe:'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM2 12h20 M12 2a15 15 0 0 1 0 20 15 15 0 0 1 0-20z',
  clock:'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 6v6l4 2',
  filter:'M22 3H2l8 9.5V19l4 2v-8.5z',
  download:'M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4 M7 10l5 5 5-5 M12 15V3',
  menu:'M3 12h18M3 6h18M3 18h18',
  refresh:'M21 2v6h-6 M3 12a9 9 0 0 1 15-6.7L21 8 M3 22v-6h6 M21 12a9 9 0 0 1-15 6.7L3 16',
  trash:'M3 6h18 M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2m2 0v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6',
  alert:'M12 9v4M12 17h.01M10.3 3.9 1.8 18a2 2 0 0 0 1.7 3h17a2 2 0 0 0 1.7-3L13.7 3.9a2 2 0 0 0-3.4 0z',
  info:'M12 22a10 10 0 1 0 0-20 10 10 0 0 0 0 20zM12 16v-4M12 8h.01',
  thumbup:'M7 10v11H3V10zM7 10l4-7a2 2 0 0 1 2 2v3h6a2 2 0 0 1 2 2.3l-1.3 7A2 2 0 0 1 17.7 21H7',
  thumbdown:'M17 14V3h4v11zM17 14l-4 7a2 2 0 0 1-2-2v-3H5a2 2 0 0 1-2-2.3l1.3-7A2 2 0 0 1 6.3 3H17',
  send:'M22 2 11 13M22 2l-7 20-4-9-9-4z',
  doc:'M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8zM14 2v6h6',
  book:'M4 19.5A2.5 2.5 0 0 1 6.5 17H20 M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z',
  link:'M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1.5 1.5 M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1.5-1.5',
  google:'GOOGLE',
  star:'M12 2l3 7h7l-5.5 4.5L18 21l-6-4-6 4 1.5-7.5L2 9h7z',
  layers:'M12 2 2 7l10 5 10-5zM2 17l10 5 10-5M2 12l10 5 10-5',
  eye:'M2 12s4-7 10-7 10 7 10 7-4 7-10 7-10-7-10-7zM12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6z',
};

function Icon({name, size=18, className='', style={}, strokeWidth=2}){
  if(name==='google'){
    return (
      <svg width={size} height={size} viewBox="0 0 24 24" className={className} style={style}>
        <path fill="#4285F4" d="M22.5 12.2c0-.8-.1-1.5-.2-2.2H12v4.3h5.9a5 5 0 0 1-2.2 3.3v2.8h3.6c2.1-2 3.2-4.9 3.2-8.2z"/>
        <path fill="#34A853" d="M12 23c2.9 0 5.4-1 7.2-2.6l-3.6-2.8c-1 .7-2.3 1.1-3.6 1.1-2.8 0-5.2-1.9-6-4.5H2.3v2.9A11 11 0 0 0 12 23z"/>
        <path fill="#FBBC05" d="M6 14.2a6.6 6.6 0 0 1 0-4.2V7.1H2.3a11 11 0 0 0 0 9.9z"/>
        <path fill="#EA4335" d="M12 5.4c1.6 0 3 .5 4.1 1.6l3.1-3.1A11 11 0 0 0 12 1a11 11 0 0 0-9.7 6l3.7 2.9C6.8 7.3 9.2 5.4 12 5.4z"/>
      </svg>
    );
  }
  const d = ICON_PATHS[name] || ICON_PATHS.info;
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor"
      strokeWidth={strokeWidth} strokeLinecap="round" strokeLinejoin="round"
      className={className} style={style} aria-hidden="true">
      {d.split('M').filter(Boolean).map((seg,i)=><path key={i} d={'M'+seg}/>)}
    </svg>
  );
}

/* Logo mark — uses the actual NeuroRoute PNG logo image.
   Renders at the specified size with border-radius for a polished look. */
function LogoMark({size=40}){
  return (
    <img
      src="/static/favicon.png"
      alt="NeuroRoute"
      width={size}
      height={size}
      style={{borderRadius: size > 36 ? 10 : 8, objectFit:'contain'}}
    />
  );
}

Object.assign(window, { Icon, LogoMark });
