/* ============================================================
   PRESS — облик сайта-приёмной по образцу `press-01`
   (design-system/reference/hallmark/obraztsy/press-01).

   Что взято из образца: чернильно-чёрная «печатная» подложка с тёплым красным
   уклоном, один хроматический голос — сигнальный красный, квадратные углы,
   волосяные линейки вместо теней, моно-метки капсом с широким трекингом.

   Что изменено осознанно:
   · шрифты. У Bricolage Grotesque и Fraunces из образца КИРИЛЛИЦЫ НЕТ — на нашем
     русском интерфейсе они не появились бы нигде. Взяты кириллические аналоги того
     же темперамента: Unbounded (дисплей), Golos Text (текст), JetBrains Mono
     (данные и метки — он и в образце). Все три лежат локально, наружу сайт не ходит;
   · серифный текст образца не перенесён: основная поверхность здесь — таблица
     заявок, её набирают гротеском, а не серифом;
   · декоративный «сдвиг печати» (off-register ghosts) не взят: это приём витрины
     типографа, на рабочем экране он мешает читать.

   Слой лежит ПОВЕРХ nova.css и переопределяет её токены — компоненты и шаблоны
   не переписаны. Nova остаётся общей базой семи проектов, её файл не тронут.
   ============================================================ */

@import url("shrifty.f6d94d9fd9c6.css");

/* Цвета заданы дважды: сначала обычным hex, следом тот же цвет в oklch. Браузер,
   понимающий oklch, берёт второе значение и получает ровный тёплый ряд из образца;
   не понимающий — молча остаётся на первом и видит ту же палитру. Без пары страница
   рассыпается: браузер отбрасывает непонятое свойство целиком, фон и текст остаются
   от родителя, и получается светлый текст на светлом фоне (контраст 1.01 — поймано
   детектором `scripts/page_check.mjs`, а не глазами: наш Chrome oklch понимает).
   Hex-значения не подобраны на глаз, а сняты отрисовкой каждого oklch в canvas. */
:root{
  /* — Подложка пресса — */
  --nv-bg:#0c0605;                       /* чернильно-чёрный с тёплым уклоном, не #000 */
  --nv-bg:oklch(13% 0.014 25);
  --nv-bg-deep:#170c0b;
  --nv-bg-deep:oklch(17% 0.018 25);
  --nv-surface:#170c0b;                  /* панель, карточка */
  --nv-surface:oklch(17% 0.018 25);
  --nv-surface-2:#241716;                /* приподнятое, наведение */
  --nv-surface-2:oklch(22% 0.022 24);
  --nv-surface-ink:#f5ecea;              /* «чернильная» поверхность инвертируется:
                                            на тёмной подложке главная кнопка светлая */
  --nv-surface-ink:oklch(95% 0.010 32);
  --nv-field:#080303;                    /* поле ввода — глубже подложки, как вдавленное */
  --nv-field:oklch(11% 0.012 25);

  /* — Текст: тёплая костяная бумага — */
  --nv-text:#f5ecea;
  --nv-text:oklch(95% 0.010 32);
  --nv-text-muted:#b5a7a5;
  --nv-text-muted:oklch(74% 0.016 28);
  --nv-text-dim:#988886;
  --nv-text-dim:oklch(64% 0.020 26);
  --nv-on-ink:#0c0605;                   /* тёмный текст на светлой кнопке */
  --nv-on-ink:oklch(13% 0.014 25);

  /* — Линейки — */
  --nv-border:#3d2f2e;
  --nv-border:oklch(32% 0.020 24);
  --nv-border-strong:#5f4e4d;
  --nv-border-strong:oklch(44% 0.024 22);

  /* — Единственный хроматический голос — */
  --nv-accent:#e23439;
  --nv-accent:oklch(60% 0.21 25);
  --nv-accent-hover:#f4514f;
  --nv-accent-hover:oklch(66% 0.20 25);
  --nv-accent-soft:rgba(226,52,57,.16);
  --nv-accent-soft:oklch(60% 0.21 25 / .16);
  --nv-accent-glow:rgba(226,52,57,.28);
  --nv-accent-glow:oklch(60% 0.21 25 / .28);
  --nv-on-accent:#fdf2f0;
  --nv-on-accent:oklch(97% 0.012 30);

  /* — Семантика в тон подложке — */
  --nv-success:#53be70;
  --nv-success:oklch(72% 0.15 150);
  --nv-warning:#e3ae28;
  --nv-warning:oklch(78% 0.15 85);
  --nv-danger:#f14d4c;
  --nv-danger:oklch(65% 0.20 25);

  /* — Пресс, а не мягкое приложение: углы прямые — */
  --nv-r-sm:0;
  --nv-r:0;
  --nv-r-lg:0;
  --nv-r-pill:0;

  /* — Тени сняты: на чёрном они не читаются, разделяет линейка — */
  --nv-shadow-card:none;
  --nv-shadow-hover:none;

  --nv-font-display:"Unbounded",system-ui,sans-serif;
  --nv-font-body:"Golos Text",system-ui,-apple-system,"Segoe UI",sans-serif;
  --nv-font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
}

body,.nv-body{
  background:var(--nv-bg);color:var(--nv-text);
  font-family:var(--nv-font-body);
  -webkit-font-smoothing:antialiased;
}

/* Заголовки — дисплейным, плотно. Вес умеренный: на чёрном светлый текст оптически
   тяжелее, и вес 800 из Nova даёт заливку вместо буквы. */
.nv-h1,.nv-h2,.nv-h3,.logo,
main.wrap h1.nv-h2,main.wrap h2.nv-h2,
.nv-panel__head h1,.nv-panel__head h2{
  font-family:var(--nv-font-display);
  font-weight:600;letter-spacing:-.03em;
}

/* Данные набираются моно — ИНН, суммы, даты, счётчики. Это и приём образца
   (моно-метки), и польза: цифры в колонке выравниваются по разрядам. */
.nv-num,.nv-table .nv-num,time,.nv-pill{font-family:var(--nv-font-mono)}

/* Метка колонки в узком виде таблицы и служебные подписи — моно капсом с широким
   трекингом, как спецификация на оттиске. */
.tabl td::before{font-family:var(--nv-font-mono);letter-spacing:.16em}

/* Панель — прямоугольник на линейке, без тени и без скругления. */
.nv-card,.nv-panel{
  background:var(--nv-surface);border:1px solid var(--nv-border);box-shadow:none;
}

/* Шапка: тонкая линейка снизу, подложка та же — полоса набора, а не «шапка сайта». */
.shapka{background:var(--nv-bg);border-bottom:1px solid var(--nv-border)}
.logo{letter-spacing:-.02em}
.logo em{color:var(--nv-accent);font-weight:400}

/* Поле ввода — вдавленное, с линейкой; фокус подсвечивается красным. */
.nv-input{
  background:var(--nv-field);border:1px solid var(--nv-border);
  border-radius:0;color:var(--nv-text);
}
.nv-input::placeholder{color:var(--nv-text-dim)}
.nv-input:focus{border-color:var(--nv-accent);box-shadow:0 0 0 2px var(--nv-accent-soft)}

/* Кнопки. Главное действие — светлая плашка на чёрном (инверсия «чернильной»
   кнопки образца), вторичное — контур, призрачное — только текст. */
.nv-btn{border-radius:0;font-family:var(--nv-font-body);font-weight:600}
.nv-btn--secondary{background:transparent;border-color:var(--nv-border-strong);color:var(--nv-text)}
.nv-btn--secondary:hover{border-color:var(--nv-text-muted);background:var(--nv-surface-2)}
.nv-btn--ghost{color:var(--nv-text-muted)}
.nv-btn--ghost:hover{color:var(--nv-text);background:var(--nv-surface-2)}

/* Пилюля статуса становится плашкой-меткой: прямые углы, моно, капс. */
.nv-pill{
  border-radius:0;text-transform:uppercase;letter-spacing:.1em;font-size:11px;
  border:1px solid var(--nv-border-strong);background:transparent;color:var(--nv-text-muted);
}
.nv-pill--success{border-color:var(--nv-success);color:var(--nv-success);background:transparent}

/* Выбранный фильтр в панели помечен тем же классом, что и «успех», — но выбор это не
   успех, и зелёная плашка среди статусов читается как оценка. Здесь фильтры — набор
   вкладок, и активная берёт единственный акцент: красную заливку. */
.filtry .nv-pill--success{
  border-color:var(--nv-accent);background:var(--nv-accent);color:var(--nv-on-accent);
}
.nv-pill--warning{border-color:var(--nv-warning);color:var(--nv-warning);background:transparent}
.nv-pill--danger{border-color:var(--nv-danger);color:var(--nv-danger);background:transparent}

/* Таблица — набор на линейках, без заливок строк. */
.nv-table th{
  font-family:var(--nv-font-mono);text-transform:uppercase;letter-spacing:.14em;
  font-size:11px;color:var(--nv-text-dim);border-bottom:1px solid var(--nv-border-strong);
}
.nv-table td{border-bottom:1px solid var(--nv-border)}
.nv-table tbody tr:hover{background:var(--nv-surface-2)}

/* Ссылки. Красный в образце — единственный хроматический голос, и держится он на
   редкости: одно пятно на экран. В таблице заявок ссылка в каждой строке (номер и ИНН),
   и сплошной красный превращает набор в рябь. Поэтому в тексте и таблице ссылка идёт
   цветом текста с подчёркиванием, а красный остаётся за акцентами и наведением. */
a{color:var(--nv-text);text-decoration-color:var(--nv-border-strong);
  text-underline-offset:3px}
a:hover{color:var(--nv-accent);text-decoration-color:var(--nv-accent)}
.nav a{color:var(--nv-text-muted);text-decoration:none}
.nav a:hover{color:var(--nv-text)}

/* Сообщения — плашка с линейкой слева, цвет несёт смысл, а не заливает блок. */
.soobshchenie{
  border-radius:0;background:var(--nv-surface);border:1px solid var(--nv-border);
  border-left:3px solid var(--nv-border-strong);
}
.soobshchenie--success{border-left-color:var(--nv-success);background:var(--nv-surface)}
.soobshchenie--error{border-left-color:var(--nv-danger);background:var(--nv-surface)}

.foot{color:var(--nv-text-dim);border-top:1px solid var(--nv-border);padding-top:16px;margin-top:32px}
