/* ════════════════════════════════════════════════════════
   CORE GRID — Base / Reset / Typography
   ════════════════════════════════════════════════════════ */
*, *::before, *::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  -webkit-tap-highlight-color: transparent;
}

html, body {
  height: 100%;
  height: 100dvh;
  overflow: hidden;
  overscroll-behavior: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
  font-family: var(--font-sans);
  font-size: var(--fs-md);
  color: var(--text);
  background-color: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button {
  font-family: inherit;
  color: inherit;
  cursor: pointer;
  border: none;
  background: none;
}

h1, h2, h3 {
  font-family: var(--font-sans);
  font-weight: var(--fw-black);
  letter-spacing: var(--ls-title);
}

::selection { background: rgba(255, 122, 26, 0.35); }

::-webkit-scrollbar { width: 0; height: 0; }
.scroll { scrollbar-width: none; }

/* ── Mono: balances, timers, multipliers, technical labels ─ */
.amount,
.timer,
.multiplier,
.code-label,
.asset-card__val,
.core-tap-timer,
.core-tap-timer--ready,
.core-tap-preview__grid,
.core-tap-preview__cryo,
.chakra-panel__mult,
.chakra-result__val,
.chakra-card__val,
.chakra-wheel-label,
.wallet-balance-card__val,
.balance-modal__balance,
.wallet-stat__val,
.node-card__output,
.node-card__price,
.node-card__spec-val,
.node-card__payout,
.net-card__spec-val,
.earn-card__metric,
.earn-task__reward,
.heat-label__pct,
.lb-row__score,
.lb-row__rank--top,
.node-card__stat-val,
.cooldown-timer__count,
.float-text,
.net-rank-progress__count,
.live-yield b {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

/* ── Section labels ───────────────────────────────────── */
.code-label,
.asset-card__label,
.earn-section__label,
.wallet-balance-card__label,
.wallet-stat__key,
.net-card__label,
.chakra-card__label,
.era-head,
.node-card__stat-label,
.node-card__output-label,
.core-tap-preview__label {
  font-size: var(--fs-section);
  font-weight: var(--fw-semi);
  letter-spacing: var(--ls-section);
  text-transform: uppercase;
  color: var(--text-muted);
}

/* ── Brand / accent utilities ─────────────────────────── */
.text-gradient {
  color: var(--grid-2);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}
.text-gradient-gold {
  color: var(--grid);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}
.text-gradient--network {
  color: var(--grid-2);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}
.text-gradient--chakra {
  color: var(--cryo);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
}
.mono { font-family: var(--font-mono); }

.panel.panel--hidden {
  display: none !important;
}

/* ── Page headers ─────────────────────────────────────── */
.screen-head { flex-shrink: 0; }
.screen-head--core { margin-bottom: 0; }
.screen-head__title {
  font-family: var(--font-sans);
  font-size: var(--fs-title);
  font-weight: var(--fw-black);
  letter-spacing: var(--ls-title);
  text-transform: uppercase;
  color: var(--text);
  line-height: 1.1;
}
.screen-head__sub {
  font-family: var(--font-sans);
  font-size: var(--fs-label-sm);
  font-weight: var(--fw-med);
  color: var(--text-muted);
  margin-top: 4px;
  line-height: 1.45;
  letter-spacing: normal;
}
.screen-head__note {
  font-size: var(--fs-label-sm);
  color: var(--text-faint);
  margin-top: 6px;
  line-height: 1.4;
  letter-spacing: normal;
}
