/* ============================================================================
   CreaSense — дизайн-система «аналитический прибор» (см. docs/design-system.md)
   Чернила + один кобальтовый акцент · Onest + JetBrains Mono · tabular-цифры
   ========================================================================= */

/* ----------------------------- Шрифты (самохостинг, OFL) ------------------ */
/* Onest — UI-гротеск, 400/500/600; кириллица + латиница раздельными subset'ами */
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/onest/onest-cyrillic-400.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Onest';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/onest/onest-latin-400.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/onest/onest-cyrillic-500.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Onest';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/onest/onest-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/onest/onest-cyrillic-600.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Onest';font-style:normal;font-weight:600;font-display:swap;
  src:url('../fonts/onest/onest-latin-600.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
/* JetBrains Mono — числа, 400/500 */
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jetbrains-mono/jbm-cyrillic-400.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url('../fonts/jetbrains-mono/jbm-latin-400.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/jetbrains-mono/jbm-cyrillic-500.woff2') format('woff2');
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;
  src:url('../fonts/jetbrains-mono/jbm-latin-500.woff2') format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+2074,U+20AC,U+2122,U+2212,U+FEFF,U+FFFD;}

/* ----------------------------- Токены §4 ---------------------------------- */
:root{
  /* нейтрали и акцент §4.1 */
  --paper:#f4f5f7; --surface:#ffffff; --surface-2:#fafbfc;
  --ink:#15171c; --ink-2:#565b66; --ink-3:#71757e;
  --line:#e4e7ec; --line-soft:#eceef2;
  --accent:#2f4bd6; --accent-deep:#2740b8; --accent-soft:#eef1fd;
  /* статусы §4.2 (bg/fg/border) */
  --ok-bg:#e7f1ec; --ok-fg:#2f6f54; --ok-bd:#cfe5da;
  --warn-bg:#faf0df; --warn-fg:#8a5a14; --warn-bd:#f0dfbf;
  --err-bg:#fbeceb; --err-fg:#a3352c; --err-bd:#f0d3d0;
  --chip-bg:#eef1fd; --chip-fg:#2740b8; --chip-bd:#dce2fb;
  --neutral-bg:#f1f3f7; --neutral-fg:#565b66;
  --ghost-fg:#b3b8c2; --ghost-bd:#ebedf1;
  /* радиусы §4.5 */
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:14px; --r-pill:999px;
  --focus-ring:0 0 0 3px var(--accent-soft);
  /* типографика §4.4 */
  --font-ui:'Onest',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-num:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
}
[data-theme="dark"]{
  --paper:#0f1116; --surface:#171a21; --surface-2:#1d212a;
  --ink:#eceef2; --ink-2:#9aa1ad; --ink-3:#898f9b;
  --line:#262b35; --line-soft:#20242e;
  --accent:#5b74ee; --accent-deep:#aab8f5; --accent-soft:#1e2540;
  --ok-bg:#16271f; --ok-fg:#79c79f; --ok-bd:#234436;
  --warn-bg:#2a2210; --warn-fg:#caa05f; --warn-bd:#4a3a18;
  --err-bg:#2a1714; --err-fg:#e0918a; --err-bd:#4a2420;
  --chip-bg:#1e2540; --chip-fg:#aab8f5; --chip-bd:#2c3358;
  --neutral-bg:#1d212a; --neutral-fg:#9aa1ad;
  --ghost-fg:#5f6675; --ghost-bd:#262b35;
}

/* ------------------- Переопределение Bootstrap (D1) ----------------------- */
:root{
  --bs-body-bg:var(--paper);
  --bs-body-color:var(--ink);
  --bs-body-font-family:var(--font-ui);
  --bs-secondary-color:var(--ink-2);
  --bs-tertiary-color:var(--ink-3);
  --bs-tertiary-bg:var(--surface-2);
  --bs-secondary-bg:var(--surface-2);
  --bs-border-color:var(--line);
  --bs-border-radius:var(--r-md);
  --bs-border-radius-sm:var(--r-sm);
  --bs-border-radius-lg:var(--r-lg);
  --bs-link-color:var(--accent-deep);
  --bs-link-hover-color:var(--accent);
  --bs-emphasis-color:var(--ink);
  --bs-heading-color:var(--ink);
  --bs-primary-rgb:47,75,214;
  --bs-focus-ring-color:var(--accent-soft);
  --bs-focus-ring-width:3px;
}
[data-theme="dark"]{ --bs-primary-rgb:91,116,238; }

/* ----------------------------- База --------------------------------------- */
html,body{min-height:100%;}
body{
  background-color:var(--paper);
  color:var(--ink);
  font-family:var(--font-ui);
  display:flex;flex-direction:column;min-height:100vh;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
.site-main{flex:1 0 auto;}
h1,h2,h3,h4,h5,h6{color:var(--ink);font-weight:600;letter-spacing:-.01em;}
h1,.h1{font-size:1.5rem;}
h2,.h2{font-size:1.15rem;}
h3,.h3{font-size:1.05rem;}
a{color:var(--accent-deep);text-decoration-thickness:1px;text-underline-offset:2px;}
a:hover{color:var(--accent);}
hr{border-color:var(--line);opacity:1;}
.text-muted{color:var(--ink-2)!important;}
.border,.border-top,.border-bottom,.border-start,.border-end{border-color:var(--line)!important;}

/* числа — моноширинные, tabular */
.cs-num,.tnum{font-family:var(--font-num);font-variant-numeric:tabular-nums;letter-spacing:-.01em;}
/* эйбрау-метка §4.4 */
.cs-eyebrow{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);}
/* метрика-число */
.cs-metric{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:500;line-height:1.1;color:var(--ink);}

/* ----------------------------- Фокус (a11y §8) ---------------------------- */
:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm);}
.btn:focus-visible,.form-control:focus,.form-select:focus,.nav-link:focus-visible,
a:focus-visible,.ts-control:focus-within{box-shadow:var(--focus-ring)!important;outline:none;}
.form-control:focus,.form-select:focus{border-color:var(--accent);}

/* ----------------------------- Кнопки ------------------------------------- */
.btn{--bs-btn-border-radius:var(--r-md);font-weight:500;}
.btn-primary{
  --bs-btn-bg:var(--accent);--bs-btn-border-color:var(--accent);--bs-btn-color:#fff;
  --bs-btn-hover-bg:var(--accent-deep);--bs-btn-hover-border-color:var(--accent-deep);--bs-btn-hover-color:#fff;
  --bs-btn-active-bg:var(--accent-deep);--bs-btn-active-border-color:var(--accent-deep);--bs-btn-active-color:#fff;
  --bs-btn-disabled-bg:var(--accent);--bs-btn-disabled-border-color:var(--accent);--bs-btn-disabled-color:#fff;
}
[data-theme="dark"] .btn-primary{--bs-btn-color:#0f1116;--bs-btn-hover-color:#0f1116;--bs-btn-active-color:#0f1116;--bs-btn-disabled-color:#0f1116;}
.btn-outline-secondary,.btn-outline-primary{
  --bs-btn-color:var(--ink-2);--bs-btn-border-color:var(--line);
  --bs-btn-hover-bg:var(--surface-2);--bs-btn-hover-border-color:var(--line);--bs-btn-hover-color:var(--ink);
  --bs-btn-active-bg:var(--surface-2);--bs-btn-active-border-color:var(--line);--bs-btn-active-color:var(--ink);
}
.btn-link{--bs-btn-color:var(--accent-deep);--bs-btn-hover-color:var(--accent);text-decoration:none;}
.text-primary{color:var(--accent)!important;}
.text-success{color:var(--ok-fg)!important;}
.text-warning{color:var(--warn-fg)!important;}
.text-danger{color:var(--err-fg)!important;}
.text-info{color:var(--accent-deep)!important;}
.text-secondary{color:var(--ink-2)!important;}
.bg-primary{background-color:var(--accent)!important;}
.bg-success-subtle{background-color:var(--ok-bg)!important;}
.bg-warning-subtle{background-color:var(--warn-bg)!important;}
.bg-danger-subtle{background-color:var(--err-bg)!important;}
.link-secondary{color:var(--ink-2)!important;}
.link-secondary:hover{color:var(--accent)!important;}

/* ----------------------------- Карточки / поверхности --------------------- */
.card,.cs-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:none;color:var(--ink);
}
.card{--bs-card-bg:var(--surface);--bs-card-border-color:var(--line);--bs-card-border-radius:var(--r-lg);}
.cs-card{padding:1rem;}
.bg-body-tertiary{background-color:var(--surface-2)!important;}
.shadow,.shadow-sm,.shadow-lg{box-shadow:none!important;}

/* ----------------------------- Формы -------------------------------------- */
.form-control,.form-select{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);
}
.form-control::placeholder{color:var(--ink-3);}
.form-control:disabled,.form-select:disabled{background:var(--surface-2);}
.form-label{color:var(--ink-2);font-weight:500;}

/* инлайн-инпут слогана §6 */
.form-control-inline{
  background-color:transparent;border:0;border-bottom:2px dashed var(--line);border-radius:0;
  font-size:1.45rem;font-weight:500;color:var(--ink);padding:.5rem .25rem;line-height:1.3;caret-color:var(--accent);
}
.form-control-inline:focus{background-color:transparent;border-bottom:2px solid var(--accent);box-shadow:none;color:var(--ink);}

/* ----------------------------- Бейджи / чипы ------------------------------ */
.cs-chip{
  display:inline-flex;align-items:center;gap:.35em;
  background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--chip-bd);
  border-radius:var(--r-md);padding:.15rem .5rem;font-size:.78rem;font-weight:500;line-height:1.4;
}
.cs-chip .ti{font-size:.95em;}
.cs-chip-ghost{
  display:inline-flex;align-items:center;gap:.35em;
  background:transparent;color:var(--ghost-fg);border:1px solid var(--ghost-bd);
  border-radius:var(--r-md);padding:.15rem .5rem;font-size:.78rem;font-weight:500;line-height:1.4;
}
.cs-badge{display:inline-flex;align-items:center;gap:.3em;border-radius:var(--r-sm);padding:.1rem .45rem;font-size:.72rem;font-weight:500;line-height:1.4;}
.cs-badge-system{background:var(--neutral-bg);color:var(--neutral-fg);}
.cs-badge-accent{background:var(--chip-bg);color:var(--chip-fg);border:1px solid var(--chip-bd);}
.cs-badge-ok{background:var(--ok-bg);color:var(--ok-fg);border:1px solid var(--ok-bd);}
.cs-badge-warn{background:var(--warn-bg);color:var(--warn-fg);border:1px solid var(--warn-bd);}
.cs-badge-err{background:var(--err-bg);color:var(--err-fg);border:1px solid var(--err-bd);}

/* Bootstrap badge → токены */
.badge.text-bg-primary,.badge.bg-primary{background-color:var(--accent)!important;color:#fff!important;}
.badge.text-bg-secondary,.badge.bg-secondary{background-color:var(--neutral-bg)!important;color:var(--neutral-fg)!important;}
.badge.text-bg-success,.badge.bg-success{background-color:var(--ok-bg)!important;color:var(--ok-fg)!important;}
.badge.text-bg-warning,.badge.bg-warning{background-color:var(--warn-bg)!important;color:var(--warn-fg)!important;}
.badge.text-bg-danger,.badge.bg-danger{background-color:var(--err-bg)!important;color:var(--err-fg)!important;}

/* ----------------------------- Алерты → статус-токены --------------------- */
.alert-success{--bs-alert-bg:var(--ok-bg);--bs-alert-color:var(--ok-fg);--bs-alert-border-color:var(--ok-bd);}
.alert-warning{--bs-alert-bg:var(--warn-bg);--bs-alert-color:var(--warn-fg);--bs-alert-border-color:var(--warn-bd);}
.alert-danger{--bs-alert-bg:var(--err-bg);--bs-alert-color:var(--err-fg);--bs-alert-border-color:var(--err-bd);}
.alert-info,.alert-primary{--bs-alert-bg:var(--accent-soft);--bs-alert-color:var(--accent-deep);--bs-alert-border-color:var(--chip-bd);}

/* ----------------------------- Таблицы ------------------------------------ */
.table{--bs-table-bg:transparent;--bs-table-color:var(--ink);--bs-table-border-color:var(--line);}
.table thead th{color:var(--ink-2);font-weight:500;}

/* ----------------------------- Навигация §6 ------------------------------- */
.navbar{
  background-color:var(--surface);border-bottom:1px solid var(--line);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.navbar .navbar-brand{color:var(--ink);font-weight:600;display:inline-flex;align-items:center;gap:.4rem;}
.navbar .navbar-brand .ti{color:var(--accent);font-size:1.25rem;}
.navbar-nav .nav-link{
  color:var(--ink-2);font-weight:500;letter-spacing:0;border-bottom:2px solid transparent;
}
.navbar-nav .nav-link:hover{color:var(--ink);}
.navbar-nav .nav-link.active,.navbar-nav .nav-link[aria-current="page"]{color:var(--ink);border-bottom-color:var(--accent);}
.navbar .dropdown-menu{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:none;
  --bs-dropdown-link-color:var(--ink-2);--bs-dropdown-link-hover-bg:var(--surface-2);--bs-dropdown-link-hover-color:var(--ink);
  --bs-dropdown-link-active-bg:var(--accent-soft);--bs-dropdown-link-active-color:var(--accent-deep);
}
.nav-section-divider{width:1px;height:28px;background-color:var(--line);}
/* квота-чип §6 */
.cs-quota{
  display:inline-flex;align-items:center;gap:.3rem;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:.2rem .55rem;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:.85rem;color:var(--ink);
}
.cs-quota .ti{color:var(--accent);}
.cs-quota .cs-quota-total{color:var(--ink-3);}
/* тоггл темы */
#themeToggle{color:var(--ink-2);display:inline-flex;align-items:center;}
#themeToggle:hover{color:var(--ink);}

/* help-sidebar (порт под токены) */
.help-sidebar .nav-link{color:var(--ink-2);padding:.35rem .5rem;border:0;border-radius:var(--r-sm);}
.help-sidebar .nav-link:hover{color:var(--accent-deep);background-color:var(--surface-2);}
.help-sidebar .nav-link.active{color:var(--accent-deep);background-color:var(--accent-soft);font-weight:500;}

/* ----------------------------- Футер -------------------------------------- */
.site-footer{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--line);background:var(--surface);}
.site-footer .footer-inner{padding:clamp(.75rem,2vw,1.25rem) 0;}
.footer-nav-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3);display:block;margin-bottom:.5rem;}
.footer-nav-list li+li{margin-top:.25rem;}
.footer-nav-list a{color:var(--ink-2);text-decoration:none;}
.footer-nav-list a:hover{color:var(--accent);}

/* ----------------------------- FAB обратной связи ------------------------- */
.feedback-fab{
  position:fixed;bottom:20px;right:20px;z-index:1050;border-radius:50%;width:52px;height:52px;
  font-size:22px;box-shadow:none;display:inline-flex;align-items:center;justify-content:center;
}

/* ----------------------------- tom-select под токены ---------------------- */
.ts-control{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink);}
.ts-dropdown{background:var(--surface);border:1px solid var(--line);color:var(--ink);}
.ts-dropdown .active{background:var(--accent-soft);color:var(--accent-deep);}
.ts-control .item{background:var(--chip-bg)!important;color:var(--chip-fg)!important;border:1px solid var(--chip-bd)!important;border-radius:var(--r-sm)!important;}
.ts-wrapper.form-select-lg .ts-control{max-height:120px;overflow-y:auto;width:100%;}

/* ============================================================================
   Дата-виз §4.3 / §5 — три раздельные кодировки
   ========================================================================= */

/* (A) Шкала резонанса — дивергентная, ТОЛЬКО для вердикта (0–100) */
.cs-res{
  display:inline-flex;align-items:center;gap:.3em;justify-content:center;
  font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:500;
  border-radius:var(--r-pill);padding:.12rem .5rem;min-width:2.75rem;font-size:.82rem;
}
.cs-res[data-band="risk"]{background:#c2453b;color:#fff;}
.cs-res[data-band="weak"]{background:#e0a15f;color:#4a2c10;}
.cs-res[data-band="norm"]{background:#7cae8b;color:#143329;}
.cs-res[data-band="reson"]{background:#2f9468;color:#fff;}
[data-theme="dark"] .cs-res[data-band="weak"]{background:#caa05f;color:#241808;}
[data-theme="dark"] .cs-res[data-band="norm"]{background:#3f7d63;color:#d6f3e4;}

/* (B) Профильная интенсивность — кобальтовый sequential, для значений 0–10 */
.cs-int{
  font-family:var(--font-num);font-variant-numeric:tabular-nums;text-align:center;
  border-radius:var(--r-sm);padding:.2rem .35rem;font-size:.82rem;line-height:1.3;
}
/* фон кодирует интенсивность (B); цвет текста подобран под контраст ≥4.5 для числа в ячейке */
.cs-int[data-level="0"]{background:#f1f3fb;color:#565b66;}
.cs-int[data-level="1"]{background:#e6ebfb;color:#2740b8;}
.cs-int[data-level="2"]{background:#c2cdf3;color:#20307e;}
.cs-int[data-level="3"]{background:#6f87e4;color:#16224f;}
.cs-int[data-level="4"]{background:#2f4bd6;color:#fff;}
[data-theme="dark"] .cs-int[data-level="0"]{background:#181d27;color:#9aa1ad;}
[data-theme="dark"] .cs-int[data-level="1"]{background:#232c4e;color:#8a9ce6;}
[data-theme="dark"] .cs-int[data-level="2"]{background:#303f7d;color:#c3cef5;}
[data-theme="dark"] .cs-int[data-level="3"]{background:#4256bf;color:#fff;}
[data-theme="dark"] .cs-int[data-level="4"]{background:#4a62e4;color:#fff;}

/* (C) Достоверность — сегментный метр (4 сегмента) */
.cs-conf{display:inline-flex;align-items:center;gap:.4rem;}
.cs-conf-track{display:inline-flex;gap:3px;}
.cs-conf-seg{width:16px;height:8px;border-radius:2px;background:#dfe3ea;}
[data-theme="dark"] .cs-conf-seg{background:#262b35;}
.cs-conf-seg.is-on{background:#2f4bd6;}
[data-theme="dark"] .cs-conf-seg.is-on{background:#5b74ee;}
.cs-conf.is-low .cs-conf-seg.is-on{background:#e0a15f;}
[data-theme="dark"] .cs-conf.is-low .cs-conf-seg.is-on{background:#caa05f;}
.cs-conf-val{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--ink-2);}

/* Метрик-плитка §6 */
.cs-tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:.85rem 1rem;}
.cs-tile .cs-eyebrow{margin-bottom:.35rem;display:block;}

/* Матрица резонанса §5 */
.cs-matrix{table-layout:fixed;width:100%;border-collapse:separate;border-spacing:0;}
.cs-matrix th,.cs-matrix td{border:1px solid var(--line);padding:.3rem;text-align:center;vertical-align:middle;}
.cs-matrix thead th{font-family:var(--font-num);font-size:.78rem;color:var(--ink-2);font-weight:500;}
.cs-matrix .cs-matrix-row-head{text-align:left;font-family:var(--font-ui);color:var(--ink);font-weight:500;}

/* аватар-инициалы §4.2 */
.cs-avatar{
  width:38px;height:38px;border-radius:var(--r-md);display:inline-flex;align-items:center;justify-content:center;
  font-weight:600;font-size:.85rem;flex:0 0 auto;
}
.cs-avatar-accent{background:var(--accent-soft);color:var(--accent-deep);}
.cs-avatar-neutral{background:var(--neutral-bg);color:var(--neutral-fg);}

/* sticky фильтр-рейл §6/§7 */
.cs-rail{position:sticky;top:80px;}

/* цитата-доказательство §6 (карточка факта) */
.cs-evidence{border-left:2px solid var(--accent);padding-left:.75rem;color:var(--ink-2);}

/* ----------------------------- Движение §4.5 ------------------------------ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
}
