// Tiny inline icon set (Lucide-equivalents). Kept local to avoid a dep.

function Icon({ name, size = 18, stroke = 'currentColor', strokeWidth = 1.75 }) {
  const { React } = window;
  const common = {
    width: size, height: size, viewBox: '0 0 24 24',
    fill: 'none', stroke, strokeWidth, strokeLinecap: 'round', strokeLinejoin: 'round',
  };
  switch (name) {
    case 'FileCode': return (
      <svg {...common}>
        <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"/>
        <path d="M14 2v5h5"/>
        <path d="m10 13-2 2 2 2"/>
        <path d="m14 13 2 2-2 2"/>
      </svg>
    );
    case 'Radar': return (
      <svg {...common}>
        <circle cx="12" cy="12" r="9"/>
        <circle cx="12" cy="12" r="5"/>
        <circle cx="12" cy="12" r="1.5" fill={stroke}/>
        <path d="M12 3v4"/>
        <path d="m12 12 7-3"/>
      </svg>
    );
    case 'Lock': return (
      <svg {...common}>
        <rect x="4" y="11" width="16" height="10" rx="2"/>
        <path d="M8 11V7a4 4 0 0 1 8 0v4"/>
      </svg>
    );
    case 'Microscope': return (
      <svg {...common}>
        <path d="M6 18h8"/>
        <path d="M3 22h18"/>
        <path d="M14 22a7 7 0 1 0 0-14h-1"/>
        <path d="M9 14h2"/>
        <path d="M8 3h4l1 3h-6z"/>
        <path d="M9 10V6"/>
        <path d="M11 10V6"/>
      </svg>
    );
    case 'Zap': return (
      <svg {...common}>
        <path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z" fill={stroke} fillOpacity="0.15"/>
      </svg>
    );
    case 'FileText': return (
      <svg {...common}>
        <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7z"/>
        <path d="M14 2v5h5"/>
        <path d="M8 13h8"/><path d="M8 17h6"/>
      </svg>
    );
    case 'Users': return (
      <svg {...common}>
        <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/>
        <circle cx="9" cy="7" r="4"/>
        <path d="M22 21v-2a4 4 0 0 0-3-3.87"/>
        <path d="M16 3.13a4 4 0 0 1 0 7.75"/>
      </svg>
    );
    case 'Shield': return (
      <svg {...common}>
        <path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/>
      </svg>
    );
    case 'Key': return (
      <svg {...common}>
        <circle cx="7.5" cy="15.5" r="4.5"/>
        <path d="M21 2l-10 10"/>
        <path d="M15.5 7.5l3 3"/>
        <path d="M18 5l3 3"/>
      </svg>
    );
    case 'CreditCard': return (
      <svg {...common}>
        <rect x="2" y="5" width="20" height="14" rx="2"/>
        <path d="M2 10h20"/>
      </svg>
    );
    case 'Database': return (
      <svg {...common}>
        <ellipse cx="12" cy="5" rx="8" ry="3"/>
        <path d="M4 5v6c0 1.7 3.6 3 8 3s8-1.3 8-3V5"/>
        <path d="M4 11v6c0 1.7 3.6 3 8 3s8-1.3 8-3v-6"/>
      </svg>
    );
    case 'Cloud': return (
      <svg {...common}>
        <path d="M17.5 19a4.5 4.5 0 1 0-.9-8.91A6 6 0 0 0 5 13a4 4 0 0 0 .5 7.97"/>
      </svg>
    );
    case 'ExternalLink': return (
      <svg {...common}>
        <path d="M15 3h6v6"/>
        <path d="M10 14 21 3"/>
        <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/>
      </svg>
    );
    default: return null;
  }
}
window.Icon = Icon;
