/* SVG icon sprite + <Icon name="…"/> component
   Style: SF-Symbols/Phosphor — stroke 1.5, rounded, currentColor */

const IconSprite = () => (
  <svg xmlns="http://www.w3.org/2000/svg" style={{position:'absolute', width:0, height:0}} aria-hidden="true">
    <defs>
      {/* === Navigation === */}
      <symbol id="i-dashboard" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="3" width="7" height="7" rx="2"/><rect x="14" y="3" width="7" height="7" rx="2"/>
        <rect x="3" y="14" width="7" height="7" rx="2"/><rect x="14" y="14" width="7" height="7" rx="2"/>
      </symbol>
      <symbol id="i-sparkles" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 4l1.6 4.4L18 10l-4.4 1.6L12 16l-1.6-4.4L6 10l4.4-1.6z"/>
        <path d="M18 16l.7 1.9 1.9.6-1.9.7L18 21l-.7-1.8-1.9-.7 1.9-.6z"/>
        <path d="M5 17l.5 1.3L7 18.8l-1.5.5L5 21l-.5-1.7L3 18.8l1.5-.5z"/>
      </symbol>
      <symbol id="i-app-grid" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="3" width="7" height="7" rx="1.5"/><rect x="14" y="3" width="7" height="7" rx="1.5"/>
        <rect x="3" y="14" width="7" height="7" rx="1.5"/><rect x="14" y="14" width="7" height="7" rx="1.5"/>
      </symbol>
      <symbol id="i-file-question" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/>
        <path d="M14 3v5h5"/><path d="M10 13a2 2 0 0 1 4 .2c0 .9-.6 1.3-1.2 1.6-.5.3-.8.6-.8 1.2"/>
        <circle cx="12" cy="18" r="0.5" fill="currentColor"/>
      </symbol>
      <symbol id="i-gear" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M19.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-1.8-.3 1.6 1.6 0 0 0-1 1.5V21a2 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.8 1.6 1.6 0 0 0-1.5-1H3a2 2 0 0 1 0-4h.1a1.6 1.6 0 0 0 1.5-1 1.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.3h.1a1.6 1.6 0 0 0 1-1.5V3a2 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.8v.1a1.6 1.6 0 0 0 1.5 1H21a2 2 0 0 1 0 4h-.1a1.6 1.6 0 0 0-1.5 1z"/>
        <circle cx="12" cy="12" r="3"/>
      </symbol>
      <symbol id="i-database" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <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"/>
      </symbol>
      <symbol id="i-hammer" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M15 12l-8.5 8.5a2.1 2.1 0 1 1-3-3L12 9"/>
        <path d="M17.6 6.5L21 9.9 18.1 12.8 14.7 9.4z"/>
        <path d="M9 11L13 7l1.5 1.5 4-4L21 7l-4 4 1.5 1.5L14.5 16.5"/>
      </symbol>
      <symbol id="i-mug" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M5 8h12v8a4 4 0 0 1-4 4H9a4 4 0 0 1-4-4z"/>
        <path d="M17 10h2a2.5 2.5 0 0 1 0 5h-2"/>
        <path d="M8 3v3M11 3v3M14 3v3"/>
      </symbol>
      <symbol id="i-envelope" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="5" width="18" height="14" rx="2"/>
        <path d="M3 7l9 6 9-6"/>
      </symbol>
      <symbol id="i-trash" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M4 7h16"/><path d="M10 11v6M14 11v6"/>
        <path d="M5 7l1 12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2l1-12"/>
        <path d="M9 7V5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2v2"/>
      </symbol>
      <symbol id="i-document-large" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M14 3H7a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8z"/>
        <path d="M14 3v5h5"/><path d="M8 13h8M8 16h8M8 10h3"/>
      </symbol>
      <symbol id="i-recycle" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 4l2 3h-4z"/><path d="M12 6l5 9h-3"/>
        <path d="M7 11l-3 5 3 1"/><path d="M17 15l3-1-1-3"/>
        <path d="M4 16l3 5h6"/>
      </symbol>
      <symbol id="i-copy" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="9" y="9" width="11" height="11" rx="2"/>
        <path d="M5 15V5a2 2 0 0 1 2-2h10"/>
      </symbol>
      <symbol id="i-grid-3x3" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="3" width="18" height="18" rx="2"/>
        <path d="M9 3v18M15 3v18M3 9h18M3 15h18"/>
      </symbol>
      <symbol id="i-arrow-up-square" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="3" width="18" height="18" rx="3"/>
        <path d="M12 16V8M8 12l4-4 4 4"/>
      </symbol>
      <symbol id="i-wrench" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M14.7 6.3a4 4 0 0 0-5 5L3.3 17.7a1.8 1.8 0 1 0 2.6 2.6L12.3 14a4 4 0 0 0 5-5l-2.4 2.4-1.8-1.8z"/>
      </symbol>
      <symbol id="i-power" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 4v8"/><path d="M16.2 6.8a7 7 0 1 1-8.4 0"/>
      </symbol>

      {/* === Feature icons (Landing) === */}
      <symbol id="i-brain-circuit" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 5a3 3 0 0 0-3 3v.5A2.5 2.5 0 0 0 7 11v1a2.5 2.5 0 0 0 1 2v.5A2.5 2.5 0 0 0 10.5 17H12V5z"/>
        <path d="M12 5a3 3 0 0 1 3 3v.5A2.5 2.5 0 0 1 17 11v1a2.5 2.5 0 0 1-1 2v.5A2.5 2.5 0 0 1 13.5 17H12"/>
        <path d="M12 8h-1.5M12 11h2M12 14h-2"/>
        <circle cx="10.5" cy="8" r="0.6" fill="currentColor"/>
        <circle cx="14" cy="11" r="0.6" fill="currentColor"/>
        <circle cx="10" cy="14" r="0.6" fill="currentColor"/>
      </symbol>
      <symbol id="i-package-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M3 7l9-4 9 4v10l-9 4-9-4z"/>
        <path d="M3 7l9 4 9-4M12 11v10"/>
        <path d="M9 14l6 4M15 14l-6 4" strokeWidth="1.8"/>
      </symbol>
      <symbol id="i-tombstone" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M5 21v-9a7 7 0 0 1 14 0v9z"/>
        <path d="M12 9v6M9 12h6"/>
      </symbol>
      <symbol id="i-magnify-stacked" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="4" width="11" height="14" rx="1.5"/>
        <rect x="6" y="7" width="11" height="14" rx="1.5" fill="var(--surface-1, #18181b)"/>
        <circle cx="14" cy="14" r="3"/><path d="M16 16l2 2"/>
      </symbol>
      <symbol id="i-chart-treemap" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="3" width="18" height="18" rx="2"/>
        <path d="M3 13h11M14 3v18M14 13h7M14 17h7"/>
      </symbol>
      <symbol id="i-rocket" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M13 14L9 10c.5-3.5 3-7.5 8-7.5.5 5-3.5 7.5-7.5 8z"/>
        <path d="M9 14c-2 0-3.5 1.5-3.5 4.5C8.5 17.5 10 16 10 14"/>
        <path d="M14 5a2 2 0 1 1 0 4 2 2 0 0 1 0-4z"/>
        <path d="M9 10l-3 1M14 14l-1 3"/>
      </symbol>
      <symbol id="i-apple" viewBox="0 0 24 24" fill="currentColor" stroke="none">
        <path d="M17.05 12.04c-.03-2.83 2.31-4.18 2.42-4.25-1.32-1.93-3.37-2.2-4.1-2.22-1.74-.18-3.4 1.03-4.28 1.03-.9 0-2.25-1-3.7-.97-1.9.03-3.65 1.1-4.62 2.8-1.98 3.42-.5 8.46 1.41 11.24.96 1.34 2.07 2.85 3.52 2.8 1.43-.06 1.96-.91 3.68-.91s2.2.9 3.7.88c1.53-.02 2.5-1.36 3.42-2.71 1.09-1.55 1.54-3.06 1.56-3.13-.04-.02-2.99-1.15-3.02-4.56zM14.4 4.06c.77-.94 1.29-2.24 1.15-3.54-1.11.04-2.46.74-3.26 1.67-.72.82-1.35 2.16-1.18 3.43 1.24.1 2.51-.63 3.29-1.56z"/>
      </symbol>
      <symbol id="i-tools-cross" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M14.5 4.5l5 5-3 3-5-5z"/>
        <path d="M11.5 7.5L4 15v5h5l7.5-7.5"/>
        <path d="M16 8l3 3"/>
      </symbol>
      <symbol id="i-globe" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/>
        <path d="M3 12h18M12 3a14 14 0 0 1 0 18M12 3a14 14 0 0 0 0 18"/>
      </symbol>

      {/* === Quick actions === */}
      <symbol id="i-trash-fill" viewBox="0 0 24 24" fill="currentColor" stroke="none">
        <path d="M9 3a2 2 0 0 0-2 2v1H4a1 1 0 0 0 0 2h1.07l.86 11.15A2 2 0 0 0 7.92 21h8.16a2 2 0 0 0 1.99-1.85L18.93 8H20a1 1 0 1 0 0-2h-3V5a2 2 0 0 0-2-2zm6 3H9V5h6zm-5 4a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-6a1 1 0 0 1 1-1zm4 0a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0v-6a1 1 0 0 1 1-1z"/>
      </symbol>
      <symbol id="i-memory" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="4" y="6" width="16" height="12" rx="1.5"/>
        <rect x="8" y="10" width="8" height="4" rx="0.5"/>
        <path d="M7 6V4M10 6V4M14 6V4M17 6V4M7 20v-2M10 20v-2M14 20v-2M17 20v-2"/>
      </symbol>
      <symbol id="i-drive" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="5" width="18" height="14" rx="2"/>
        <circle cx="12" cy="12" r="3"/><circle cx="12" cy="12" r="0.5" fill="currentColor"/>
        <path d="M7 8h2M7 16h2M15 8h2M15 16h2"/>
      </symbol>
      <symbol id="i-bubble-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M21 12a8 8 0 0 1-12.4 6.7L4 20l1.3-4.6A8 8 0 1 1 21 12z"/>
        <path d="M12 8v4M12 15v.5" strokeWidth="1.8"/>
      </symbol>
      <symbol id="i-eye" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12z"/>
        <circle cx="12" cy="12" r="3"/>
      </symbol>
      <symbol id="i-globe-network" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/>
        <path d="M12 3v18M3 12h18"/>
        <circle cx="12" cy="6" r="1"/><circle cx="6" cy="14" r="1"/><circle cx="18" cy="14" r="1"/>
      </symbol>

      {/* === UI controls === */}
      <symbol id="i-search" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="11" cy="11" r="6.5"/><path d="M16 16l4 4"/>
      </symbol>
      <symbol id="i-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M6 6l12 12M18 6L6 18"/>
      </symbol>
      <symbol id="i-chevron-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M9 6l6 6-6 6"/>
      </symbol>
      <symbol id="i-chevron-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M6 9l6 6 6-6"/>
      </symbol>
      <symbol id="i-plus" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 5v14M5 12h14"/>
      </symbol>
      <symbol id="i-arrow-right" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M5 12h14M13 6l6 6-6 6"/>
      </symbol>
      <symbol id="i-arrow-down" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 5v14M6 13l6 6 6-6"/>
      </symbol>
      <symbol id="i-funnel" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M4 5h16l-6 8v6l-4-2v-4z"/>
      </symbol>
      <symbol id="i-sort" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M8 4v16M4 8l4-4 4 4M16 4v16M12 16l4 4 4-4"/>
      </symbol>
      <symbol id="i-refresh" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M4 12a8 8 0 0 1 14-5.3"/><path d="M20 4v4h-4"/>
        <path d="M20 12a8 8 0 0 1-14 5.3"/><path d="M4 20v-4h4"/>
      </symbol>
      <symbol id="i-star" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 3l2.7 5.7 6.3.9-4.5 4.4 1 6.3L12 17.3 6.5 20.3l1-6.3L3 9.6l6.3-.9z"/>
      </symbol>
      <symbol id="i-star-fill" viewBox="0 0 24 24" fill="currentColor" stroke="currentColor" strokeWidth="0.5" strokeLinejoin="round">
        <path d="M12 3l2.7 5.7 6.3.9-4.5 4.4 1 6.3L12 17.3 6.5 20.3l1-6.3L3 9.6l6.3-.9z"/>
      </symbol>
      <symbol id="i-sun" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <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.4L7 17M17 7l1.4-1.4"/>
      </symbol>
      <symbol id="i-moon" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M20 14.5A8 8 0 0 1 9.5 4 8 8 0 1 0 20 14.5z"/>
      </symbol>

      {/* === Payment === */}
      <symbol id="i-credit-card" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="3" y="5" width="18" height="14" rx="2"/>
        <path d="M3 10h18M7 15h4"/>
      </symbol>
      <symbol id="i-bitcoin" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/>
        <path d="M9 7v10M11 7v10"/>
        <path d="M9 8h5a2 2 0 0 1 0 4H9M9 12h5.5a2 2 0 0 1 0 4H9"/>
        <path d="M11 5v2M11 17v2M13 5v2M13 17v2"/>
      </symbol>
      <symbol id="i-globe-ru" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/>
        <path d="M3 9h18M3 15h18"/>
      </symbol>
      <symbol id="i-infinity" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M8 12c0-2 1.5-3.5 3.5-3.5S15 12 15 12s1 3.5 3 3.5 3.5-1.5 3.5-3.5S20 8.5 18 8.5 15 12 15 12s-1 3.5-3.5 3.5S8 14 8 12z"/>
      </symbol>
      <symbol id="i-lock" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <rect x="5" y="11" width="14" height="10" rx="2"/>
        <path d="M8 11V7a4 4 0 1 1 8 0v4"/>
      </symbol>
      <symbol id="i-shield-check" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 3l8 3v6c0 4.5-3.5 8-8 9-4.5-1-8-4.5-8-9V6z"/>
        <path d="M9 12l2 2 4-4"/>
      </symbol>
      <symbol id="i-shield" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 3l8 3v6c0 4.5-3.5 8-8 9-4.5-1-8-4.5-8-9V6z"/>
        <path d="M9 12l2 2 4-4"/>
      </symbol>

      {/* === Status === */}
      <symbol id="i-check-circle" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/><path d="M8 12l3 3 5-6"/>
      </symbol>
      <symbol id="i-warning" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M12 3l10 18H2z"/><path d="M12 10v5M12 18v.5"/>
      </symbol>
      <symbol id="i-circle-x" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/><path d="M9 9l6 6M15 9l-6 6"/>
      </symbol>
      <symbol id="i-info" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/><path d="M12 11v5"/><circle cx="12" cy="8" r="0.5" fill="currentColor"/>
      </symbol>
      <symbol id="i-crown" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M3 8l4 4 5-8 5 8 4-4-2 11H5z"/>
        <circle cx="3" cy="8" r="0.8" fill="currentColor"/>
        <circle cx="21" cy="8" r="0.8" fill="currentColor"/>
        <circle cx="12" cy="4" r="0.8" fill="currentColor"/>
      </symbol>
      <symbol id="i-menu" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M4 7h16M4 12h16M4 17h16"/>
      </symbol>
      <symbol id="i-github" viewBox="0 0 24 24" fill="currentColor" stroke="none">
        <path d="M12 2C6.48 2 2 6.58 2 12.2c0 4.5 2.87 8.32 6.84 9.67.5.1.68-.22.68-.5v-1.7c-2.78.62-3.37-1.36-3.37-1.36-.45-1.18-1.11-1.5-1.11-1.5-.91-.63.07-.62.07-.62 1 .07 1.53 1.06 1.53 1.06.89 1.56 2.34 1.11 2.91.85.09-.66.35-1.11.63-1.37-2.22-.26-4.55-1.13-4.55-5.03 0-1.11.39-2.02 1.03-2.73-.1-.26-.45-1.29.1-2.7 0 0 .84-.27 2.75 1.04A9.4 9.4 0 0 1 12 7.1c.85 0 1.7.12 2.5.34 1.9-1.31 2.74-1.04 2.74-1.04.55 1.4.2 2.44.1 2.7.64.71 1.03 1.62 1.03 2.73 0 3.91-2.34 4.77-4.57 5.02.36.32.68.94.68 1.9v2.81c0 .28.18.6.69.5A10.06 10.06 0 0 0 22 12.2C22 6.58 17.52 2 12 2z"/>
      </symbol>
      <symbol id="i-cmd" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M9 9h6v6H9z"/>
        <path d="M9 9V7a2 2 0 1 0-2 2zM9 15v2a2 2 0 1 1-2-2zM15 9V7a2 2 0 1 1 2 2zM15 15v2a2 2 0 1 0 2-2z"/>
      </symbol>
      <symbol id="i-dot" viewBox="0 0 24 24" fill="currentColor"><circle cx="12" cy="12" r="3"/></symbol>
      <symbol id="i-bolt" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M13 3L4 14h7l-1 7 9-11h-7z"/>
      </symbol>
      <symbol id="i-folder" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>
      </symbol>
      <symbol id="i-clock" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round">
        <circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/>
      </symbol>
    </defs>
  </svg>
);

const Icon = ({ name, size = 16, className = "", style = {} }) => (
  <svg className={`icon ${className}`} width={size} height={size} style={style} aria-hidden="true">
    <use href={`#i-${name}`} />
  </svg>
);

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