/* ============================================================================
   Проект: Акторика (Aktorika)
   tokens.css — дизайн-токены из Figma (Итерация 1, дизайн-система).

   Источник: Figma «Design System Aktorika», файл ZQNYYCyTerpDTOxSE7zMWW.
   Извлечено 29.06.2026 через Figma MCP. Подпункт 0 раздела
   «РЕФАКТОРИНГ ДИЗАЙНА» (см. roadmap).

   Структура:
     1) Примитивы (--neutral-*, --brand-*, --red-*, --green-*, --yellow-*) —
        имена и значения ровно как в Figma variables. Значение variable —
        источник истины.
     2) Семантические токены — ссылаются на примитивы через var(...).
        Имена сгруппированы в kebab-case (--text-*, --surface-*, --border-*,
        --icon-*, --action-*, --status-*, --table-*). Группировка намеренная:
        в Figma реальные имена местами схлопываются по областям (--primary
        встречается и как #0f172a, и как #0b69d1; --default/--active/--disabled
        означают разное в разных коллекциях), глобально так нельзя.
        ЗНАЧЕНИЯ выверены по ФАКТИЧЕСКИМ привязкам в экранах Login,
        Index (дашборд), Contract/Details, Estimate/Cost Calculating —
        а не по витрине «Semantic tokens» (она местами устарела).
     3) Типографика — Roboto (текст) + JetBrains Mono (числа;
        отклонение от Figma, решение владельца 25.10.2026). Полная шкала
        text-стилей из экранов. Имена стилей — как в Figma (Main/*, Body/*,
        Table/*, Numbers/* → --font-*-<стиль>).
     4) Отступы, радиусы, тени.
     5) Размеры компонентов (--control-height-*, --table-row-height-*,
        --badge-padding-*) — форма договора, вкладки ДС и «Акты и платежи».

   Расхождения значения/подписи в Figma (взято значение variable):
     --neutral-50 : #fbfbfb (подпись свотча была #F7FAFC)
     --yellow-500 : #f59e0b (подпись была #FFB020)
     --green-300  : #a6dbb9 — из подписи (variable не отдался через MCP)
   ========================================================================= */

:root {
  /* ===== 1. ПРИМИТИВЫ ==================================================== */

  /* Neutral */
  --neutral-0: #ffffff;
  --neutral-50: #fbfbfb;
  --neutral-100: #f5f7f9;
  --neutral-200: #e2e8f0;
  --neutral-300: #c5d3e5;
  --neutral-400: #b4c6dd;
  --neutral-500: #64748b;
  --neutral-700: #334155;
  --neutral-900: #0f172a;

  /* Brand (синий) */
  --brand-50: #eaf3ff;
  --brand-100: #d6e8ff;
  --brand-500: #0b69d1;
  --brand-700: #0754a6;
  --brand-900: #063b78;

  /* Red */
  --red-50: #fdecec;
  --red-100: #f8d2d2;
  --red-300: #ff9e9e;
  --red-500: #d92d20;
  --red-700: #a61b13;

  /* Green */
  --green-50: #eaf7ef;
  --green-100: #d3efdd;
  --green-300: #a6dbb9;
  --green-500: #168a3a;
  --green-700: #0f6b2e;

  /* Yellow */
  --yellow-50: #fff7e8;
  --yellow-100: #ffe8bd;
  --yellow-300: #ffd27e;
  --yellow-500: #f59e0b;
  --yellow-700: #b76a00;

  /* ===== 2. СЕМАНТИЧЕСКИЕ ТОКЕНЫ (выверены по экранам) ================== */

  /* --- Text (Figma: Primary/Secondary/Tertiary/Muted/...) --- */
  --text-primary: var(--neutral-900);
  --text-secondary: var(--neutral-700);
  --text-tertiary: var(--neutral-500);
  --text-muted: var(--neutral-500);
  --text-placeholder: var(--neutral-400);
  --text-disabled: var(--neutral-300);
  --text-inverse: var(--neutral-0);
  --text-brand: var(--brand-500);
  --text-link: var(--brand-500);
  --text-success: var(--green-700);
  --text-warning: var(--yellow-700);
  --text-danger: var(--red-700);

  /* --- Surface (фоны) --- */
  --surface-page: var(--neutral-100);
  --surface-card: var(--neutral-0);
  --surface-subtle: var(--neutral-100);
  --subtle: var(--surface-subtle);
  --surface-hover: var(--neutral-100);
  --surface-active: var(--brand-100);
  --surface-disabled: var(--neutral-100);

  /* --- Border --- */
  --border-default: var(--neutral-200);
  --border-subtle: var(--neutral-100);
  --border-strong: var(--neutral-500);
  --border-focus: var(--brand-700);
  --border-primary: var(--brand-500);
  --border-disabled: var(--neutral-200);
  --border-success: var(--green-300);
  --border-danger: var(--red-300);
  --border-warning: var(--yellow-300);
  /* date-поля; disabled-вид макета — состояние, не цвет */
  --border-input-date: var(--border-default);

  /* --- Icon --- */
  --icon-default: var(--neutral-700);
  --icon-inverse: var(--neutral-0);
  --icon-disabled: var(--neutral-300);
  --icon-active: var(--brand-700);
  --icon-brand: var(--brand-500);
  --icon-neutral: var(--neutral-500);

  /* --- Action / Primary (Figma: Primary/Primary Bg*) --- */
  --action-primary-bg: var(--brand-500);
  --action-primary-bg-hover: var(--brand-700);
  --action-primary-bg-pressed: var(--brand-900);
  --action-primary-bg-disabled: var(--neutral-200);

  /* --- Action / Secondary --- */
  --action-secondary-bg: var(--neutral-0);
  --action-secondary-bg-hover: var(--neutral-50);
  --action-secondary-bg-pressed: var(--neutral-100);
  --action-secondary-bg-disabled: var(--neutral-200);

  /* --- Action / Ghost --- */
  --action-ghost-bg: var(--neutral-100);
  --action-ghost-bg-hover: var(--neutral-200);

  /* --- Action / Danger --- */
  --action-danger-bg: var(--red-50);
  --action-danger-bg-hover: var(--red-100);
  --action-danger-bg-pressed: var(--red-300);
  --action-danger-bg-disabled: var(--neutral-200);

  /* --- Action / Success --- */
  --action-success-bg: var(--green-50);
  --action-success-bg-hover: var(--green-100);
  --action-success-bg-pressed: var(--green-300);
  --action-success-bg-disabled: var(--neutral-200);

  /* --- Action / Warning --- */
  --action-warning-bg: var(--yellow-50);
  --action-warning-bg-hover: var(--yellow-100);
  --action-warning-bg-pressed: var(--yellow-300);
  --action-warning-bg-disabled: var(--neutral-200);

  /* --- Switch (DS Bootstrap / Aktorika brand on-state) --- */
  --switch-track-on: var(--brand-500);

  /* --- Status / Info (Figma: Info/Bg, Info/Text, Info/Icon) --- */
  --status-info-bg: var(--brand-50);
  --status-info-text: var(--brand-500);
  --status-info-icon: var(--brand-500);

  /* --- Status / Success --- */
  --status-success-bg: var(--green-50);
  --status-success-text: var(--green-700);
  --status-success-icon: var(--green-700);

  /* --- Status / Warning --- */
  --status-warning-bg: var(--yellow-50);
  --status-warning-text: var(--yellow-700);
  --status-warning-icon: var(--yellow-700);

  /* --- Status / Danger --- */
  --status-danger-bg: var(--red-50);
  --status-danger-text: var(--red-700);
  --status-danger-icon: var(--red-700);

  /* --- Status / Neutral --- */
  --status-neutral-bg: var(--neutral-100);
  --status-neutral-text: var(--neutral-500);
  --status-neutral-icon: var(--neutral-500);

  /* --- Table (Figma: Cell/Border, Cell/Text/*, Cell/Bg/*) --- */
  --table-border: var(--neutral-200);
  --table-cell-text-default: var(--neutral-900);
  --table-cell-text-secondary: var(--neutral-700);
  --table-cell-text-header: var(--neutral-500);
  --table-cell-text-disabled: var(--neutral-200);
  --table-cell-text-success: var(--green-700);
  --table-cell-text-warning: var(--yellow-500);
  --table-cell-text-danger: var(--red-700);
  --table-cell-text-primary: var(--brand-500);
  --table-cell-bg-default: var(--neutral-0);
  --table-cell-bg-alternate: var(--neutral-50);
  --table-cell-bg-selected: var(--neutral-200);
  --table-cell-bg-hover: var(--neutral-100);
  --table-cell-bg-header: var(--neutral-100);
  /* Высоты строк (Figma 3859:84668 — таблица вкладки ДС) */
  --table-row-height-sm: 50px; /* шапка колонок, строка «Итого» */
  --table-row-height-md: 76px; /* строка без многострочного комментария */
  --table-row-height-lg: 92px; /* строка с многострочным комментарием */
  /* Высоты строк (Figma 3627:34733 — таблица вкладки «Акты и платежи») */
  --table-row-height-md-acts: 58px;
  --table-row-height-lg-acts: 70px;

  /* ===== 3. ТИПОГРАФИКА ================================================= */
  /* Семейства */
  --font-family-base: 'Roboto', Arial, sans-serif;
  --font-family-mono: 'JetBrains Mono', monospace;  /* числа; отклонение от Figma, решение владельца 25.10.2026 */

  /* Веса */
  --font-weight-regular: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  /* Заголовки (Main/*) — H2 в системе отсутствует */
  --font-size-h1: 30px;        --line-height-h1: 35.2px;  --font-weight-h1: 700;
  --font-size-h2: 18px;        --line-height-h2: 20px;    /* Figma 3617:16193 — заголовок договора в шапке (SemiBold 18/20) */
  --font-size-h3: 16px;        --line-height-h3: 20px;    --font-weight-h3: 600;

  /* Основной текст */
  --font-size-body: 16px;      --line-height-body: 20px;       /* Main/Body 400 */
  --font-size-body-bold: 16px; --line-height-body-bold: 20px;  /* Main/Body Bold 500 */
  --font-size-lead: 20px;      --line-height-lead: 1.5;        /* Body/Lead 400 */
  --font-size-body-sm: 14px;   --line-height-body-sm: 1.5;     /* Body/Small 400 */
  --font-size-caption: 12px;   --line-height-caption: 1;       /* Main/Caption 400 */
  --font-size-caption-bold: 12px; --line-height-caption-bold: 20px; /* 500 */
  --font-size-label-sm: 14px;  --line-height-label-sm: 20px;   /* Label/Small 400 */

  /* Навигация / кнопки */
  --font-size-sidebar: 16px;   --line-height-sidebar: 24px;    /* Main/Sidebar 500 */
  --font-size-btn-md: 16px;    --line-height-btn-md: 24px;     /* Button/Medium 400 */
  --font-size-btn-sm: 14px;    --line-height-btn-sm: 20px;     /* Button/Small 500 */

  /* Компоненты */
  --font-size-badge: 15px;     --line-height-badge: 1;         /* Badge/H5 400 */
  --badge-padding-x: 9.75px;   /* Figma 3859:84668 — статус-бейдж ДС */
  --badge-padding-y: 5.25px;
  --font-size-modal-title: 20px; --line-height-modal-title: 1.5; /* Modal/Title 400 */

  /* Таблицы (Table/*) */
  --font-size-table-label: 14px; --line-height-table-label: 18px; /* 500 */
  --font-size-table-body: 14px;  --line-height-table-body: 18px;  /* 400 */
  --font-size-table-body-bold: 14px; --line-height-table-body-bold: 18px; /* 600 */

  /* Числа (JetBrains Mono) */
  --font-size-num-dashboard: 28px;    --line-height-num-dashboard: 40px;    /* 500 */
  --font-size-num-dashboard-md: 22px; --line-height-num-dashboard-md: 22px; /* 600, KPI сумм */
  --font-size-num-dashboard-sm: 20px; --line-height-num-dashboard-sm: 26px; /* 700 */
  --font-size-num-summ-bold: 26px;    --line-height-num-summ-bold: 26px;    /* 600 */
  --font-size-table-summ: 14px;       --line-height-table-summ: 18px;       /* 400 */
  --font-size-table-summ-bold: 14px;  --line-height-table-summ-bold: 18px;  /* 700 */

  /* ===== 4. ОТСТУПЫ (SPACING) ========================================== */
  /* Реальные переменные Figma: Spacing/4,8,16,24. 32/48 — из шкалы/макетов. */
  --space-4: 4px;
  --space-6: 6px;   /* Figma 3617:48315 — gap label→field (Property / Detail) */
  --space-8: 8px;
  --space-12: 12px; /* Figma 3807:39866 — gap строк финблока; gap иконок select */
  --space-16: 16px;
  --space-24: 24px;
  --space-32: 32px;
  --space-48: 48px;

  /* ===== 5. РАДИУСЫ ===================================================== */
  /* Реальные переменные Figma: Radius/sm=4, Radius/md=8. */
  --radius-sm: 4px;    /* чекбокс, мелкие элементы */
  --radius-md: 8px;    /* кнопки, карточки */
  --radius-input: 6px; /* поля ввода (литерал в макете) */
  --radius-lg: 24px;   /* модалки, крупные карточки (литерал в макете) */
  --radius-pill: 9999px; /* Figma 3865:54623 — теги-чипы в шапке (100px = полное скругление) */

  /* ===== 6. ТЕНИ / ЭФФЕКТЫ ============================================= */
  /* Presentation Card Style */
  --shadow-card: 0 24px 70px 0 rgba(15, 23, 42, 0.08);
  /* Focus Ring/Primary (в Figma — цвет Bootstrap #0d6efd; можно перевести
     на --brand-500 при унификации фокуса) */
  --shadow-focus: 0 0 0 4px rgba(13, 110, 253, 0.25);
  /* Сайдбар: лёгкая тень от правого края (из макета: drop-shadow 0 1px 1px) */
  --shadow-sidebar: 0 1px 1px rgba(0, 0, 0, 0.05);
  --shadow-note-card: 0 2px 4px rgba(0, 0, 0, 0.14);

  /* ===== 7. ОБОЛОЧКА НАВИГАЦИИ (добавлено 30.06.2026, рубеж «б») ======= */
  --sidebar-width: 280px;
  --topbar-height: 64px;

  /* Аватар профиля: градиент из макета (Figma Topbar, слот Profile) */
  --avatar-from: #0077b6;
  --avatar-to:   #0b9e8a;
  --avatar-bg:   linear-gradient(135deg, var(--avatar-from) 0%, var(--avatar-to) 100%);

  /* ===== 8. РАЗМЕРЫ КОНТРОЛОВ И ИКОНОК (Figma 3617:16193, форма договора) ===== */
  --control-height-sm: 31px; /* icon-only: кнопка «+», file/⋮ в таблице ДС (3859:84668) */
  --control-height-md: 38px; /* select, кнопка ⋮/gear в полях контрагентов */
  --icon-md: 24px;           /* action-иконки в списке документов */
  --icon-lg: 32px;           /* MIME-иконка файла в списке документов */

  /* Окно согласия ПДн: значения макета из ТЗ 4.107. */
  --pdn-modal-width: 632px;
  --pdn-modal-padding-y: var(--space-16);
  --pdn-modal-padding-x: var(--space-16);
  --pdn-modal-shadow: 1px 17px 10px rgba(15, 23, 42, 0.1);
  --pdn-border-width: 1px;
  --pdn-button-height: 48px;
  --pdn-button-padding-y: 9px;
  --pdn-button-padding-x: 17px;
  --pdn-disabled-opacity: 0.65;
  --pdn-document-max-height: 60vh;
}
