/* Shared status-dot pattern, reused from status.html */
.dot {
  display: inline-block;
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 9999px;
  margin-right: 0.4rem;
  vertical-align: middle;
  animation: dot-pulse 2s ease-in-out infinite;
}
.dot-green  { background: #34d399; box-shadow: 0 0 8px rgba(52, 211, 153, 0.7); }
.dot-yellow { background: #facc15; box-shadow: 0 0 8px rgba(250, 204, 21, 0.7); }
.dot-red    { background: #f87171; box-shadow: 0 0 8px rgba(248, 113, 113, 0.7); }

@keyframes dot-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.5; }
}

.glow { box-shadow: 0 0 20px rgba(59, 130, 246, 0.5); }

/* Horizontal scroll only on mobile for table wrappers, so widgets never blow out the layout. */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-scroll table { min-width: 640px; }

/* Monospace numerals so prices don't jitter on refresh. */
.nums { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }

/* Tap feedback. :hover doesn't fire on touch devices, so every button and
 * bot-link felt inert on mobile until the tg:// handoff kicked in.
 * Target the actual CTA surfaces (anchors and buttons), exclude bare
 * inline links so body copy doesn't jitter. */
a.tap-press,
button.tap-press,
a[href^="https://t.me/"],
a[href^="tg://"] {
  -webkit-tap-highlight-color: transparent;
  transition: transform 80ms ease-out, filter 80ms ease-out;
}
a.tap-press:active,
button.tap-press:active,
a[href^="https://t.me/"]:active,
a[href^="tg://"]:active {
  transform: scale(0.96);
  filter: brightness(0.85);
}
