/* Памп Дамп · КОПИЯ pm-btc5m/web/static/ui/base.css (Pulse, 02.11.2026). Оригинал: Pulse · сброс и базовые стили. Только токены из tokens.css, никаких «сырых» цветов.
 * Порядок подключения: fonts.css → tokens.css → base.css → компоненты.
 */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  color-scheme: dark;
  background: var(--bg);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  scrollbar-color: var(--scrollbar-thumb) transparent;
  scrollbar-width: thin;
}

@media (prefers-reduced-motion: no-preference) {
  html:not([data-motion="reduce"]) {
    scroll-behavior: smooth;
  }
}

body {
  margin: 0;
  min-height: var(--app-height);
  background: var(--bg);
  color: var(--label);
  font-family: var(--font-sans);
  font-size: var(--t-body-size);
  line-height: var(--t-body-lh);
  font-weight: var(--t-body-wt);
  letter-spacing: var(--t-body-tr);
  font-optical-sizing: auto;
  font-synthesis: none;          /* никакого поддельного жирного и курсива */
  font-kerning: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;            /* горизонтальной прокрутки страницы нет (4.0) */
  overscroll-behavior-y: none;
}

h1, h2, h3, h4, h5, h6,
p, figure, blockquote, dl, dd, pre {
  margin: 0;
}

h1, h2, h3, h4, h5, h6 {
  font-size: inherit;
  font-weight: inherit;
}

ul[role="list"],
ol[role="list"] {
  list-style: none;
  margin: 0;
  padding: 0;
}

img, picture, video, canvas {
  display: block;
  max-width: 100%;
}

svg {
  flex-shrink: 0;
}

/* Свои контролы: у кнопок и полей нет системного вида и системного серого */
button, input, select, textarea {
  font: inherit;
  color: inherit;
  letter-spacing: inherit;
  margin: 0;
}

button {
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  touch-action: manipulation;
  user-select: none;
  -webkit-user-select: none;
}

button:disabled {
  cursor: default;
}

input, textarea {
  appearance: none;
  background: transparent;
  border: 0;
  outline: 0;
  border-radius: 0;
}

input::placeholder,
textarea::placeholder {
  color: var(--label-3);
  opacity: 1;
}

a {
  color: var(--accent);
  text-decoration: none;
}

@media (hover: hover) {
  a:hover {
    text-decoration: underline;
    text-underline-offset: 0.2em;
    text-decoration-thickness: 1px;
  }
}

hr {
  height: var(--sep-hairline);
  margin: 0;
  border: 0;
  background: var(--sep);
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

/* Фокус — только с клавиатуры (5.9) */
:focus {
  outline: none;
}

:focus-visible {
  outline: var(--focus-width) solid var(--focus);
  outline-offset: var(--focus-offset);
}

::selection {
  background: var(--selection);
  color: var(--label);
}

/* Тёмные тонкие полосы прокрутки */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

::-webkit-scrollbar-track,
::-webkit-scrollbar-corner {
  background: transparent;
}

::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  background-clip: content-box;
  border: 3px solid transparent;
  border-radius: var(--r-pill);
}

::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
  background-clip: content-box;
}

[hidden] {
  display: none !important;
}

/* ── Типографика (шкала 5.2) ─────────────────────────────────────────────── */
.t-hero {
  font-size: var(--t-hero-size);
  line-height: var(--t-hero-lh);
  font-weight: var(--t-hero-wt);
  letter-spacing: var(--t-hero-tr);
  font-variant-numeric: tabular-nums;
}

.t-large-title {
  font-size: var(--t-large-size);
  line-height: var(--t-large-lh);
  font-weight: var(--t-large-wt);
  letter-spacing: var(--t-large-tr);
}

.t-title1 {
  font-size: var(--t-title1-size);
  line-height: var(--t-title1-lh);
  font-weight: var(--t-title1-wt);
  letter-spacing: var(--t-title1-tr);
}

.t-title2 {
  font-size: var(--t-title2-size);
  line-height: var(--t-title2-lh);
  font-weight: var(--t-title2-wt);
  letter-spacing: var(--t-title2-tr);
}

.t-title3 {
  font-size: var(--t-title3-size);
  line-height: var(--t-title3-lh);
  font-weight: var(--t-title3-wt);
  letter-spacing: var(--t-title3-tr);
}

.t-headline {
  font-size: var(--t-headline-size);
  line-height: var(--t-headline-lh);
  font-weight: var(--t-headline-wt);
  letter-spacing: var(--t-headline-tr);
}

.t-body {
  font-size: var(--t-body-size);
  line-height: var(--t-body-lh);
  font-weight: var(--t-body-wt);
  letter-spacing: var(--t-body-tr);
}

.t-subhead {
  font-size: var(--t-subhead-size);
  line-height: var(--t-subhead-lh);
  font-weight: var(--t-subhead-wt);
  letter-spacing: var(--t-subhead-tr);
}

.t-footnote {
  font-size: var(--t-footnote-size);
  line-height: var(--t-footnote-lh);
  font-weight: var(--t-footnote-wt);
  letter-spacing: var(--t-footnote-tr);
}

.t-caption {
  font-size: var(--t-caption-size);
  line-height: var(--t-caption-lh);
  font-weight: var(--t-caption-wt);
  letter-spacing: var(--t-caption-tr);
}

/* Micro-caps: БУМАГА, LIVE, BT */
.t-micro {
  font-size: var(--t-micro-size);
  line-height: var(--t-micro-lh);
  font-weight: var(--t-micro-wt);
  letter-spacing: var(--t-micro-tr);
  text-transform: uppercase;
  font-feature-settings: "case" 1;
}

/* slug, id, логи */
.t-mono,
.mono {
  font-family: var(--font-mono);
  font-size: var(--t-mono-size);
  line-height: var(--t-mono-lh);
  font-weight: var(--t-mono-wt);
  letter-spacing: var(--t-mono-tr);
  font-variant-ligatures: none;
}

/* Живые числа: табличные цифры, ширина не прыгает. Знак минуса — U+2212. */
.num {
  font-variant-numeric: tabular-nums;
  font-feature-settings: var(--num-features);
  white-space: nowrap;
}

.label-2 { color: var(--label-2); }
.label-3 { color: var(--label-3); }
.is-win { color: var(--win); }
.is-loss { color: var(--loss-text); }
.is-be { color: var(--be); }
.is-warn { color: var(--warn); }
.is-resolving { color: var(--resolving); }
.is-accent { color: var(--accent); }

/* ── Иконки из спрайта icons.svg: <svg class="icon"><use href="#i-now"/></svg> ── */
.icon {
  display: inline-block;
  width: 24px;
  height: 24px;
  vertical-align: middle;
  color: inherit;
  flex: none;
}

.icon--16 { width: 16px; height: 16px; }
.icon--20 { width: 20px; height: 20px; }
.icon--28 { width: 28px; height: 28px; }
.icon--32 { width: 32px; height: 32px; }

/* ── Поверхности ─────────────────────────────────────────────────────────── */
.e1 {
  background: var(--e1-bg);
  box-shadow: var(--e1-shadow);
}

.e2 {
  background: var(--e2-bg);
  box-shadow: var(--e2-shadow);
}

.e3 {
  background: var(--e3-bg);
  box-shadow: var(--e3-shadow);
}

.glass {
  background: var(--glass);
  -webkit-backdrop-filter: var(--glass-filter);
  backdrop-filter: var(--glass-filter);
}

/* Нажатие scale(.97); наведение — только там, где оно есть (5.9) */
.pressable {
  transition: transform var(--dur-press) var(--ease-standard), opacity var(--dur-press) var(--ease-standard);
}

.pressable:active {
  transform: scale(var(--press-scale));
}

@media (hover: hover) {
  .pressable:hover {
    opacity: 0.88;
  }
}

.sr-only {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}
