/* ============================================================
   Orgship · Design Tokens
   Палитра, типографика, тени, переходы.
   Все компоненты должны брать цвета и размеры отсюда.
   ============================================================ */

:root {
  /* ---------- Бренд MF Stream (по лого) ---------- */
  --brand-primary:       #4F7BC4;
  --brand-primary-soft:  #7A9BD7;
  --brand-primary-deep:  #2E4470;
  --brand-accent-soft:   #B8C6DC;
  --brand-graphite:      #3F4855;

  /* ---------- Тёмный режим ---------- */
  --bg-dark:           #0A0E1A;
  --bg-surface:        #0F1626;
  --bg-surface-soft:   #131C30;
  --bg-line:           #2A3656;
  --bg-line-soft:      #1F2A45;

  /* ---------- Текст ---------- */
  --text-primary:      #E6ECF5;
  --text-secondary:    #A0AEC9;
  --text-muted:        #7A8AA8;
  /* было #5B6783 (~3.4:1 на #0F1626 — ниже AA). Поднято до #8593B3
     (~4.9:1) для соответствия WCAG 1.4.3 на плейсхолдерах/мелких
     подписях. Иерархия сохранена: primary > secondary; soft —
     по-прежнему вспомогательный тон, теперь читаемый. */
  --text-soft:         #8593B3;

  /* ---------- Акцентные / неоновые ---------- */
  --accent-cyan:       #3FE0C5;
  --accent-cyan-soft:  #85EFD9;
  --accent-electric:   #4F7BC4;
  --accent-electric-soft:#7A9BD7;

  /* ---------- Цвета продуктов ---------- */
  --color-grusha:      #5DD9A8;
  --color-grusha-soft: #A5E8C8;
  --color-otc-b2c:     #9D7CFF;
  --color-otc-b2c-soft:#C5B0FF;
  --color-otc-b2b:     #7B5BFF;
  --color-otc-b2b-soft:#A38FFF;
  --color-acquiring:   #3FE0C5;
  --color-acquiring-soft:#85EFD9;
  --color-acquiring-hr:#FFB547;
  --color-acquiring-lr:#3FE0C5;

  /* ---------- Цвета статусов ---------- */
  --status-on-track:   #3FE0C5;
  --status-over:       #5DD9A8;
  --status-risk:       #FFB547;
  --status-behind:     #FF5470;
  --status-upcoming:   #5B6783;

  /* ---------- Цвета уровней (полоса в аватаре) ---------- */
  --level-founder:     #F1C972;
  --level-c-level:     #3FE0C5;
  --level-lead:        #3FE0C5;
  --level-employee:    #3FE0C5;
  --level-trial:       #7A8AA8;

  /* ---------- Шрифты ---------- */
  --font-display: "Space Grotesk", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-body:    "Inter", system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "JetBrains Mono", "IBM Plex Mono", "Consolas", "Menlo", monospace;

  /* ---------- Размеры шрифта ---------- */
  --fs-xs:   11px;
  --fs-sm:   13px;
  --fs-md:   15px;
  --fs-lg:   18px;
  --fs-xl:   22px;
  --fs-2xl:  28px;
  --fs-3xl:  36px;
  --fs-4xl:  48px;

  /* ---------- Радиусы ---------- */
  --r-sm:   4px;
  --r-md:   8px;
  --r-lg:   14px;
  --r-xl:   22px;
  --r-pill: 999px;

  /* ---------- Тени / glow ---------- */
  --shadow-card:    0 10px 32px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.25);
  --shadow-elevated: 0 18px 48px rgba(0, 0, 0, 0.55), 0 4px 10px rgba(0, 0, 0, 0.35);
  --glow-cyan:      0 0 12px var(--accent-cyan), 0 0 28px rgba(63, 224, 197, 0.45);
  --glow-soft:      0 0 8px rgba(127, 169, 224, 0.35);

  /* ---------- Переходы ---------- */
  --t-fast:   120ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-normal: 200ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-slow:   350ms cubic-bezier(0.4, 0, 0.2, 1);

  /* ---------- Слои Z ---------- */
  --z-bg:        0;
  --z-content:   10;
  --z-overlay:   100;
  --z-panel:     200;
  --z-modal:     300;
  /* Тост поднят над всем остальным намеренно. В mission.css есть слои с
     z-index 1000 и .side-panel с 1100 !important — при прежних 400 любое
     сообщение («Сохранено», «Не сохранилось») пряталось под ними, и
     действие выглядело как «кнопка не работает». Сообщение о результате
     обязано быть видно поверх любого экрана. Найдено 2026-08-18. */
  --z-toast:     2000;
  /* R-229 (2026-09-17, мега-ревью G2-1.1): `.org-tip` (подсказка «?»)
     жила как литерал `z-index: 9999` независимо в трёх файлах
     (admin.css, kpi.css, tasks.css) — `registry.js` грузит admin.css и
     kpi.css ВМЕСТЕ («Пульт»), и правка одного файла могла бы молча
     закрыть подсказку/модалку другого без единой ошибки в консоли.
     Токен даёт им общую, а не совпавшую по случайности точку правды;
     значение выше `--z-toast` намеренно — подсказка должна быть видна
     поверх любого модального слоя, который её мог открыть. */
  --z-top:       9000;

  /* ============================================================
     Координаты комнат корпуса (v5, утверждено Андреем 2026-05-15)
     ============================================================ */
  --room-bridge-top:   22%;    --room-bridge-left:   39.1%;  --room-bridge-w:   22%;     --room-bridge-h:   8.5%;
  --room-cmd-l-top:    30%;    --room-cmd-l-left:    27%;    --room-cmd-l-w:    22%;     --room-cmd-l-h:    9%;
  --room-cmd-r-top:    30%;    --room-cmd-r-left:    51%;    --room-cmd-r-w:    22%;     --room-cmd-r-h:    9%;
  --room-cross-top:    39.5%;  --room-cross-left:    25%;    --room-cross-w:    50%;     --room-cross-h:    8.5%;
  --room-bay-top:      50%;    --room-bay-w:         10.3%;  --room-bay-h:      14%;
  --room-bay-acq-left:        25.8%;
  --room-bay-grusha-left:     38.4%;
  --room-bay-arbitrage-left:  51.1%;
  --room-bay-otc-left:        63.8%;
  --room-engine-top:   65%;    --room-engine-left:   32%;    --room-engine-w:   36%;     --room-engine-h:   15%;

  /* ============================================================
     Семейные акценты hover-ауры
     ============================================================ */
  --accent-bridge:        #F1C972;
  --accent-bridge-soft:   rgba(241, 201, 114, 0.32);
  --accent-command:       #7BD0F5;
  --accent-command-soft:  rgba(123, 208, 245, 0.32);
  --accent-cross:         #7A9BD7;
  --accent-cross-soft:    rgba(122, 155, 215, 0.32);
  --accent-grusha:        #5DD9A8;
  --accent-grusha-soft:   rgba(93, 217, 168, 0.36);
  --accent-otc:           #9D7CFF;
  --accent-otc-soft:      rgba(157, 124, 255, 0.36);
  --accent-wl:            #6FE3FF;
  --accent-wl-soft:       rgba(111, 227, 255, 0.36);
  --accent-acquiring:     #FFB547;
  --accent-acquiring-soft:rgba(255, 181, 71, 0.36);
  --accent-arbitrage:     #6FE3FF;
  --accent-arbitrage-soft:rgba(111, 227, 255, 0.36);
  --accent-realty:        #FF8C6B;
  --accent-realty-soft:   rgba(255, 140, 107, 0.36);
  --accent-agent:         #5BA8FF;
  --accent-agent-soft:    rgba(91, 168, 255, 0.36);
  --accent-engine:        #3FE0C5;
  --accent-engine-soft:   rgba(63, 224, 197, 0.36);
}

/* ============================================================
   Базовая нормализация
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  background: var(--bg-dark);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--fs-md);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 600;
  letter-spacing: -0.01em;
  margin: 0 0 12px;
  color: var(--text-primary);
}

p { margin: 0 0 12px; color: var(--text-secondary); }

a { color: var(--accent-cyan); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--accent-cyan-soft); }

button {
  font-family: var(--font-body);
  cursor: pointer;
  background: transparent;
  border: 0;
  color: inherit;
  padding: 0;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-surface); }
::-webkit-scrollbar-thumb { background: var(--bg-line); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--bg-line-soft); }
