/* Дашборд 2.1 — токены визуального языка (хендофф Клод-дизайна, dashboard/design/).
   База: Plausible (спокойная плоскость), анатомия Tremor, плотность PostHog, нейтралы Radix.
   Шрифты локальные woff2 (сабсет cyr+lat), не Google Fonts — см. README §14. */

@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-400-cyr.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-400-lat.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-500-cyr.woff2) format('woff2');font-weight:500;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-500-lat.woff2) format('woff2');font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-600-cyr.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-600-lat.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-700-cyr.woff2) format('woff2');font-weight:700;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Montserrat';src:url(/static/fonts/montserrat-700-lat.woff2) format('woff2');font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* Inter — воркхорс UI и данных (числа tabular). Бренд-дисплей остаётся Montserrat. */
@font-face{font-family:'Inter';src:url(/static/fonts/inter-400-cyr.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-400-lat.woff2) format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-500-cyr.woff2) format('woff2');font-weight:500;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-500-lat.woff2) format('woff2');font-weight:500;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-600-cyr.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-600-lat.woff2) format('woff2');font-weight:600;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-700-cyr.woff2) format('woff2');font-weight:700;font-display:swap;unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}
@font-face{font-family:'Inter';src:url(/static/fonts/inter-700-lat.woff2) format('woff2');font-weight:700;font-display:swap;unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

:root{
  /* поверхности */
  --bg:#F7F8FA;
  --card:#FFFFFF;
  --inset:#F1F2F4;
  --hover:#F5F6F8;
  --head:#FAFBFC;
  --border:#E7E8EC;
  --border-strong:#D5D7DC;
  --divider:#F1F2F4;

  /* текст */
  --text-1:#1C2024;
  --text-2:#4A4E57;
  --text-3:#60646C;
  --text-4:#70757F;      /* QA 17.09 L-19: было #8B8D98 (3.4:1), теперь 4.6:1 на белом (#767B86 давал 4.24) */
  --text-dim:#B9BBC6;

  /* акцент */
  --accent:#0068FF;
  --accent-hover:#0046B8;
  --accent-soft:#CCE1FF;
  --accent-bg:#EFF6FF;
  --accent-line:#4D97FF;

  /* семантика: только суждение хорошо / внимание / плохо */
  --green:#067647; --green-bg:#E7F8F0; --green-border:#BFE6D2;
  --amber:#B98900; --amber-text:#8A6500; --amber-bg:#FFF6E5; --amber-border:#EFDCA8;
  --red:#B42318;   --red-bg:#FEECEB;   --red-border:#F6C9C5;

  /* воронка: один тон, слабое звено — красным */
  --funnel-fill:#CCE1FF;
  --funnel-weak:#FEECEB;
  --funnel-track:#F7F8FA;

  /* графики */
  --chart-line:#0068FF;
  --chart-area:rgba(0,104,255,.07);
  --chart-plan:#B9BBC6;
  --chart-grid:#EDEEF1;

  /* типографика */
  --font-display:'Montserrat',-apple-system,'Segoe UI',Roboto,sans-serif;
  --font-data:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif;

  --fs-kicker:10.5px;   /* рубрика caps */
  --fs-label:11.5px;
  --fs-body:12.5px;
  --fs-row:13px;
  --fs-card-title:13.5px;
  --fs-verdict:21px;
  --fs-metric:27px;
  --fs-hero:44px;

  /* геометрия */
  --r-sm:6px; --r-md:8px; --r-lg:12px; --r-xl:14px;
  --pad-card:14px 16px 15px;
  --row-h:40px;
  --control-h:28px;
  --tap-min:44px;        /* мобильные хиты не ниже */
  --shadow-card:0 1px 2px rgba(16,24,40,.05);
  --shadow-float:0 10px 30px rgba(16,24,40,.12);
  --focus:0 0 0 3px rgba(0,104,255,.14);

  /* ── совместимость со старой разметкой (алиасы, не удалять до конца миграции) ── */
  --text:var(--text-1);
  --muted:var(--text-3);
  --brand:var(--accent);
  --font-ui:var(--font-data);
  --font:var(--font-data);
  --shadow-xs:var(--shadow-card);
  --funnel-1:#CCE1FF; --funnel-2:#99C2FF; --funnel-3:#4D97FF; --funnel-4:#0068FF; --funnel-5:#0046B8;
  --bg-2:var(--head);
  --line:var(--border);
  --soft:var(--inset);
  --blue:var(--accent);
  /* Брейкпоинты (единый источник, читаются JS через matchBreakpoint):
     mobile < 768 · tablet 768-1024 · desktop > 1024. Порог таблица↔карточки
     решает container query по ширине КОНТЕЙНЕРА (~560px), не вьюпорта. */
  --bp-mobile:768px; --bp-tablet:1024px; --bp-card:560px;
  --tap:44px;
  --bottomnav-h:56px;
}

/* Данные всегда tabular, иначе колонки «дышат» */
body{font-family:var(--font-data);background:var(--bg);color:var(--text-1);
  font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;}
.tnum,td,th,input,.metric{font-variant-numeric:tabular-nums;}
.tnum{font-feature-settings:'tnum' 1;}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;}
  /* Индикаторы загрузки — функциональное движение, не декор (REVIEW_MOBILE_2026-09-17, P1 #6):
     при «Уменьшении движения» на iOS спиннер и полоса прогресса замирали → индикатора не было вообще.
     Скелетон остаётся статичным, но теперь контрастным (app.css .skeleton). */
  .spinner{animation-duration:.8s!important;animation-iteration-count:infinite!important;}
  .top-progress::before{animation-duration:1.1s!important;animation-iteration-count:infinite!important;}
}
