/* ============================================================
   NT — токены оформления. Один файл на все шаблоны.
   Раньше блок :root дублировался в dashboard.html, debtor.html,
   login.html и fssp_workspace.html — четыре копии, которые уже
   начали расходиться. Здесь он один.

   Две палитры:
     [data-theme="dark"]  — ночная, исходная NT Black
     [data-theme="light"] — дневная

   Светлая НЕ является инверсией тёмной. Золото #D4A574 на белом
   даёт контраст 2:1 — текст им нечитаем. Поэтому в дневной теме
   для текста берётся более глубокий оттенок #8A5A2B (5.9:1 на
   карточке), а исходное золото остаётся только в заливках,
   границах и на графике.

   Проверенные контрасты дневной темы на карточке #FFFFFF:
     текст 16.5 · приглушённый 6.4 · тусклый 4.8
     золото 5.9 · успех 5.2 · внимание 5.8 · опасность 6.4
   ============================================================ */

:root {
  /* Не зависит от темы */
  --nt-r-sm: 9px;
  --nt-r: 14px;
  --nt-r-lg: 18px;
  --nt-r-pill: 100px;
  --nt-serif: 'Playfair Display', Georgia, serif;
  --nt-sans: 'Manrope', -apple-system, BlinkMacSystemFont, sans-serif;
  --nt-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, monospace;
  --nt-ease: cubic-bezier(.22, .61, .36, 1);
  --nt-dur: .25s;
}

/* ── НОЧНАЯ (исходная NT Black) ───────────────────────────── */
:root,
[data-theme="dark"] {
  color-scheme: dark;

  --nt-bg: #0A0E14;
  --nt-bg-elev: #11161F;
  --nt-bg-card: #141A24;
  --nt-bg-card-2: #0E131B;

  --nt-line: rgba(255,255,255,.07);
  --nt-line-strong: rgba(255,255,255,.12);
  --nt-hover: rgba(255,255,255,.015);
  --nt-hover-strong: rgba(255,255,255,.05);
  --nt-track: rgba(255,255,255,.07);

  --nt-txt: #F4F2ED;
  --nt-txt-dim: #9BA1AC;
  --nt-txt-faint: #5C636E;

  --nt-gold: #D4A574;
  --nt-gold-soft: #E8C9A0;
  --nt-gold-deep: #B8895A;
  --nt-gold-bg: rgba(212,165,116,.05);
  --nt-gold-bg-2: rgba(212,165,116,.12);
  --nt-gold-btn: #D4A574;
  --nt-gold-btn-hover: #E8C9A0;
  --nt-gold-btn-txt: #1A1206;

  --nt-ok: #6FA168;
  --nt-warn: #C9A24B;
  --nt-danger: #B5595A;
  --nt-danger-soft: #E88A8B;
  --nt-info: #5E8CB8;

  --nt-ok-bg: rgba(111,161,104,.10);
  --nt-ok-line: rgba(111,161,104,.30);
  --nt-warn-bg: rgba(201,162,75,.08);
  --nt-warn-line: rgba(201,162,75,.35);
  --nt-danger-bg: rgba(181,89,90,.10);
  --nt-danger-line: rgba(181,89,90,.25);
  --nt-info-bg: rgba(94,140,184,.10);
  --nt-info-line: rgba(94,140,184,.30);

  --nt-shadow: none;
  --nt-shadow-lg: 0 20px 50px rgba(0,0,0,.5);
  --nt-overlay: rgba(10,14,20,.90);
  --nt-sticky: rgba(17,22,31,.94);
}

/* ── ДНЕВНАЯ ───────────────────────────────────────────────── */
[data-theme="light"] {
  color-scheme: light;

  /* Тёплая бумага, а не чистый белый: сохраняет характер марки
     и заметно мягче для глаз при работе весь день. */
  --nt-bg: #F7F4EF;
  --nt-bg-elev: #FFFFFF;
  --nt-bg-card: #FFFFFF;
  --nt-bg-card-2: #F2EEE7;

  --nt-line: rgba(26,18,6,.10);
  --nt-line-strong: rgba(26,18,6,.18);
  --nt-hover: rgba(26,18,6,.022);
  --nt-hover-strong: rgba(26,18,6,.05);
  --nt-track: rgba(26,18,6,.09);

  --nt-txt: #1A1F28;
  --nt-txt-dim: #55606E;
  --nt-txt-faint: #6B7380;

  --nt-gold: #8A5A2B;          /* текст и акценты */
  --nt-gold-soft: #6E4520;     /* усиленный текст */
  --nt-gold-deep: #C9A06A;     /* границы */
  --nt-gold-bg: rgba(212,165,116,.14);
  --nt-gold-bg-2: rgba(212,165,116,.24);
  --nt-gold-btn: #8F5C2A;
  --nt-gold-btn-hover: #7A4E24;
  --nt-gold-btn-txt: #FFF8F0;

  --nt-ok: #3F7A3A;
  --nt-warn: #845F12;
  --nt-danger: #A33C3E;
  --nt-danger-soft: #8E2F31;
  --nt-info: #33628F;

  --nt-ok-bg: rgba(63,122,58,.10);
  --nt-ok-line: rgba(63,122,58,.32);
  --nt-warn-bg: rgba(132,95,18,.09);
  --nt-warn-line: rgba(132,95,18,.30);
  --nt-danger-bg: rgba(163,60,62,.08);
  --nt-danger-line: rgba(163,60,62,.28);
  --nt-info-bg: rgba(51,98,143,.09);
  --nt-info-line: rgba(51,98,143,.28);

  /* В тёмной теме глубину дают границы, в светлой — тень.
     Без неё карточки сливаются с фоном. */
  --nt-shadow: 0 1px 2px rgba(26,18,6,.04), 0 4px 14px rgba(26,18,6,.05);
  --nt-shadow-lg: 0 20px 50px rgba(26,18,6,.14);
  --nt-overlay: rgba(247,244,239,.88);
  --nt-sticky: rgba(255,255,255,.94);
}

/* Плавное переключение, но не для тех, кто отключил анимации */
@media (prefers-reduced-motion: no-preference) {
  html.nt-switching,
  html.nt-switching * {
    transition: background-color .28s var(--nt-ease),
                border-color .28s var(--nt-ease),
                color .28s var(--nt-ease),
                box-shadow .28s var(--nt-ease) !important;
  }
}

/* ── Переключатель ─────────────────────────────────────────── */
.nt-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 1px solid var(--nt-line-strong);
  border-radius: var(--nt-r-pill);
  padding: 5px;
  cursor: pointer;
  font-family: var(--nt-sans);
}
.nt-theme-toggle button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: none;
  border-radius: var(--nt-r-pill);
  color: var(--nt-txt-faint);
  font-family: inherit;
  font-size: 12.5px;
  font-weight: 600;
  padding: 5px 13px;
  cursor: pointer;
  transition: all var(--nt-dur) var(--nt-ease);
}
.nt-theme-toggle button:hover { color: var(--nt-txt); }
.nt-theme-toggle button[aria-pressed="true"] {
  background: var(--nt-gold-bg-2);
  color: var(--nt-gold);
}
.nt-theme-toggle svg { width: 14px; height: 14px; flex: 0 0 auto; }
.nt-theme-toggle .nt-label { }
@media (max-width: 640px) {
  .nt-theme-toggle .nt-label { display: none; }
  .nt-theme-toggle button { padding: 6px 10px; }
}

/* ── Общая база, одинаковая во всех шаблонах ───────────────── */
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: var(--nt-bg);
  color: var(--nt-txt);
  font-family: var(--nt-sans);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
:focus-visible { outline: 2px solid var(--nt-gold); outline-offset: 2px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* Скроллбар под тему — иначе в дневном режиме остаётся тёмная полоса */
* { scrollbar-color: var(--nt-line-strong) transparent; }
*::-webkit-scrollbar { width: 10px; height: 10px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
  background: var(--nt-line-strong);
  border-radius: var(--nt-r-pill);
  border: 3px solid transparent;
  background-clip: content-box;
}

/* Печать: всегда светлая, независимо от выбранной темы */
@media print {
  :root { color-scheme: light; }
  body { background: #fff; color: #000; }
  .nt-theme-toggle { display: none; }
}
