/* Тема nova — шрифт и токены. Источник стиля: макеты MIG-305 (ЛК бота).
   Здесь только переменные и @font-face; правила — в base.css и components.css. */

/* Onest, переменный (100–900), тот же файл, что в ЛК бота. Свой файл, не Google Fonts. */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../../fonts/onest-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../../fonts/onest-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('../../fonts/onest-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  color-scheme: dark;

  /* Цвета. Один акцент — лайм. Тёплый — «внимание», коралл — «опасно/истекла». */
  --nv-bg: #101010;
  --nv-surface: #1E1E1E;        /* карточки, листы */
  --nv-surface-2: #262626;      /* активный пункт меню, номера шагов, наведение */
  --nv-surface-3: #2A2A2A;      /* подложка иконок, нажатие */
  --nv-surface-hover: #333333;  /* наведение на серую кнопку */
  --nv-line: rgba(255, 255, 255, 0.08);
  --nv-line-strong: rgba(255, 255, 255, 0.18);
  --nv-text: #FFFFFF;
  --nv-text-2: rgba(255, 255, 255, 0.72);
  --nv-text-3: #9A9A9A;         /* 5.9:1 на карточке — проходит AA */
  /* Лайм — бюджет (.interface-design/system.md): одна главная кнопка экрана, кольцо фокуса,
     точка статуса «работает». Больше нигде — ни в меню, ни в ссылках, ни в бейджах. */
  --nv-accent: #EBFF57;
  --nv-accent-hover: #F4FF9A;
  --nv-accent-soft: rgba(235, 255, 87, 0.14);
  --nv-on-accent: #101010;
  /* Нейтральная «главная» кнопка — у остальных карточек, где лайм уже занят. */
  --nv-solid: #E8E8E8;
  --nv-solid-hover: #FFFFFF;
  --nv-on-solid: #101010;
  /* Бейджи, метки, скидки — нейтральная плашка. */
  --nv-badge-bg: var(--nv-surface-3);
  --nv-badge-text: var(--nv-text-2);
  /* Выбранное в группе выбора: рамка 1.5 px и галочка — белым, без заливки. */
  --nv-selected: var(--nv-text);
  --nv-warn-bg: rgba(255, 181, 71, 0.12);
  --nv-warn-line: rgba(255, 181, 71, 0.35);
  --nv-warn-text: #FFD9A0;
  --nv-warn-icon: #FFC46B;
  --nv-danger: #FF8A73;
  --nv-danger-soft: rgba(255, 138, 115, 0.14);
  --nv-danger-line: rgba(255, 138, 115, 0.40);
  --nv-overlay: rgba(0, 0, 0, 0.62);

  /* Шрифт и шкала — шесть размеров на всё. */
  --nv-font: 'Onest', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --nv-mono: ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
  --nv-text-xs: 13px;   /* подписи, бейджи */
  --nv-text-sm: 15px;   /* описания, вторичный текст */
  --nv-text-md: 17px;   /* основной текст, кнопки, строки, поля */
  --nv-text-lg: 22px;   /* заголовок секции, листа */
  --nv-text-xl: 28px;   /* заголовок страницы */
  --nv-text-2xl: 32px;  /* главная цифра: срок, сумма */
  --nv-weight-regular: 400;
  --nv-weight-medium: 600;
  --nv-weight-bold: 700;
  --nv-leading-tight: 1.15;
  --nv-leading: 1.45;

  /* Отступы — шаг 4 px. */
  --nv-space-1: 4px;
  --nv-space-2: 8px;
  --nv-space-3: 12px;
  --nv-space-4: 16px;
  --nv-space-5: 20px;
  --nv-space-6: 24px;
  --nv-space-8: 32px;
  --nv-space-10: 40px;
  --nv-space-12: 48px;

  /* Четыре уровня отступов (system.md). Телефон здесь, десктоп ≥ 1024 — ниже.
     1 микро: подпись ↔ значение, иконка ↔ текст;  2 внутри компонента: поля и строки;
     3 между связанными: карточки в стопке, заголовок секции → её содержимое;
     4 между группами: секция ↔ секция. */
  --nv-gap-micro: var(--nv-space-1);
  --nv-pad-card: var(--nv-space-5);     /* поля карточки — одинаковые со всех сторон */
  --nv-gap-rows: var(--nv-space-3);     /* строки внутри карточки, поля формы */
  --nv-gap-related: var(--nv-space-3);
  --nv-gap-group: var(--nv-space-8);
  --nv-page-top: var(--nv-space-6);
  --nv-page-head-gap: var(--nv-space-6); /* заголовок страницы → первый блок */

  /* Скругления. */
  --nv-radius-sm: 12px;   /* поля, маленькие кнопки, иконки */
  --nv-radius-md: 16px;   /* кнопки, уведомления */
  --nv-radius-lg: 20px;   /* карточки */
  --nv-radius-sheet: 24px;
  --nv-radius-pill: 999px;

  /* Размеры. */
  --nv-tap: 44px;          /* минимальная зона нажатия */
  --nv-btn-h: 52px;
  --nv-btn-h-lg: 56px;
  --nv-column: 560px;      /* колонка на телефоне и узком планшете */
  --nv-content: 1160px;    /* максимум ширины контента на десктопе */
  --nv-side-w: 248px;      /* сайдбар на десктопе */
  --nv-rail-w: 88px;       /* рейка на планшете */
  --nv-nav-h: 64px;

  /* Безопасные зоны: env() для iPhone, --nv-tg-* выставляет base.js внутри Telegram. */
  --nv-safe-top: max(env(safe-area-inset-top, 0px), var(--nv-tg-top, 0px));
  --nv-safe-bottom: max(env(safe-area-inset-bottom, 0px), var(--nv-tg-bottom, 0px));

  --nv-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  --nv-dur: 180ms;
}

@media (min-width: 1024px) {
  :root {
    --nv-pad-card: var(--nv-space-6);
    --nv-gap-rows: var(--nv-space-4);
    --nv-gap-related: var(--nv-space-4);
    --nv-gap-group: var(--nv-space-10);
    --nv-page-top: var(--nv-space-8);
  }
}
