/* ============================================================
   LDS OS - ТОКЕНЫ (единый источник правды, боевой)
   ------------------------------------------------------------
   Стандарт окна 24.10.2026: design/lds-os-window-standard.md §6.
   Эталон мелких элементов - приложение Claude. Решение Р-2 (Б):
   стеклянная рама + один плотный центр, ровно два тона в окне.

   Цвет = состояние: --cool фокус и непрочитанное, --hot горит,
   --danger просрочено. Всё остальное серое. Чистого белого и
   супер-чёрного нет. Темы - data-theme="light|dark" на <html>.

   Компоненты на этих токенах - interfaces/os/ui.css (классы ui-*).
   Внизу блок старых токенов: ими ещё пользуются shell.css, rooms.css
   и DX/*.css. Новый код их не берёт; уходят вместе с этими файлами.
   ============================================================ */

:root, :root[data-theme="dark"] {
  color-scheme: dark;

  /* ── МАТЕРИАЛЫ (§6.1, §3.9) ─────────────────────────────── */
  /* Тон - синее стекло, как было до 24.10 (Алекс 24.10: «у нас всё в синих стеклянных оттенках»). */
  --bar-glass:   rgba(9,15,25,.62);    /* верхняя панель */
  --win-glass:   rgba(17,26,40,.76);   /* рама окна: заголовок, сайдбар, правая панель - один раз */
  --win-content: rgba(11,18,30,.92);   /* плотный центр окна, без своей рамки и тени */
  --win-solid:   #0c1422;              /* «Меньше прозрачности», нет backdrop-filter, закрытое окно */
  --dock-glass:  linear-gradient(180deg, rgba(32,62,94,.55), rgba(8,24,39,.85) 54%, rgba(7,20,32,.93));  /* фон дока (background, не background-color) */
  --pop-glass:   rgba(16,25,39,.95);   /* все временные слои: меню, поповеры, ⌘K, капсула, баннеры */
  --tip-bg:      rgba(8,13,22,.96);
  --scrim:       rgba(4,6,10,.40);     /* под ⌘K и под листом телефона */

  --bar-blur:  blur(20px) saturate(110%);
  --win-blur:  blur(24px) saturate(93%);
  --dock-blur: blur(22px) saturate(112%);
  --pop-blur:  blur(24px);

  /* ── ЗАЛИВКИ ПОВЕРХ СТЕКЛА ──────────────────────────────── */
  --fill-hover:        rgba(255,255,255,.06);
  --fill-selected:     rgba(255,255,255,.10);
  --fill-selected-off: rgba(255,255,255,.06);   /* выбранная строка в окне без фокуса */
  --fill-pressed:      rgba(255,255,255,.14);
  --field:             rgba(255,255,255,.05);   /* поля, композер */
  --danger-wash:       rgba(239,68,68,.12);     /* просроченная строка */
  --danger-wash-strong:rgba(239,68,68,.20);     /* выбранная просроченная */
  --hot-wash:          rgba(255,157,66,.12);    /* полоса «группы молчат» */
  --bubble:            rgba(255,255,255,.07);   /* сообщение Алекса */
  --code-inline:       rgba(255,255,255,.08);
  --code-block:        rgba(0,0,0,.25);
  --scroll-thumb:      rgba(255,255,255,.14);
  --snap-fill:         rgba(207,224,255,.06);   /* подсказка прилипания окна */
  --snap-edge:         rgba(207,224,255,.30);

  /* ── ЛИНИИ ──────────────────────────────────────────────── */
  --line:        rgba(255,255,255,.09);   /* между зонами, под заголовком */
  --line-soft:   rgba(255,255,255,.05);   /* кромка карточек */
  --line-strong: rgba(255,255,255,.12);   /* кромка окна в фокусе, дока */
  --line-off:    rgba(255,255,255,.07);   /* кромка окна без фокуса */
  --line-field:  rgba(255,255,255,.12);   /* поля и композер */
  --line-focus:  rgba(207,224,255,.45);   /* кромка поля и композера в фокусе */

  /* ── ТЕКСТ: три ступени + выключенный ───────────────────── */
  --tx-1: #eef0f3;
  --tx-2: #b4bac3;
  --tx-3: #858d98;
  --tx-off: rgba(238,240,243,.32);
  --on-light:  #0f1115;   /* текст на светлой кнопке */
  --on-danger: #f4f6f8;   /* текст на красном бейдже, значок «закрыть» при наведении */
  --on-hot:    #1b1006;   /* текст на оранжевом бейдже */
  --tip-tx:    #eef0f3;   /* подсказка тёмная в обеих темах */
  --tip-tx-2:  rgba(238,240,243,.58);

  /* ── СОСТОЯНИЯ (только для состояний) ───────────────────── */
  --hot:         #ff9d42;   /* горит, риск, вероятность */
  --danger:      #ff8a8f;   /* просрочено, ошибка */
  --danger-fill: #e5484d;
  --close-hover: rgba(229,72,77,.85);
  --ok:          #4cc38a;
  --cool:        #cfe0ff;   /* фокус, непрочитанное, текущий шаг, вылет */
  --focus-ring:  rgba(207,224,255,.60);

  /* ── ТЕНИ (у рамы и поверхностей внутри окна теней нет) ─── */
  --shadow-win:     0 24px 64px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.25);
  --shadow-win-off: 0 12px 32px rgba(0,0,0,.30);
  --shadow-pop:     0 12px 32px rgba(0,0,0,.40), 0 2px 6px rgba(0,0,0,.20);
  --shadow-dock:    0 8px 24px rgba(0,0,0,.35);

  /* ── ШРИФТЫ (§6.2) ──────────────────────────────────────── */
  --font-ui:   -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif;
  --font-num:  'Space Grotesk', var(--font-ui);   /* только словомарк EDEM и числа от 20 px */
  --font-code: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace;   /* код, ID, kbd */

  /* ── ШКАЛА ТЕКСТА (§6.3): font: var(--type-*) ───────────── */
  --type-micro: 500 11px/14px var(--font-ui);   /* бейдж, kbd, «демо», подписи дока */
  --type-meta:  400 12px/16px var(--font-ui);   /* время, вторая линия, заголовки групп, чипы */
  --type-ui:    400 13px/18px var(--font-ui);   /* строки, кнопки, меню, вкладки, заголовок окна */
  --type-read:  400 14px/21px var(--font-ui);   /* текст детали, лента в правой панели */
  --type-prose: 400 15px/22px var(--font-ui);   /* лента Дома, композер, поле ⌘K */
  --type-title: 600 17px/24px var(--font-ui);   /* заголовок детали */
  --type-hero:  600 22px/28px var(--font-ui);   /* «Что сделаем?» */
  --type-num:   500 28px/32px var(--font-num);  /* счётчики Центра */

  /* ── ВЫСОТЫ (§6.4) ──────────────────────────────────────── */
  --h-bar: 32px;            /* верхняя панель */
  --h-titlebar: 40px;       /* строка заголовка окна */
  --h-toolbar: 40px;        /* тулбар раздела */
  --h-action-row: 26px;     /* строка действия в ленте */
  --h-progress-row: 24px;   /* строка хода, строка под композером */
  --h-group: 28px;          /* заголовок группы, шапка карточки */
  --h-menu-item: 28px;
  --h-row: 30px;            /* строка сайдбара и карточки */
  --row-step: 32px;
  --h-tab: 32px;
  --h-row-table: 36px;      /* строка таблицы, ⌘K, «Всё», полоса устаревания */
  --h-row-list: 44px;       /* строка списка в одну строку с чипом, строка формы */
  --h-row-2: 52px;          /* строка в две строки, уведомление */
  --h-btn-s: 28px;
  --h-btn: 32px;
  --h-btn-l: 36px;
  --h-ibtn: 28px;           /* кнопка-иконка, одна на систему */
  --h-field: 32px;
  --h-seg: 28px;
  --h-chip: 24px;
  --h-dock: 52px;
  --w-dock-tile: 70px;
  --h-dock-tile: 44px;

  /* ── ШИРИНЫ ЗОН ОКНА (§3.3, §3.6) ───────────────────────── */
  --w-sidebar: 240px;       /* 200-320 */
  --w-panel: 340px;         /* правая панель, 300-480 */
  --w-list: 340px;          /* список в «Список + деталь», 280-420 */
  --w-convo: 720px;         /* колонка разговора */
  --w-detail: 760px;

  /* ── ОТСТУПЫ: шкала 2 · 4 · 8 · 12 · 16 · 24 · 32 ──────── */
  --pad-sidebar: 8px;
  --pad-content: 24px;      /* телефон 16 */
  --pad-panel: 12px;
  --gap-cards: 8px;

  /* ── РАДИУСЫ, концентрически (§6.6) ─────────────────────── */
  --r-kbd: 4px;        /* kbd, инлайн-код, полосы скелета */
  --r-subject: 5px;    /* чип предмета */
  --r-chip: 6px;       /* чип, подсказка, пункт меню, выбранный сегмент */
  --r-ctl: 8px;        /* кнопки, строки, поля, сегмент */
  --r-card: 10px;      /* карточки, меню, тосты, блок кода, группы настроек */
  --r-win: 12px;       /* окно, поповеры, ⌘K, капсула, баннер */
  --r-composer: 14px;  /* композер, пузырь, поповер переключателя */
  --r-tile: 13px;      /* плитка дока */
  --r-dock: 18px;      /* обойма дока */
  --r-round: 999px;

  /* ── ДВИЖЕНИЕ (§6.8): одна кривая ───────────────────────── */
  --ease: cubic-bezier(.65,0,.35,1);
  --dur-hover: 120ms;
  --dur-pop: 160ms;        /* поповер, меню, подсказка */
  --dur-panel: 180ms;      /* сайдбар и правая панель */
  --dur-open: 200ms;
  --dur-close: 180ms;
  --dur-snap: 200ms;
  --dur-minimize: 240ms;
  --dur-liftoff: 420ms;    /* вылет (канон) */
  --pop-shift: 4px;        /* сдвиг появления поповера */
  --open-scale: .98;       /* открытие окна */

  /* ── СЛОИ (§2.1): сцена → окна → док → панель → поповеры → ⌘K → капсула → баннеры → подсказка */
  --z-windows: 10;
  --z-dock: 800;
  --z-bar: 810;
  --z-popover: 900;
  --z-palette: 910;
  --z-capsule: 920;
  --z-banner: 930;
  --z-tooltip: 940;
}

:root[data-theme="light"] {
  color-scheme: light;

  --bar-glass: rgba(244,245,247,.66);
  --win-glass: rgba(246,247,249,.82);
  --win-content: rgba(250,250,251,.95);
  --win-solid: #f2f3f5;
  --dock-glass: rgba(246,247,249,.74);
  --pop-glass: rgba(252,252,253,.95);
  --tip-bg: rgba(24,26,31,.94);
  --scrim: rgba(20,24,32,.24);

  --fill-hover: rgba(0,0,0,.045);
  --fill-selected: rgba(0,0,0,.08);
  --fill-selected-off: rgba(0,0,0,.05);
  --fill-pressed: rgba(0,0,0,.11);
  --field: rgba(0,0,0,.035);
  --danger-wash: rgba(201,58,69,.10);
  --danger-wash-strong: rgba(201,58,69,.17);
  --hot-wash: rgba(217,119,26,.12);
  --bubble: rgba(0,0,0,.055);
  --code-inline: rgba(0,0,0,.06);
  --code-block: rgba(0,0,0,.05);
  --scroll-thumb: rgba(0,0,0,.16);
  --snap-fill: rgba(59,91,143,.06);
  --snap-edge: rgba(59,91,143,.30);

  --line: rgba(0,0,0,.09);
  --line-soft: rgba(0,0,0,.05);
  --line-strong: rgba(0,0,0,.12);
  --line-off: rgba(0,0,0,.07);
  --line-field: rgba(0,0,0,.12);
  --line-focus: rgba(59,91,143,.45);

  --tx-1: #16191e;
  --tx-2: #4a525c;
  --tx-3: #6b737d;
  --tx-off: rgba(22,25,30,.32);
  --on-light: #f4f6f8;   /* главная кнопка в светлой теме тёмная: текст на ней светлый */

  --hot: #d9771a;
  --danger: #c93a45;
  --ok: #2e9d6a;
  --cool: #3b5b8f;
  --focus-ring: rgba(59,91,143,.55);

  --shadow-win:     0 24px 64px rgba(16,20,28,.18), 0 2px 8px rgba(16,20,28,.10);
  --shadow-win-off: 0 12px 32px rgba(16,20,28,.12);
  --shadow-pop:     0 12px 32px rgba(16,20,28,.16), 0 2px 6px rgba(16,20,28,.08);
  --shadow-dock:    0 8px 24px rgba(16,20,28,.14);
}

/* Меньше прозрачности: Настройки › Вид, системная настройка, браузер без backdrop-filter.
   Окно, панель и док сплошные, размытия нет. Селектор с [data-theme] - сильнее темы. */
:root[data-transparency="less"] {
  --win-glass: var(--win-solid); --win-content: var(--win-solid);
  --bar-glass: var(--win-solid); --dock-glass: var(--win-solid);
  --bar-blur: none; --win-blur: none; --dock-blur: none; --pop-blur: none;
}
@media (prefers-reduced-transparency: reduce) {
  :root, :root[data-theme] {
    --win-glass: var(--win-solid); --win-content: var(--win-solid);
    --bar-glass: var(--win-solid); --dock-glass: var(--win-solid);
    --bar-blur: none; --win-blur: none; --dock-blur: none; --pop-blur: none;
  }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  :root, :root[data-theme] {
    --win-glass: var(--win-solid); --win-content: var(--win-solid);
    --bar-glass: var(--win-solid); --dock-glass: var(--win-solid);
  }
}

/* Телефон (§6.3, §6.4): текст крупнее, строки под палец. */
@media (max-width: 720px) {
  :root {
    --type-meta:  400 13px/18px var(--font-ui);
    --type-ui:    400 15px/20px var(--font-ui);
    --type-read:  400 16px/24px var(--font-ui);
    --type-prose: 400 16px/24px var(--font-ui);
    --h-row: 48px; --row-step: 48px;
    --pad-content: 16px;
  }
}

/* Движение: при reduced-motion только прозрачность за 120 мс (§6.8). */
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-pop: 120ms; --dur-panel: 120ms; --dur-open: 120ms; --dur-close: 120ms;
    --dur-snap: 120ms; --dur-minimize: 120ms; --dur-liftoff: 120ms;
    --pop-shift: 0px; --open-scale: 1;
  }
}

/* ============================================================
   СТАРЫЕ ТОКЕНЫ (до стандарта 24.10)
   ------------------------------------------------------------
   Живут, пока ими пользуются shell.css, rooms.css, DX/*.css и
   старые лаборатории. Новый код их не берёт. Имена, которые
   стандарт переопределил (--scrim, --line-strong, --ok, --danger,
   --danger-wash, --cool, --focus-ring), заданы выше по §6.1.
   Шрифты переведены на системный по §6.2 (Manrope и JetBrains
   Mono в сборке не было).
   ============================================================ */
:root {
  /* поверхности */
  --void:         #060709;
  --surface-0:    #060709;
  --surface-1:    #0a0e15;
  --surface-2:    #0f141d;
  --surface-3:    #151b26;
  --surface-4:    #1c2431;
  --surface-inset:#04060a;

  /* текст */
  --text-primary:   #eef1f4;
  --text-secondary: #aab2bd;
  --text-tertiary:  #767f8b;
  --text-faint:     #4a525c;
  --text-inverse:   #06070a;

  /* линии */
  --line-1: rgba(255,255,255,.06);
  --line-2: rgba(255,255,255,.10);
  --line-3: rgba(255,255,255,.16);

  /* акцент и холодный подсвет */
  --accent:        #ff9d42;
  --accent-strong: #ffb266;
  --accent-wash:   rgba(255,157,66,.12);
  --accent-glow:   rgba(255,157,66,.35);
  --cool-wash:     rgba(207,224,255,.10);
  --app-accent:    var(--accent);

  /* голограммы и узлы сада (rooms.css, прототип readout) */
  --holo-panel:     rgba(13,18,27,.55);
  --holo-edge-cool: rgba(170,198,255,.38);
  --node-fresh:   #cfe0ff;
  --node-related: #7d93d9;
  --node-stale:   #ff9d42;

  /* семантика */
  --ok-wash:   rgba(143,182,164,.12);
  --warn:      #d8b57e;
  --warn-wash: rgba(216,181,126,.12);

  /* типографика */
  --font-display: 'Space Grotesk', var(--font-ui);
  --font-body:    var(--font-ui);
  --font-mono:    var(--font-code);
  --w-medium:500; --w-semibold:600; --w-bold:700;
  --fs-h2:24px; --fs-h3:20px;
  --fs-body-lg:18px; --fs-body:15px; --fs-body-sm:13px;
  --fs-label:12px; --fs-micro:11px; --fs-nano:9px;
  --lh-normal:1.5; --lh-relaxed:1.65;
  --ls-snug:-.01em; --ls-wide:.08em; --ls-wider:.14em; --ls-widest:.22em;

  /* отступы и радиусы */
  --space-2:8px;  --space-3:12px; --space-4:16px;
  --space-5:24px; --space-6:32px; --space-7:48px;
  --radius-xs:4px; --radius-sm:8px; --radius-md:10px;
  --radius-lg:14px; --radius-xl:18px; --radius-pill:999px;

  /* тени и свечения */
  --shadow-2: 0 6px 20px rgba(0,0,0,.45);
  --shadow-3: 0 18px 48px rgba(0,0,0,.55);
  --shadow-4: 0 32px 80px rgba(0,0,0,.62);
  --bevel-top:  inset 0 1px 0 rgba(255,255,255,.08);
  --glow-cool:  0 0 24px rgba(207,224,255,.20);
  --glow-focus: 0 0 0 3px var(--focus-ring);

  /* движение */
  --dur-1:120ms; --dur-2:240ms; --dur-3:420ms; --dur-4:900ms;
  --dur-breath:16s;
  --ease-out:    cubic-bezier(.16,1,.30,1);
  --ease-in-out: cubic-bezier(.65,0,.35,1);
  --ease-cine:   cubic-bezier(.22,.61,.36,1);
  --transition-control:
    color var(--dur-1) var(--ease-out),
    background-color var(--dur-1) var(--ease-out),
    border-color var(--dur-1) var(--ease-out),
    box-shadow var(--dur-2) var(--ease-out),
    opacity var(--dur-2) var(--ease-out);

  /* геометрия старого хрома и слои */
  --chrome-top: 44px;
  --chrome-dock: 60px;
  /* Дым целиком ЗА содержимым (2026-08-11): атмосфера не закрывает интерфейс. */
  --z-atmos:0; --z-home:2;
  --z-window:20; --z-chrome:40;
  --z-launcher:50; --z-modal:60; --z-tip:70;
}

:root[data-theme="light"] {
  --void:         #e9ecf1;
  --surface-0:    #e9ecf1;
  --surface-1:    #f3f5f9;
  --surface-2:    #fbfcfe;
  --surface-3:    #ffffff;
  --surface-4:    #eef1f7;
  --surface-inset:#e3e7ee;

  --text-primary:   #12161d;
  --text-secondary: #414a58;
  --text-tertiary:  #6b7482;
  --text-faint:     #9aa3b0;
  --text-inverse:   #ffffff;

  --line-1: rgba(20,35,70,.07);
  --line-2: rgba(20,35,70,.12);
  --line-3: rgba(20,35,70,.18);

  --accent:        #d97516;
  --accent-strong: #ef8a2a;
  --accent-wash:   rgba(217,117,22,.10);
  --accent-glow:   rgba(217,117,22,.28);
  --cool-wash:     rgba(74,111,192,.09);

  --holo-panel:     rgba(255,255,255,.72);
  --holo-edge-cool: rgba(74,111,192,.30);
  --node-fresh:#4a6fc0; --node-related:#8ba3d4; --node-stale:#d97516;

  --warn:#a97a2c;

  --shadow-2: 0 6px 20px rgba(20,35,70,.10);
  --shadow-3: 0 18px 48px rgba(20,35,70,.14);
  --shadow-4: 0 32px 80px rgba(20,35,70,.18);
  --bevel-top:  inset 0 1px 0 rgba(255,255,255,.9);
  --glow-cool:  0 0 24px rgba(74,111,192,.14);
}

@media (prefers-reduced-motion: reduce) {
  :root { --dur-1:1ms; --dur-2:1ms; --dur-3:1ms; --dur-4:1ms; --dur-breath:.001ms; }
}
