/* ===========================================================
   Icon set — replaces every emoji in the UI.
   <i class="ic ic-bolt"></i>
   The glyph is an SVG mask filled with currentColor, so it
   takes the colour and the font-size of whatever holds it.
   =========================================================== */

.ic {
  display: inline-block;
  width: 1em; height: 1em;
  background-color: currentColor;
  vertical-align: -0.14em;
  flex: 0 0 auto;
  -webkit-mask: var(--m) center / contain no-repeat;
          mask: var(--m) center / contain no-repeat;
}
.ic-lg { width: 1.35em; height: 1.35em; }

/* the brand mark — the source logo is light-on-transparent, so it needs a
   dark backing to stay legible once the app's glass theme is light */
.brand-logo { height: 22px; width: auto; display: block; }
.brand-logo-xl { height: 38px; width: auto; display: block; margin: 0 auto; }
.logo-chip {
  display: inline-flex; align-items: center; line-height: 0;
  background: #0B0E16; padding: 7px 12px; border-radius: 12px;
  box-shadow: 0 4px 14px rgba(11,14,22,.28), inset 0 1px 0 rgba(255,255,255,.08);
}
.logo-chip.lg { padding: 11px 18px; border-radius: 16px; }

/* connecting splash */
.boot { position: fixed; inset: 0; display: grid; place-content: center; justify-items: center;
  gap: 14px; color: var(--txt-2); font-size: 14px; }
.boot-ring { width: 34px; height: 34px; border-radius: 50%;
  border: 3px solid var(--fill); border-top-color: var(--blue);
  animation: bootspin .8s linear infinite; }
@keyframes bootspin { to { transform: rotate(360deg); } }

/* rating stars */
.stars { color: var(--yellow); display: inline-flex; gap: 1px; font-size: .92em; vertical-align: -.1em; }
.stars .ic { width: .95em; height: .95em; }

/* an icon inside a coloured round tile keeps its own size */
.ri .ic, .brand-mark .ic { font-size: 16px; }
.feat b .ic, .hero-chips .ic { margin-right: 5px; }
.row .rt b .ic { margin-right: 4px; }

/* --- status --- */
.ic-check       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M4 12.5 9.5 18 20 6.5'/></svg>"); }
.ic-check-circle{ --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.2 14.3-4-4 1.6-1.6 2.4 2.4 5.2-5.2 1.6 1.6-6.8 6.8Z'/></svg>"); }
.ic-warning     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2.6 23 21.4H1L12 2.6Zm-1 6.4v6h2V9h-2Zm0 8v2h2v-2h-2Z'/></svg>"); }
.ic-ban         { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'><circle cx='12' cy='12' r='9'/><path d='M5.6 5.6 18.4 18.4'/></svg>"); }
.ic-info        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1 5h2v2h-2V7Zm0 4h2v6h-2v-6Z'/></svg>"); }
.ic-clock       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2'><circle cx='12' cy='12' r='9'/><path d='M12 7v5.5l3.5 2' stroke-linecap='round'/></svg>"); }
.ic-x           { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round'><path d='M6 6 18 18M18 6 6 18'/></svg>"); }

/* --- commerce --- */
.ic-bolt        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M13 2 4 14h6l-1 8 9-12h-6l1-8Z'/></svg>"); }
.ic-shield      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2 4 5.5V12c0 5 3.4 8.8 8 10 4.6-1.2 8-5 8-10V5.5L12 2Zm-1 13-3-3 1.4-1.4L11 12.2l4.6-4.6L17 9l-6 6Z'/></svg>"); }
.ic-bag         { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M5 8h14l1 12H4L5 8Z'/><path d='M9 8V6a3 3 0 0 1 6 0v2'/></svg>"); }
.ic-box         { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M3 7.5 12 3l9 4.5v9L12 21l-9-4.5v-9Z'/><path d='m3 7.5 9 4.5 9-4.5M12 12v9'/></svg>"); }
.ic-receipt     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M5 2h14v20l-3-2-2 2-2-2-2 2-2-2-3 2V2Z'/><path d='M9 8h6M9 12h6'/></svg>"); }
.ic-ticket      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M3 8a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v2a2 2 0 0 0 0 4v2a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-2a2 2 0 0 0 0-4V8Z'/><path d='M14 6v12' stroke-dasharray='2 3'/></svg>"); }
.ic-gift        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M3 10h18v10H3V10ZM2 7h20v3H2V7ZM12 7v13'/><path d='M12 7S9 2 6.5 3.5 9 7 12 7Zm0 0s3-5 5.5-3.5S15 7 12 7Z'/></svg>"); }
.ic-flame       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2s1 4-2 7c-3 3-5 5-5 8a7 7 0 0 0 14 0c0-4-4-6-4-9 0-2-3-6-3-6Zm0 17a3 3 0 0 1-3-3c0-2 3-3 3-6 0 0 3 3 3 6a3 3 0 0 1-3 3Z'/></svg>"); }
.ic-sparkle     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2l2.2 6.3L20.5 10l-6.3 2.2L12 18.5 9.8 12.2 3.5 10l6.3-1.7L12 2Zm6.5 11 1 2.8 2.8 1-2.8 1-1 2.7-1-2.7-2.8-1 2.8-1 1-2.8Z'/></svg>"); }
.ic-star        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='m12 2 3 6.6 7 .8-5.2 4.8 1.4 7L12 17.8 5.8 21.2l1.4-7L2 9.4l7-.8L12 2Z'/></svg>"); }
.ic-star-o      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='m12 3 2.8 5.7 6.2.9-4.5 4.4 1.1 6.2L12 17.3l-5.6 2.9 1.1-6.2L3 9.6l6.2-.9L12 3Z'/></svg>"); }

/* --- money --- */
.ic-wallet      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M4 7a3 3 0 0 1 3-3h10a3 3 0 0 1 3 3H4Zm0 2h16a2 2 0 0 1 2 2v7a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2Zm12 4a2 2 0 1 0 0 4h4v-4h-4Z'/></svg>"); }
.ic-coin        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='9'/><path d='M12 7v10M9.5 9.5h4a2 2 0 0 1 0 4h-3a2 2 0 0 0 0 4h4' stroke-linecap='round'/></svg>"); }
.ic-card        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='2' y='5' width='20' height='14' rx='3'/><path d='M2 10h20'/></svg>"); }
.ic-cash        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><rect x='2' y='6' width='20' height='12' rx='2'/><circle cx='12' cy='12' r='2.6'/></svg>"); }
.ic-bitcoin     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M9 3h2v2h1.2V3h2v2.1c2.3.3 3.6 1.5 3.6 3.3 0 1.2-.6 2.1-1.7 2.6 1.5.4 2.4 1.5 2.4 3 0 2.1-1.5 3.4-4.3 3.6V20h-2v-2.3H11V20H9v-2.3H6V15h1.5V9H6V6.3h3V3Zm1.6 5.6v2.8h2c1.1 0 1.8-.5 1.8-1.4 0-.9-.7-1.4-1.8-1.4h-2Zm0 5v3h2.4c1.3 0 2-.6 2-1.5s-.7-1.5-2-1.5h-2.4Z'/></svg>"); }
.ic-usdt        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M6.5 4.5h11v4h-4.25v1.8c3.6.25 6.25 1.15 6.25 2.2s-2.65 1.95-6.25 2.2V19h-2.5v-4.3C7.15 14.45 4.5 13.55 4.5 12.5s2.65-1.95 6.25-2.2V8.5H6.5V4.5Z'/></svg>"); }

/* --- app / system --- */
.ic-chat        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M4 3h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H9l-5 4v-4H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2Z'/></svg>"); }
.ic-headset     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><path d='M4 14v-2a8 8 0 0 1 16 0v2'/><rect x='2' y='13' width='4.5' height='7' rx='2'/><rect x='17.5' y='13' width='4.5' height='7' rx='2'/><path d='M20 20v.5a2.5 2.5 0 0 1-2.5 2.5H13'/></svg>"); }
.ic-send        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M21.5 2.5 2 10.2l7 2.6 2.3 7.7L21.5 2.5Zm-10 11.6 7.7-8.4-9.9 6.1.8 2.9.9-.6h.5Z'/></svg>"); }
.ic-user        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 12a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Zm0 2c-4.4 0-8 2.4-8 5.5V21h16v-1.5c0-3.1-3.6-5.5-8-5.5Z'/></svg>"); }
.ic-users       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M9 11a3.5 3.5 0 1 0 0-7 3.5 3.5 0 0 0 0 7Zm8 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 20v-1c0-2.8 3.1-5 7-5s7 2.2 7 5v1H2Zm15.5 0v-1c0-1.6-.8-3-2-4 3 .2 5.5 1.9 5.5 4v1h-3.5Z'/></svg>"); }
.ic-lock        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M7 10V7a5 5 0 0 1 10 0v3h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h1Zm2 0h6V7a3 3 0 0 0-6 0v3Z'/></svg>"); }
.ic-key         { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='8' cy='8' r='4.5'/><path d='m11.5 11.5 8 8M16 16l2.5-2.5M19 19l2-2' stroke-linecap='round'/></svg>"); }
.ic-logout      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M14 4h5a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1h-5'/><path d='M10 8 6 12l4 4M6 12h10'/></svg>"); }
.ic-settings    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='m12 2 1.6 2.6 3-.6.4 3 2.7 1.4-1.4 2.7 1.4 2.7-2.7 1.4-.4 3-3-.6L12 22l-1.6-2.6-3 .6-.4-3-2.7-1.4L5.7 13 4.3 10.3 7 8.9l.4-3 3 .6L12 2Zm0 6.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7Z'/></svg>"); }
.ic-tool        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M15 3a5 5 0 0 0-4.3 7.5L3 18.2 5.8 21l7.7-7.7A5 5 0 1 0 15 3Z'/></svg>"); }
.ic-chart       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M3 19h18v2H3v-2Zm2-6h3v5H5v-5Zm5-5h3v10h-3V8Zm5-5h3v15h-3V3Z'/></svg>"); }
.ic-database    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><ellipse cx='12' cy='5.5' rx='8' ry='3'/><path d='M4 5.5v13c0 1.7 3.6 3 8 3s8-1.3 8-3v-13'/><path d='M4 12c0 1.7 3.6 3 8 3s8-1.3 8-3'/></svg>"); }
.ic-plug        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M9 2v6M15 2v6M6 8h12v3a6 6 0 0 1-12 0V8ZM12 17v5'/></svg>"); }
.ic-doc         { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><path d='M6 2h8l4 4v16H6V2Z'/><path d='M14 2v4h4M9 12h6M9 16h6'/></svg>"); }
.ic-clipboard   { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linejoin='round'><rect x='5' y='4' width='14' height='18' rx='2'/><rect x='9' y='2' width='6' height='4' rx='1'/></svg>"); }
.ic-globe       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'><circle cx='12' cy='12' r='9'/><path d='M3 12h18M12 3c2.5 2.6 3.8 5.6 3.8 9S14.5 18.4 12 21c-2.5-2.6-3.8-5.6-3.8-9S9.5 5.6 12 3Z'/></svg>"); }
.ic-search      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round'><circle cx='11' cy='11' r='7'/><path d='m20 20-3.5-3.5'/></svg>"); }
.ic-moon        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M20 15.5A8.5 8.5 0 0 1 9 4.4 9 9 0 1 0 20 15.5Z'/></svg>"); }
.ic-refresh     { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M20 12a8 8 0 1 1-2.6-5.9'/><path d='M20 4v5h-5'/></svg>"); }
.ic-upload      { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M12 17V4M7 9l5-5 5 5M4 20h16'/></svg>"); }
.ic-download    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M12 4v13M7 12l5 5 5-5M4 20h16'/></svg>"); }
.ic-undo        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'><path d='M4 10h11a5 5 0 0 1 0 10h-3'/><path d='M8 6 4 10l4 4'/></svg>"); }
.ic-left        { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'><path d='M15 5 8 12l7 7'/></svg>"); }
.ic-right       { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round'><path d='m9 5 7 7-7 7'/></svg>"); }
.ic-trend-up    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='m3 17 6-6 4 4 8-8'/><path d='M15 7h6v6'/></svg>"); }

/* --- brands used as buttons --- */
.ic-telegram    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M21.5 3.3 1.9 11c-.9.4-.9 1.6 0 1.9l4.6 1.5 1.8 5.4c.3.8 1.3 1 1.9.4l2.5-2.7 5 3.7c.7.5 1.7.1 1.9-.8l3-16c.2-1-.8-1.7-1.1-1.1ZM8.7 14.4l9.5-6-7.7 7-.3 3.9-1.5-4.9Z'/></svg>"); }
.ic-whatsapp    { --m: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2Zm-3.4 5.3c.2 0 .4 0 .5.4l.8 1.9c.1.2.1.4-.1.6l-.5.6c-.1.2-.2.3-.1.5.2.3.6.9 1.3 1.5.9.8 1.6 1.1 1.9 1.2.2.1.4.1.6-.1l.7-.8c.2-.2.4-.2.6-.1l1.7.8c.3.1.5.2.5.4.1.3 0 .9-.2 1.2-.2.4-1 .9-1.6 1-.5.1-1.2.1-3.3-.7-2.6-1.1-4.2-3.7-4.4-3.9-.1-.2-1-1.3-1-2.5s.6-1.9.8-2.2c.3-.3.6-.4.8-.4h.6Z'/></svg>"); }
