// Iconografia minimalista, traço fino
const Icon = {
  Wallet: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M19 7H5a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2Z"/>
      <path d="M16 14h.01"/>
      <path d="M19 7V5a1 1 0 0 0-1-1H6a3 3 0 0 0-3 3"/>
    </svg>
  ),
  Card: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <rect x="2" y="5" width="20" height="14" rx="3"/>
      <path d="M2 10h20"/>
    </svg>
  ),
  Cart: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="9" cy="20" r="1.5"/>
      <circle cx="18" cy="20" r="1.5"/>
      <path d="M2 4h2.5l2.7 12.5a2 2 0 0 0 2 1.5h7.6a2 2 0 0 0 2-1.5L21 8H6"/>
    </svg>
  ),
  Home: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="m3 10 9-7 9 7v10a2 2 0 0 1-2 2h-4v-7H9v7H5a2 2 0 0 1-2-2V10Z"/>
    </svg>
  ),
  Chart: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M3 3v17a1 1 0 0 0 1 1h17"/>
      <path d="M7 16V11"/><path d="M11 16V8"/><path d="M15 16v-4"/><path d="M19 16V6"/>
    </svg>
  ),
  History: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M3 12a9 9 0 1 0 3-6.7L3 8"/>
      <path d="M3 3v5h5"/>
      <path d="M12 7v5l3 2"/>
    </svg>
  ),
  User: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="12" cy="8" r="4"/>
      <path d="M4 21a8 8 0 0 1 16 0"/>
    </svg>
  ),
  Trending: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="m3 17 6-6 4 4 8-8"/>
      <path d="M14 7h7v7"/>
    </svg>
  ),
  Bolt: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M13 2 3 14h7l-1 8 10-12h-7l1-8Z"/>
    </svg>
  ),
  Eye: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" 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"/>
    </svg>
  ),
  Target: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <circle cx="12" cy="12" r="10"/>
      <circle cx="12" cy="12" r="6"/>
      <circle cx="12" cy="12" r="2"/>
    </svg>
  ),
  Sparkle: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <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>
  ),
  Check: ({ size = 16, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M5 13l4 4L19 7"/>
    </svg>
  ),
  X: ({ size = 16, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M6 6l12 12M18 6l-12 12"/>
    </svg>
  ),
  ArrowRight: ({ size = 16, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M5 12h14M13 5l7 7-7 7"/>
    </svg>
  ),
  ChevronDown: ({ size = 16, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="2" strokeLinecap="round" strokeLinejoin="round">
      <path d="m6 9 6 6 6-6"/>
    </svg>
  ),
  Plus: ({ size = 16, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="2.2" strokeLinecap="round" strokeLinejoin="round">
      <path d="M12 5v14M5 12h14"/>
    </svg>
  ),
  Menu: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.8" strokeLinecap="round">
      <path d="M4 7h16M4 12h16M4 17h16"/>
    </svg>
  ),
  Coffee: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M17 8h1a4 4 0 0 1 0 8h-1"/>
      <path d="M3 8h14v9a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V8Z"/>
      <path d="M7 4v2M11 4v2M15 4v2"/>
    </svg>
  ),
  Heart: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M12 21s-7-4.5-9.5-9A5.5 5.5 0 0 1 12 6a5.5 5.5 0 0 1 9.5 6c-2.5 4.5-9.5 9-9.5 9Z"/>
    </svg>
  ),
  Bag: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M5 7h14l-1 13a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 7Z"/>
      <path d="M9 7V5a3 3 0 0 1 6 0v2"/>
    </svg>
  ),
  Receipt: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M5 3h14v18l-3-2-2 2-2-2-2 2-2-2-3 2V3Z"/>
      <path d="M8 8h8M8 12h8M8 16h5"/>
    </svg>
  ),
  Bank: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M3 10 12 4l9 6"/>
      <path d="M5 10v8M9 10v8M15 10v8M19 10v8"/>
      <path d="M3 20h18"/>
    </svg>
  ),
  Lightbulb: ({ size = 20, color = 'currentColor' }) => (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke={color} strokeWidth="1.6" strokeLinecap="round" strokeLinejoin="round">
      <path d="M9 18h6M10 22h4M12 2a7 7 0 0 0-4 12.7c.7.6 1 1.5 1 2.3v1h6v-1c0-.8.3-1.7 1-2.3A7 7 0 0 0 12 2Z"/>
    </svg>
  ),
};

// Logo oficial — "econo" em roxo e "me" em verde
const Logo = ({ size = 22, dark = false }) => {
  const inkColor = dark ? '#FFFFFF' : '#7010B0';
  const greenColor = '#50D080';
  // viewBox 867.87 x 164 — proporção ~5.29:1
  const height = size;
  const width = size * (867.87 / 164);
  return (
    <svg
      width={width}
      height={height}
      viewBox="0 0 867.87 164"
      xmlns="http://www.w3.org/2000/svg"
      style={{ display: 'inline-block', verticalAlign: 'middle' }}
      aria-label="Econome"
    >
      <g>
        <path fill={inkColor} d="M83.66,32.7c-5.65-3.67-12.59-5.92-20.78-6.77V4.1c0-2.26-1.84-4.1-4.1-4.1h-10.25c-2.26,0-4.1,1.84-4.1,4.1v22.24c-7.03,1.09-13.34,3.29-18.89,6.64-8.23,4.98-14.54,11.77-18.94,20.38C2.2,61.97,0,71.83,0,82.92c0,17.99,5.26,32.19,15.78,42.62,7.7,7.63,17.26,12.46,28.65,14.5v19.85c0,2.26,1.84,4.1,4.1,4.1h10.25c2.26,0,4.1-1.84,4.1-4.1v-18.86c9.19-.47,16.57-2.24,22.07-5.31,6.5-3.63,11.14-7.94,13.92-12.92,2.77-4.97,4.16-9.37,4.16-13.2,0-2.87-1.15-4.31-3.44-4.31-.96,0-2.58.48-4.88,1.44-5.55,2.49-10.72,4.26-15.5,5.31-4.79,1.05-10.43,1.58-16.93,1.58-16.65,0-26.12-6.22-28.41-18.66h65.44c3.44,0,5.26-1.43,5.45-4.31.19-1.72.33-3.82.43-6.31.09-2.48.14-5.55.14-9.18,0-8.42-1.77-16.4-5.31-23.97-3.54-7.56-9-13.73-16.36-18.51ZM72.61,72.02h-38.46c.38-5.55,2.34-10,5.88-13.35,3.54-3.35,8.56-5.02,15.07-5.02,4.97,0,8.75,1.05,11.34,3.16,2.58,2.11,4.35,4.59,5.31,7.46.95,2.87,1.24,5.45.86,7.75Z" />
        <path fill={inkColor} d="M202.62,103.87c-.96,0-2.3.57-4.02,1.72-2.11,1.34-5.17,2.92-9.18,4.74-4.02,1.82-8.8,2.73-14.35,2.73-9.57,0-16.65-2.63-21.24-7.89-4.59-5.26-6.89-12.29-6.89-21.09,0-9.57,2.44-16.55,7.32-20.95,4.88-4.4,10.57-6.6,17.08-6.6,4.4,0,8.22.48,11.48,1.43,3.25.96,7.08,2.49,11.48,4.59,1.15.57,2.2.86,3.16.86,1.15,0,2.01-.95,2.58-2.87l1.72-7.17c1.53-6.7,1.48-11.96-.14-15.79-1.63-3.82-5.31-6.69-11.05-8.61-6.51-2.3-13.59-3.44-21.24-3.44-16.84,0-30.42,5.07-40.75,15.21-10.33,10.14-15.5,24.3-15.5,42.48s4.83,32.39,14.49,42.62c9.66,10.24,22.34,15.35,38.03,15.35,10.71,0,18.99-1.91,24.83-5.74,5.83-3.83,9.85-8.32,12.05-13.49,2.2-5.17,3.3-9.66,3.3-13.49,0-3.06-1.05-4.59-3.16-4.59Z" />
        <path fill={inkColor} d="M265.47,25.52c-17.41,0-31.24,5.27-41.47,15.79-10.24,10.52-15.35,24.49-15.35,41.9s5.21,31.43,15.64,42.05c10.43,10.62,24.35,15.93,41.76,15.93s31.47-5.31,41.61-15.93c10.14-10.62,15.21-24.63,15.21-42.05s-5.17-31.38-15.5-41.9c-10.33-10.52-24.3-15.79-41.9-15.79ZM281.54,104.59c-4.78,3.73-10.14,5.6-16.07,5.6s-11.24-1.86-15.93-5.6c-4.69-3.73-7.03-10.66-7.03-20.81s2.39-16.93,7.18-20.95c4.78-4.02,10.14-6.03,16.07-6.03s11.24,2.01,15.93,6.03c4.69,4.02,7.03,11,7.03,20.95s-2.4,17.08-7.18,20.81Z" />
        <path fill={inkColor} d="M396.34,26.1c-5.93,0-11.67,1.39-17.22,4.16-5.55,2.78-10.24,6.74-14.06,11.91-1.91-4.97-4.93-8.47-9.04-10.48-4.12-2.01-9.52-3.01-16.22-3.01h-1.43c-2.49,0-3.73,1.25-3.73,3.73v102.17c0,2.49,1.24,3.73,3.73,3.73h25.26c2.48,0,3.73-1.24,3.73-3.73v-55.39c0-8.61,2.01-14.54,6.03-17.79,4.02-3.25,8.61-4.88,13.78-4.88s9.8,1.63,13.92,4.88c4.11,3.26,6.17,9.28,6.17,18.08v55.1c0,2.49,1.24,3.73,3.73,3.73h25.54c2.48,0,3.73-1.24,3.73-3.73v-58.55c0-17.03-3.92-29.61-11.77-37.74-7.85-8.13-18.56-12.2-32.14-12.2Z" />
        <path fill={inkColor} d="M508.27,25.52c-17.41,0-31.24,5.27-41.47,15.79-10.24,10.52-15.35,24.49-15.35,41.9s5.21,31.43,15.64,42.05c10.43,10.62,24.35,15.93,41.76,15.93s31.47-5.31,41.61-15.93c10.14-10.62,15.21-24.63,15.21-42.05s-5.17-31.38-15.5-41.9c-10.33-10.52-24.3-15.79-41.9-15.79ZM524.34,104.59c-4.78,3.73-10.14,5.6-16.07,5.6s-11.24-1.86-15.93-5.6c-4.69-3.73-7.03-10.66-7.03-20.81s2.39-16.93,7.17-20.95c4.78-4.02,10.14-6.03,16.07-6.03s11.24,2.01,15.93,6.03c4.69,4.02,7.03,11,7.03,20.95s-2.4,17.08-7.17,20.81Z" />
        <path fill={greenColor} d="M707.73,26.1c-7.27,0-13.82,1.82-19.66,5.45-5.84,3.64-10.67,8.04-14.49,13.2-7.27-12.44-19.33-18.66-36.16-18.66-6.13,0-11.67,1.39-16.65,4.16-4.98,2.78-9.38,6.46-13.2,11.05-1.91-4.59-4.98-7.84-9.18-9.76-4.21-1.91-9.47-2.87-15.79-2.87h-1.43c-2.49,0-3.73,1.25-3.73,3.73v102.17c0,2.49,1.24,3.73,3.73,3.73h25.26c2.48,0,3.73-1.24,3.73-3.73v-55.97c0-8.42,2.05-14.3,6.17-17.65,4.11-3.35,8.56-5.02,13.35-5.02s9.23,1.68,12.77,5.02c3.54,3.35,5.31,9.33,5.31,17.94v55.68c0,2.49,1.24,3.73,3.73,3.73h25.54c2.48,0,3.73-1.24,3.73-3.73v-55.97c0-8.42,2.05-14.3,6.17-17.65,4.11-3.35,8.47-5.02,13.06-5.02,4.97,0,9.28,1.68,12.92,5.02,3.63,3.35,5.45,9.33,5.45,17.94v55.68c0,2.49,1.24,3.73,3.73,3.73h25.26c2.48,0,3.73-1.24,3.73-3.73v-58.55c0-17.03-3.83-29.61-11.48-37.74-7.66-8.13-18.27-12.2-31.86-12.2Z" />
        <path fill={greenColor} d="M862.56,51.21c-3.54-7.56-8.99-13.73-16.36-18.51-7.37-4.78-16.89-7.18-28.56-7.18s-21.34,2.49-29.56,7.46c-8.23,4.98-14.54,11.77-18.94,20.38-4.4,8.61-6.6,18.47-6.6,29.56,0,17.99,5.26,32.19,15.79,42.62,10.52,10.43,24.49,15.64,41.9,15.64,11.67,0,20.76-1.82,27.26-5.45,6.5-3.63,11.14-7.94,13.92-12.92,2.77-4.97,4.16-9.37,4.16-13.2,0-2.87-1.15-4.31-3.45-4.31-.96,0-2.58.48-4.88,1.44-5.55,2.49-10.72,4.26-15.5,5.31-4.78,1.05-10.43,1.58-16.93,1.58-16.65,0-26.12-6.22-28.41-18.66h65.44c3.44,0,5.26-1.43,5.45-4.31.19-1.72.33-3.82.43-6.31.09-2.48.14-5.55.14-9.18,0-8.42-1.77-16.4-5.31-23.97ZM835.16,72.02h-38.46c.38-5.55,2.34-10,5.88-13.35,3.54-3.35,8.56-5.02,15.07-5.02,4.97,0,8.75,1.05,11.34,3.16,2.58,2.11,4.35,4.59,5.31,7.46.96,2.87,1.24,5.45.86,7.75Z" />
      </g>
    </svg>
  );
};

window.Icon = Icon;
window.Logo = Logo;
