/* tpvz-base.css — базовые стили, подключаемые синхронно на всех страницах.
   ────────────────────────────────────────────────────────────────────────────
   Выделено из tpvz-cursor.css при ВРЕМЕННОМ отключении кастомного курсора.
   Здесь лежит всё, что курсора не касается и должно работать всегда:
   анти-FOUC фон, базовые стили body, user-select и cursor:pointer для навбара,
   компонент-переключатель .am-switch (панель).

   Сам курсор (правила cursor:none, .tpvz-cursor-el, скрытие скроллбаров)
   остался в public/tpvz-cursor.css — файл не удалён, просто не подключается.
   Порядок восстановления описан в frontend/CURSOR-DISABLED.md. */

/* Prevent background flash before CSS bundle loads */
html.dark {
  background-color: #0a0d1e;
  color-scheme: dark;
}
html:not(.dark) {
  background-color: #f8fafc;
  color-scheme: light;
}

/* FOUC / «полу-белый» экран: базовый фон и текст до hydration Tailwind. */
body {
  margin: 0;
  min-height: 100dvh;
  -webkit-font-smoothing: antialiased;
}
html:not(.dark) body {
  background-color: #f8fafc;
  color: #0f172a;
}
html.dark body {
  background-color: #0a0d1e;
  color: #f8fafc;
}

/* ── Nav link I-beam prevention (all pages) ──────────────────────────────────
   tpvz-shared-surface.css уже задаёт user-select:none на .pill-nav*, но он
   грузится только на страницах, собранных Vite (market, management и др.).
   Отдельные страницы (bot, panel, black, black-market) подключают только этот
   файл, поэтому правило должно жить здесь, чтобы действовать везде. */
.pill-nav *,
.pill-nav a,
.pill-nav button,
.nav-pill-links a,
.nav-icon-btn {
  user-select: none;
  -webkit-user-select: none;
}

/* Явный pointer для ссылок навбара. Селектор html:not(.tpvz-cursor-on) сохранён
   намеренно: при отключённом курсоре класс не выставляется никогда, поэтому
   правило действует всегда, а при возврате курсора логика останется прежней.
   Специфичность 0-2-1 перебивает cursor:auto!important (0-0-1) от
   prefers-reduced-motion на тех же элементах. */
html:not(.tpvz-cursor-on) .pill-nav a,
html:not(.tpvz-cursor-on) .pill-nav button,
html:not(.tpvz-cursor-on) .nav-pill-links a,
html:not(.tpvz-cursor-on) .nav-icon-btn {
  cursor: pointer !important;
}

/* ── Toggle switch (панель) ────────────────────────────────────── */
.am-switch {
    --sw-w: 46px; --sw-h: 24px; --sw-bg: rgb(131,131,131);
    --sw-c-bg: rgb(0,218,80); --sw-off: calc((var(--sw-h) - var(--c-d)) / 2);
    --sw-t: all 0.2s cubic-bezier(0.27,0.2,0.25,1.51);
    --c-d: 18px; --c-bg: #fff;
    --c-s: 1px 1px 2px rgba(146,146,146,.45);
    --c-cs: -1px 1px 2px rgba(163,163,163,.45);
    display: inline-block;
}
.am-switch input { display: none; }
.am-switch svg { transition: var(--sw-t); position: absolute; height: auto; }
.am-switch .am-checkmark { width: 10px; color: var(--sw-c-bg); transform: scale(0); }
.am-switch .am-cross { width: 6px; color: var(--sw-bg); }
.am-slider {
    box-sizing: border-box; width: var(--sw-w); height: var(--sw-h);
    background: var(--sw-bg); border-radius: 999px;
    display: flex; align-items: center; position: relative; transition: var(--sw-t);
}
.am-circle {
    width: var(--c-d); height: var(--c-d); background: var(--c-bg);
    border-radius: inherit; box-shadow: var(--c-s);
    display: flex; align-items: center; justify-content: center;
    transition: var(--sw-t); z-index: 1; position: absolute; left: var(--sw-off);
}
.am-slider::before {
    content: ; position: absolute;
    width: calc(var(--c-d) / 2); height: calc(var(--c-d) / 4 - 1px);
    left: calc(var(--sw-off) + var(--c-d) / 4);
    background: var(--c-bg); border-radius: 1px; transition: all .2s ease-in-out;
}
.am-switch input:checked + .am-slider { background: var(--sw-c-bg); }
.am-switch input:checked + .am-slider .am-checkmark { transform: scale(1); }
.am-switch input:checked + .am-slider .am-cross { transform: scale(0); }
.am-switch input:checked + .am-slider::before {
    left: calc(100% - var(--c-d) / 2 - var(--c-d) / 4 - var(--sw-off));
}
.am-switch input:checked + .am-slider .am-circle {
    left: calc(100% - var(--c-d) - var(--sw-off)); box-shadow: var(--c-cs);
}
