/* ============================================================================
   РЕНТГЕН ПРОДАЖ — Design System
   Метафора: рентген-кабинет (тёмная «комната снимков») + деньги как жизненные
   показатели. Серьёзный диагностический инструмент, не игрушка.

   Токены — единственный источник правды (governance: новые цвета/отступы только
   здесь, семантическим именем). Тёмная тема по умолчанию + явный светлый режим;
   внутри Telegram нейтрали наследуются от --tg-theme-*.
   ============================================================================ */
:root {
  /* ---- Бренд-палитра (сырой слой; в разметке не использовать напрямую) ---- */
  --c-bg:         #080a0f;   /* глубокая тёмная комната снимков */
  --c-surface-1:  #10151e;
  --c-surface-2:  #171e2a;
  --c-surface-3:  #232d3d;
  --c-text:       #eef2f8;
  --c-text-muted: #8b97ac;
  --c-scan:       #34d8ff;   /* акцент «скан» — рентгеновское свечение */
  --c-danger:     #ff5468;   /* потеря/плохо — «кровотечение» денег */
  --c-success:    #34d888;   /* выигрыш/хорошо */
  --c-warning:    #ffb733;   /* риск */

  /* ---- Мост к теме Telegram: нейтрали следуют за темой пользователя,
          бренд/статусы — всегда наши (несут смысл) ---- */
  --surface-base: var(--tg-theme-bg-color, var(--c-bg));
  --surface-1:    var(--tg-theme-section-bg-color, var(--c-surface-1));
  --surface-2:    var(--tg-theme-secondary-bg-color, var(--c-surface-2));
  --surface-3:    var(--c-surface-3);
  --text:         var(--tg-theme-text-color, var(--c-text));
  --text-muted:   var(--tg-theme-hint-color, var(--c-text-muted));
  --link:         var(--tg-theme-link-color, var(--c-scan));
  --border:       color-mix(in srgb, var(--text) 10%, transparent);
  --border-strong: color-mix(in srgb, var(--text) 18%, transparent);
  --hairline:     inset 0 1px 0 color-mix(in srgb, var(--text) 6%, transparent);
  --accent:       var(--c-scan);
  --success:      var(--c-success);
  --danger:       var(--c-danger);
  --warning:      var(--c-warning);
  --on-accent:    #04222b;

  /* Статусные подложки (работают на тёмном и светлом — это tint поверх surface) */
  --tint-danger:  color-mix(in srgb, var(--danger) 16%, transparent);
  --tint-success: color-mix(in srgb, var(--success) 16%, transparent);
  --tint-warning: color-mix(in srgb, var(--warning) 16%, transparent);
  --tint-accent:  color-mix(in srgb, var(--accent) 14%, transparent);

  /* ---- Типографика ---- */
  --font: "Inter", -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  --fs-hero: clamp(40px, 13vw, 64px);  /* деньги главной дыры — крупнейший элемент */
  --fs-xl: 28px; --fs-lg: 22px; --fs-md: 17px; --fs-base: 15px;
  --fs-sm: 13px; --fs-xs: 11px;
  --fw-reg: 400; --fw-med: 600; --fw-bold: 700; --fw-black: 800;

  /* ---- Пространство (4pt), радиусы, тени, движение ---- */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 20px; --sp-6: 24px; --sp-8: 32px;
  --r-sm: 12px; --r-md: 16px; --r-lg: 22px; --r-xl: 28px; --r-pill: 999px;
  --shadow-1: 0 1px 2px rgba(0,0,0,.30), 0 2px 8px rgba(0,0,0,.20);
  --shadow-2: 0 12px 34px rgba(0,0,0,.45), 0 2px 8px rgba(0,0,0,.30);
  --elev-hover: 0 8px 24px rgba(0,0,0,.35);
  --glow-accent: 0 0 0 1px color-mix(in srgb, var(--accent) 40%, transparent), 0 8px 26px color-mix(in srgb, var(--accent) 22%, transparent);
  --glow-danger: 0 0 0 1px color-mix(in srgb, var(--danger) 40%, transparent), 0 16px 40px color-mix(in srgb, var(--danger) 22%, transparent);
  --ease: cubic-bezier(.2,.7,.2,1);
  --dur: .18s;
  --tap: 44px;   /* минимальный touch-таргет (Telegram Mini App) */
  --maxw: 720px;
}

/* Светлая тема включается только явным выбором. В Telegram эти fallback-нейтрали
   по-прежнему перекрываются --tg-theme-* из моста выше. */
:root[data-theme="light"] {
  --c-bg: #f1f4f9; --c-surface-1: #ffffff; --c-surface-2: #f6f8fc; --c-surface-3: #e8edf4;
  --c-text: #0b1220; --c-text-muted: #5d6b80; --c-scan: #0a90bd;
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; color: var(--text);
  background:
    radial-gradient(80% 60% at 100% 0%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 60%),
    radial-gradient(70% 50% at 0% 100%, color-mix(in srgb, var(--accent) 4%, transparent), transparent 55%),
    var(--surface-base);
  background-attachment: fixed;
  font: var(--fs-base)/1.5 var(--font);
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.num { font-variant-numeric: tabular-nums; }
.hidden { display: none !important; }

/* ============================ App shell ============================ */
.app { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--sp-4) calc(var(--sp-8) + env(safe-area-inset-bottom)); }

.app__header {
  position: sticky; top: 0; z-index: 20;
  background: color-mix(in srgb, var(--surface-base) 88%, transparent);
  backdrop-filter: blur(12px);
  padding: var(--sp-4) 0 var(--sp-3);
  margin: 0 calc(-1 * var(--sp-4));
  padding-left: var(--sp-4); padding-right: var(--sp-4);
  padding-top: calc(var(--sp-3) + env(safe-area-inset-top));
  border-bottom: 1px solid var(--border);
}
.brandbar { display: flex; align-items: center; gap: var(--sp-3); }
.brand { font-weight: var(--fw-black); font-size: var(--fs-md); letter-spacing: .2px; display: flex; align-items: center; gap: 8px; }
.brand__logo { font-size: 20px; filter: drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 60%, transparent)); }
.brand b { color: var(--accent); }
.controls { margin-left: auto; display: flex; align-items: center; gap: var(--sp-2); }
.controls input {
  width: 64px; min-height: var(--tap); background: var(--surface-2); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--r-sm); padding: 6px 8px; font-size: var(--fs-sm);
}
.iconbtn {
  min-width: var(--tap); min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center;
  background: var(--surface-2); color: var(--text); border: 1px solid var(--border);
  border-radius: var(--r-sm); cursor: pointer; font-size: 18px;
}
.iconbtn:active { transform: scale(.94); }

/* Segmented switch (две главные секции) */
.seg {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: var(--sp-3);
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-pill); padding: 4px;
}
.seg__btn {
  min-height: var(--tap); border: 0; background: transparent; color: var(--text-muted);
  font-size: var(--fs-base); font-weight: var(--fw-bold); border-radius: var(--r-pill);
  cursor: pointer; transition: color var(--dur) var(--ease), background var(--dur) var(--ease);
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.seg__btn[aria-selected="true"] { background: var(--accent); color: var(--on-accent); box-shadow: var(--shadow-1); }

.meta { color: var(--text-muted); font-size: var(--fs-xs); margin: var(--sp-3) 0 0; }

/* States */
.status { padding: var(--sp-4); border-radius: var(--r-md); background: var(--surface-1); border: 1px solid var(--border); color: var(--text-muted); margin-top: var(--sp-4); }
.status.error { color: var(--danger); border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); }
.empty { text-align: center; padding: var(--sp-8) var(--sp-5); color: var(--text-muted); }
.empty__icon { font-size: 40px; opacity: .8; }
.empty h3 { color: var(--text); margin: var(--sp-3) 0 var(--sp-2); font-size: var(--fs-lg); }
.empty .badge { margin-top: var(--sp-4); }

/* Sections */
.view { padding-top: var(--sp-5); }
.section { margin-top: var(--sp-6); }
.section__title { display: flex; align-items: baseline; gap: var(--sp-2); font-size: var(--fs-sm); text-transform: uppercase; letter-spacing: .9px; color: var(--text-muted); margin: 0 0 var(--sp-3); font-weight: var(--fw-bold); }
.section__hint { font-size: var(--fs-xs); color: var(--text-muted); text-transform: none; letter-spacing: 0; font-weight: var(--fw-reg); }

/* ============================ Verdict (главная дыра) ============================ */
.verdict {
  position: relative; overflow: hidden; border-radius: var(--r-xl); padding: var(--sp-6);
  margin-top: var(--sp-5); border: 1px solid color-mix(in srgb, var(--danger) 40%, transparent);
  background:
    radial-gradient(120% 120% at 0% 0%, color-mix(in srgb, var(--danger) 22%, transparent), transparent 60%),
    var(--surface-1);
  box-shadow: var(--glow-danger);
}
.verdict::after { /* «скан-линия» */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(180deg, transparent 0 6px, color-mix(in srgb, var(--text) 3%, transparent) 6px 7px);
  opacity: .5;
}
.verdict.ok { border-color: color-mix(in srgb, var(--success) 40%, transparent); box-shadow: 0 0 0 1px color-mix(in srgb, var(--success) 35%, transparent), 0 16px 40px color-mix(in srgb, var(--success) 18%, transparent); background: radial-gradient(120% 120% at 0% 0%, var(--tint-success), transparent 60%), var(--surface-1); }
.verdict__kicker { position: relative; display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: 1.4px; font-weight: var(--fw-bold); color: var(--danger); }
.verdict.ok .verdict__kicker { color: var(--success); }
.verdict__money { position: relative; font-size: var(--fs-hero); font-weight: var(--fw-black); line-height: 1.02; letter-spacing: -1.5px; color: var(--danger); margin: var(--sp-2) 0 var(--sp-1); }
.verdict.ok .verdict__money { color: var(--success); }
.verdict__diag { position: relative; font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--text); }
.verdict__action { position: relative; color: var(--text-muted); font-size: var(--fs-base); margin-top: var(--sp-3); display: flex; gap: 8px; align-items: flex-start; }
.verdict__action b { color: var(--text); }
.verdict__cta { position: relative; margin-top: var(--sp-4); display: flex; gap: var(--sp-3); align-items: center; flex-wrap: wrap; }
.verdict__count { color: var(--text-muted); font-size: var(--fs-sm); }

/* ============================ KPI ============================ */
.kpis { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); }
.kpi { background: var(--surface-1); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--sp-4); position: relative; }
.kpi::before { content: ""; position: absolute; left: 0; top: var(--sp-4); bottom: var(--sp-4); width: 3px; border-radius: 3px; background: var(--text-muted); opacity: .5; }
.kpi--good::before { background: var(--success); opacity: 1; }
.kpi--bad::before  { background: var(--danger); opacity: 1; }
.kpi--risk::before { background: var(--warning); opacity: 1; }
.kpi__label { color: var(--text-muted); font-size: var(--fs-sm); }
.kpi__value { font-size: var(--fs-xl); font-weight: var(--fw-black); margin-top: var(--sp-2); letter-spacing: -.5px; }
.kpi--good .kpi__value { color: var(--success); }
.kpi--bad .kpi__value  { color: var(--danger); }
.kpi--risk .kpi__value { color: var(--warning); }
.kpi__sub { color: var(--text-muted); font-size: var(--fs-xs); margin-top: var(--sp-1); }

/* ============================ Воронка ============================ */
.funnel { display: flex; flex-direction: column; gap: var(--sp-2); }
.fstep { background: var(--surface-1); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--sp-3) var(--sp-4); }
.fstep__top { display: flex; justify-content: space-between; align-items: baseline; gap: var(--sp-3); }
.fstep__name { font-size: var(--fs-sm); color: var(--text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fstep__val { font-size: var(--fs-sm); color: var(--text-muted); white-space: nowrap; }
.fstep__val b { color: var(--text); }
.fbar { height: 10px; border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; margin-top: var(--sp-2); }
.fbar > span { display: block; height: 100%; border-radius: var(--r-pill); background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 55%, var(--surface-1))); }
.fstep--won .fbar > span  { background: linear-gradient(90deg, var(--success), color-mix(in srgb, var(--success) 55%, var(--surface-1))); }
.fstep--lost .fbar > span { background: linear-gradient(90deg, var(--danger), color-mix(in srgb, var(--danger) 55%, var(--surface-1))); }
.fdrop { display: inline-flex; align-items: center; gap: 4px; align-self: center; font-size: var(--fs-xs); color: var(--danger); margin: -2px 0 -2px auto; padding: 2px 8px; border-radius: var(--r-pill); background: var(--tint-danger); }

/* ============================ Слабые зоны ============================ */
.leaks { display: flex; flex-direction: column; gap: var(--sp-2); }
.leak { display: flex; align-items: center; gap: var(--sp-3); background: var(--surface-1); border: 1px solid var(--border); border-left: 3px solid var(--warning); border-radius: var(--r-md); padding: var(--sp-3) var(--sp-4); }
.leak__rank { font-size: var(--fs-sm); font-weight: var(--fw-black); color: var(--text-muted); min-width: 20px; }
.leak__title { font-size: var(--fs-base); color: var(--text); }
.leak__count { font-size: var(--fs-xs); color: var(--text-muted); }
.leak__money { margin-left: auto; font-size: var(--fs-md); font-weight: var(--fw-bold); color: var(--warning); white-space: nowrap; }

/* ============================ AI-плашки ============================ */
.panels { display: grid; grid-template-columns: 1fr; gap: var(--sp-3); }
.panel { background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 45%, var(--surface-1)), var(--surface-1)); border: 1px solid var(--border); border-radius: var(--r-lg); box-shadow: var(--shadow-1), var(--hairline); padding: var(--sp-5); position: relative; overflow: hidden; }
.panel--loss { border-top: 3px solid var(--danger); }
.panel--win  { border-top: 3px solid var(--success); }
.panel__head { display: flex; align-items: center; gap: var(--sp-2); }
.panel__icon { font-size: 22px; }
.panel__title { font-size: var(--fs-md); font-weight: var(--fw-black); letter-spacing: .3px; }
.panel--loss .panel__title { color: var(--danger); }
.panel--win .panel__title { color: var(--success); }
.panel__sub { color: var(--text-muted); font-size: var(--fs-xs); margin-top: 2px; }
.panel__body { margin-top: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }
.pattern__row { display: flex; align-items: baseline; gap: var(--sp-2); }
.pattern__txt { font-size: var(--fs-base); color: var(--text); }
.pattern__freq { margin-left: auto; font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--text-muted); white-space: nowrap; }
.pattern__track { height: 6px; background: var(--surface-3); border-radius: var(--r-pill); margin-top: 6px; overflow: hidden; }
.pattern__track > span { display: block; height: 100%; border-radius: var(--r-pill); }
.panel--loss .pattern__track > span { background: var(--danger); }
.panel--win .pattern__track > span { background: var(--success); }
.panel__foot { margin-top: var(--sp-4); padding-top: var(--sp-3); border-top: 1px solid var(--border); font-size: var(--fs-sm); color: var(--text); }
.panel__foot b { display: block; color: var(--text-muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .8px; margin-bottom: 4px; font-weight: var(--fw-bold); }
.panel .empty { padding: var(--sp-5) 0 0; }

/* ============================ Раздел Анализ ============================ */
.tabs { display: flex; gap: var(--sp-2); overflow-x: auto; padding-bottom: 2px; margin-top: var(--sp-4); -webkit-overflow-scrolling: touch; }
.tab { min-height: var(--tap); white-space: nowrap; padding: 0 var(--sp-4); border-radius: var(--r-pill); border: 1px solid var(--border); background: var(--surface-1); color: var(--text-muted); font-size: var(--fs-sm); font-weight: var(--fw-bold); cursor: pointer; }
.tab[aria-selected="true"] { background: var(--tint-accent); color: var(--text); border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); }
.tab .count { opacity: .7; margin-left: 4px; }

.mgr { background: var(--surface-1); border: 1px solid var(--border); border-radius: var(--r-md); margin-top: var(--sp-2); overflow: hidden; }
.mgr summary { list-style: none; }
.mgr summary::-webkit-details-marker { display: none; }
.mgr__row { width: 100%; min-height: 56px; display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); background: transparent; border: 0; color: var(--text); cursor: pointer; text-align: left; }
.mgr__row:active { background: var(--surface-2); }
.mgr__av { width: 34px; height: 34px; flex: none; border-radius: var(--r-pill); background: var(--tint-accent); color: var(--accent); display: flex; align-items: center; justify-content: center; font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.mgr__name { font-weight: var(--fw-bold); font-size: var(--fs-base); }
.mgr__sub { font-size: var(--fs-xs); color: var(--text-muted); }
.mgr__stats { margin-left: auto; display: flex; gap: var(--sp-2); align-items: center; }
.mgr__chev { color: var(--text-muted); transition: transform var(--dur) var(--ease); }
.mgr[open] .mgr__chev { transform: rotate(90deg); }
.mgr__deals { padding: 0 var(--sp-3) var(--sp-3); display: flex; flex-direction: column; gap: var(--sp-2); }

.deal { background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md); padding: var(--sp-3) var(--sp-4); }
.deal__top { display: flex; align-items: flex-start; gap: var(--sp-3); }
.deal__name { font-weight: var(--fw-bold); font-size: var(--fs-base); color: var(--link); text-decoration: none; }
.deal__name:active { opacity: .7; }
.deal__meta { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }
.deal__price { margin-left: auto; font-weight: var(--fw-bold); white-space: nowrap; }
.deal__ai { margin-top: var(--sp-3); padding-top: var(--sp-3); border-top: 1px solid var(--border); }
.deal__summary { font-size: var(--fs-sm); color: var(--text); }
.deal__phrase { font-size: var(--fs-sm); color: var(--text-muted); font-style: italic; margin-top: var(--sp-2); padding-left: var(--sp-3); border-left: 2px solid var(--border); }
.deal__signals { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--sp-3); }
.deal__foot { margin-top: var(--sp-3); display: flex; gap: var(--sp-2); align-items: center; }

/* Бейджи / статусы (цвет-семантика) */
.badge { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-xs); font-weight: var(--fw-bold); padding: 3px 9px; border-radius: var(--r-pill); border: 1px solid var(--border); color: var(--text-muted); background: var(--surface-1); white-space: nowrap; }
.badge--good { color: var(--success); background: var(--tint-success); border-color: transparent; }
.badge--bad  { color: var(--danger); background: var(--tint-danger); border-color: transparent; }
.badge--risk { color: var(--warning); background: var(--tint-warning); border-color: transparent; }
.badge--accent { color: var(--accent); background: var(--tint-accent); border-color: transparent; }

/* Кнопки */
.btn { min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 var(--sp-5); border-radius: var(--r-sm); border: 1px solid transparent; font-size: var(--fs-base); font-weight: var(--fw-bold); cursor: pointer; transition: filter var(--dur) var(--ease), transform var(--dur) var(--ease); }
.btn:active { transform: scale(.97); }
.btn--primary { background: linear-gradient(180deg, color-mix(in srgb, #fff 12%, var(--accent)), var(--accent)); color: var(--on-accent); box-shadow: var(--glow-accent); }
.btn--primary:hover { filter: brightness(1.06); box-shadow: var(--glow-accent), var(--elev-hover); }
.btn--ghost { background: color-mix(in srgb, var(--text) 4%, transparent); border-color: var(--border-strong); color: var(--text); }
.btn--ghost:hover { background: color-mix(in srgb, var(--text) 8%, transparent); }
.btn--danger { background: var(--danger); color: #fff; }
.btn--sm { min-height: 38px; padding: 0 var(--sp-4); font-size: var(--fs-sm); }
.btn--block { width: 100%; }

/* Toast */
.toast { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom)); transform: translateX(-50%) translateY(20px); background: var(--surface-3); color: var(--text); border: 1px solid var(--border); border-radius: var(--r-pill); padding: 12px 18px; font-size: var(--fs-sm); box-shadow: var(--shadow-2); opacity: 0; pointer-events: none; transition: opacity var(--dur) var(--ease), transform var(--dur) var(--ease); z-index: 50; max-width: 90vw; }
.toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ============================ ≥720px (планшет/десктоп) ============================ */
@media (min-width: 720px) {
  :root { --maxw: 920px; }
  .kpis { grid-template-columns: repeat(4, 1fr); }
  .panels { grid-template-columns: 1fr 1fr; }
  .verdict { display: grid; grid-template-columns: 1fr auto; column-gap: var(--sp-6); align-items: center; }
  .verdict__side { grid-row: 1 / 3; align-self: stretch; display: flex; flex-direction: column; justify-content: center; gap: var(--sp-3); }
  .disc-panels { grid-template-columns: 1fr 1fr; }
}

/* ============================ Фильтр-бар (Веха 1.5) ============================ */
.filterbar {
  background: var(--surface-1);
  border-bottom: 1px solid var(--border);
  padding: var(--sp-2) var(--sp-4);
  display: flex; flex-direction: column; gap: var(--sp-2);
  max-width: var(--maxw); margin: 0 auto; width: 100%;
  box-sizing: border-box;
}
.filterbar__periods { display: flex; gap: var(--sp-2); overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.filterbar__periods::-webkit-scrollbar { display: none; }
.prd-btn {
  flex-shrink: 0;
  min-height: 32px; padding: 0 12px;
  border-radius: var(--r-pill); border: 1px solid var(--border);
  background: transparent; color: var(--text-muted);
  font-size: var(--fs-sm); font-weight: var(--fw-med);
  cursor: pointer;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
}
.prd-btn[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); border-color: transparent; }
.filterbar__selects { display: flex; gap: var(--sp-3); }
.filter-sel {
  flex: 1; min-height: 36px;
  border-radius: var(--r-sm); border: 1px solid var(--border);
  background: var(--surface-2); color: var(--text);
  font-size: var(--fs-sm); padding: 0 var(--sp-3); cursor: pointer;
}

/* BUG-15: произвольный диапазон дат в шапке */
.date-range { display: flex; align-items: center; gap: var(--sp-1); }
.date-range__sep { color: var(--text-muted); font-size: var(--fs-sm); }
.date-range__input {
  flex: 0 0 auto; min-height: 32px; padding: 0 var(--sp-2);
  color-scheme: dark;
}

/* ============================ Дисциплина (Анализ, Уровень 1) ============================ */
.disc-panels { display: grid; gap: var(--sp-4); padding: var(--sp-4); }
.disc-panel { background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 40%, var(--surface-1)), var(--surface-1)); border-radius: var(--r-md); border: 1px solid var(--border); box-shadow: var(--shadow-1), var(--hairline); overflow: hidden; }
.disc-panel__head { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3) var(--sp-4); border-bottom: 1px solid var(--border); }
.disc-panel__icon { font-size: 20px; }
.disc-panel__title { font-weight: var(--fw-bold); font-size: var(--fs-sm); }
.disc-panel__sub { font-size: var(--fs-xs); color: var(--text-muted); }
.disc-panel__body { padding: var(--sp-3) var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-3); }
.disc-item__row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.disc-item__label { font-size: var(--fs-sm); color: var(--text); }
.disc-item__pct { font-size: var(--fs-sm); font-weight: var(--fw-bold); }
.disc-item__pct--bad { color: var(--danger); }
.disc-item__pct--good { color: var(--success); }
.disc-item__money { font-size: var(--fs-xs); color: var(--danger); }
.disc-bar { height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; margin-top: 2px; }
.disc-bar span { display: block; height: 100%; border-radius: 3px; transition: width .3s var(--ease); }
.disc-bar--fail span { background: var(--danger); }
.disc-bar--pass span { background: var(--success); }

/* Мини-полоски дисциплины в строке менеджера */
.mgr__disc { padding: var(--sp-2) var(--sp-4) var(--sp-3); border-top: 1px solid var(--border); }
.mgr__disc-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--sp-2); }
.mgr__disc-label { font-size: var(--fs-xs); color: var(--text-muted); }
.mgr__disc-pct { font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.mgr__disc-bars { display: flex; flex-direction: column; gap: 5px; }
.disc-mini { display: flex; align-items: center; gap: var(--sp-2); }
.disc-mini__lbl { font-size: var(--fs-xs); color: var(--text-muted); flex: 0 0 140px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.disc-mini__bar { flex: 1; height: 4px; border-radius: 2px; background: var(--surface-3); overflow: hidden; }
.disc-mini__bar span { display: block; height: 100%; border-radius: 2px; background: var(--accent); }
.disc-mini__num { font-size: var(--fs-xs); color: var(--text-muted); flex: 0 0 30px; text-align: right; }

/* Чип-чек-лист в детали сделки */
.checklist { display: flex; flex-direction: column; gap: var(--sp-2); margin-top: var(--sp-3); }
.chk-chip { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); }
.chk-chip__ico { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; }
.chk-chip--pass .chk-chip__ico { background: var(--tint-success); color: var(--success); }
.chk-chip--fail .chk-chip__ico { background: var(--tint-danger); color: var(--danger); }
.chk-chip--unknown .chk-chip__ico { background: var(--surface-3); color: var(--text-muted); }
.chk-chip--fail .chk-chip__lbl { color: var(--danger); }

/* ============================ Настройки (Веха 1.5) ============================ */
.settings-page { padding-bottom: calc(var(--sp-6) + env(safe-area-inset-bottom)); }
.settings__desc { font-size: var(--fs-sm); color: var(--text-muted); margin-top: var(--sp-2); line-height: 1.5; }
.settings__label { font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: var(--sp-3); }
.settings__checks { display: flex; flex-direction: column; gap: var(--sp-2); }
.settings__check-item {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 0 var(--sp-4);
  background: var(--surface-1); border-radius: var(--r-sm); border: 1px solid var(--border);
  min-height: var(--tap); cursor: pointer;
  transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.settings__check-item:hover { border-color: var(--border-strong); background: color-mix(in srgb, var(--surface-2) 60%, var(--surface-1)); }
.settings__check-item input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); flex-shrink: 0; cursor: pointer; }
.settings__check-item label { font-size: var(--fs-base); cursor: pointer; flex: 1; padding: var(--sp-3) 0; }
.settings__actions { padding-top: var(--sp-3); }
.settings__status { font-size: var(--fs-sm); color: var(--text-muted); margin-top: var(--sp-3); text-align: center; min-height: 20px; }
.settings__status--ok { color: var(--success); }
.settings__status--err { color: var(--danger); }

/* ============================ Сайдбар-лейаут (Chat 3 v2) ============================ */
.layout {
  display: flex; min-height: 100dvh;
}

.sidebar {
  width: 232px; flex: none;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 55%, var(--surface-1)), var(--surface-1));
  border-right: 1px solid var(--border);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100dvh;
  overflow-y: auto;
}

.sidebar__brand {
  padding: var(--sp-5) var(--sp-3) var(--sp-4);
  font-weight: var(--fw-black); font-size: var(--fs-md);
  display: flex; align-items: center; gap: 8px;
  border-bottom: 1px solid var(--border);
  letter-spacing: .2px;
}
.sidebar__brand span { color: var(--accent); }
.sidebar__brand-logo { font-size: 22px; filter: drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 60%, transparent)); }
.theme-toggle {
  width: 32px; height: 32px; margin-left: auto; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--border); border-radius: var(--r-sm);
  background: var(--surface-2); color: var(--text-muted); cursor: pointer;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.theme-toggle:hover { color: var(--accent); border-color: color-mix(in srgb, var(--accent) 45%, var(--border)); }
.theme-toggle[hidden] { display: none; }
.theme-toggle__moon { display: none; }
:root[data-theme="light"] .theme-toggle__sun { display: none; }
:root[data-theme="light"] .theme-toggle__moon { display: block; }

.sidebar__nav {
  flex: 1; display: flex; flex-direction: column;
  padding: var(--sp-3) var(--sp-2);
  gap: 2px;
}

.sidebar__item {
  position: relative;
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 10px var(--sp-3); border-radius: var(--r-sm);
  font-size: var(--fs-base); font-weight: var(--fw-med);
  color: var(--text-muted); cursor: pointer;
  border: none; background: transparent; width: 100%; text-align: left;
  transition: background var(--dur) var(--ease), color var(--dur) var(--ease);
  min-height: 42px;
}
.sidebar__item:hover { background: color-mix(in srgb, var(--text) 6%, transparent); color: var(--text); }
.sidebar__item.active {
  background: linear-gradient(90deg, var(--tint-accent), transparent 85%);
  color: var(--accent); font-weight: var(--fw-bold);
}
.sidebar__item.active::before {
  content: ""; position: absolute; left: -2px; top: 9px; bottom: 9px; width: 3px;
  border-radius: 0 3px 3px 0; background: var(--accent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--accent) 60%, transparent);
}
.sidebar__item-icon { flex: none; width: 20px; display: flex; align-items: center; justify-content: center; }

.sidebar__sep {
  height: 1px; background: var(--border);
  margin: var(--sp-2) var(--sp-3);
}

.sidebar__footer {
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--border);
  display: flex; align-items: center; gap: var(--sp-2);
}
.sidebar__account-label { font-size: var(--fs-xs); color: var(--text-muted); }
.sidebar__account-input {
  width: 52px; background: var(--surface-2); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--r-sm);
  padding: 4px 6px; font-size: var(--fs-xs);
}
.sidebar__refresh {
  min-width: 28px; min-height: 28px; display: flex; align-items: center; justify-content: center;
  background: var(--surface-2); color: var(--text); border: 1px solid var(--border);
  border-radius: var(--r-sm); cursor: pointer; font-size: 14px; margin-left: auto;
}
.sidebar__refresh:active { transform: scale(.9); }

/* Main content area */
.main-content {
  flex: 1; min-width: 0;
  padding: var(--sp-6) var(--sp-6) calc(var(--sp-8) + env(safe-area-inset-bottom));
  overflow-y: auto;
}

.screen { display: none; }
.screen.active { display: block; }

.screen__header {
  display: flex; align-items: flex-start; justify-content: space-between;
  margin-bottom: var(--sp-5); flex-wrap: wrap; gap: var(--sp-3);
}
.screen__title { font-size: var(--fs-lg); font-weight: var(--fw-black); letter-spacing: -.3px; }
.screen__subtitle { font-size: var(--fs-sm); color: var(--text-muted); margin-top: 2px; }
.screen__badge { align-self: center; }
.scope-summary {
  max-width: 680px; margin-top: var(--sp-2); color: var(--text);
  font-size: var(--fs-sm); line-height: 1.45;
}
.scope-summary__reason { color: var(--text-muted); }
.data-freshness {
  display: flex; align-items: center; gap: var(--sp-2);
  margin: 0 0 var(--sp-4); padding: var(--sp-3) var(--sp-4);
  border: 1px solid color-mix(in srgb, var(--warning) 45%, var(--border));
  border-radius: var(--r-md); background: var(--tint-warning); color: var(--warning);
  font-size: var(--fs-sm); font-weight: var(--fw-med);
}
.data-freshness[hidden] { display: none; }

/* ============================ Обзор ============================ */
.overview-content[hidden], .screen-state[hidden] { display: none; }
.screen-state {
  min-height: 132px; display: flex; flex-direction: column; justify-content: center;
  gap: var(--sp-2); padding: var(--sp-5); border: 1px solid var(--border);
  border-radius: var(--r-lg); background: var(--surface-1); color: var(--text-muted);
  box-shadow: var(--hairline);
}
.screen-state strong { color: var(--text); font-size: var(--fs-md); }
.screen-state--error { border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); }
.screen-state--error strong { color: var(--danger); }
.overview-meta {
  margin-bottom: var(--sp-4); color: var(--text-muted); font-size: var(--fs-sm);
}
.overview-section { margin-bottom: var(--sp-8); }
.overview-section__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: var(--sp-4); margin-bottom: var(--sp-4);
}
.overview-section__head h2 {
  margin: 0; font-size: var(--fs-md); font-weight: var(--fw-bold); letter-spacing: -.2px;
}
.overview-section__hint { color: var(--text-muted); font-size: var(--fs-xs); text-align: right; }
.overview-card {
  padding: var(--sp-5); border: 1px solid var(--border); border-radius: var(--r-lg);
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.overview-verdict {
  display: grid; grid-template-columns: 1.2fr .8fr 1.2fr 1fr;
  border: 1px solid var(--border); border-radius: var(--r-lg); overflow: hidden;
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.overview-verdict--danger { border-color: color-mix(in srgb, var(--danger) 38%, var(--border)); }
.overview-verdict--ok { border-color: color-mix(in srgb, var(--success) 38%, var(--border)); }
.overview-verdict__item {
  min-width: 0; padding: var(--sp-5); border-left: 1px solid var(--border);
  display: flex; flex-direction: column; gap: var(--sp-2);
}
.overview-verdict__item:first-child { border-left: 0; }
.overview-verdict__label {
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-bold);
  letter-spacing: .08em; text-transform: uppercase;
}
.overview-verdict__item strong { font-size: var(--fs-base); line-height: 1.45; }
.overview-verdict__price strong { font-size: var(--fs-xl); color: var(--danger); white-space: nowrap; }
.overview-verdict--ok .overview-verdict__price strong { color: var(--success); }
.overview-kpis { margin: 0 0 var(--sp-8); }
.overview-findings { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.overview-finding {
  display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: var(--sp-3);
  align-items: start; padding: var(--sp-4); border: 1px solid var(--border);
  border-radius: var(--r-md); background: var(--surface-1); box-shadow: var(--hairline);
}
.overview-finding span {
  width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center;
  border-radius: var(--r-pill); background: var(--tint-accent); color: var(--accent);
  font-size: var(--fs-xs); font-weight: var(--fw-bold);
}
.overview-finding p { margin: 0; color: var(--text); font-size: var(--fs-sm); line-height: 1.55; }

/* ============================ Сделки под риском ============================ */
.deals-content[hidden] { display: none; }
.deals-summary {
  display: grid; grid-template-columns: minmax(220px, auto) minmax(0, 1fr);
  gap: var(--sp-6); align-items: center; margin-bottom: var(--sp-8); padding: var(--sp-5);
  border: 1px solid color-mix(in srgb, var(--warning) 42%, var(--border));
  border-radius: var(--r-lg); background: linear-gradient(180deg, var(--tint-warning), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.deals-summary > div { display: flex; flex-direction: column; gap: var(--sp-1); }
.deals-summary strong { color: var(--warning); font-size: var(--fs-hero); line-height: 1; white-space: nowrap; }
.deals-summary p { margin: 0; max-width: 720px; color: var(--text); font-size: var(--fs-md); line-height: 1.5; }
.risk-deals { display: flex; flex-direction: column; gap: var(--sp-3); }
.risk-deal {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-5);
  padding: var(--sp-5); border: 1px solid var(--border); border-radius: var(--r-md);
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.risk-deal__eyebrow {
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-bold);
  letter-spacing: .06em; text-transform: uppercase;
}
.risk-deal h3 { margin: var(--sp-1) 0 0; font-size: var(--fs-md); line-height: 1.35; }
.risk-deal__meta { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-5); margin-top: var(--sp-2); color: var(--text-muted); font-size: var(--fs-sm); }
.risk-deal__reasons { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); }
.risk-reason {
  display: inline-flex; padding: var(--sp-1) var(--sp-3); border-radius: var(--r-pill);
  background: var(--tint-warning); color: var(--warning); font-size: var(--fs-xs); font-weight: var(--fw-bold);
}
.risk-reason--unknown { background: var(--surface-3); color: var(--text-muted); }
.risk-deal__side { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: var(--sp-4); }
.risk-deal__price { color: var(--warning); font-size: var(--fs-lg); white-space: nowrap; }
.risk-deal__price--unknown { color: var(--text-muted); font-size: var(--fs-sm); }
.risk-deal__link {
  min-height: var(--tap); display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2);
  padding: 0 var(--sp-4); border: 1px solid var(--border-strong); border-radius: var(--r-sm);
  color: var(--link); font-size: var(--fs-sm); font-weight: var(--fw-bold); text-decoration: none;
}
.risk-deal__link:hover { border-color: color-mix(in srgb, var(--accent) 50%, var(--border)); background: var(--tint-accent); }
.risk-deal__link--disabled { color: var(--text-muted); font-weight: var(--fw-reg); }

/* ============================ Формула побед ============================ */
.win-formula-content[hidden], #loss-patterns-section[hidden] { display: none; }
.win-formula-hero {
  display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  margin-bottom: var(--sp-5); border: 1px solid color-mix(in srgb, var(--accent) 40%, var(--border));
  border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.win-formula-hero article { display: flex; flex-direction: column; gap: var(--sp-3); padding: var(--sp-6); }
.win-formula-hero article + article { border-left: 1px solid var(--border); }
.win-formula-hero strong { font-size: var(--fs-md); line-height: 1.5; }
.win-formula-hero__diagnosis strong { font-size: var(--fs-lg); color: var(--accent); }
.win-formula-hero__recipe { background: var(--tint-success); }
.win-formula-hero__recipe strong { color: var(--success); }
.win-formula-sample { max-width: 620px; margin-bottom: var(--sp-8); }
.win-patterns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }
.win-pattern {
  padding: var(--sp-4); border: 1px solid var(--border); border-radius: var(--r-md);
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1)); box-shadow: var(--hairline);
}
.win-pattern__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-4); }
.win-pattern h3 { margin: 0; font-size: var(--fs-base); line-height: 1.4; }
.win-pattern__top strong { color: var(--success); font-size: var(--fs-md); }
.win-pattern__bar { height: 7px; margin-top: var(--sp-3); border-radius: var(--r-pill); background: var(--surface-3); overflow: hidden; }
.win-pattern__bar span { display: block; width: var(--pattern-value); height: 100%; border-radius: inherit; background: var(--success); }
.win-pattern--loss .win-pattern__top strong { color: var(--danger); }
.win-pattern--loss .win-pattern__bar span { background: var(--danger); }
.win-pattern blockquote {
  margin: var(--sp-3) 0 0; padding: var(--sp-3); border-left: 2px solid var(--border-strong);
  color: var(--text-muted); font-size: var(--fs-sm); line-height: 1.5;
}

/* ============================ Отдельная воронка ============================ */
.funnel-screen-content[hidden] { display: none; }
.funnel-filter-panel {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-4);
  margin-bottom: var(--sp-5); padding: var(--sp-4); border: 1px solid var(--border);
  border-radius: var(--r-lg); background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.funnel-filter-panel__group { display: flex; flex-direction: column; gap: var(--sp-2); }
.funnel-filter-panel .filter-sel { min-width: 190px; }
.funnel-filter-panel .date-range__input { min-width: 136px; }
.funnel-summary {
  display: flex; align-items: baseline; gap: var(--sp-4); margin-bottom: var(--sp-5);
  padding: var(--sp-4) var(--sp-5); border: 1px solid color-mix(in srgb, var(--accent) 36%, var(--border));
  border-radius: var(--r-md); background: var(--tint-accent);
}
.funnel-summary strong { color: var(--accent); font-size: var(--fs-lg); white-space: nowrap; }
.funnel-summary span { color: var(--text); font-size: var(--fs-sm); }
.funnel-screen-chart { overflow: hidden; }

/* KPI-шапка экрана (5 карточек) */
.kpi-bar { display: flex; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-5); }
.kpi-card {
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 45%, var(--surface-1)), var(--surface-1));
  border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-1), var(--hairline);
  padding: var(--sp-4); flex: 1; min-width: 130px; position: relative; overflow: hidden;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.kpi-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-2), var(--hairline); border-color: var(--border-strong); }
.kpi-card::before { content: ""; position: absolute; left: 0; top: var(--sp-3); bottom: var(--sp-3); width: 3px; border-radius: 0 3px 3px 0; background: var(--text-muted); opacity: .4; }
.kpi-card--good::before { background: var(--success); opacity: 1; }
.kpi-card--bad::before  { background: var(--danger); opacity: 1; }
.kpi-card--risk::before { background: var(--warning); opacity: 1; }
.kpi-card__label { font-size: var(--fs-xs); color: var(--text-muted); }
.kpi-card__value { font-size: var(--fs-xl); font-weight: var(--fw-black); margin-top: 4px; letter-spacing: -.4px; }
.kpi-card--bad .kpi-card__value  { color: var(--danger); }
.kpi-card--good .kpi-card__value { color: var(--success); }
.kpi-card--risk .kpi-card__value { color: var(--warning); }
.kpi-card__sub { margin-top: 2px; color: var(--text-muted); font-size: var(--fs-xs); }
.kpi-card__compare {
  margin-top: var(--sp-3); padding-top: var(--sp-2); border-top: 1px solid var(--border);
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-med); line-height: 1.4;
}
.kpi-card__compare--positive { color: var(--success); }
.kpi-card__compare--negative { color: var(--danger); }
.kpi-card__compare--neutral { color: var(--text-muted); }

/* Фильтр-строка (период + воронка) */
.screen-filters {
  display: flex; align-items: center; gap: var(--sp-3); flex-wrap: wrap;
  margin-bottom: var(--sp-4);
}
.prd-group { display: flex; gap: var(--sp-1); }

/* ============================ Менеджеры (рейтинг) ============================ */
.mgr-rating { display: flex; flex-direction: column; gap: var(--sp-2); }

.mgr-row {
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 40%, var(--surface-1)), var(--surface-1));
  border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-1), var(--hairline);
  overflow: hidden;
  transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);
}
.mgr-row:hover { transform: translateY(-1px); box-shadow: var(--elev-hover), var(--hairline); }
.mgr-row.open { border-color: color-mix(in srgb, var(--accent) 55%, var(--border)); box-shadow: var(--glow-accent); transform: none; }
.mgr-row__header {
  padding: var(--sp-4); display: flex; align-items: center; gap: var(--sp-4);
  cursor: pointer; transition: background var(--dur) var(--ease);
}
.mgr-row__header:hover { background: var(--surface-2); }
.mgr-row__header:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.mgr-row__chevron {
  flex: none; color: var(--text-muted); display: flex; align-items: center;
  transition: transform var(--dur) var(--ease), color var(--dur) var(--ease);
}
.mgr-row.open .mgr-row__chevron { transform: rotate(180deg); color: var(--accent); }
.mgr-row__rank {
  font-size: var(--fs-sm); font-weight: var(--fw-black); color: var(--text-muted);
  flex: none; width: 24px; text-align: center;
}
.mgr-row__rank--gold { color: #f5a623; }
.mgr-row__avatar {
  width: 40px; height: 40px; flex: none; border-radius: 50%;
  background: var(--tint-accent); color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  font-weight: var(--fw-bold); font-size: var(--fs-base);
}
.mgr-row__info { flex: 1; min-width: 0; }
.mgr-row__name { font-weight: var(--fw-bold); font-size: var(--fs-base); }
.mgr-row__sub { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }
.mgr-row__bar-wrap { flex: 1; min-width: 100px; max-width: 180px; }
.mgr-row__bar-label { display: flex; justify-content: space-between; font-size: var(--fs-xs); color: var(--text-muted); margin-bottom: 4px; }
.mgr-row__bar { height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.mgr-row__bar span { display: block; height: 100%; border-radius: 3px; }
.mgr-row__bar--good span { background: var(--success); }
.mgr-row__bar--mid span  { background: var(--accent); }
.mgr-row__bar--bad span  { background: var(--danger); }
.mgr-row__bar--none span { background: var(--text-muted); }
.mgr-row__convs { display: flex; gap: var(--sp-4); flex: none; }
.mgr-row__conv { text-align: center; }
.mgr-row__conv-val { font-size: var(--fs-base); font-weight: var(--fw-bold); }
.mgr-row__conv-lbl { font-size: var(--fs-xs); color: var(--text-muted); }
.mgr-row__trend { font-size: var(--fs-sm); font-weight: var(--fw-bold); flex: none; }
.mgr-row__trend--up   { color: var(--success); }
.mgr-row__trend--down { color: var(--danger); }

/* ============================ Воронка (новые цветные бары) ============================ */
/* BUG-07: числа не обрезаются — track полной ширины, bar = цветная внутренняя полоса */
.funnel-v2 { display: flex; flex-direction: column; gap: 4px; }
.funnel-step { position: relative; }
.funnel-step__track {
  display: flex; align-items: center; gap: var(--sp-3);
  min-height: 52px;
}
.funnel-step__bar {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: 12px var(--sp-4); border-radius: var(--r-md);
  color: #fff; min-height: 52px; flex-shrink: 0;
  transition: width .3s var(--ease);
  /* ширина задаётся инлайн через style="width:X%" */
}
.funnel-step__name {
  font-size: var(--fs-base); font-weight: var(--fw-bold);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0;
}
.funnel-step__pct  { font-size: var(--fs-xs); opacity: .85; white-space: nowrap; flex: none; }
.funnel-step__count {
  font-size: var(--fs-xl); font-weight: var(--fw-black); flex: none;
  color: var(--text); min-width: 60px; text-align: right;
}
.funnel-step__kev {
  background: rgba(255,255,255,.28); color: #fff;
  border-radius: var(--r-pill); padding: 2px 8px; font-size: var(--fs-xs); font-weight: var(--fw-bold);
  flex: none; white-space: nowrap;
}
.funnel-drop {
  text-align: center; color: var(--danger); font-size: var(--fs-xs);
  font-weight: var(--fw-bold); padding: 3px 0;
  display: flex; align-items: center; justify-content: center; gap: 4px;
}

/* ============================ Анализ (пилюли + карточки) ============================ */
.pills-row { display: flex; gap: 4px; flex-wrap: wrap; }
.pill {
  width: 20px; height: 8px; border-radius: 4px; flex: none;
}
.pill--pass { background: var(--success); }
.pill--fail { background: var(--danger); }
.pill--none { background: var(--surface-3); }

/* Аккордеон менеджеров в Анализе */
.an-mgr { background: var(--surface-1); border: 1px solid var(--border); border-radius: var(--r-md); margin-bottom: var(--sp-2); overflow: hidden; }
.an-mgr__row {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4); cursor: pointer;
  background: transparent; border: none; color: var(--text); width: 100%; text-align: left;
  transition: background var(--dur) var(--ease); min-height: 56px;
}
.an-mgr__row:hover { background: var(--surface-2); }
.an-mgr__av {
  width: 36px; height: 36px; flex: none; border-radius: 50%;
  background: var(--tint-accent); color: var(--accent);
  display: flex; align-items: center; justify-content: center;
  font-weight: var(--fw-bold); font-size: var(--fs-sm);
}
.an-mgr__name { font-weight: var(--fw-bold); font-size: var(--fs-base); }
.an-mgr__sub  { font-size: var(--fs-xs); color: var(--text-muted); }
.an-mgr__pills { margin-left: auto; display: flex; align-items: center; gap: var(--sp-3); }
.an-mgr__chev { color: var(--text-muted); font-size: 16px; transition: transform var(--dur) var(--ease); }
.an-mgr.open .an-mgr__chev { transform: rotate(90deg); }
.an-mgr__deals { display: none; padding: 0 var(--sp-3) var(--sp-3); }
.an-mgr.open .an-mgr__deals { display: flex; flex-direction: column; gap: var(--sp-2); }

/* Карточка сделки в Анализе */
.an-deal {
  background: var(--surface-2); border: 1px solid var(--border); border-radius: var(--r-md);
  padding: var(--sp-3) var(--sp-4); position: relative;
}
.an-deal__top { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--sp-3); }
.an-deal__title { font-weight: var(--fw-bold); color: var(--link); }
.an-deal__meta { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 2px; }
.an-deal__link { font-size: var(--fs-xs); color: var(--link); text-decoration: none; white-space: nowrap; }
.an-deal__link:hover { text-decoration: underline; }
.an-deal__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: var(--sp-3); }
.an-deal__chip {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 3px 10px; border-radius: var(--r-pill);
  font-size: var(--fs-xs); font-weight: var(--fw-bold);
}
.an-deal__chip--pass { background: var(--tint-success); color: var(--success); }
.an-deal__chip--fail { background: var(--tint-danger);  color: var(--danger); }
.an-deal--clickable { cursor: pointer; transition: border-color var(--dur) var(--ease); }
.an-deal--clickable:hover { border-color: color-mix(in srgb, var(--accent) 40%, var(--border)); }
.an-deal__score { display: flex; align-items: center; gap: var(--sp-2); margin-top: var(--sp-2); font-size: var(--fs-xs); color: var(--text-muted); min-height: 1px; }
.an-call-toolbar {
  display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3);
  flex-wrap: wrap; margin-bottom: var(--sp-3);
}
.an-stt-policy {
  margin-bottom: var(--sp-3); padding: var(--sp-3) var(--sp-4);
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--border));
  border-radius: var(--r-md); background: var(--tint-accent); color: var(--text-muted);
  font-size: var(--fs-sm);
}
.an-stt-policy b { color: var(--accent); }
.an-deal__verdict {
  margin-top: var(--sp-3); padding: var(--sp-3); border-radius: var(--r-sm);
  background: var(--surface-1);
  border-left: 3px solid var(--danger);
  font-size: var(--fs-sm);
}
.an-deal__verdict-label { color: var(--danger); font-weight: var(--fw-bold); }

/* ============================ Ошибки (сетка 3×3) ============================ */
.errors-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); }
.error-card {
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 40%, var(--surface-1)), var(--surface-1));
  border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-1), var(--hairline);
  padding: var(--sp-4); cursor: pointer;
  transition: transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease);
}
.error-card:hover { transform: translateY(-2px); box-shadow: var(--elev-hover), var(--hairline); border-color: var(--border-strong); }
.error-card__head { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: var(--sp-3); }
.error-card__icon { font-size: 18px; }
.error-card__trend { font-size: var(--fs-xs); font-weight: var(--fw-bold); }
.error-card__trend--up   { color: var(--danger); }
.error-card__trend--down { color: var(--success); }
.error-card__count { font-size: 40px; font-weight: var(--fw-black); line-height: 1; letter-spacing: -1px; margin-bottom: var(--sp-2); }
.error-card__count--high { color: var(--danger); }
.error-card__count--mid  { color: var(--warning); }
.error-card__count--low  { color: var(--text-muted); }
.error-card__label { font-size: var(--fs-sm); color: var(--text); margin-bottom: var(--sp-2); }
.error-card__badge--ok  { color: var(--success); background: var(--tint-success); }
.error-card__badge--no  { color: var(--text-muted); background: var(--surface-2); }

/* ============================ Возражения ============================ */
.objections-list { display: flex; flex-direction: column; gap: var(--sp-3); }
.obj-item {
  background: linear-gradient(180deg, color-mix(in srgb, var(--surface-2) 40%, var(--surface-1)), var(--surface-1));
  border: 1px solid var(--border); border-radius: var(--r-md);
  box-shadow: var(--shadow-1), var(--hairline);
  padding: var(--sp-4);
  display: grid; grid-template-columns: 56px 1fr; gap: var(--sp-3); align-items: start;
}
.obj-item__count { font-size: 36px; font-weight: var(--fw-black); color: var(--warning); line-height: 1; }
.obj-item__text  { font-size: var(--fs-base); font-weight: var(--fw-bold); margin-bottom: var(--sp-2); }
.obj-item__examples { font-size: var(--fs-sm); color: var(--text-muted); margin-bottom: var(--sp-3); }
.obj-item__examples span::before { content: "«"; }
.obj-item__examples span::after  { content: "»"; }
.obj-item__textarea {
  width: 100%; min-height: 68px; resize: vertical;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--border); border-radius: var(--r-sm);
  padding: var(--sp-3); font: var(--fs-sm)/1.5 var(--font);
  transition: border-color var(--dur) var(--ease);
}
.obj-item__textarea:focus { border-color: var(--accent); outline: none; }
.obj-item__textarea::placeholder { color: var(--text-muted); }

/* ============================ Настройки v2 ============================ */
.settings-v2 { max-width: 920px; }
.settings-v2 .section + .section { margin-top: var(--sp-6); }
.settings-kev-select {
  width: 100%; min-height: 44px;
  border-radius: var(--r-sm); border: 1px solid var(--border);
  background: var(--surface-2); color: var(--text);
  font-size: var(--fs-base); padding: 0 var(--sp-3); cursor: pointer;
  margin-top: var(--sp-3);
}
.settings-v2 .settings__checks { margin-top: var(--sp-3); }
.settings-subsection {
  margin-top: var(--sp-5); padding-top: var(--sp-5); border-top: 1px solid var(--border);
}
.marketing-field-grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3);
}
.settings-field { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; }
.settings-field > span {
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-med);
}
.settings-field input, .settings-field select, .settings-field textarea {
  width: 100%; min-width: 0; padding: var(--sp-3); border: 1px solid var(--border);
  border-radius: var(--r-sm); background: var(--surface-3); color: var(--text);
  font: inherit; font-size: var(--fs-sm);
}
.settings-field textarea { resize: vertical; line-height: 1.5; }
.settings-field input:focus-visible, .settings-field select:focus-visible,
.settings-field textarea:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.marketing-rules, .marketing-compounds {
  display: flex; flex-direction: column; gap: var(--sp-3); margin: var(--sp-3) 0;
}
.marketing-rule-row {
  display: grid; grid-template-columns: minmax(120px, 1fr) minmax(120px, .7fr) minmax(160px, 1.4fr) auto;
  align-items: end; gap: var(--sp-3); padding: var(--sp-3); border: 1px solid var(--border);
  border-radius: var(--r-md); background: var(--surface-2);
}
.marketing-rule-row__remove { margin-bottom: var(--sp-1); }
.marketing-compound {
  padding: var(--sp-4); border: 1px solid var(--border); border-radius: var(--r-lg);
  background: var(--surface-1); box-shadow: var(--shadow-1), var(--hairline);
}
.marketing-compound__head {
  display: grid; grid-template-columns: minmax(120px, .7fr) minmax(180px, 1.4fr) minmax(110px, .6fr) auto;
  align-items: end; gap: var(--sp-3); margin-bottom: var(--sp-3);
}
.marketing-compound__conditions { display: flex; flex-direction: column; gap: var(--sp-2); }

/* ============================ Модал детального разбора сделки ============================ */
.modal { position: fixed; inset: 0; z-index: 100; display: flex; flex-direction: column; justify-content: flex-end; }
.modal[hidden] { display: none; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.55); backdrop-filter: blur(2px); cursor: pointer; }
.modal__sheet {
  position: relative; z-index: 1;
  background: var(--surface-1);
  border-radius: var(--r-md) var(--r-md) 0 0;
  max-height: 85dvh; overflow-y: auto;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
}
.modal__handle { width: 36px; height: 4px; border-radius: 2px; background: var(--border); margin: 12px auto 4px; }
.modal__body { padding: 0 var(--sp-4) calc(var(--sp-6) + env(safe-area-inset-bottom)); }
.modal__top { display: flex; justify-content: space-between; align-items: flex-start; padding: var(--sp-2) 0 var(--sp-3); }
.modal__title { font-size: var(--fs-md); font-weight: var(--fw-bold); flex: 1; margin-right: var(--sp-3); }
.modal__close { min-width: var(--tap); min-height: var(--tap); display: flex; align-items: center; justify-content: center; font-size: 22px; color: var(--text-muted); background: transparent; border: none; cursor: pointer; margin: 0 calc(-1 * var(--sp-2)); }
.modal__price { font-size: var(--fs-xl); font-weight: var(--fw-black); color: var(--accent); }
.modal__meta { font-size: var(--fs-sm); color: var(--text-muted); margin-top: var(--sp-1); }
.modal__section { margin-top: var(--sp-4); }
.modal__sec-title { font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--text-muted); text-transform: uppercase; letter-spacing: .05em; margin-bottom: var(--sp-2); }
.modal__verdict { padding: var(--sp-3); background: var(--surface-2); border-radius: var(--r-sm); border-left: 3px solid var(--danger); }

/* ============================ Аккордеон менеджера (Chat 3 v2) ============================ */
.mgr-row__details {
  padding: var(--sp-4) var(--sp-5) var(--sp-5);
  border-top: 1px solid var(--border);
  background: var(--surface-2);
}
.mgr-detail__metrics { display: flex; flex-direction: column; gap: var(--sp-4); }
.mgr-detail__metric-head {
  display: flex; align-items: baseline; gap: var(--sp-2); margin-bottom: 6px;
}
.mgr-detail__metric-label { flex: 1; font-size: var(--fs-sm); color: var(--text); }
.mgr-detail__metric-count { font-size: var(--fs-base); font-weight: var(--fw-bold); color: var(--text); }
.mgr-detail__metric-note { font-size: var(--fs-xs); color: var(--text-muted); min-width: 96px; text-align: right; }
.mgr-detail__bar { height: 8px; border-radius: 4px; background: var(--surface-3); overflow: hidden; }
.mgr-detail__bar span { display: block; height: 100%; border-radius: 4px; }
.mgr-detail__bar--core span { background: var(--accent); }
.mgr-detail__bar--kev span  { background: #6aa9ff; }
.mgr-detail__bar--won span  { background: var(--success); }
.mgr-detail__bar--good span { background: var(--success); }
.mgr-detail__bar--mid span  { background: var(--accent); }
.mgr-detail__bar--bad span  { background: var(--danger); }
.mgr-detail__divider { height: 1px; background: var(--border); margin: var(--sp-4) 0; }
.mgr-detail__section-title {
  font-size: var(--fs-sm); font-weight: var(--fw-bold); color: var(--text);
  text-transform: uppercase; letter-spacing: .04em; margin-bottom: var(--sp-3);
}
.mgr-detail__sources { display: flex; flex-direction: column; gap: 6px; }
.mgr-detail__source { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); }
.mgr-detail__source-dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--success); flex: none;
}
.mgr-detail__source-name { flex: 1; color: var(--text); }
.mgr-detail__source-count { font-weight: var(--fw-bold); color: var(--text); }
.mgr-detail__ai { display: flex; flex-direction: column; gap: var(--sp-3); }
.mgr-detail__ai-row { display: flex; align-items: center; gap: var(--sp-3); }
.mgr-detail__ai-label { flex: none; width: 160px; font-size: var(--fs-sm); color: var(--text); }
.mgr-detail__ai-row .mgr-detail__bar { flex: 1; }
.mgr-detail__ai-pct { flex: none; width: 40px; text-align: right; font-size: var(--fs-xs); color: var(--text-muted); }
.mgr-detail__muted { font-size: var(--fs-sm); color: var(--text-muted); font-style: italic; }

/* ============================ Вкладки аккордеона менеджера ============================ */
.mgr-detail__tabs {
  display: flex; gap: 4px; margin-bottom: var(--sp-4);
  border-bottom: 1px solid var(--border);
  padding-bottom: 0;
}
.mgr-detail__tab {
  padding: 8px var(--sp-3); background: none; border: none; cursor: pointer;
  color: var(--text-muted); font-size: var(--fs-sm); font-weight: var(--fw-med);
  font-family: var(--font); border-bottom: 2px solid transparent;
  margin-bottom: -1px; border-radius: var(--r-sm) var(--r-sm) 0 0;
  transition: color var(--dur) var(--ease), border-color var(--dur) var(--ease), background var(--dur) var(--ease);
}
.mgr-detail__tab:hover { color: var(--text); background: color-mix(in srgb, var(--text) 5%, transparent); }
.mgr-detail__tab.active { color: var(--accent); border-bottom-color: var(--accent); font-weight: var(--fw-bold); }

.mgr-detail__tab-content { display: none; }
.mgr-detail__tab-content.active { display: block; }

/* Список источников в вкладке Метрики */
.mgr-detail__sources-list { display: flex; flex-direction: column; margin-top: 2px; }
.mgr-detail__source-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 6px 0; border-bottom: 1px solid var(--border);
  font-size: var(--fs-sm); color: var(--text);
}
.mgr-detail__source-row:last-child { border-bottom: none; }
.mgr-detail__source-row--manual { color: var(--danger); font-weight: var(--fw-med); }

/* Чек-лист в вкладке Полная аналитика */
.mgr-detail__checklist { display: flex; flex-direction: column; gap: var(--sp-3); }
.mgr-detail__check-item {
  display: grid; grid-template-columns: 150px 1fr 44px;
  align-items: center; gap: var(--sp-2);
}
.mgr-detail__check-label { font-size: var(--fs-xs); color: var(--text-muted); }
.mgr-detail__check-bar {
  height: 7px; background: var(--surface-3); border-radius: var(--r-pill); overflow: hidden;
}
.mgr-detail__check-bar span {
  display: block; height: 100%; border-radius: var(--r-pill);
  transition: width .3s var(--ease);
}
.mgr-detail__check-bar--good span { background: var(--success); }
.mgr-detail__check-bar--mid  span { background: var(--accent); }
.mgr-detail__check-bar--bad  span { background: var(--danger); }
.mgr-detail__check-pct { font-size: var(--fs-xs); color: var(--text-muted); text-align: right; }

/* ============================ Маркетинг ============================ */
.marketing-filter-panel {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--sp-4);
  margin-bottom: var(--sp-6); padding: var(--sp-5); border: 1px solid var(--border);
  border-radius: var(--r-lg); background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  box-shadow: var(--shadow-1), var(--hairline);
}
.marketing-filter-panel__group { display: flex; flex-direction: column; gap: var(--sp-2); min-width: 0; }
.marketing-filter-panel__presets { flex: 1; }
.marketing-presets { display: flex; gap: var(--sp-2); overflow-x: auto; scrollbar-width: none; }
.marketing-presets::-webkit-scrollbar { display: none; }
.marketing-presets .prd-btn { flex: none; }
.marketing-cohort {
  display: inline-flex; padding: var(--sp-1); border: 1px solid var(--border);
  border-radius: var(--r-pill); background: var(--surface-3);
}
.marketing-cohort button {
  min-height: 36px; padding: var(--sp-2) var(--sp-4); border: 0; border-radius: var(--r-pill);
  background: transparent; color: var(--text-muted); font: inherit; font-size: var(--fs-sm);
  font-weight: var(--fw-med); cursor: pointer;
}
.marketing-cohort button[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); }
.marketing-kpis { margin-top: var(--sp-4); }
.kpi-card--warn::before { background: var(--warning); opacity: 1; }
.kpi-card--warn .kpi-card__value { color: var(--warning); }
.marketing-inline-state { margin: 0; }
.screen-state code {
  padding: 2px var(--sp-2); border-radius: var(--r-sm); background: var(--surface-3);
  color: var(--text); font-size: var(--fs-xs);
}
.marketing-source-card { overflow-x: auto; }
.marketing-source-row {
  display: grid;
  grid-template-columns: 190px minmax(130px, 1fr) 58px 66px 66px 90px 112px 18px;
  gap: var(--sp-3); align-items: center; min-width: 880px;
  padding: var(--sp-3) var(--sp-5); border-top: 1px solid var(--border);
  font-size: var(--fs-sm);
}
.marketing-source-row:first-child { border-top: 0; }
.marketing-source-row > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marketing-source-row > .num { text-align: right; }
.marketing-source-row--button {
  width: 100%; border-right: 0; border-bottom: 0; border-left: 0; background: transparent;
  color: var(--text); font: inherit; text-align: left; cursor: pointer;
  transition: background var(--dur) var(--ease);
}
.marketing-source-row--button:hover { background: var(--tint-accent); }
.marketing-source-row--button:focus-visible { position: relative; z-index: 2; outline-offset: -3px; }
.marketing-source-row--head { background: var(--surface-2); }
.marketing-source-row--head > * {
  color: var(--text-muted); font-size: var(--fs-xs); font-weight: var(--fw-med);
  letter-spacing: .06em; text-transform: uppercase; text-align: right;
}
.marketing-source-row--head > :first-child, .marketing-source-row--head > :nth-child(2) { text-align: left; }
.marketing-source-row--unattributed { background: var(--tint-warning); }
.marketing-source-row--unattributed > strong { color: var(--text-muted); }
.marketing-source-row__muted { color: var(--text-muted); }
.marketing-source-row__won { color: var(--success); font-weight: var(--fw-bold); }
.marketing-source-chevron { color: var(--text-muted); transition: transform var(--dur) var(--ease); }
.marketing-source-row--button[aria-expanded="true"] .marketing-source-chevron {
  color: var(--accent); transform: rotate(90deg);
}
.marketing-source-bar, .marketing-reason-bar {
  display: block; height: 9px; overflow: hidden; border-radius: var(--r-pill); background: var(--surface-3);
}
.marketing-source-bar i, .marketing-reason-bar i {
  display: block; width: var(--marketing-bar); height: 100%; border-radius: inherit;
  background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 62%, var(--surface-3)), var(--accent));
}
.marketing-source-row--unattributed .marketing-source-bar i {
  background: color-mix(in srgb, var(--text-muted) 64%, var(--surface-3));
}
.marketing-source-detail {
  position: sticky; left: 0; width: min(100%, calc(100vw - 280px)); min-width: 0;
  padding: var(--sp-5); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
  background: linear-gradient(180deg, var(--surface-2), var(--surface-1));
  animation: marketing-detail-in var(--dur) var(--ease);
}
.marketing-source-detail__head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: var(--sp-4);
  margin-bottom: var(--sp-4);
}
.marketing-source-detail__head h3 { margin: var(--sp-1) 0 0; font-size: var(--fs-md); }
.marketing-source-detail__head > strong {
  color: var(--accent); font-size: var(--fs-lg); font-weight: var(--fw-black); text-align: right;
}
.marketing-trend-svg { display: block; width: 100%; max-height: 320px; overflow: visible; }
.marketing-trend-grid line { stroke: var(--border-strong); stroke-width: .7; stroke-dasharray: 3 4; }
.marketing-trend-grid text, .marketing-trend-xlabel {
  fill: var(--text-muted); font-size: var(--fs-xs); font-variant-numeric: tabular-nums;
}
.marketing-trend-area { pointer-events: none; }
.marketing-trend-line {
  fill: none; stroke: var(--accent); stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
  vector-effect: non-scaling-stroke; stroke-dasharray: 900; animation: marketing-line-in .5s var(--ease) both;
}
.marketing-trend-point { outline: none; cursor: crosshair; }
.marketing-trend-point__hit { fill: transparent; }
.marketing-trend-point__dot {
  fill: var(--surface-1); stroke: var(--accent); stroke-width: 2; opacity: 0;
  transition: opacity var(--dur) var(--ease);
}
.marketing-trend-tooltip { opacity: 0; pointer-events: none; transition: opacity var(--dur) var(--ease); }
.marketing-trend-tooltip rect { fill: var(--surface-3); stroke: var(--border-strong); }
.marketing-trend-tooltip text { fill: var(--text); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.marketing-trend-point:hover .marketing-trend-point__dot,
.marketing-trend-point:focus .marketing-trend-point__dot,
.marketing-trend-point:hover .marketing-trend-tooltip,
.marketing-trend-point:focus .marketing-trend-tooltip { opacity: 1; }
.marketing-trend-point:focus .marketing-trend-point__dot { stroke-width: 3; }
.marketing-trend-empty {
  padding: var(--sp-6); border: 1px dashed var(--border-strong); border-radius: var(--r-md);
  color: var(--text-muted); font-size: var(--fs-sm); text-align: center;
}
@keyframes marketing-detail-in {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes marketing-line-in {
  from { stroke-dashoffset: 900; }
  to { stroke-dashoffset: 0; }
}
.marketing-exclusion-grid, .marketing-quality-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4);
}
.marketing-exclusion-card, .marketing-quality-card { padding: var(--sp-5); }
.marketing-exclusion-card__title { display: flex; align-items: center; gap: var(--sp-2); }
.marketing-exclusion-card h3 { margin: 0; font-size: var(--fs-base); }
.marketing-exclusion-card > p, .marketing-quality-card > p {
  margin: var(--sp-2) 0 var(--sp-4); color: var(--text-muted); font-size: var(--fs-sm);
}
.marketing-mode {
  padding: 3px var(--sp-2); border-radius: var(--r-pill); font-size: var(--fs-xs);
  font-weight: var(--fw-bold); letter-spacing: .05em; text-transform: uppercase;
}
.marketing-mode--bucket { background: var(--tint-warning); color: var(--warning); }
.marketing-mode--exclude { background: var(--tint-danger); color: var(--danger); }
.marketing-exclusion-row {
  display: flex; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0;
  border-top: 1px solid var(--border); font-size: var(--fs-sm);
}
.marketing-exclusion-row--total { color: var(--text); font-weight: var(--fw-bold); }
.marketing-table-wrap { overflow-x: auto; }
.marketing-table { width: 100%; min-width: 680px; border-collapse: collapse; }
.marketing-table th, .marketing-table td {
  padding: var(--sp-3) var(--sp-4); border-top: 1px solid var(--border);
  text-align: right; white-space: nowrap; font-size: var(--fs-sm);
}
.marketing-table th {
  border-top: 0; background: var(--surface-2); color: var(--text-muted);
  font-size: var(--fs-xs); font-weight: var(--fw-med); letter-spacing: .06em; text-transform: uppercase;
}
.marketing-table th:first-child, .marketing-table td:first-child { text-align: left; }
.marketing-table__manager { font-weight: var(--fw-med); }
.marketing-heat {
  display: inline-block; min-width: 34px; padding: 3px var(--sp-2); border-radius: var(--r-sm);
  color: var(--text-muted); text-align: center;
}
.marketing-heat--filled { background: var(--tint-accent); color: var(--text); font-weight: var(--fw-med); }
.marketing-show-managers { margin-top: var(--sp-3); }
.marketing-reasons { overflow: hidden; }
.marketing-reason-row {
  display: grid; grid-template-columns: minmax(190px, 1.2fr) minmax(100px, 1fr) 56px 112px;
  gap: var(--sp-3); align-items: center; padding: var(--sp-3) var(--sp-5);
  border-top: 1px solid var(--border); font-size: var(--fs-sm);
}
.marketing-reason-row:first-child { border-top: 0; }
.marketing-reason-row > :first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marketing-reason-row__money { color: var(--text-muted); text-align: right; }
.marketing-reason-bar i {
  background: linear-gradient(90deg, color-mix(in srgb, var(--danger) 55%, var(--surface-3)), var(--danger));
}
.marketing-quality-card > strong {
  display: block; margin-top: var(--sp-2); font-size: var(--fs-xl); font-weight: var(--fw-black);
  letter-spacing: -.03em;
}
.marketing-empty-links { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.marketing-empty-links a, .marketing-empty-links span {
  padding: var(--sp-1) var(--sp-2); border: 1px solid var(--border); border-radius: var(--r-pill);
  color: var(--link); font-size: var(--fs-xs); text-decoration: none;
}
.marketing-integration-list { display: flex; flex-direction: column; }
.marketing-integration-list > div {
  display: flex; justify-content: space-between; gap: var(--sp-3); padding: var(--sp-2) 0;
  border-top: 1px solid var(--border); font-size: var(--fs-sm);
}
.marketing-integration-list span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marketing-integration-list b { flex: none; }

/* ============================ Адаптив: сайдбар → top-nav (≤900px) ============================ */
@media (max-width: 900px) {
  .layout { flex-direction: column; }

  .sidebar {
    width: 100%; height: auto; flex-direction: row; align-items: center;
    position: sticky; top: 0; z-index: 30;
    border-right: none; border-bottom: 1px solid var(--border);
    background: color-mix(in srgb, var(--surface-1) 92%, transparent);
    backdrop-filter: blur(12px);
    padding-top: env(safe-area-inset-top);
    overflow: visible;
  }
  .sidebar__brand {
    border-bottom: none; padding: var(--sp-3) var(--sp-4);
    font-size: var(--fs-base); white-space: nowrap; flex: none;
  }
  .sidebar__nav {
    flex-direction: row; align-items: center; gap: var(--sp-1);
    padding: var(--sp-2); overflow-x: auto; scrollbar-width: none;
    -webkit-overflow-scrolling: touch; flex: 1; min-width: 0;
  }
  .sidebar__nav::-webkit-scrollbar { display: none; }
  .sidebar__item {
    width: auto; flex: none; white-space: nowrap; min-height: 40px;
    padding: 8px var(--sp-3);
  }
  .sidebar__item.active { background: var(--tint-accent); }
  .sidebar__item.active::before {
    left: var(--sp-3); right: var(--sp-3); top: auto; bottom: -2px;
    width: auto; height: 3px; border-radius: 3px 3px 0 0;
  }
  .sidebar__sep { display: none; }
  .sidebar__footer {
    border-top: none; padding: var(--sp-2) var(--sp-4); flex: none;
    margin-left: auto;
  }
  .main-content { padding: var(--sp-4) var(--sp-4) calc(var(--sp-8) + env(safe-area-inset-bottom)); }
  .errors-grid { grid-template-columns: repeat(2, 1fr); }
  .overview-verdict { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .overview-verdict__item:nth-child(3) { border-left: 0; border-top: 1px solid var(--border); }
  .overview-verdict__item:nth-child(4) { border-top: 1px solid var(--border); }
  .marketing-filter-panel__presets { flex-basis: 100%; order: 3; }
  .marketing-source-detail { width: calc(100vw - 32px); }
}

@media (max-width: 560px) {
  .sidebar__brand span { display: none; }
  .sidebar__item-icon { margin: 0; }
  .errors-grid { grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
  .kpi-bar { gap: var(--sp-2); }
  .kpi-card { min-width: calc(50% - var(--sp-2)); }
  .obj-item { grid-template-columns: 44px 1fr; }
  .mgr-row__header { flex-wrap: wrap; gap: var(--sp-3); }
  .mgr-row__bar-wrap { max-width: none; order: 5; flex-basis: 100%; }
  .overview-verdict { grid-template-columns: 1fr; }
  .overview-verdict__item { border-left: 0; border-top: 1px solid var(--border); }
  .overview-verdict__item:first-child { border-top: 0; }
  .overview-findings { grid-template-columns: 1fr; }
  .overview-section__head { align-items: flex-start; flex-direction: column; gap: var(--sp-1); }
  .overview-section__hint { text-align: left; }
  .deals-summary, .risk-deal { grid-template-columns: 1fr; }
  .deals-summary strong { font-size: var(--fs-xl); }
  .risk-deal__side { align-items: flex-start; }
  .win-formula-hero, .win-patterns { grid-template-columns: 1fr; }
  .win-formula-hero article + article { border-left: 0; border-top: 1px solid var(--border); }
  .funnel-filter-panel { align-items: stretch; }
  .funnel-filter-panel__group { width: 100%; }
  .funnel-filter-panel .prd-group { overflow-x: auto; }
  .funnel-filter-panel .filter-sel { width: 100%; min-width: 0; }
  .funnel-summary { align-items: flex-start; flex-direction: column; gap: var(--sp-2); }
  .marketing-filter-panel { align-items: stretch; padding: var(--sp-4); }
  .marketing-filter-panel__group { width: 100%; }
  .marketing-filter-panel .date-range__input { min-width: 0; width: 100%; }
  .marketing-cohort { align-self: flex-start; }
  .marketing-exclusion-grid, .marketing-quality-grid { grid-template-columns: 1fr; }
  .marketing-source-detail { width: calc(100vw - 48px); padding: var(--sp-4); }
  .marketing-source-detail__head { align-items: flex-start; flex-direction: column; }
  .marketing-source-detail__head > strong { font-size: var(--fs-md); text-align: left; }
  .marketing-trend-svg { max-height: 240px; }
  .marketing-reason-row { grid-template-columns: minmax(130px, 1fr) 56px; }
  .marketing-reason-row .marketing-reason-bar { grid-column: 1 / -1; grid-row: 2; }
  .marketing-reason-row__money { display: none; }
  .marketing-field-grid, .marketing-rule-row, .marketing-compound__head { grid-template-columns: 1fr; }
  .marketing-rule-row__remove { margin-bottom: 0; }
}

/* ============================================================================
   Chat 7 этапы 3–4: чек-лист в Настройках, «Возражения и теги»,
   «Отдел целиком», диаграммы-тренды, воронка в аккордеоне.
   ============================================================================ */

/* ---- Секции объединённого экрана «Возражения и теги» ---- */
.section-block { margin-bottom: var(--sp-6); }
.section-block__title {
  font-size: var(--fs-xs); font-weight: var(--fw-bold); color: var(--text-muted);
  text-transform: uppercase; letter-spacing: .05em; margin-bottom: var(--sp-3);
}

/* ---- Теги диалогов ---- */
.tags-row { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.tag-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px var(--sp-3); border-radius: var(--r-pill);
  background: var(--tint-accent); border: 1px solid color-mix(in srgb, var(--accent) 30%, transparent);
  font-size: var(--fs-sm); color: var(--text);
}
.tag-chip b { font-weight: var(--fw-bold); color: var(--accent); }

.error-card__sub { font-size: var(--fs-xs); color: var(--text-muted); margin-top: 4px; }

/* ---- Настройки: редактор чек-листа (Chat 7 этап 5: prompt + вкл/выкл) ---- */
.checklist-cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); margin-top: var(--sp-3); }
.settings__sublabel { font-size: var(--fs-sm); font-weight: var(--fw-bold); margin-bottom: var(--sp-2); }
.checklist-editor { display: flex; flex-direction: column; gap: var(--sp-3); margin-bottom: var(--sp-3); }
.cl-row {
  display: flex; flex-direction: column; gap: var(--sp-2);
  padding: var(--sp-3); border-radius: var(--r-sm);
  border: 1px solid var(--border-strong); background: var(--surface-2);
  transition: opacity var(--dur) var(--ease);
}
.cl-row--disabled { opacity: .55; }
.cl-row__top { display: grid; grid-template-columns: 1fr 52px auto 32px; gap: var(--sp-2); align-items: center; }
.cl-row__label, .cl-row__points, .cl-row__prompt {
  min-height: 38px; padding: 0 var(--sp-3); border-radius: var(--r-sm);
  border: 1px solid var(--border-strong); background: var(--surface-1);
  color: var(--text); font: inherit; font-size: var(--fs-sm); width: 100%; box-sizing: border-box;
}
.cl-row__points { text-align: center; padding: 0 var(--sp-1); }
.cl-row__prompt {
  min-height: 52px; padding: var(--sp-2) var(--sp-3); resize: vertical; line-height: 1.4;
}
.cl-row__label:focus, .cl-row__points:focus, .cl-row__prompt:focus { outline: none; border-color: var(--accent); }
.cl-row__prompt::placeholder, .cl-row__label::placeholder { color: var(--text-muted); }
.cl-row__del {
  min-height: 38px; border-radius: var(--r-sm); border: 1px solid transparent;
  background: transparent; color: var(--text-muted); cursor: pointer; font-size: var(--fs-sm);
}
.cl-row__del:hover { color: var(--danger); background: var(--tint-danger); }

.cl-row__toggle { display: inline-flex; align-items: center; cursor: pointer; }
.cl-row__toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.cl-row__toggle-track {
  width: 34px; height: 20px; border-radius: var(--r-pill); background: var(--border-strong);
  position: relative; display: inline-block; transition: background var(--dur) var(--ease);
}
.cl-row__toggle-track::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px;
  border-radius: 50%; background: var(--surface-1); transition: transform var(--dur) var(--ease);
}
.cl-row__toggle input:checked + .cl-row__toggle-track { background: var(--accent); }
.cl-row__toggle input:checked + .cl-row__toggle-track::after { transform: translateX(14px); }

/* ---- Отдел целиком ---- */
.dept-summary {
  background: var(--surface-1); border: 1px solid var(--border);
  border-radius: var(--r-md); padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-4);
  box-shadow: var(--shadow-1);
}
.dept-summary__head {
  display: flex; align-items: center; justify-content: space-between; cursor: pointer;
}
.dept-summary.collapsed .dept-summary__head .mgr-row__chevron { transform: rotate(-90deg); }
.dept-summary__body { margin-top: var(--sp-4); display: flex; flex-direction: column; gap: var(--sp-4); }
.dept-chart { max-width: 640px; }
.dept-speed { display: flex; flex-wrap: wrap; gap: var(--sp-3); }
.dept-speed__item {
  display: flex; flex-direction: column; gap: 2px;
  padding: var(--sp-3) var(--sp-4); border-radius: var(--r-sm);
  background: var(--surface-2); border: 1px solid var(--border);
  font-size: var(--fs-xs); color: var(--text-muted);
}
.dept-speed__item b { font-size: var(--fs-md); color: var(--text); font-weight: var(--fw-bold); }
.dept-cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-5); }
.dept-list__row {
  display: flex; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-2) 0; border-bottom: 1px solid var(--border);
  font-size: var(--fs-sm);
}
.dept-list__row b { color: var(--danger); }
.dept-recipe { font-size: var(--fs-sm); line-height: 1.5; }
.dept-recipe__rec { margin-top: var(--sp-2); color: var(--accent); font-weight: var(--fw-med); }

/* ---- Линейные диаграммы ---- */
.line-chart { width: 100%; height: auto; color: var(--text); display: block; }
.chart-legend { display: flex; gap: var(--sp-4); margin-top: var(--sp-1); font-size: var(--fs-xs); color: var(--text-muted); }
.chart-legend i { display: inline-block; width: 10px; height: 3px; border-radius: 2px; margin-right: 5px; vertical-align: middle; }

/* ---- Воронка в аккордеоне менеджера ---- */
.mgr-funnel__controls { display: flex; align-items: center; gap: var(--sp-3); margin-bottom: var(--sp-3); }
.mgr-funnel__pip { min-width: 200px; }
.mgr-detail__points { color: var(--text-muted); font-size: var(--fs-xs); }

@media (max-width: 700px) {
  .checklist-cols, .dept-cols { grid-template-columns: 1fr; }
}
