/* Freedom DS — тёмная рампа.
   Значения СНЯТЫ С ОТРИСОВАННОГО МАКЕТА 1b (Предфинал 1b Revolut, data-theme="dark"):
   полосы top/agents/types/how/faq = rgb(15,20,24), cabinet = rgb(23,29,34),
   income/calc/card = rgb(16,59,42), шапка --hdr = #1F262C, текст --t1 = #EAF0F2,
   приглушённый --c62 = rgba(234,240,242,.7); акцент и заливка позже переведены
   на ступени рампы ДС (green-300 и green-700) вместо подобранного вручную #5FDD97,
   границы --c1 = rgba(255,255,255,.14), линия шапки = rgba(255,255,255,.08).
   Ни одно значение не взято из старого кода и не из админской ДС.

   Правило: цвет текста берётся из того же набора, что и поверхность под ним.
   На тёмном и на брендовом зелёном — d-токены, никогда slate-*.

   ВАЖНО про селектор: набор объявлен на :root, а не под html[data-theme="dark"].
   Причина — системная тёмная тема: блоки @media (prefers-color-scheme:dark) в файлах
   страниц ссылаются на --d-*, и если объявление живёт только под data-theme="dark",
   при системной тёмной без атрибута все ссылки становятся invalid at computed-value time,
   и вся ветка токенов обнуляется (поля без рамок, полосы без заливок).
   Светлой теме эти токены не мешают: она их не использует.

   [data-force-dark] — для экранов, которые тёмные всегда (вход и регистрация 1b),
   а не по переключателю темы. */

:root {
  /* СВЕРКА С РАМПАМИ ДС (значения сняты замером с загруженного бандла):
     Green: 100 #9CE0B7 · 200 #6AD093 · 300 #39C16F · 400/500 #07B14B · 600 #099242
            700 #0C7439 · 800 #0E552F · 900 #113726 · 950 #122A23; forest #164734.
     Slate: 100 #C7CCD0 … 300 #9099A1 · 400 #747F8A · 500 #616A74 · 600 #4D565E
            700 #3A4149 · 800 #262D33 · 900 #1D2228. Base: ink #13181D, ink-800 #1D2228.
     Поверхностей тёмной темы в ДС нет (ДС светлая), поэтому лестница собрана
     ИЗ СТУПЕНЕЙ ДС: ink → ink-800 → slate-800. Выведено ровно одно значение —
     подложка страницы: ступени темнее ink в ДС не существует. */

  /* Поверхности, четыре уровня */
  --d-surface-page:   #0F1418;                    /* выведено: на ступень темнее ink */
  --d-surface-card:   var(--ink, #13181D);        /* ДС · Base Black */
  --d-surface-raised: var(--ink-800, #1D2228);    /* ДС · ink-800, он же slate-900 */
  --d-surface-elevated: var(--slate-800, #262D33); /* ДС · slate-800 — карточка поверх raised */

  /* Брендовая зелёная полоса: green-900 из рампы ДС вместо forest #164734,
     который на тёмном схлопывается с соседями */
  --d-band-brand:     var(--green-900, #113726);

  /* Текст. Приглушённый задан прозрачностью от основного — как в 1b,
     поэтому он одинаково работает на всех трёх поверхностях и на зелёной полосе. */
  --d-text-primary:   #EAF0F2;
  --d-text-muted:     rgba(234,240,242,.7);
  --d-text-on-accent: #0F1418;

  /* Границы */
  --d-border:         rgba(255,255,255,.14);
  --d-divider:        rgba(255,255,255,.08);

  /* Акцент */
  /* ступени брендовой рампы ДС: green-300 #39C16F как контур и текст,
     green-700 #0C7439 как заливка под белым текстом */
  --d-accent:         var(--green-300, #39C16F);
  --d-accent-fill:    var(--green-700, #0C7439);
  --d-accent-quiet:   rgba(57,193,111,.14);

  /* Статусы. Выведены из рамп самой ДС (tokens/colors.css: rose и orange —
     часть палитры Freedom, а не сторонний набор). В светлой теме работают
     --status-error (rose-600) и --status-warning (yellow-500); на тёмном они
     тонут, поэтому здесь берутся светлые ступени тех же рамп.
     Зелёный под ошибку не годится: он занят успехом и брендом. */
  --d-status-error:      var(--rose-300, #FDA4AF);
  --d-status-error-bg:   rgba(253,164,175,.14);
  --d-status-warning:    var(--orange-300, #FDBA74);
  --d-status-warning-bg: rgba(253,186,116,.14);

  /* Тень для тёмных поверхностей: тень на тёмном не читается,
     край держит верхняя inset-подсветка */
  --d-shadow-card:    0 8px 24px rgba(0,0,0,.5), inset 0 1px 0 rgba(255,255,255,.06);
  --d-shadow-raised:  0 12px 32px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.08);
}
