/*! MEASOFT Design System v1.2 — 02.08.2026
    Токены и базовые компоненты. Подключается первым файлом на всех точках MEASOFT:
    courierexe.ru, app.courierexe.ru, wiki.courierexe.ru.
    Документация: 03_Сайты/Дизайн-система_MEASOFT.html
    Правило: новых значений цвета/отступа мимо этого файла быть не должно. */

/* ============================================================
   MEASOFT DESIGN TOKENS v1.2
   Этот блок — и есть боевой набор токенов. Копируется в проект как есть.
   ============================================================ */
:root{
  /* --- Бренд: индиго --- */
  --ms-brand-50:#EEF1FE;  --ms-brand-100:#DCE2FD; --ms-brand-200:#B9C5FB;
  --ms-brand-300:#8F9FF7; --ms-brand-400:#6478F0; --ms-brand-500:#3D53E8;
  --ms-brand-600:#2B3ED1; --ms-brand-700:#2331A8; --ms-brand-800:#1D2880;
  --ms-brand-900:#171F5C;
  /* --- Акцент: бирюза (только акценты, не CTA) --- */
  --ms-accent-50:#E6F7F4;  --ms-accent-100:#C2EDE6; --ms-accent-300:#5CCFC0;
  --ms-accent-500:#12A594; --ms-accent-600:#0E8377; --ms-accent-700:#0B655C;
  /* --- Нейтральные: ink --- */
  --ms-ink-0:#FFFFFF;   --ms-ink-25:#FAFBFC;  --ms-ink-50:#F4F6F8;
  --ms-ink-100:#E9EDF2; --ms-ink-200:#D6DCE4; --ms-ink-300:#B4BECB;
  --ms-ink-400:#8593A5; --ms-ink-500:#617083; --ms-ink-600:#4A5867;
  --ms-ink-700:#35414E; --ms-ink-800:#212B36; --ms-ink-900:#0E1620;
  /* --- Семантика --- */
  --ms-success:#0F7342; --ms-success-bg:#E6F6EE; --ms-success-br:#B7E3CB;
  --ms-warning:#9A5B00; --ms-warning-bg:#FEF3C7; --ms-warning-br:#F3D98A;
  --ms-danger:#C02A2A;  --ms-danger-bg:#FDECEC;  --ms-danger-br:#F5C2C2;
  --ms-info:#1A5FBB;    --ms-info-bg:#E7F1FD;    --ms-info-br:#BBD5F5;
  --ms-violet:#6D42C9;  --ms-violet-bg:#F0EAFB;  --ms-violet-br:#D5C4F0;

  /* --- Роли (то, чем пользуются в вёрстке) --- */
  --ms-bg:              var(--ms-ink-0);
  --ms-bg-subtle:       var(--ms-ink-50);
  --ms-bg-sunken:       var(--ms-ink-100);
  --ms-surface:         var(--ms-ink-0);
  --ms-border:          var(--ms-ink-200);
  --ms-border-strong:   var(--ms-ink-300);
  --ms-text:            var(--ms-ink-900);
  --ms-text-secondary:  var(--ms-ink-600);
  --ms-text-muted:      var(--ms-ink-500);
  --ms-text-inverse:    var(--ms-ink-0);
  --ms-primary:         var(--ms-brand-600);
  --ms-primary-hover:   var(--ms-brand-700);
  --ms-primary-active:  var(--ms-brand-800);
  --ms-primary-soft:    var(--ms-brand-50);
  --ms-link:            var(--ms-brand-700);
  --ms-focus:           var(--ms-brand-500);

  /* --- Типографика --- */
  --ms-font-display:"Golos Text","Onest","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --ms-font-text:"Inter","Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --ms-font-mono:"JetBrains Mono","SF Mono",Consolas,"Liberation Mono",monospace;

  --ms-fs-display:clamp(2.5rem,1.6rem + 3.4vw,4rem);   /* 40 → 64 */
  --ms-fs-h1:clamp(2rem,1.5rem + 1.9vw,2.75rem);        /* 32 → 44 */
  --ms-fs-h2:clamp(1.5rem,1.2rem + 1.1vw,2rem);         /* 24 → 32 */
  --ms-fs-h3:1.375rem;  /* 22 */
  --ms-fs-h4:1.125rem;  /* 18 */
  --ms-fs-lg:1.125rem;  /* 18 — лид-абзац */
  --ms-fs-md:1rem;      /* 16 — базовый текст */
  --ms-fs-sm:0.875rem;  /* 14 — вторичный, UI */
  --ms-fs-xs:0.75rem;   /* 12 — подписи, бейджи */
  --ms-lh-tight:1.15; --ms-lh-heading:1.25; --ms-lh-base:1.6; --ms-lh-loose:1.75;
  --ms-tracking-display:-0.02em; --ms-tracking-h:-0.01em; --ms-tracking-caps:0.06em;

  /* --- Ритм: шаг 4px --- */
  --ms-sp-1:4px;  --ms-sp-2:8px;  --ms-sp-3:12px; --ms-sp-4:16px;
  --ms-sp-5:24px; --ms-sp-6:32px; --ms-sp-7:48px; --ms-sp-8:64px;
  --ms-sp-9:96px; --ms-sp-10:128px;
  --ms-section-y:clamp(56px,7vw,112px);

  /* --- Скругления --- */
  --ms-r-xs:4px; --ms-r-sm:6px; --ms-r-md:10px; --ms-r-lg:14px;
  --ms-r-xl:20px; --ms-r-2xl:28px; --ms-r-full:999px;

  /* --- Тени --- */
  --ms-sh-1:0 1px 2px rgba(14,22,32,.06), 0 1px 3px rgba(14,22,32,.05);
  --ms-sh-2:0 4px 12px rgba(14,22,32,.07), 0 2px 4px rgba(14,22,32,.04);
  --ms-sh-3:0 12px 32px rgba(14,22,32,.10), 0 4px 8px rgba(14,22,32,.05);
  --ms-sh-focus:0 0 0 3px rgba(61,83,232,.35);

  /* --- Сетка --- */
  --ms-container:1200px; --ms-container-wide:1360px; --ms-container-text:720px;
  --ms-gutter:clamp(16px,4vw,32px); --ms-cols:12; --ms-gap:24px;

  /* --- Движение --- */
  --ms-ease:cubic-bezier(.2,.6,.2,1);
  --ms-dur-fast:120ms; --ms-dur:200ms; --ms-dur-slow:320ms;

  --ms-z-header:100; --ms-z-dropdown:200; --ms-z-modal:400; --ms-z-toast:500;
}
[data-theme="dark"]{
  --ms-bg:#0B111A; --ms-bg-subtle:#111927; --ms-bg-sunken:#0A0F17;
  --ms-surface:#151E2D; --ms-border:#25324A; --ms-border-strong:#35455F;
  --ms-text:#F4F6F8; --ms-text-secondary:#B4BECB; --ms-text-muted:#8593A5;
  --ms-text-inverse:#0E1620;
  --ms-primary:var(--ms-brand-400); --ms-primary-hover:var(--ms-brand-300);
  --ms-primary-active:var(--ms-brand-200); --ms-primary-soft:#1A2340;
  --ms-link:var(--ms-brand-300); --ms-focus:var(--ms-brand-300);
  --ms-success:#4ADE80; --ms-success-bg:#0E2A1C; --ms-success-br:#1E5138;
  --ms-warning:#FBBF24; --ms-warning-bg:#2C2109; --ms-warning-br:#5A431A;
  --ms-danger:#F87171;  --ms-danger-bg:#2B1414;  --ms-danger-br:#5A2626;
  --ms-info:#7EB2F5;    --ms-info-bg:#0F1E33;    --ms-info-br:#1F3A5F;
  --ms-violet:#B69BF0;  --ms-violet-bg:#1D1533;  --ms-violet-br:#3A2A5C;
  --ms-sh-1:0 1px 2px rgba(0,0,0,.4);
  --ms-sh-2:0 4px 12px rgba(0,0,0,.45);
  --ms-sh-3:0 12px 32px rgba(0,0,0,.55);
}

/* ============================================================
   БАЗА
   ============================================================ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--ms-bg);color:var(--ms-text);
  font-family:var(--ms-font-text);font-size:var(--ms-fs-md);line-height:var(--ms-lh-base);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums lining-nums}
h1,h2,h3,h4{font-family:var(--ms-font-display);font-weight:700;line-height:var(--ms-lh-heading);
  letter-spacing:var(--ms-tracking-h);margin:0 0 var(--ms-sp-3)}
h1{font-size:var(--ms-fs-h1)} h2{font-size:var(--ms-fs-h2)} h3{font-size:var(--ms-fs-h3)}
h4{font-size:var(--ms-fs-h4)}
p{margin:0 0 var(--ms-sp-4)}
a{color:var(--ms-link);text-underline-offset:2px}
:focus-visible{outline:2px solid var(--ms-focus);outline-offset:2px;border-radius:var(--ms-r-xs)}
code,kbd{font-family:var(--ms-font-mono);font-size:.875em;background:var(--ms-bg-sunken);
  padding:.12em .4em;border-radius:var(--ms-r-xs)}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto}}

/* ============================================================
   КОМПОНЕНТЫ (боевые классы, префикс ms-)
   ============================================================ */
.ms-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ms-sp-2);
  font-family:var(--ms-font-text);font-weight:600;font-size:var(--ms-fs-sm);line-height:1;
  padding:12px 20px;border-radius:var(--ms-r-md);border:1px solid transparent;cursor:pointer;
  text-decoration:none;white-space:nowrap;transition:background var(--ms-dur) var(--ms-ease),
  border-color var(--ms-dur) var(--ms-ease),color var(--ms-dur) var(--ms-ease),
  transform var(--ms-dur-fast) var(--ms-ease)}
.ms-btn:active{transform:translateY(1px)}
.ms-btn--primary{background:var(--ms-primary);color:#fff}
.ms-btn--primary:hover{background:var(--ms-primary-hover)}
.ms-btn--secondary{background:var(--ms-surface);color:var(--ms-text);border-color:var(--ms-border-strong)}
.ms-btn--secondary:hover{border-color:var(--ms-ink-400);background:var(--ms-bg-subtle)}
.ms-btn--ghost{background:transparent;color:var(--ms-primary)}
.ms-btn--ghost:hover{background:var(--ms-primary-soft)}
.ms-btn--danger{background:var(--ms-danger);color:#fff}
.ms-btn--sm{padding:8px 14px;font-size:var(--ms-fs-xs)}
.ms-btn--lg{padding:16px 28px;font-size:var(--ms-fs-md)}
.ms-btn[disabled],.ms-btn--disabled{opacity:.45;pointer-events:none}

.ms-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--ms-sp-4)}
.ms-label{font-size:var(--ms-fs-sm);font-weight:600;color:var(--ms-text-secondary)}
.ms-input,.ms-select,.ms-textarea{font-family:inherit;font-size:var(--ms-fs-md);color:var(--ms-text);
  background:var(--ms-surface);border:1px solid var(--ms-border-strong);border-radius:var(--ms-r-md);
  padding:11px 14px;width:100%;transition:border-color var(--ms-dur) var(--ms-ease),box-shadow var(--ms-dur) var(--ms-ease)}
.ms-input:focus,.ms-select:focus,.ms-textarea:focus{outline:none;border-color:var(--ms-brand-500);box-shadow:var(--ms-sh-focus)}
.ms-input::placeholder{color:var(--ms-ink-400)}
.ms-input--error{border-color:var(--ms-danger)}
.ms-hint{font-size:var(--ms-fs-xs);color:var(--ms-text-muted)}
.ms-hint--error{color:var(--ms-danger)}

.ms-badge{display:inline-flex;align-items:center;gap:6px;font-size:var(--ms-fs-xs);font-weight:600;
  padding:4px 10px;border-radius:var(--ms-r-full);border:1px solid transparent;line-height:1.4}
.ms-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.ms-badge--neutral{background:var(--ms-ink-100);color:var(--ms-ink-700);border-color:var(--ms-ink-200)}
.ms-badge--info{background:var(--ms-info-bg);color:var(--ms-info);border-color:var(--ms-info-br)}
.ms-badge--brand{background:var(--ms-brand-50);color:var(--ms-brand-700);border-color:var(--ms-brand-200)}
.ms-badge--violet{background:var(--ms-violet-bg);color:var(--ms-violet);border-color:var(--ms-violet-br)}
.ms-badge--success{background:var(--ms-success-bg);color:var(--ms-success);border-color:var(--ms-success-br)}
.ms-badge--warning{background:var(--ms-warning-bg);color:var(--ms-warning);border-color:var(--ms-warning-br)}
.ms-badge--danger{background:var(--ms-danger-bg);color:var(--ms-danger);border-color:var(--ms-danger-br)}
.ms-badge--accent{background:var(--ms-accent-50);color:var(--ms-accent-700);border-color:var(--ms-accent-100)}

.ms-card{background:var(--ms-surface);border:1px solid var(--ms-border);border-radius:var(--ms-r-lg);
  padding:var(--ms-sp-5);box-shadow:var(--ms-sh-1)}
.ms-card--hover{transition:box-shadow var(--ms-dur) var(--ms-ease),transform var(--ms-dur) var(--ms-ease)}
.ms-card--hover:hover{box-shadow:var(--ms-sh-3);transform:translateY(-2px)}
.ms-card--flat{box-shadow:none;background:var(--ms-bg-subtle);border-color:transparent}

.ms-table{width:100%;border-collapse:collapse;font-size:var(--ms-fs-sm)}
.ms-table th{text-align:left;font-weight:600;color:var(--ms-text-muted);font-size:var(--ms-fs-xs);
  text-transform:uppercase;letter-spacing:var(--ms-tracking-caps);padding:10px 12px;
  border-bottom:1px solid var(--ms-border);white-space:nowrap}
.ms-table td{padding:12px;border-bottom:1px solid var(--ms-border);vertical-align:middle}
.ms-table tbody tr:hover{background:var(--ms-bg-subtle)}
.ms-table--num td:last-child,.ms-table--num th:last-child{text-align:right}

.ms-alert{display:flex;gap:var(--ms-sp-3);padding:var(--ms-sp-4);border-radius:var(--ms-r-md);
  border:1px solid;font-size:var(--ms-fs-sm)}
.ms-alert--info{background:var(--ms-info-bg);border-color:var(--ms-info-br);color:var(--ms-info)}
.ms-alert--success{background:var(--ms-success-bg);border-color:var(--ms-success-br);color:var(--ms-success)}
.ms-alert--warning{background:var(--ms-warning-bg);border-color:var(--ms-warning-br);color:var(--ms-warning)}
.ms-alert--danger{background:var(--ms-danger-bg);border-color:var(--ms-danger-br);color:var(--ms-danger)}

.ms-container{max-width:var(--ms-container);margin:0 auto;padding-inline:var(--ms-gutter)}
.ms-grid{display:grid;gap:var(--ms-gap)}
.ms-grid--2{grid-template-columns:repeat(2,1fr)}
.ms-grid--3{grid-template-columns:repeat(3,1fr)}
.ms-grid--4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.ms-grid--3,.ms-grid--4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.ms-grid--2,.ms-grid--3,.ms-grid--4{grid-template-columns:1fr}}
.ms-eyebrow{font-size:var(--ms-fs-xs);font-weight:700;text-transform:uppercase;
  letter-spacing:var(--ms-tracking-caps);color:var(--ms-accent-700)}
/* ============================================================
   ПЛОТНЫЙ РЕЖИМ — кабинет app.courierexe.ru, таблицы, админки
   ============================================================ */
.ms-dense{
  --ms-fs-md:0.875rem; --ms-fs-lg:1rem;
  --ms-sp-5:16px; --ms-sp-6:20px; --ms-sp-7:32px;
  --ms-r-lg:10px; --ms-r-xl:12px; --ms-r-2xl:14px;
}
.ms-dense .ms-btn{padding:9px 16px}
.ms-dense .ms-card{padding:16px}
.ms-dense .ms-table td{padding:9px 12px}

/* ============================================================
   WHITE-LABEL: что разрешено переопределять клиенту
   Только эти три переменные. Семантику статусов трогать нельзя.
   ============================================================ */
/* .theme-client{ --ms-primary:#XXXXXX; --ms-primary-hover:#XXXXXX; --ms-link:#XXXXXX; } */
