// TLB thin-line icons — 1.5px stroke, never filled (per brief)
// Usage: <Icon name="bookmark" size={20} />
const TLB_ICON_PATHS = {
  // Tab bar
  explore:    'M3 12l9-9 9 9M5 10v10h14V10',
  search:     'M11 19a8 8 0 100-16 8 8 0 000 16zm6-2l4 4',
  bookmark:   'M6 4h12v17l-6-4-6 4V4z',
  trips:      'M4 7h16M4 12h16M4 17h10',
  profile:    'M12 12a4 4 0 100-8 4 4 0 000 8zm-8 9a8 8 0 0116 0',
  // Actions
  close:      'M5 5l14 14M19 5L5 19',
  back:       'M15 5l-7 7 7 7',
  forward:    'M9 5l7 7-7 7',
  plus:       'M12 5v14M5 12h14',
  minus:      'M5 12h14',
  share:      'M16 8l-4-4-4 4M12 4v12M4 14v6h16v-6',
  heart:      'M12 20s-7-4.5-7-10a4 4 0 017-2.6A4 4 0 0119 10c0 5.5-7 10-7 10z',
  star:       'M12 3l2.5 6L21 10l-5 4.5 1.5 6.5L12 17.5 6.5 21 8 14.5 3 10l6.5-1z',
  check:      'M4 12l5 5L20 6',
  calendar:   'M4 7h16v13H4zM4 7V4M20 7V4M8 4v3M16 4v3M4 11h16',
  map:        'M3 6l6-2 6 2 6-2v14l-6 2-6-2-6 2V6zM9 4v14M15 6v14',
  pin:        'M12 2a7 7 0 017 7c0 5-7 13-7 13S5 14 5 9a7 7 0 017-7zM12 11a2 2 0 100-4 2 2 0 000 4z',
  filter:     'M4 5h16M7 12h10M10 19h4',
  sliders:    'M4 6h10M18 6h2M4 12h4M12 12h8M4 18h12M18 18h2M14 4v4M10 10v4M18 16v4',
  chevronDown:'M6 9l6 6 6-6',
  chevronUp:  'M6 15l6-6 6 6',
  bed:        'M3 18V8M21 18v-4a4 4 0 00-4-4H7a4 4 0 00-4 4M3 18h18M7 10V7a1 1 0 011-1h8a1 1 0 011 1v3',
  bath:       'M5 12V6a2 2 0 012-2h2v4M3 12h18v3a4 4 0 01-4 4H7a4 4 0 01-4-4v-3zM6 19l-1 2M18 19l1 2',
  pool:       'M3 18c2-1 3-1 5 0s3 1 5 0 3-1 5 0M3 14c2-1 3-1 5 0s3 1 5 0 3-1 5 0M8 10V4a2 2 0 014 0v10M16 10V4a2 2 0 012-2',
  wifi:       'M2 9c5-5 15-5 20 0M5 12c4-4 10-4 14 0M8 15c2-2 6-2 8 0M12 19l.01 0',
  car:        'M4 16v-5l2-5h12l2 5v5M4 16h16M4 16v3h3v-3M17 16v3h3v-3M8 11h8',
  users:      'M9 12a4 4 0 100-8 4 4 0 000 8zm8 0a3 3 0 100-6 3 3 0 000 6zM2 20a7 7 0 0114 0M16 20a5 5 0 015-5',
  moon:       'M20 13A8 8 0 1111 4a6 6 0 009 9z',
  coffee:     'M4 10h12v6a4 4 0 01-4 4H8a4 4 0 01-4-4v-6zM16 10h2a2 2 0 010 4h-2M8 3v2M12 3v2',
  sparkle:    'M12 3v6m0 6v6M3 12h6m6 0h6M6 6l3 3M15 15l3 3M18 6l-3 3M9 15l-3 3',
  message:    'M21 12a8 8 0 01-11.5 7.2L4 21l1.5-5A8 8 0 1121 12z',
  phone:      'M5 4h4l2 5-3 2a12 12 0 006 6l2-3 5 2v4a2 2 0 01-2 2A16 16 0 013 6a2 2 0 012-2z',
  camera:     'M4 8h3l2-2h6l2 2h3v11H4V8zM12 10a4 4 0 100 8 4 4 0 000-8z',
  mic:        'M12 4a3 3 0 013 3v5a3 3 0 01-6 0V7a3 3 0 013-3zM5 11a7 7 0 0014 0M12 18v3',
  send:       'M3 3l18 9-18 9 4-9-4-9z',
  edit:       'M4 20h4L20 8l-4-4L4 16v4zM14 6l4 4',
  trash:      'M4 7h16M9 7V4h6v3M6 7l1 13h10l1-13',
  more:       'M5 12h.01M12 12h.01M19 12h.01',
  settings:   'M12 9a3 3 0 100 6 3 3 0 000-6zM19 12l2 1-1 2-2-1M5 12l-2 1 1 2 2-1M12 5l1-2 2 1-1 2M12 19l1 2 2-1-1-2',
  lock:       'M6 11V8a6 6 0 0112 0v3M5 11h14v10H5z',
  globe:      'M12 3a9 9 0 100 18 9 9 0 000-18zM3 12h18M12 3a15 15 0 010 18M12 3a15 15 0 000 18',
  grid:       'M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z',
  list:       'M4 6h16M4 12h16M4 18h16',
  layers:     'M12 3l9 5-9 5-9-5 9-5zM3 13l9 5 9-5M3 18l9 5 9-5',
  trending:   'M3 17l6-6 4 4 8-8M15 7h6v6',
  wallet:     'M4 7h16v12H4zM4 7V5a1 1 0 011-1h14v3M16 13h2',
  clock:      'M12 3a9 9 0 100 18 9 9 0 000-18zM12 7v5l3 2',
  info:       'M12 3a9 9 0 100 18 9 9 0 000-18zM12 10v6M12 7v.01',
  eye:        'M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7S2 12 2 12zM12 9a3 3 0 100 6 3 3 0 000-6z',
  eyeOff:     'M3 3l18 18M10 5.5A10 10 0 0112 5c6.5 0 10 7 10 7a16 16 0 01-3 4M6 7s-3 3-4 5c0 0 3.5 7 10 7 2 0 3.7-.6 5-1.5M10 10a3 3 0 004 4',
  home:       'M3 11l9-8 9 8v10h-6v-6h-6v6H3z',
  flag:       'M5 3v18M5 4h12l-2 4 2 4H5',
  qr:         'M3 3h7v7H3zM14 3h7v7h-7zM3 14h7v7H3zM14 14h2M18 14h2M14 18h2M18 18h2M16 16h2',
  wand:       'M4 20l10-10M14 6l4 4M16 4l2 2M20 6l2 2M18 10l2 2',
  dot:        'M12 12h.01',
};

function Icon({ name, size = 20, color = 'currentColor', stroke = 1.5, style = {} }) {
  const d = TLB_ICON_PATHS[name];
  if (!d) return null;
  return (
    <svg width={size} height={size} viewBox="0 0 24 24" fill="none" style={{ flexShrink: 0, ...style }}>
      <path d={d} stroke={color} strokeWidth={stroke} strokeLinecap="round" strokeLinejoin="round" />
    </svg>
  );
}

window.Icon = Icon;
window.TLB_ICON_PATHS = TLB_ICON_PATHS;
