// Hostelova icon set — Lucide icons (https://lucide.dev, ISC license)
// rendered as inline SVG, so there's zero runtime/network dependency and the
// `Icon.X` API is unchanged (every existing <Icon.Foo .../> keeps working).
const _stroke = (inner, sw) => (p) => (
  <svg
    width="20" height="20" viewBox="0 0 24 24" fill="none"
    stroke="currentColor" strokeWidth={sw || 2}
    strokeLinecap="round" strokeLinejoin="round"
    {...p}
    dangerouslySetInnerHTML={{ __html: inner }}
  />
);
const _solid = (inner) => (p) => (
  <svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" {...p}
    dangerouslySetInnerHTML={{ __html: inner }} />
);

const Icon = {
  Search: _stroke('<circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/>'),
  Pin: _stroke('<path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"/><circle cx="12" cy="10" r="3"/>'),
  // Material Design "verified" — filled seal with a check cut out (the check
  // shows the background through, so it reads correctly on any colour).
  Verified: _solid('<path fill-rule="evenodd" clip-rule="evenodd" d="M23 12l-2.44-2.78.34-3.68-3.61-.82-1.89-3.18L12 3l-3.4-1.46-1.89 3.18-3.61.81.34 3.69L1 12l2.44 2.78-.34 3.69 3.61.82 1.89 3.18L12 21l3.4 1.46 1.89-3.18 3.61-.82-.34-3.68L23 12zm-12.91 4.72l-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48-7.33 7.36z"/>'),
  Bed: _stroke('<path d="M2 4v16"/><path d="M2 8h18a2 2 0 0 1 2 2v10"/><path d="M2 17h20"/><path d="M6 8v9"/>'),
  Heart: _stroke('<path d="M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"/>'),
  Photo: _stroke('<rect width="18" height="18" x="3" y="3" rx="2" ry="2"/><circle cx="9" cy="9" r="2"/><path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21"/>'),
  Mail: _stroke('<rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7"/>'),
  Bell: _stroke('<path d="M10.268 21a2 2 0 0 0 3.464 0"/><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"/>'),
  Building: _stroke('<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z"/><path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2"/><path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2"/><path d="M10 6h4"/><path d="M10 10h4"/><path d="M10 14h4"/><path d="M10 18h4"/>'),
  Grid: _stroke('<rect width="7" height="7" x="3" y="3" rx="1"/><rect width="7" height="7" x="14" y="3" rx="1"/><rect width="7" height="7" x="14" y="14" rx="1"/><rect width="7" height="7" x="3" y="14" rx="1"/>'),
  Users: _stroke('<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"/>'),
  Chart: _stroke('<path d="M3 3v16a2 2 0 0 0 2 2h16"/><path d="M18 17V9"/><path d="M13 17V5"/><path d="M8 17v-3"/>'),
  Shield: _stroke('<path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1Z"/><path d="m9 12 2 2 4-4"/>'),
  Megaphone: _stroke('<path d="m3 11 18-5v12L3 14v-3z"/><path d="M11.6 16.8a3 3 0 1 1-5.8-1.6"/>'),
  Tag: _stroke('<path d="M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z"/><circle cx="7.5" cy="7.5" r=".5" fill="currentColor"/>'),
  Flag: _stroke('<path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z"/><line x1="4" x2="4" y1="22" y2="15"/>'),
  Eye: _stroke('<path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"/><circle cx="12" cy="12" r="3"/>'),
  Sparkle: _stroke('<path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .962 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.962 0z"/>'),
  Home: _stroke('<path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"/><path d="M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/>'),
  Phone: _stroke('<path d="M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384z"/>'),
  ArrowRight: _stroke('<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>', 2.2),
  ArrowLeft: _stroke('<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>', 2.2),
  Play: _solid('<polygon points="6 3 20 12 6 21 6 3"/>'),
  Download: _stroke('<path d="M12 15V3"/><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"/><path d="m7 10 5 5 5-5"/>'),
  Logo: (p) => (
    <img src="assets/logo.png" alt="Hostelova" width="38" height="38" style={{ display: 'block', objectFit: 'cover', width: '100%', height: '100%' }} {...p} />
  ),
  Star: _solid('<path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.12 2.12 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.12 2.12 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.12 2.12 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.12 2.12 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.12 2.12 0 0 0 1.597-1.16z"/>'),
  Check: _stroke('<path d="M20 6 9 17l-5-5"/>', 3),
  // ── Phone status-bar glyphs (kept at their custom sizes for the mockup) ──
  Wifi: (p) => (
    <svg width="14" height="10" viewBox="0 0 24 16" fill="currentColor" {...p}>
      <path d="M12 14a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Zm0-4.5a5 5 0 0 1 3.5 1.5l-1.4 1.4a3 3 0 0 0-4.2 0L8.5 11A5 5 0 0 1 12 9.5Zm0-4a9 9 0 0 1 6.4 2.6l-1.4 1.4a7 7 0 0 0-10 0L5.6 8.1A9 9 0 0 1 12 5.5Z" />
    </svg>
  ),
  Battery: (p) => (
    <svg width="22" height="11" viewBox="0 0 22 11" fill="none" {...p}>
      <rect x="0.5" y="0.5" width="18" height="10" rx="2" stroke="currentColor" /><rect x="2" y="2" width="13" height="7" rx="1" fill="currentColor" /><rect x="19" y="3.5" width="2" height="4" rx="1" fill="currentColor" />
    </svg>
  ),
  Cellular: (p) => (
    <svg width="16" height="10" viewBox="0 0 16 10" fill="currentColor" {...p}>
      <rect x="0" y="7" width="3" height="3" rx="0.5" /><rect x="4.5" y="5" width="3" height="5" rx="0.5" /><rect x="9" y="3" width="3" height="7" rx="0.5" /><rect x="13.5" y="0" width="3" height="10" rx="0.5" />
    </svg>
  ),
  Sun: _stroke('<circle cx="12" cy="12" r="4"/><path d="M12 2v2"/><path d="M12 20v2"/><path d="m4.93 4.93 1.41 1.41"/><path d="m17.66 17.66 1.41 1.41"/><path d="M2 12h2"/><path d="M20 12h2"/><path d="m6.34 17.66-1.41 1.41"/><path d="m19.07 4.93-1.41 1.41"/>'),
  Moon: _stroke('<path d="M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z"/>'),
  Plus: _stroke('<path d="M5 12h14"/><path d="M12 5v14"/>', 2.4),
  X: _stroke('<path d="M18 6 6 18"/><path d="m6 6 12 12"/>', 2.4),
  Chat: _stroke('<path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z"/>'),
  Quote: _solid('<path d="M14.017 21v-7.391c0-5.704 3.731-9.57 8.983-10.609l.995 2.151c-2.432.917-3.995 3.638-3.995 5.849h4v10zm-14 0v-7.391c0-5.704 3.748-9.57 9-10.609l.996 2.151c-2.433.917-3.996 3.638-3.996 5.849h3.983v10z"/>'),
  Calendar: _stroke('<path d="M8 2v4"/><path d="M16 2v4"/><rect width="18" height="18" x="3" y="4" rx="2"/><path d="M3 10h18"/>'),
  UserSolid: _solid('<path d="M12 2a5 5 0 1 0 0 10 5 5 0 0 0 0-10Z"/><path d="M3.5 20.5a8.5 8.5 0 0 1 17 0 1 1 0 0 1-1 1h-15a1 1 0 0 1-1-1Z"/>'),
  Bookmark: _solid('<path d="m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z"/>'),
  Flame: _solid('<path d="M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5Z"/>'),
  Timer: _stroke('<path d="M10 2h4"/><path d="M12 14v-4"/><circle cx="12" cy="14" r="8"/>'),
  Snowflake: _stroke('<path d="m10 20-1.25-2.5L6 18"/><path d="M10 4 8.75 6.5 6 6"/><path d="m14 20 1.25-2.5L18 18"/><path d="m14 4 1.25 2.5L18 6"/><path d="m17 21-3-6h-4"/><path d="m17 3-3 6 1.5 3"/><path d="M2 12h6.5L10 9"/><path d="m20 10-1.5 2 1.5 2"/><path d="M22 12h-6.5L14 15"/><path d="m4 10 1.5 2L4 14"/><path d="m7 21 3-6-1.5-3"/><path d="m7 3 3 6h4"/>'),
  Wifi2: _stroke('<path d="M12 20h.01"/><path d="M2 8.82a15 15 0 0 1 20 0"/><path d="M5 12.859a10 10 0 0 1 14 0"/><path d="M8.5 16.429a5 5 0 0 1 7 0"/>'),
  P: _stroke('<path d="M7 4v16"/><path d="M7 4h7a4 4 0 1 1 0 8H7"/>', 2.4),
  Lock: _stroke('<rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>'),
};

window.Icon = Icon;
