/* Пульт CRM — editorial theme (канон brand-docs / Коммерческая политика) */

:root {
  --sidebar-w: 248px;
  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Source Serif 4', Georgia, serif;
  --font-label: 'Inter', system-ui, sans-serif;
  --accent: #A16207;
  --bg-page: #F7F5F2;
  --bg-card: #FFFFFF;
  --text-primary: #1A1A1A;
  --text-secondary: #404040;
  --text-muted: #737373;
  --ink: #1A1A1A;
  --card-border: 2px solid #1A1A1A;
  --container-max: 1200px;
  /* Phase C adaptive tiers (px) — only these in @media / matchMedia:
     phone 560 · tablet 900 (shell) · desk 1200 (half-screen / chats MD / dense grids).
     @container pult-main: 980 ~= desk with sidebar. */

  /* aliases for legacy dashboard JS markup */
  --bg: var(--bg-page);
  --bg2: var(--bg-page);
  --bg3: #EFEBE6;
  --surf: var(--bg-card);
  --surf2: #FAFAFA;
  --surf3: #F0F0F0;
  --line: rgba(26, 26, 26, 0.14);
  --line-strong: var(--ink);
  --text: var(--text-primary);
  --muted: var(--text-muted);
  --soft: var(--text-secondary);
  --gold: var(--accent);
  --gold-dim: rgba(161, 98, 7, 0.08);
  --ok: #2F6B3F;
  --risk: #9B2C2C;
  /* Светофор оценок чатов: плохо / нормально / хорошо */
  --score-low: var(--risk);
  --score-mid: #CA8A04;
  --score-mid-dim: rgba(202, 138, 4, 0.14);
  --score-mid-fill: #FDE68A;
  --score-high: var(--ok);
  --focus: rgba(161, 98, 7, 0.12);
  --shadow: none;
  --top-bg: rgba(247, 245, 242, 0.96);
  --nav-bg: var(--bg-card);
  --code-bg: rgba(26, 26, 26, 0.06);
  --table-line: #E5E5E5;
  --glow1: transparent;
  --glow2: transparent;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }

body {
  font-family: var(--font-body);
  font-size: 1rem;
  line-height: 1.65;
  color: var(--text-secondary);
  min-height: 100vh;
  background-color: var(--bg-page);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  overflow: hidden;
}

/* —— shell: sidebar + main (Telegram-style) —— */
.app-shell {
  display: grid;
  grid-template-columns: var(--sidebar-w, 248px) 1fr;
  min-height: 100vh;
  max-width: none;
  margin: 0;
}

.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--bg-card);
  border-right: var(--card-border);
  z-index: 30;
  overflow: hidden;
}

.sidebar-head {
  flex-shrink: 0;
  padding: 14px 16px 12px;
  border-bottom: 1px solid var(--line);
}

.sidebar-brand {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
  line-height: 1.2;
}

.sidebar-tag {
  font-family: var(--font-label);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: 2px;
}

.sidebar-changelog-btn {
  flex-shrink: 0;
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-align: left;
  padding: 8px 12px;
  margin: 0;
  border: none;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: var(--bg-card);
  color: var(--text-primary);
  cursor: pointer;
  width: 100%;
  line-height: 1.35;
}

.sidebar-changelog-btn:hover {
  background: var(--gold-dim);
}

.sidebar-changelog-btn.on {
  background: var(--gold-dim);
  border-left: 3px solid var(--accent);
  padding-left: 9px;
}

.sidebar-foot {
  flex-shrink: 0;
  padding: 10px 12px 14px;
  border-top: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.main {
  min-width: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* фаза A: адаптив чатов по ширине main, не viewport (half-screen + sidebar) */
  container-type: inline-size;
  container-name: pult-main;
}

.main-head {
  flex-shrink: 0;
  padding: 10px 20px 8px;
  border-bottom: 1px solid var(--line);
  background: var(--bg-page);
}

.main-head-top {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 0;
}

.main-head-titles {
  flex: 1;
  min-width: 0;
}

.main-head-title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 10px;
  min-width: 0;
}

.main-head h1 {
  font-size: 1.2rem;
  line-height: 1.25;
  margin: 0;
  overflow-wrap: anywhere;
}

/* Обратный отсчёт до воркера автовыгрузки — тихие «часы данных» */
.worker-eta {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-shrink: 0;
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0.02em;
  color: var(--text-muted);
  border: 1px solid var(--line);
  background: var(--bg-page);
  padding: 3px 8px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  vertical-align: middle;
}

.worker-eta[hidden] {
  display: none !important;
}

.worker-eta .worker-eta-lab {
  opacity: 0.8;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}

.worker-eta .worker-eta-time {
  font-weight: 600;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}

.worker-eta--card {
  margin-left: 6px;
  font-size: 0.65rem;
  padding: 2px 6px;
  vertical-align: middle;
}

.card h3 .worker-eta--card {
  position: relative;
  top: -1px;
}

.main-head #page-sub {
  font-size: 0.78rem;
  line-height: 1.35;
  margin-top: 2px;
  max-width: none;
}

.main-body {
  flex: 1;
  min-height: 0;
  overflow: auto;
  padding: 16px 20px 32px;
  -webkit-overflow-scrolling: touch;
}

.sidebar-toggle {
  display: none;
  font: inherit;
  cursor: pointer;
  border: var(--card-border);
  background: var(--bg-card);
  color: var(--text-primary);
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  line-height: 1;
  font-size: 1.1rem;
}

.sidebar-toggle:hover { background: var(--gold-dim); }

/* legacy .app for vitrina */
.app {
  max-width: var(--container-max);
  margin: 0 auto;
  padding: 0 24px 72px;
}

/* —— sidebar nav (Telegram groups list) —— */
.nav.sidebar-nav {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 0;
  width: 100%;
  padding: 6px 0;
  border: none;
  background: transparent;
  margin: 0;
}

.nav.sidebar-nav button {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin: 0;
  padding: 10px 12px 10px 10px;
  border: 0;
  border-left: 3px solid transparent;
  border-bottom: none;
  border-radius: 0;
  background: transparent;
  color: var(--text-primary);
  text-align: left;
  cursor: pointer;
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.nav.sidebar-nav button:active {
  background: rgba(161, 98, 7, 0.14);
}

.nav.sidebar-nav button .nav-icon {
  flex-shrink: 0;
  width: 22px;
  text-align: center;
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1;
  color: var(--text-muted);
}

.nav.sidebar-nav button.on .nav-icon { color: var(--accent); }

.nav.sidebar-nav button .nav-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  min-width: 0;
}

.nav.sidebar-nav button .nav-label {
  font-family: var(--font-label);
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  text-transform: none;
  line-height: 1.25;
}

.nav.sidebar-nav button .nav-hint {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 400;
  color: var(--text-muted);
  letter-spacing: 0;
  text-transform: none;
}

.nav.sidebar-nav button:hover {
  background: rgba(161, 98, 7, 0.08);
  color: var(--text-primary);
  border-left-color: rgba(161, 98, 7, 0.45);
}

.nav.sidebar-nav button.on {
  background: var(--gold-dim);
  border-left: 4px solid var(--accent);
  padding-left: 9px;
  color: var(--text-primary);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(161, 98, 7, 0.22);
}

.nav.sidebar-nav button.on .nav-label {
  font-weight: 700;
  color: var(--ink, #1A1A1A);
}

.nav.sidebar-nav button.on .nav-hint {
  color: var(--accent);
}

#main-nav button[hidden] { display: none !important; }

.nav-group-lab {
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  padding: 14px 12px 6px 13px;
}

#dir-workspace-tabs {
  margin-bottom: 14px;
}

/* horizontal nav fallback (витрина) */
.nav:not(.sidebar-nav) {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  padding: 0;
  border: none;
  background: transparent;
  border-bottom: var(--card-border);
  width: 100%;
}

.nav:not(.sidebar-nav) button {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  border: 0;
  background: transparent;
  color: var(--text-muted);
  padding: 12px 16px 10px 0;
  margin-right: 8px;
  border-bottom: 2px solid transparent;
}

.nav:not(.sidebar-nav) button.on {
  color: var(--text-primary);
  border-bottom-color: var(--accent);
}

.top {
  position: relative;
  margin: 0 0 24px;
  padding: 0;
  background: transparent;
  border-bottom: none;
}


.hero-badge,
.brand {
  display: inline-block;
  padding: 6px 16px;
  margin-bottom: 12px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--ink);
  color: #fff;
}

.decor-line {
  height: 4px;
  max-width: 100%;
  margin: 16px 0 12px;
  background: linear-gradient(90deg, #1A1A1A 0%, #1A1A1A 70%, var(--accent) 70%, var(--accent) 100%);
}

h1, h2, h3 {
  font-family: var(--font-display);
  color: var(--text-primary);
  font-weight: 700;
}

h1 {
  font-size: clamp(1.2rem, 2.5vw, 1.65rem);
  line-height: 1.2;
  margin-bottom: 4px;
}

#page-sub {
  overflow-wrap: anywhere;
  max-width: 44rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--text-muted);
}

.top-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }

/* —— chips / badges —— */
.data-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 0;
  background: var(--gold-dim);
  color: var(--accent);
  border: 1px solid var(--ink);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.data-chip.live { display: none !important; }

.period-chip {
  display: inline-block;
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 0;
  border: 1px solid var(--ink);
  background: var(--gold-dim);
  color: var(--accent);
  margin-left: 8px;
  vertical-align: middle;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.period-chip.warn {
  border-color: var(--risk);
  background: rgba(155, 44, 44, 0.08);
  color: var(--risk);
}

/* —— KPI strip —— */
.kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 24px;
  padding-top: 16px;
  border-top: var(--card-border);
}

.kpi {
  background: #FAFAFA;
  border: 1px solid var(--ink);
  border-radius: 0;
  padding: 16px 14px;
  box-shadow: none;
  text-align: center;
}

.kpi b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.75rem;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

.kpi span {
  font-family: var(--font-label);
  font-size: 0.78rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.kpi.snap span::after { content: " · снимок"; color: var(--text-muted); }

.kpis.hero {
  grid-template-columns: minmax(160px, 280px);
  max-width: 320px;
  margin-bottom: 10px;
  padding-top: 12px;
}

/* компактная лента: одна строка, без «карточного» воздуха */
.kpis.compact {
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 0;
  margin-bottom: 12px;
  padding: 0;
  border: 1px solid var(--ink);
  border-top: 1px solid var(--ink);
  background: var(--bg-card);
}

.kpis.compact .kpi {
  padding: 8px 10px;
  border: none;
  border-right: 1px solid var(--line);
  background: transparent;
  text-align: left;
}

.kpis.compact .kpi:last-child { border-right: none; }

.kpis.compact .kpi b {
  font-size: 1.15rem;
  line-height: 1.15;
  margin-bottom: 2px;
}

.kpis.compact .kpi span {
  font-size: 0.7rem;
  letter-spacing: 0.01em;
  line-height: 1.3;
  display: block;
  text-transform: none;
}

.kpis.compact.cols-7 {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

@media (max-width: 1200px) {
  .kpis.compact,
  .kpis.compact.cols-7 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .kpis.compact .kpi:nth-child(4n) { border-right: none; }
  .kpis.compact .kpi:nth-child(n+5) { border-top: 1px solid var(--line); }
}

@media (max-width: 560px) {
  .kpis.compact,
  .kpis.compact.cols-7 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kpis.compact .kpi:nth-child(2n) { border-right: none; }
  .kpis.compact .kpi:nth-child(n+3) { border-top: 1px solid var(--line); }
}

/* —— cards / panels —— */
.grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.card {
  position: relative;
  text-align: left;
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 20px 22px;
  cursor: pointer;
  font: inherit;
  color: inherit;
  transition: transform 0.25s ease;
  box-shadow: none;
}

.card:hover {
  border-color: var(--ink);
  transform: translateX(4px);
  box-shadow: none;
}

.card h3 {
  font-size: 1.05rem;
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #E5E5E5;
  display: flex;
  align-items: center;
  gap: 8px;
}

.card h3::before {
  content: '';
  display: inline-block;
  width: 8px;
  height: 8px;
  background: var(--accent);
  flex-shrink: 0;
}

.dot { width: 8px; height: 8px; border-radius: 0; display: inline-block; flex-shrink: 0; background: var(--accent); }

.card-alert {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 8px;
  height: 8px;
  border-radius: 0;
  background: var(--risk);
  box-shadow: none;
}

.meta { display: flex; justify-content: space-between; gap: 8px; font-size: 0.88rem; }
.meta strong { color: var(--text-primary); font-weight: 600; }

.panel {
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 24px 26px;
  margin-bottom: 20px;
  box-shadow: none;
  min-width: 0;
  max-width: 100%;
}

/* Широкие таблицы: скролл внутри, без раздувания main */
.table-wrap {
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
}

.table-wrap > table {
  width: max-content;
  min-width: 100%;
}

/* Имя сотрудника остаётся в кадре при горизонтальном скролле */
.table-wrap .mgr-table th:first-child,
.table-wrap .mgr-table td:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  background: var(--bg-card);
  box-shadow: 1px 0 0 var(--table-line);
}

.table-wrap .mgr-table th:first-child {
  background: var(--ink);
  color: #fff;
  z-index: 2;
}

.table-wrap .mgr-table tr:hover td:first-child { background: #FAFAFA; }
.table-wrap .mgr-table tr.row-on td:first-child { background: var(--focus); }

.panel h2 {
  font-size: 1.25rem;
  margin-bottom: 14px;
}

.panel h2::after {
  content: '';
  display: block;
  width: 56px;
  height: 3px;
  background: var(--accent);
  margin-top: 10px;
}

.section-lab {
  font-family: var(--font-label);
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  font-weight: 600;
  margin: 4px 0 12px;
}

/* —— buttons —— */
.btn {
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  border: var(--card-border);
  background: var(--bg-card);
  color: var(--text-primary);
  border-radius: 0;
  padding: 8px 14px;
  transition: background 0.15s, color 0.15s;
  text-decoration: none;
  display: inline-block;
}

.btn:hover {
  border-color: var(--ink);
  background: var(--gold-dim);
}

.btn.primary {
  border-color: var(--ink);
  color: #fff;
  background: var(--ink);
}

.btn.primary:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.btn:disabled { opacity: 0.55; cursor: wait; }

.back {
  background: none;
  border: 0;
  color: var(--accent);
  cursor: pointer;
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-bottom: 14px;
  padding: 0;
}

.back:hover { text-decoration: underline; }

.theme-toggle { display: none !important; }

/* —— tabs —— */
.tabs { display: flex; flex-wrap: wrap; gap: 0; margin: 12px 0 16px; border-bottom: 1px solid var(--ink); }

.tab {
  font-family: var(--font-label);
  padding: 10px 16px 8px 0;
  margin-right: 12px;
  border-radius: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: color 0.2s, border-color 0.2s;
}

.tab:hover { color: var(--accent); border-bottom-color: var(--accent); }

.tab.on {
  color: var(--text-primary);
  border-bottom-color: var(--accent);
  background: transparent;
  font-weight: 600;
}

/* workspace: underline (канон .tab) */
.tabs-workspace {
  margin-top: 0;
}

/* воронки: chips, не второй ряд underline-tabs */
.tabs-funnel {
  gap: 8px;
  border-bottom: none;
  margin: 8px 0 14px;
}
.tabs-funnel .tab {
  margin-right: 0;
  padding: 6px 12px;
  border: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
  background: var(--bg-card);
  color: var(--text-muted);
  text-transform: none;
  letter-spacing: 0.02em;
  font-size: 0.78rem;
}
.tabs-funnel .tab:hover {
  color: var(--accent);
  border-color: var(--accent);
  background: var(--gold-dim);
}
.tabs-funnel .tab.on {
  color: var(--text-primary);
  background: var(--gold-dim);
  border-color: var(--ink);
  font-weight: 600;
}

/* метки внимания / фильтры чатов */
.filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 10px;
  align-items: center;
}
.filter-bar--stacked {
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.filter-bar-group {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
}
.filter-bar-lab {
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  flex: 0 0 auto;
  min-width: 7.5rem;
}
.filter-bar-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  flex: 1 1 auto;
  min-width: 0;
}
.filter-bar .filter-chip {
  font-family: var(--font-label);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border: 1px solid var(--ink);
  background: var(--bg-card);
  color: var(--text-muted);
  cursor: pointer;
  font-size: 0.75rem;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
}
.filter-bar .filter-chip:hover {
  color: var(--accent);
  background: var(--gold-dim);
}
.filter-bar .filter-chip.on {
  color: var(--text-primary);
  background: var(--gold-dim);
  font-weight: 600;
  border-color: var(--ink);
}
.filter-bar .filter-chip .badge,
.filter-bar .badge {
  font-variant-numeric: tabular-nums;
  font-size: 0.68rem;
  font-weight: 700;
  min-width: 1.4em;
  padding: 1px 5px;
  border: 1px solid var(--ink);
  background: #FAFAFA;
  color: var(--ink);
}
.filter-bar .filter-chip.on .badge {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}

.archive-filter-row {
  gap: 6px 8px;
}
.archive-filter-trail {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  margin-left: auto;
}
.archive-filter-trail .archive-horizon-chip,
.archive-filter-trail .data-chip {
  font-family: var(--font-label);
  font-size: 0.7rem;
  text-transform: none;
  letter-spacing: 0.02em;
  color: var(--text-muted);
  border-color: var(--line);
  background: transparent;
  padding: 3px 8px;
}
.archive-filter-trail .btn {
  padding: 4px 10px;
  font-size: 0.72rem;
}

.filter-context {
  display: none;
}

/* —— funnel —— */
.funnel { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 8px; align-items: stretch; }

.stage {
  min-width: 90px;
  flex: 1;
  background: #FAFAFA;
  border-radius: 0;
  padding: 10px 8px;
  border: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

.stage .bar {
  width: 100%;
  border-radius: 0;
  margin-bottom: 8px;
  background: var(--accent);
  opacity: 0.75;
}

.stage .n {
  font-family: var(--font-display);
  color: var(--text-primary);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
}

.stage .name {
  font-family: var(--font-label);
  font-size: 0.72rem;
  line-height: 1.3;
  min-height: 2.4em;
  color: var(--text-muted);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.stage .sum { display: none; } /* сумма — в таблице стадий ниже */
.stage.won { border-color: var(--ok); }
.stage.lose { border-color: var(--risk); }
.stage.lose .bar { background: var(--risk); opacity: 0.65; }

/* —— tables —— */
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }

th {
  text-align: left;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #fff;
  padding: 11px 12px;
  border-bottom: none;
  background: var(--ink);
}

td {
  padding: 10px 12px;
  border-bottom: 1px solid var(--table-line);
  color: var(--text-primary);
  vertical-align: top;
}

tbody tr:hover { background: #FAFAFA; }

.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

.mgr-table th { background: var(--ink); color: #fff; }
.mgr-table th, .mgr-table td { padding: 8px 10px; border-bottom: 1px solid var(--table-line); }
.mgr-table tr:hover td { background: #FAFAFA; }
.mgr-table tr.row-on td { background: var(--focus); }

.mgr-table.compact th,
.mgr-table.compact td { padding: 6px 8px; }
.mgr-table.compact th {
  white-space: nowrap;
  font-size: 0.65rem;
  line-height: 1.25;
  vertical-align: bottom;
}

.list-scroll thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--ink);
  color: #fff;
  box-shadow: none;
}

/* —— severity / verdict / tags —— */
.sev {
  font-family: var(--font-label);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 8px;
  border-radius: 0;
  border: 1px solid var(--ink);
  font-weight: 600;
}

.sev.high { color: var(--risk); border-color: var(--risk); background: rgba(155, 44, 44, 0.08); }
.sev.mid { color: var(--accent); border-color: var(--accent); background: var(--gold-dim); }
.sev.low { color: var(--ok); border-color: var(--ok); background: rgba(47, 107, 63, 0.08); }

.verdict {
  display: inline-block;
  font-family: var(--font-label);
  font-size: 0.65rem;
  padding: 2px 8px;
  border-radius: 0;
  border: 1px solid var(--ink);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.verdict.working, .verdict.happy, .verdict.won { color: var(--ok); border-color: var(--ok); background: rgba(47, 107, 63, 0.08); }
.verdict.mixed, .verdict.neutral { color: var(--accent); border-color: var(--accent); background: var(--gold-dim); }
.verdict.weak, .verdict.ignoring, .verdict.negative, .verdict.abandoned, .verdict.risk, .verdict.unhappy, .verdict.lost {
  color: var(--risk); border-color: var(--risk); background: rgba(155, 44, 44, 0.08);
}
.verdict.stale { color: #92400E; border-color: #92400E; background: rgba(146, 64, 14, 0.08); }
.verdict.silent, .verdict.other, .verdict.idle { color: var(--text-muted); border-color: var(--line); background: #FAFAFA; }

.chip-t, .tag {
  display: inline-block;
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  padding: 3px 9px;
  border-radius: 0;
  border: 1px solid var(--line);
  color: var(--text-muted);
  background: #FAFAFA;
  margin: 2px 4px 2px 0;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  vertical-align: middle;
}

.tag.ignored,
.tag.negative {
  color: #fff;
  border-color: var(--risk);
  background: var(--risk);
}
/* срочный — сильнее; протухший / низкая оценка — различимы в каноне охра/ink */
.tag.urgent {
  color: #fff;
  border-color: var(--risk);
  background: #7A2E12;
}
.tag.stale {
  color: var(--ink);
  border-color: var(--ink);
  background: var(--gold-dim);
}
.tag.low_score {
  color: #fff;
  border-color: var(--accent);
  background: var(--accent);
}
.tag.waiting {
  color: var(--ink);
  border-color: var(--line);
  background: #FAFAFA;
}
.tag.ok {
  color: var(--ok);
  border-color: var(--ok);
  background: rgba(47, 107, 63, 0.08);
}
/* Шкала ожидания — доп. шильдик, не путать с ignored/stale */
.tag.wait-band {
  color: var(--ink);
  border-color: var(--ink);
  background: #F7F3EA;
  font-variant-numeric: tabular-nums;
}
.tag.wait-le2h { background: #FAFAFA; border-color: var(--line); }
.tag.wait-le24h { background: #F7F3EA; }
.tag.wait-le48h { background: var(--gold-dim); }
.tag.wait-d2to7 { background: #E8D9B5; }
.tag.wait-gt7d { color: #fff; border-color: var(--risk); background: var(--risk); }

/* —— layout / chat —— */
.layout { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr); gap: 16px; }

.chat { display: flex; flex-direction: column; gap: 8px; overflow: auto; padding: 8px 6px 12px; background: #F3F1ED; }
.list-scroll { max-height: min(85vh, 960px); overflow: auto; border: var(--card-border); background: var(--bg-card); }

/* Messenger bubbles (исключение канона: скругление только у пузырей чата) */
.msg-row {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.msg-row.client {
  justify-content: flex-start;
  flex-direction: row;
}
.msg-row.op {
  justify-content: flex-end;
  flex-direction: row;
}
/* у оператора: пузырь, потом аватар справа */
.msg-row.op .bubble { order: 1; }
.msg-row.op .msg-avatar { order: 2; }
.msg-avatar {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 700;
  border: 1px solid var(--ink);
}
.msg-row.client .msg-avatar {
  background: #E8E6E1;
  color: #5C574F;
}
.msg-row.op .msg-avatar {
  background: rgba(47, 107, 63, 0.2);
  color: var(--ok);
  border-color: var(--ok);
}
.bubble {
  max-width: min(72%, 560px);
  padding: 8px 12px 10px;
  border-radius: 14px;
  font-size: 0.88rem;
  color: var(--text-primary);
  line-height: 1.45;
  border: 1px solid transparent;
  flex: 0 1 auto;
}
.bubble.client {
  background: #FFFFFF;
  border-color: var(--line);
  border-bottom-left-radius: 4px;
}
.bubble.op {
  background: rgba(47, 107, 63, 0.14);
  border-color: rgba(47, 107, 63, 0.35);
  border-bottom-right-radius: 4px;
}
.bubble .who {
  font-family: var(--font-label);
  font-size: 0.65rem;
  margin-bottom: 3px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.bubble.op .who { color: var(--ok); font-weight: 600; }
.bubble.client .who { color: #5C574F; font-weight: 600; }
.bubble-text { white-space: pre-wrap; word-break: break-word; }

/* —— QA / scores —— */
.score-ring {
  width: 72px;
  height: 72px;
  border-radius: 0;
  border: 3px solid var(--accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-size: 1.5rem;
  color: var(--text-primary);
  margin-bottom: 10px;
}

.score-ring.low { border-color: var(--score-low); }
.score-ring.mid { border-color: var(--score-mid); }
.score-ring.high { border-color: var(--score-high); }

.score-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  padding: 2px 8px;
  border-radius: 0;
  font-family: var(--font-display);
  font-size: 0.9rem;
  border: 1px solid var(--ink);
  font-weight: 700;
}

.score-pill.low { color: #fff; border-color: var(--score-low); background: var(--score-low); }
.score-pill.mid { color: #1A1A1A; border-color: var(--score-mid); background: var(--score-mid-fill); }
.score-pill.high { color: #fff; border-color: var(--score-high); background: var(--score-high); }

.qa-index {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px 20px;
  margin: 0 0 14px;
  padding: 14px 16px;
  border-radius: 0;
  border: var(--card-border);
  background: #FAFAFA;
}

.qa-index .qi-score { font-family: var(--font-display); font-size: 1.85rem; line-height: 1; color: var(--text-primary); min-width: 2.2em; font-weight: 700; }
.qa-index .qi-meta { flex: 1; min-width: 200px; }
.qa-index .qi-verdict { font-size: 0.95rem; font-weight: 700; color: var(--text-primary); }
.qa-index .qi-hint { font-size: 0.75rem; color: var(--text-muted); }
.qa-index.low { border-color: var(--score-low); background: rgba(155, 44, 44, 0.06); }
.qa-index.low .qi-score, .qa-index.low .qi-verdict { color: var(--score-low); }
.qa-index.mid { border-color: var(--score-mid); background: var(--score-mid-dim); }
.qa-index.mid .qi-score, .qa-index.mid .qi-verdict { color: var(--score-mid); }
.qa-index.high { border-color: var(--score-high); background: rgba(47, 107, 63, 0.06); }
.qa-index.high .qi-score, .qa-index.high .qi-verdict { color: var(--score-high); }

/* Шкала 0–100: плохо <50 · нормально 50–74 · хорошо ≥75 */
.qa-scale { margin-top: 8px; max-width: 360px; }
.qa-scale-track {
  position: relative;
  display: flex;
  height: 8px;
  border: 1px solid var(--ink);
  background: #E5E5E5;
}
.qa-scale-zone.low { flex: 50 1 0; background: var(--score-low); }
.qa-scale-zone.mid { flex: 25 1 0; background: var(--score-mid); }
.qa-scale-zone.high { flex: 25 1 0; background: var(--score-high); }
.qa-scale-marker {
  position: absolute;
  top: -5px;
  width: 3px;
  height: 18px;
  margin-left: -2px;
  background: var(--ink);
  box-shadow: 0 0 0 1px #fff;
  pointer-events: none;
}
.qa-scale-labs {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-top: 4px;
  font-family: var(--font-label);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 600;
}
.qa-scale-labs .low { color: var(--score-low); }
.qa-scale-labs .mid { color: var(--score-mid); }
.qa-scale-labs .high { color: var(--score-high); }

.qi-bars {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-left: auto;
  align-items: center;
}
.qi-bar {
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 4px 8px;
  border: 1px solid var(--ink);
  white-space: nowrap;
}
.qi-bar b { font-family: var(--font-display); font-size: 0.95rem; margin-left: 4px; }
.qi-bar.low { color: #fff; background: var(--score-low); border-color: var(--score-low); }
.qi-bar.mid { color: #1A1A1A; background: var(--score-mid-fill); border-color: var(--score-mid); }
.qi-bar.high { color: #fff; background: var(--score-high); border-color: var(--score-high); }

.kpi.score-kpi.low b { color: var(--score-low); }
.kpi.score-kpi.mid b { color: var(--score-mid); }
.kpi.score-kpi.high b { color: var(--score-high); }

.qa-box { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.qa-box ul { margin: 6px 0 10px 1.1rem; color: var(--text-primary); font-size: 0.88rem; line-height: 1.5; }

.remark {
  padding: 12px 14px;
  border-radius: 0;
  background: #FAFAFA;
  margin-bottom: 8px;
  font-size: 0.88rem;
  color: var(--text-primary);
  border: 1px solid var(--line);
  border-left: 3px solid var(--accent);
}

.remark .flag { font-family: var(--font-label); font-size: 0.65rem; color: var(--risk); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 4px; font-weight: 600; }
.remark .ev { font-size: 0.78rem; color: var(--text-muted); margin-top: 6px; font-style: italic; }

/* —— bars —— */
.bars { display: grid; gap: 8px; margin: 10px 0; }
.bar-row { display: grid; grid-template-columns: minmax(140px, 1.1fr) 1fr 56px; gap: 10px; align-items: center; font-size: 0.85rem; color: var(--text-muted); }
.bar-track { height: 8px; background: #E5E5E5; border-radius: 0; overflow: hidden; }
.bar-fill { height: 100%; background: var(--accent); border-radius: 0; }

.note {
  font-size: 0.88rem;
  color: var(--text-secondary);
  margin-top: 14px;
  padding: 14px 16px;
  border-left: 3px solid var(--accent);
  background: rgba(161, 98, 7, 0.06);
}

.note strong { color: var(--accent); }

/* —— radar —— */
.radar-legend { display: flex; gap: 10px; flex-wrap: wrap; margin: 0 0 16px; }

.radar-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 0;
  border: 1px solid var(--ink);
  background: var(--bg-card);
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.radar-dot { width: 8px; height: 8px; border-radius: 0; }
.radar-dot.ok { background: var(--ok); }
.radar-dot.mid { background: var(--accent); }
.radar-dot.bad { background: var(--risk); }

.radar-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 20px; }
.radar-summary-groups { grid-template-columns: repeat(3, 1fr); }

.radar-groups { display: flex; flex-direction: column; gap: 16px; }
.radar-group { margin: 0; }
.radar-group.ok { border-color: var(--ok); }
.radar-group.mid { border-color: var(--accent); }
.radar-group.bad { border-color: var(--risk); }
.radar-group-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}
.radar-group-head h2 { margin: 0 0 4px; }
.radar-group-score { text-align: right; min-width: 120px; }
.radar-group-score .rk-value {
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text-primary);
}
.radar-group.ok .radar-group-score .rk-value { color: var(--ok); }
.radar-group.mid .radar-group-score .rk-value { color: var(--accent); }
.radar-group.bad .radar-group-score .rk-value { color: var(--risk); }
.radar-group-score .radar-badge { display: inline-block; margin-top: 6px; }
.radar-group-score .rk-hint {
  margin-top: 6px;
  font-size: 0.72rem;
  color: var(--text-muted);
}

.radar-kpi {
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 14px 16px;
}

.radar-kpi .rk-label { font-family: var(--font-label); font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 6px; }
.radar-kpi .rk-value { font-family: var(--font-display); font-size: clamp(1.35rem, 2.2vw, 1.7rem); color: var(--text-primary); font-weight: 700; line-height: 1.12; letter-spacing: -0.02em; }
.radar-kpi .rk-hint { font-size: 0.78rem; margin-top: 6px; color: var(--text-muted); }
#view-radar .rk-metric {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.28em;
}
#view-radar .rk-metric .rk-unit {
  font-family: var(--font-label);
  font-size: 0.55em;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.radar-kpi.ok { border-color: var(--ok); }
.radar-kpi.ok .rk-value { color: var(--ok); }
.radar-kpi.mid { border-color: var(--accent); }
.radar-kpi.mid .rk-value { color: var(--accent); }
.radar-kpi.bad { border-color: var(--risk); }
.radar-kpi.bad .rk-value { color: var(--risk); }

.radar-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; }

.radar-person {
  border: var(--card-border);
  border-radius: 0;
  padding: 16px;
  margin-bottom: 12px;
  background: #FAFAFA;
}

.radar-badge {
  flex-shrink: 0;
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 4px 10px;
  border-radius: 0;
  border: 1px solid var(--ink);
}

.radar-badge.ok { background: rgba(47, 107, 63, 0.08); color: var(--ok); border-color: var(--ok); }
.radar-badge.mid { background: var(--gold-dim); color: var(--accent); border-color: var(--accent); }
.radar-badge.bad { background: rgba(155, 44, 44, 0.08); color: var(--risk); border-color: var(--risk); }

.radar-row {
  display: grid;
  grid-template-columns: minmax(140px, 1.4fr) minmax(72px, 0.75fr) minmax(88px, 0.85fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 10px;
  border-radius: 0;
  background: var(--bg-card);
  border: 1px solid var(--line);
}

.radar-row .st {
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 700;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 0;
  border: 1px solid var(--ink);
}

.radar-bar-wrap { height: 4px; border-radius: 0; background: #E5E5E5; overflow: hidden; margin-top: 10px; }
.radar-bar { height: 100%; border-radius: 0; }
.radar-bar.ok { background: var(--ok); }
.radar-bar.mid { background: var(--accent); }
.radar-bar.bad { background: var(--risk); }

/* Радар В2В · 1С (параллельный экран) */
.radar1c-path {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  margin: 0 0 16px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  background: #FAFAFA;
  font-size: 0.82rem;
  color: var(--text-muted);
}
.radar1c-path b { color: var(--text-primary); font-weight: 600; }
.radar1c-path .sep { color: var(--line-strong, #bbb); }
.radar1c-howto {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.radar1c-howto .insight {
  border: 1px solid var(--line);
  padding: 12px 14px;
  background: var(--bg-card);
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-muted);
}
.radar1c-howto .insight strong {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-primary);
}
.radar1c-howto .insight em {
  display: block;
  margin-top: 8px;
  font-style: normal;
  font-size: 0.78rem;
  color: var(--accent);
}
/* Протокол задач (Радар В2В → вкладка Задачи): KPI по людям + компактный чеклист */
.radar-tasks-head {
  margin-bottom: 14px;
}
.radar-tasks-head h2 { margin: 0 0 6px; }
.radar-task-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  margin-bottom: 16px;
}
.radar-task-kpi {
  display: block;
  width: 100%;
  text-align: left;
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 12px 14px;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
.radar-task-kpi:hover { background: var(--gold-dim, #f3efe6); }
.radar-task-kpi.on {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  background: var(--gold-dim, #f3efe6);
}
.radar-task-kpi .rk-label {
  font-family: var(--font-label);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.radar-task-kpi .rk-value {
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.1;
}
.radar-task-kpi .rk-unit {
  margin-left: 0.35em;
  font-family: var(--font-label);
  font-size: 0.62rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 600;
  vertical-align: middle;
}
.radar-task-kpi .rk-hint {
  margin-top: 6px;
  font-size: 0.78rem;
  color: var(--text-muted, #666);
  line-height: 1.3;
}
.radar-task-kpi.has-open .rk-value { color: var(--accent); }
.radar-task-kpi.all-done .rk-value { color: #3d6b4f; }
.radar-task-group {
  border: var(--card-border);
  background: var(--bg-card);
  margin-bottom: 12px;
}
.radar-task-group-head {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: baseline;
  justify-content: space-between;
  padding: 12px 14px;
  border-bottom: 1px solid var(--ink);
}
.radar-task-group-head h3 {
  margin: 0;
  font-family: var(--font-label);
  font-size: 0.95rem;
  font-weight: 700;
}
.radar-task-list { padding: 0; }
.radar-task-card {
  padding: 12px 14px;
  border-bottom: 1px solid var(--table-line, #ddd);
}
.radar-task-card:last-child { border-bottom: none; }
.radar-task-card-top {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  margin-bottom: 6px;
}
.radar-task-flag {
  font-family: var(--font-label);
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  border: 1px solid var(--ink);
  padding: 2px 7px;
}
.radar-task-flag.open {
  background: #fff7ed;
  border-color: var(--accent);
  color: var(--accent);
}
.radar-task-flag.done {
  background: #eef6f0;
  border-color: #3d6b4f;
  color: #3d6b4f;
}
.radar-task-id {
  font-size: 0.82rem;
}
.radar-task-block {
  font-family: var(--font-label);
  font-size: 0.75rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted, #666);
}
.radar-task-due {
  margin-left: auto;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted, #666);
}
.radar-task-title {
  font-family: var(--font-body);
  color: var(--ink);
  line-height: 1.4;
  font-size: 0.95rem;
}
.radar-task-ready {
  margin-top: 4px;
  font-size: 0.8rem;
  line-height: 1.35;
}
.radar-task-result-ro {
  margin-top: 8px;
  padding: 8px 10px;
  border-left: 3px solid var(--accent);
  background: var(--bg-page);
  font-size: 0.85rem;
  line-height: 1.4;
}
.radar-task-result-lab {
  font-family: var(--font-label);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-right: 6px;
  color: var(--text-muted, #666);
}
.radar-task-card.is-done .radar-task-title {
  opacity: 0.72;
}
/* Радар В2В·1С: светлая шапка таблицы (не чёрная полоса) + крупные деньги */
#view-radar1c .radar-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
#view-radar1c .radar-kpi {
  padding: 16px 18px;
  min-height: 118px;
}
#view-radar1c .radar-kpi .rk-label {
  font-size: 0.72rem;
  margin-bottom: 10px;
}
#view-radar1c .radar-kpi .rk-value {
  font-size: clamp(1.35rem, 2.6vw, 1.9rem);
  line-height: 1.12;
  letter-spacing: -0.02em;
  word-break: break-word;
}
#view-radar1c .radar-kpi .rk-hint {
  margin-top: 10px;
  font-size: 0.82rem;
  line-height: 1.35;
}
#view-radar1c .radar-kpi-expand {
  display: block;
  width: 100%;
  min-width: 0;
  padding: 16px 18px;
  font: inherit;
  color: inherit;
  text-align: left;
  cursor: pointer;
  appearance: none;
}
#view-radar1c .radar-kpi-expand:hover,
#view-radar1c .radar-kpi-expand[aria-expanded="true"] {
  background: #F5F5F5;
}
#view-radar1c .radar-kpi-expand-panel {
  margin: -6px 0 18px;
  padding: 16px 18px 18px;
  border: 2px solid var(--ok);
  background: var(--bg-card);
}
#view-radar1c .radar-kpi-expand-panel[hidden] {
  display: none;
}
#view-radar1c .radar-kpi-expand-head {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
#view-radar1c .radar-kpi-expand-head h3 {
  margin: 0 0 6px;
}
#view-radar1c .radar-kpi-expand-head .muted {
  margin: 0;
}
#view-radar1c .rk-metric {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: baseline;
  gap: 0.22em;
  max-width: 100%;
  white-space: nowrap;
}
#view-radar1c .rk-metric .rk-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: inherit;
}
#view-radar1c .rk-metric .rk-unit {
  font-family: var(--font-label);
  font-size: 0.58em;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
  flex-shrink: 0;
}
#view-radar1c .rk-sep {
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
  margin: 0 0.15em;
}
#view-radar1c .table-wrap {
  border: 2px solid var(--ink);
  background: var(--bg-card);
  overflow-x: auto;
}
#view-radar1c .data-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
}
#view-radar1c .data-table th,
#view-radar1c .data-table td {
  padding: 12px 14px;
  border-bottom: 1px solid rgba(26, 26, 26, 0.12);
  text-align: left;
  vertical-align: middle;
}
#view-radar1c .data-table tbody tr:last-child td { border-bottom: 0; }
#view-radar1c .data-table th {
  position: static;
  background: var(--bg-page) !important;
  color: var(--ink) !important;
  border-bottom: 2px solid var(--ink);
  box-shadow: none;
  font-family: var(--font-label);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}
#view-radar1c .data-table td.num,
#view-radar1c .data-table th.num {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
#view-radar1c .data-table td.num {
  font-family: var(--font-display);
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
#view-radar1c .data-table td.num .rk-metric {
  flex-wrap: nowrap;
  white-space: nowrap;
  justify-content: flex-end;
}
#view-radar1c .data-table td.num .rk-metric .rk-unit {
  font-size: 0.62em;
}
#view-radar1c .data-table.radar1c-mgr-pivot {
  font-size: 0.82rem;
  min-width: 720px;
}
#view-radar1c .data-table.radar1c-mgr-pivot th,
#view-radar1c .data-table.radar1c-mgr-pivot td {
  padding: 7px 8px;
}
#view-radar1c .data-table.radar1c-mgr-pivot th {
  font-size: 0.68rem;
  letter-spacing: 0.03em;
}
#view-radar1c .data-table.radar1c-mgr-pivot td.num {
  font-size: 0.88rem;
}
#view-radar1c .radar-kpi[data-radar1c-jump] { cursor: pointer; }
#view-radar1c .radar-kpi[data-radar1c-jump]:hover { background: #F5F5F5; }

.radar1c-months { display: grid; gap: 10px; margin: 10px 0 14px; }
.radar1c-bar-row { grid-template-columns: 56px 1fr minmax(168px, max-content); gap: 12px; }
.radar1c-bar-row .bar-label {
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--ink);
}
.radar1c-bar-row .bar-track { height: 12px; background: #E8E4DC; }
.radar1c-bar-row .bar-value {
  text-align: right;
  line-height: 1.3;
  font-variant-numeric: tabular-nums;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
.radar1c-bar-row .bar-value .rk-metric { justify-content: flex-end; flex-wrap: nowrap; }
.radar1c-bar-row .bar-fill.alt { background: var(--ok); }
.radar1c-bar-row .pos { color: var(--ok); font-family: var(--font-label); font-size: 0.78rem; font-weight: 700; }
.radar1c-bar-row .neg { color: var(--risk); font-family: var(--font-label); font-size: 0.78rem; font-weight: 700; }
#view-radar1c .radar-person .radar-badge {
  font-size: 0.85rem;
  padding: 6px 12px;
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
}
#view-radar1c .radar-mini-kpi b {
  font-size: 1.35rem;
  line-height: 1.15;
}
#view-radar1c .radar1c-mgr-months {
  margin: 12px 0 4px;
  border: 1px solid var(--line);
  background: #FAFAFA;
  padding: 10px 12px;
}
#view-radar1c .radar1c-mgr-months-head {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 8px;
}
#view-radar1c .radar1c-mgr-months-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
  gap: 8px;
}
#view-radar1c .radar1c-mgr-month {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  border: 1px solid rgba(26, 26, 26, 0.12);
  background: var(--bg-card);
  min-width: 0;
}
#view-radar1c .radar1c-mgr-month .rmm-lab {
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#view-radar1c .radar1c-mgr-month .rmm-val {
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.15;
  color: var(--ink);
  white-space: nowrap;
}
#view-radar1c .radar1c-mgr-month .rmm-val .rk-metric {
  flex-wrap: nowrap;
  white-space: nowrap;
}
#view-radar1c .radar1c-mgr-month .rmm-n {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-style: normal;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}
#view-radar1c .radar1c-fc-goals-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
#view-radar1c .radar1c-fc-goal {
  border: 2px solid var(--ink);
  padding: 14px 16px;
  background: var(--bg-card);
}
#view-radar1c .radar1c-fc-goal.is-base {
  background: #FBF7F0;
  border-color: var(--accent);
}
#view-radar1c .radar1c-fc-goal-lab {
  font-family: var(--font-label);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 6px;
}
#view-radar1c .radar1c-fc-goal b {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  white-space: nowrap;
}
#view-radar1c .radar1c-fc-goals-meta {
  margin: 12px 0 0;
  font-size: 0.88rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-goals-gap {
  margin: 10px 0 0;
  padding: 10px 12px;
  border: 2px solid var(--ink);
  background: #F8EFE6;
  font-size: 0.92rem;
  line-height: 1.4;
}
#view-radar1c .radar1c-fc-hist-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
#view-radar1c .radar1c-fc-hist {
  display: block;
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: 2px solid var(--ink);
  background: var(--bg-card);
  padding: 12px 14px;
  font: inherit;
  color: inherit;
}
#view-radar1c .radar1c-fc-goal-hero {
  border: 2px solid var(--accent);
  background: #FBF7F0;
  padding: 16px 18px;
}
#view-radar1c .radar1c-fc-goal-hero b {
  display: block;
  margin-top: 6px;
  font-family: var(--font-display);
  font-size: 1.8rem;
  font-weight: 700;
  white-space: nowrap;
}
#view-radar1c .radar1c-fc-goals-gap.is-behind {
  background: #F8EFE6;
}
#view-radar1c .radar1c-fc-goals-gap.is-ahead {
  background: #EEF5EE;
}
#view-radar1c .radar1c-fc-hist.is-frozen {
  border-color: var(--ink);
  background: var(--bg-card);
}
#view-radar1c .radar1c-fc-hist.is-live {
  border-color: var(--accent);
  background: #FBF7F0;
}
#view-radar1c .radar1c-fc-hist.is-best {
  border-color: var(--accent);
  background: #FBF7F0;
}
#view-radar1c .radar1c-fc-hist.is-on {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
#view-radar1c .radar1c-fc-hist-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
#view-radar1c .radar1c-fc-hist-head em {
  font-style: normal;
  color: var(--accent);
}
#view-radar1c .radar1c-fc-hist-lab {
  margin-top: 4px;
  font-size: 0.82rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-hist-base {
  display: block;
  margin-top: 8px;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  white-space: nowrap;
}
#view-radar1c .radar1c-fc-hist-meta {
  margin-top: 6px;
  font-size: 0.78rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-hist-detail {
  margin-top: 12px;
  padding: 12px 14px;
  border: 2px solid var(--ink);
  background: #FBF7F0;
}
#view-radar1c .radar1c-fc-hist-detail h3 {
  margin: 0 0 10px;
  font-family: var(--font-label);
  font-size: 0.85rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
@media (max-width: 1100px) {
  #view-radar1c .radar1c-fc-goals-grid,
  #view-radar1c .radar1c-fc-hist-grid {
    grid-template-columns: 1fr;
  }
}
#view-radar1c .radar1c-fc-card {
  border: 2px solid var(--ink);
  background: var(--bg-card);
  padding: 14px 16px;
}
#view-radar1c .radar1c-fc-card.is-base {
  background: #FBF7F0;
  border-color: var(--accent);
}
#view-radar1c .radar1c-fc-card-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
#view-radar1c .radar1c-fc-card-head h3 {
  margin: 0;
  font-family: var(--font-label);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
#view-radar1c .radar1c-fc-amt {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 700;
  white-space: nowrap;
}
#view-radar1c .radar1c-fc-blurb {
  margin: 0 0 12px;
  font-size: 0.92rem;
  line-height: 1.4;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
#view-radar1c .radar1c-fc-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.88rem;
  line-height: 1.4;
}
@media (max-width: 1100px) {
  #view-radar1c .radar1c-fc-grid { grid-template-columns: 1fr; }
}
#view-radar1c .radar1c-fc-outlook-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
#view-radar1c .radar1c-fc-out {
  border: 2px solid var(--ink);
  padding: 14px 16px;
  background: var(--bg-card);
}
#view-radar1c .radar1c-fc-out.is-base {
  background: #FBF7F0;
  border-color: var(--accent);
}
#view-radar1c .radar1c-fc-out-lab {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
#view-radar1c .radar1c-fc-out b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.15;
  margin-bottom: 8px;
}
#view-radar1c .radar1c-fc-out p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.35;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-out-need {
  margin: 14px 0 0;
  padding: 12px 14px;
  border: 2px solid var(--ink);
  background: #FAFAFA;
  font-size: 0.95rem;
  line-height: 1.4;
}
#view-radar1c .radar1c-fc-attention h2 {
  margin-bottom: 10px;
}
#view-radar1c .radar1c-fc-att-list {
  display: grid;
  gap: 10px;
}
#view-radar1c .radar1c-fc-att {
  border: 2px solid var(--ink);
  padding: 16px 18px;
  background: #FBF7F0;
}
#view-radar1c .radar1c-fc-att.is-risk {
  background: #F8EFEF;
  border-color: #7A2E2E;
}
#view-radar1c .radar1c-fc-att.is-ok {
  background: #F3F6F2;
}
#view-radar1c .radar1c-fc-att-kicker {
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
#view-radar1c .radar1c-fc-att.is-risk .radar1c-fc-att-kicker {
  color: #7A2E2E;
}
#view-radar1c .radar1c-fc-att h3 {
  margin: 0 0 8px;
  font-family: var(--font-display);
  font-size: 1.2rem;
  line-height: 1.25;
}
#view-radar1c .radar1c-fc-att p {
  margin: 0;
  font-size: 1.02rem;
  line-height: 1.45;
  color: var(--ink);
}
#view-radar1c .radar1c-fc-weeks {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
#view-radar1c .radar1c-fc-week {
  border: 2px solid var(--ink);
  padding: 12px 14px;
  background: var(--bg-card);
}
#view-radar1c .radar1c-fc-week.is-partial {
  background: #FBF7F0;
  border-color: var(--accent);
}
#view-radar1c .radar1c-fc-week.is-future {
  opacity: 0.55;
}
#view-radar1c .radar1c-fc-week-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 4px;
}
#view-radar1c .radar1c-fc-week-lab {
  font-size: 0.82rem;
  color: var(--text-muted);
  margin-bottom: 8px;
}
#view-radar1c .radar1c-fc-week-amt {
  display: block;
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 4px;
}
#view-radar1c .radar1c-fc-week-pace {
  font-size: 0.9rem;
  font-weight: 600;
  margin-bottom: 4px;
}
#view-radar1c .radar1c-fc-week-meta {
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-chips {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}
#view-radar1c .radar1c-fc-chip {
  border: 2px solid var(--ink);
  padding: 12px 14px;
  background: var(--bg-card);
}
#view-radar1c .radar1c-fc-chip.is-warn {
  background: #FBF7F0;
  border-color: var(--accent);
}
#view-radar1c .radar1c-fc-chip-lab {
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
#view-radar1c .radar1c-fc-chip-val {
  display: block;
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 6px;
}
#view-radar1c .radar1c-fc-chip-hint {
  font-size: 0.85rem;
  line-height: 1.3;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-call {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 2px solid var(--ink);
}
#view-radar1c .radar1c-fc-call li {
  display: grid;
  grid-template-columns: minmax(120px, 0.35fr) 1fr;
  gap: 12px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
  font-size: 0.95rem;
}
#view-radar1c .radar1c-fc-call li:last-child { border-bottom: 0; }
#view-radar1c .radar1c-fc-call b {
  font-family: var(--font-label);
  font-size: 0.9rem;
}
#view-radar1c .radar1c-fc-call span {
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-terr-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 1100px) {
  #view-radar1c .radar1c-fc-terr-grid { grid-template-columns: 1fr; }
}
#view-radar1c .radar1c-fc-terr {
  border: 2px solid var(--ink);
  background: #fff;
  padding: 14px 16px 16px;
}
#view-radar1c .radar1c-fc-terr.is-ok { border-left: 6px solid #2f6b3a; }
#view-radar1c .radar1c-fc-terr.is-warn { border-left: 6px solid var(--accent); }
#view-radar1c .radar1c-fc-terr.is-risk { border-left: 6px solid #8b2e2e; background: #FFF8F6; }
#view-radar1c .radar1c-fc-terr-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}
#view-radar1c .radar1c-fc-terr-code {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-terr-head h3 {
  margin: 2px 0 0;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
}
#view-radar1c .radar1c-fc-terr-status {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
#view-radar1c .radar1c-fc-terr.is-ok .radar1c-fc-terr-status { color: #2f6b3a; }
#view-radar1c .radar1c-fc-terr.is-warn .radar1c-fc-terr-status { color: var(--accent); }
#view-radar1c .radar1c-fc-terr.is-risk .radar1c-fc-terr-status { color: #8b2e2e; }
#view-radar1c .radar1c-fc-terr-mtd {
  margin-bottom: 10px;
}
#view-radar1c .radar1c-fc-terr-mtd b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1.1;
}
#view-radar1c .radar1c-fc-terr-mtd span,
#view-radar1c .radar1c-fc-terr-vip {
  display: block;
  margin-top: 4px;
  font-size: 0.88rem;
  color: var(--text-muted);
  line-height: 1.35;
}
#view-radar1c .radar1c-fc-terr-goals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 12px 0;
}
#view-radar1c .radar1c-fc-terr-goal {
  border: 1px solid var(--line);
  padding: 10px 12px;
  background: #FBF7F0;
}
#view-radar1c .radar1c-fc-terr-goal-lab {
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-bottom: 4px;
}
#view-radar1c .radar1c-fc-terr-goal b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.1rem;
}
#view-radar1c .radar1c-fc-terr-goal span,
#view-radar1c .radar1c-fc-terr-goal em {
  display: block;
  margin-top: 4px;
  font-size: 0.84rem;
  color: var(--text-muted);
  font-style: normal;
  line-height: 1.3;
}
#view-radar1c .radar1c-fc-terr-action {
  margin: 0 0 12px;
  font-size: 0.95rem;
  line-height: 1.4;
}
#view-radar1c .radar1c-fc-terr-actions {
  list-style: none;
  margin: 0 0 14px;
  padding: 0;
  border: 2px solid var(--ink);
  counter-reset: terr-act;
}
#view-radar1c .radar1c-fc-terr-actions li {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 8px 10px;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  font-size: 0.9rem;
  line-height: 1.35;
  counter-increment: terr-act;
}
#view-radar1c .radar1c-fc-terr-actions li:last-child { border-bottom: 0; }
#view-radar1c .radar1c-fc-terr-actions li::before {
  content: counter(terr-act);
  font-family: var(--font-label);
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--ink);
  width: 22px;
  height: 22px;
  border: 1px solid var(--ink);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 2px;
}
#view-radar1c .radar1c-fc-terr-actions li b {
  grid-column: 2;
  font-family: var(--font-label);
  font-size: 0.88rem;
}
#view-radar1c .radar1c-fc-terr-actions li span {
  grid-column: 2;
  color: var(--text-muted);
}
#view-radar1c .radar1c-fc-terr-actions li.is-risk {
  background: #FFF1EE;
  border-left: 4px solid #8b2e2e;
}
#view-radar1c .radar1c-fc-terr-actions li.is-warn {
  background: #FFF8EC;
  border-left: 4px solid var(--accent);
}
#view-radar1c .radar1c-fc-terr-actions li.is-ok {
  background: #F3F8F4;
  border-left: 4px solid #2f6b3a;
}
#view-radar1c .radar1c-fc-terr-cols {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 12px;
}
@media (max-width: 700px) {
  #view-radar1c .radar1c-fc-terr-goals,
  #view-radar1c .radar1c-fc-terr-cols { grid-template-columns: 1fr; }
}
#view-radar1c .radar1c-fc-terr-call {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid var(--line);
}
#view-radar1c .radar1c-fc-terr-call li {
  display: grid;
  grid-template-columns: minmax(90px, 0.4fr) 1fr;
  gap: 8px;
  padding: 8px 10px;
  border-bottom: 1px solid var(--line);
  font-size: 0.88rem;
}
#view-radar1c .radar1c-fc-terr-call li:last-child { border-bottom: 0; }
#view-radar1c .radar1c-fc-terr-call li.is-risk {
  background: #FFF1EE;
}
#view-radar1c .radar1c-fc-terr-call li.is-warn {
  background: #FFF8EC;
}
#view-radar1c .radar1c-fc-terr-call b {
  font-family: var(--font-label);
  font-size: 0.82rem;
}
#view-radar1c .radar1c-fc-terr-call span {
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-window {
  margin: 0 0 12px;
  font-family: var(--font-label);
  font-size: 0.82rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-unmapped {
  display: grid;
  gap: 4px;
  margin: 0 0 14px;
}
#view-radar1c .radar1c-ma-unmapped b,
#view-radar1c .radar1c-ma-pace b {
  font-family: var(--font-label);
  font-size: 0.82rem;
}
#view-radar1c .radar1c-ma-pace {
  display: grid;
  gap: 4px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border-left: 4px solid var(--accent);
  background: #FBF7F0;
  line-height: 1.35;
}
#view-radar1c .radar1c-ma-pace span,
#view-radar1c .radar1c-ma-pace em {
  font-size: 0.86rem;
  font-style: normal;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-factual {
  display: grid;
  gap: 5px;
  margin: -4px 0 12px;
  font-size: 0.84rem;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-coverages {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 12px;
}
#view-radar1c .radar1c-ma-coverage {
  border: 1px solid var(--line);
  padding: 10px 12px;
  min-width: 0;
}
#view-radar1c .radar1c-ma-coverage h4,
#view-radar1c .radar1c-ma-queue-body > h4,
#view-radar1c .radar1c-ma-signal h4 {
  margin: 0 0 8px;
  font-family: var(--font-label);
  font-size: 0.76rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
#view-radar1c .radar1c-ma-coverage-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
#view-radar1c .radar1c-ma-coverage-grid > div {
  display: grid;
  gap: 3px;
  padding: 8px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  min-width: 0;
}
#view-radar1c .radar1c-ma-coverage-grid span {
  font-family: var(--font-label);
  font-size: 0.68rem;
  line-height: 1.25;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-coverage-grid b {
  font-family: var(--font-display);
  font-size: 0.96rem;
}
#view-radar1c .radar1c-ma-coverage .note {
  margin: 8px 0 0;
  font-size: 0.78rem;
}
#view-radar1c .radar1c-ma-priorities,
#view-radar1c .radar1c-ma-queue-body {
  display: grid;
  gap: 10px;
}
#view-radar1c .radar1c-ma-priority {
  border: 1px solid var(--ink);
  padding: 9px 10px;
  background: var(--bg-card);
  min-width: 0;
}
#view-radar1c .radar1c-ma-priority.is-old {
  border-left: 4px solid #8b2e2e;
  background: #FFF8F6;
}
#view-radar1c .radar1c-ma-priority-head {
  display: grid;
  grid-template-columns: minmax(92px, auto) minmax(0, 1fr) auto;
  gap: 8px;
  align-items: baseline;
}
#view-radar1c .radar1c-ma-priority-head b {
  font-family: var(--font-label);
  font-size: 0.78rem;
  overflow-wrap: anywhere;
}
#view-radar1c .radar1c-ma-priority-head span,
#view-radar1c .radar1c-ma-priority p {
  font-size: 0.78rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
#view-radar1c .radar1c-ma-priority-head strong {
  font-family: var(--font-display);
  font-size: 0.9rem;
  white-space: nowrap;
}
#view-radar1c .radar1c-ma-priority p {
  margin: 4px 0 0;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-priority p:last-child { color: var(--ink); }
#view-radar1c .radar1c-ma-order {
  border: 1px solid var(--ink);
  padding: 10px 12px;
  background: var(--bg-card);
  min-width: 0;
}
#view-radar1c .radar1c-ma-order.is-old {
  border-left: 4px solid #8b2e2e;
  background: #FFF8F6;
}
#view-radar1c .radar1c-ma-order-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
#view-radar1c .radar1c-ma-order-head > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}
#view-radar1c .radar1c-ma-order-head b {
  font-family: var(--font-label);
  font-size: 0.88rem;
  overflow-wrap: anywhere;
}
#view-radar1c .radar1c-ma-order-head span,
#view-radar1c .radar1c-ma-order p {
  font-size: 0.84rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
#view-radar1c .radar1c-ma-order-head strong {
  flex: 0 0 auto;
  font-family: var(--font-display);
  font-size: 1rem;
  white-space: nowrap;
}
#view-radar1c .radar1c-ma-order-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 10px;
  margin: 8px 0;
  padding: 6px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
#view-radar1c .radar1c-ma-order-flags span {
  font-family: var(--font-label);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-order-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 12px;
  margin: 0 0 8px;
}
#view-radar1c .radar1c-ma-order-meta > div { min-width: 0; }
#view-radar1c .radar1c-ma-order-meta dt {
  font-family: var(--font-label);
  font-size: 0.66rem;
  text-transform: uppercase;
  color: var(--text-muted);
}
#view-radar1c .radar1c-ma-order-meta dd {
  margin: 1px 0 0;
  font-size: 0.82rem;
  overflow-wrap: anywhere;
}
#view-radar1c .radar1c-ma-order p { margin: 5px 0 0; }
#view-radar1c .radar1c-ma-queue {
  margin-top: 12px;
  border: 2px solid var(--ink);
  background: #fff;
}
#view-radar1c .radar1c-ma-queue > summary {
  list-style: none;
  cursor: pointer;
  padding: 11px 12px;
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
}
#view-radar1c .radar1c-ma-queue > summary::-webkit-details-marker { display: none; }
#view-radar1c .radar1c-ma-queue > summary::after {
  content: "открыть";
  float: right;
  color: var(--accent);
  text-transform: none;
}
#view-radar1c .radar1c-ma-queue[open] > summary {
  border-bottom: 2px solid var(--ink);
}
#view-radar1c .radar1c-ma-queue[open] > summary::after { content: "свернуть"; }
#view-radar1c .radar1c-ma-queue-body { padding: 12px; }
#view-radar1c .radar1c-ma-queue-body > h4:not(:first-child) { margin-top: 8px; }
#view-radar1c .radar1c-ma-signals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
}
#view-radar1c .radar1c-ma-signal {
  border: 1px solid var(--line);
  padding: 10px;
  min-width: 0;
}
#view-radar1c .radar1c-ma-signal ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#view-radar1c .radar1c-ma-signal li {
  display: grid;
  gap: 3px;
  padding: 7px 0;
  border-bottom: 1px solid var(--line);
  font-size: 0.8rem;
}
#view-radar1c .radar1c-ma-signal li:last-child { border-bottom: 0; }
#view-radar1c .radar1c-ma-signal span,
#view-radar1c .radar1c-ma-signal em {
  color: var(--text-muted);
  font-style: normal;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
@media (max-width: 1100px) {
  #view-radar1c .radar1c-ma-signals { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  #view-radar1c .radar1c-ma-coverages,
  #view-radar1c .radar1c-ma-coverage-grid,
  #view-radar1c .radar1c-ma-order-meta { grid-template-columns: 1fr; }
  #view-radar1c .radar1c-ma-priority-head { grid-template-columns: 1fr; gap: 2px; }
  #view-radar1c .radar1c-ma-priority-head strong { white-space: normal; }
  #view-radar1c .radar1c-ma-order-head { display: grid; }
  #view-radar1c .radar1c-ma-order-head strong { white-space: normal; }
  #view-radar1c .radar1c-ma-queue > summary::after { float: none; display: block; margin-top: 4px; }
}
#view-radar1c .radar1c-fc-help {
  margin: 0;
  border: 2px solid var(--ink);
  background: #FBF7F0;
  padding: 0;
}
#view-radar1c .radar1c-fc-help > summary {
  list-style: none;
  cursor: pointer;
  padding: 14px 18px;
  font-family: var(--font-label);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
  border-bottom: 0;
}
#view-radar1c .radar1c-fc-help > summary::-webkit-details-marker { display: none; }
#view-radar1c .radar1c-fc-help > summary::after {
  content: "открыть";
  float: right;
  font-weight: 600;
  color: var(--accent);
  text-transform: none;
  letter-spacing: 0;
}
#view-radar1c .radar1c-fc-help[open] > summary {
  border-bottom: 2px solid var(--ink);
}
#view-radar1c .radar1c-fc-help[open] > summary::after {
  content: "свернуть";
}
#view-radar1c .radar1c-fc-help-body {
  padding: 16px 18px 20px;
}
#view-radar1c .radar1c-fc-help-lead {
  margin: 0 0 14px;
  font-size: 1.02rem;
  line-height: 1.45;
}
#view-radar1c .radar1c-fc-help-body h3 {
  margin: 18px 0 8px;
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
#view-radar1c .radar1c-fc-help-body h3:first-of-type { margin-top: 0; }
#view-radar1c .radar1c-fc-help-list {
  margin: 0 0 8px;
  padding-left: 1.2em;
  font-size: 0.98rem;
  line-height: 1.45;
}
#view-radar1c .radar1c-fc-help-list li { margin: 0 0 6px; }
#view-radar1c .radar1c-fc-help-formula {
  margin: 0 0 12px;
  padding: 14px 16px;
  border: 2px solid var(--ink);
  background: var(--bg-card);
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size: 0.88rem;
  line-height: 1.55;
  white-space: pre;
  overflow-x: auto;
}
@media (max-width: 1100px) {
  #view-radar1c .radar1c-fc-outlook-grid,
  #view-radar1c .radar1c-fc-weeks,
  #view-radar1c .radar1c-fc-chips { grid-template-columns: 1fr 1fr; }
  #view-radar1c .radar1c-fc-call li { grid-template-columns: 1fr; gap: 4px; }
}
@media (max-width: 700px) {
  #view-radar1c .radar1c-fc-outlook-grid,
  #view-radar1c .radar1c-fc-weeks,
  #view-radar1c .radar1c-fc-chips { grid-template-columns: 1fr; }
}
#view-radar1c .radar1c-subh {
  margin: 16px 0 8px;
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink);
}
#view-radar1c .radar1c-qchips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 10px 0 4px;
}
#view-radar1c .radar1c-qchip {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 6px 10px;
  border: 1px solid rgba(26, 26, 26, 0.14);
  background: #FAFAFA;
  min-width: 110px;
}
#view-radar1c .radar1c-qchip em {
  font-family: var(--font-label);
  font-size: 0.62rem;
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
}
#view-radar1c .radar1c-qchip b {
  font-family: var(--font-display);
  font-size: 0.95rem;
  white-space: nowrap;
}
#view-radar1c .radar1c-terr-list,
#view-radar1c .radar1c-delta-list {
  margin: 0;
  padding-left: 1.1rem;
  font-family: var(--font-body);
  font-size: 0.92rem;
  line-height: 1.45;
}
#view-radar1c .radar1c-sw-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 8px;
}
#view-radar1c .radar-summary.radar-summary-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
@media (max-width: 900px) {
  #view-radar1c .radar1c-sw-grid { grid-template-columns: 1fr; }
  #view-radar1c .radar-summary.radar-summary-3 { grid-template-columns: 1fr; }
}
#view-radar1c .radar1c-mgr-months-total {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(26, 26, 26, 0.12);
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--text-muted);
}
#view-radar1c .radar1c-mgr-months-total b {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
}
#view-radar1c .radar-pie-meta,
#view-radar1c .radar1c-pie-meta {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 0.92rem;
  color: var(--ink);
}
@media (max-width: 1200px) {
  #view-radar1c .radar-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  #view-radar1c .radar-summary { grid-template-columns: 1fr; }
  .radar1c-bar-row { grid-template-columns: 48px 1fr; }
  .radar1c-bar-row .bar-value { grid-column: 1 / -1; text-align: left; }
}

.radar1c-pie-wrap {
  display: grid;
  grid-template-columns: minmax(160px, 220px) 1fr;
  gap: 20px;
  align-items: center;
  margin: 0 0 18px;
}
.radar1c-pie {
  width: min(220px, 100%);
  aspect-ratio: 1;
  border-radius: 50%;
  border: 2px solid var(--ink);
}
.radar1c-pie-legend {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.radar1c-pie-legend li {
  display: grid;
  grid-template-columns: 12px 1fr auto;
  gap: 10px;
  align-items: baseline;
  font-size: 0.86rem;
}
.radar1c-swatch {
  width: 12px;
  height: 12px;
  border: 1px solid var(--ink);
  margin-top: 3px;
}
.radar1c-pie-name { color: var(--text-primary); }
.radar1c-pie-meta {
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.radar1c-map-card {
  border: 1px solid var(--line);
  background: #FAFAFA;
  padding: 12px;
  margin-bottom: 14px;
}
.radar1c-map-svg { width: 100%; height: auto; display: block; }
.radar1c-map-svg .map-label {
  font-family: var(--font-label);
  font-size: 11px;
  fill: var(--text-muted);
}

@media (max-width: 900px) {
  .radar1c-pie-wrap { grid-template-columns: 1fr; justify-items: center; }
  .radar1c-pie-legend { width: 100%; }
}

.radar1c-synced {
  margin: 8px 0 0;
  font-size: 13px;
  line-height: 1.35;
  letter-spacing: 0.01em;
}

.radar-lead-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}
.radar-lead-card {
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 14px 14px 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 132px;
}
.radar-lead-card.ok { border-color: var(--ok); }
.radar-lead-card.mid { border-color: var(--accent); }
.radar-lead-card.bad { border-color: var(--risk); }
.radar-lead-card .rlc-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}
.radar-lead-card .rlc-label {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text-muted);
  line-height: 1.35;
}
.radar-lead-card .rlc-fact {
  font-family: var(--font-display);
  font-size: clamp(1.55rem, 2.8vw, 1.9rem);
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.radar-lead-card.ok .rlc-fact { color: var(--ok); }
.radar-lead-card.mid .rlc-fact { color: var(--accent); }
.radar-lead-card.bad .rlc-fact { color: var(--risk); }
.radar-lead-card .rlc-meta {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
}
.radar-lead-card .rlc-pct {
  font-weight: 700;
  color: var(--text-primary);
  font-variant-numeric: tabular-nums;
}
.radar-lead-card .radar-bar-wrap { margin-top: auto; }

.radar-mini-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0 0;
  padding: 0;
  border: none;
}
.radar-mini-kpi {
  text-align: left;
  padding: 10px 12px;
  background: var(--bg-card);
  border: 1px solid var(--ink);
}
.radar-mini-kpi.ok { border-color: var(--ok); }
.radar-mini-kpi.mid { border-color: var(--accent); }
.radar-mini-kpi.bad { border-color: var(--risk); }
.radar-mini-kpi b {
  font-size: 1.25rem;
  margin-bottom: 4px;
}
.radar-mini-kpi.ok b { color: var(--ok); }
.radar-mini-kpi.mid b { color: var(--accent); }
.radar-mini-kpi.bad b { color: var(--risk); }
.radar-mini-kpi span {
  display: block;
  text-transform: none;
  letter-spacing: 0.01em;
  line-height: 1.3;
  color: var(--text-primary);
  font-size: 0.72rem;
  font-weight: 600;
}
.radar-mini-kpi em {
  display: block;
  margin-top: 4px;
  font-style: normal;
  font-family: var(--font-label);
  font-size: 0.68rem;
  color: var(--text-muted);
}

@media (max-width: 1200px) {
  .radar-lead-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .radar-mini-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .radar-lead-grid,
  .radar-mini-kpis { grid-template-columns: 1fr; }
}

/* —— furniture feed (радар + подробная) —— */
.furn-radar-panel { margin: 0 0 16px; }
.furn-summary { grid-template-columns: repeat(4, 1fr); }
.furn-pay-kpis { margin-top: 12px; grid-template-columns: repeat(3, 1fr); }
.furn-month-kpis { margin-top: 12px; grid-template-columns: repeat(3, 1fr); }
.furn-detail-kpis { margin: 12px 0 16px; }
.furn-tone-high { border-color: var(--score-high) !important; }
.furn-tone-high .rk-value { color: var(--score-high); }
.furn-tone-mid { border-color: var(--score-mid) !important; }
.furn-tone-mid .rk-value { color: var(--score-mid); }
.furn-tone-low { border-color: var(--score-low) !important; }
.furn-tone-low .rk-value { color: var(--score-low); }
.furn-kpi-jump.on,
.furn-month-kpis .radar-kpi.on {
  outline: 2px solid var(--ink);
  outline-offset: -2px;
  background: rgba(161, 98, 7, 0.06);
}
.furn-kpi-drop {
  margin-top: 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
}
.furn-kpi-drop summary {
  cursor: pointer;
  list-style: none;
  color: var(--accent);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.furn-kpi-drop summary::-webkit-details-marker { display: none; }
.furn-kpi-drop ul {
  margin: 8px 0 0;
  padding: 8px 10px;
  list-style: none;
  border: 1px solid rgba(26,26,26,0.14);
  background: var(--bg-page);
}
.furn-kpi-drop li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 3px 0;
  border-bottom: 1px solid rgba(26,26,26,0.08);
}
.furn-kpi-drop li:last-child { border-bottom: 0; }
.furn-kpi-drop b { color: var(--text-primary); font-family: var(--font-display); font-weight: 600; }

.furn-portfolio-split {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  align-items: flex-end;
}
.furn-portfolio-split span {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.furn-portfolio-split b {
  font-family: var(--font-display);
  font-size: 1.45rem;
  line-height: 1.1;
  font-weight: 700;
}
.furn-portfolio-split small {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
}

.furn-funnel {
  display: flex;
  min-height: 96px;
  border: 2px solid var(--ink);
  overflow: hidden;
  margin-top: 12px;
}
.furn-funnel-seg {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 12px 14px;
  color: #fff;
  min-width: 0;
  border-right: 2px solid var(--ink);
}
.furn-funnel-seg:last-child { border-right: 0; }
.furn-funnel-seg.high { background: var(--score-high); }
.furn-funnel-seg.mid { background: var(--score-mid); color: #1A1A1A; }
.furn-funnel-seg.low { background: var(--score-low); }
.furn-funnel-seg .ffs-n {
  font-family: var(--font-display);
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.1;
}
.furn-funnel-seg .ffs-lab {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  margin-top: 4px;
}
.furn-funnel-seg .ffs-meta {
  font-family: var(--font-label);
  font-size: 0.7rem;
  margin-top: 4px;
  opacity: 0.92;
}
.furn-funnel-legs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-top: 10px;
  font-family: var(--font-label);
  font-size: 0.75rem;
  font-weight: 600;
}
.furn-funnel-leg { display: inline-flex; align-items: center; gap: 6px; }
.furn-funnel-leg i {
  width: 10px;
  height: 10px;
  border: 1px solid var(--ink);
  display: inline-block;
}
.furn-funnel-leg.high { color: var(--score-high); }
.furn-funnel-leg.high i { background: var(--score-high); }
.furn-funnel-leg.mid { color: var(--score-mid); }
.furn-funnel-leg.mid i { background: var(--score-mid); }
.furn-funnel-leg.low { color: var(--score-low); }
.furn-funnel-leg.low i { background: var(--score-low); }

.furn-month-table {
  margin-top: 12px;
  width: 100%;
  font-size: 1rem;
  border: 2px solid var(--ink);
  background: var(--bg-card);
}
.furn-month-table thead th {
  position: static;
  background: var(--bg-page) !important;
  color: var(--ink) !important;
  border-bottom: 2px solid var(--ink);
  box-shadow: none;
  font-family: var(--font-label);
  font-size: 0.8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 12px 14px;
}
.furn-month-table td {
  padding: 14px;
  font-size: 1rem;
  vertical-align: middle;
  border-bottom: 1px solid rgba(26,26,26,0.12);
  color: var(--ink);
}
.furn-month-table tbody tr:last-child td { border-bottom: 0; }
.furn-month-table .num {
  font-family: var(--font-display);
  font-size: 1.12rem;
  font-weight: 600;
  color: var(--ink);
}
.furn-month-name {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--ink);
}

/* подробная: те же светлые заголовки */
.furn-table thead th {
  position: static;
  background: var(--bg-page) !important;
  color: var(--ink) !important;
  border-bottom: 2px solid var(--ink);
  box-shadow: none;
}

.furn-portfolio-card .furn-reset-month {
  margin-top: 10px;
  width: 100%;
  justify-content: center;
}
.furn-portfolio-card .furn-reset-month:disabled {
  opacity: 0.55;
  cursor: default;
}
.furn-portfolio-card.on {
  outline: 2px solid var(--ink);
  outline-offset: -2px;
  background: rgba(161, 98, 7, 0.06);
}

.furn-clients { display: flex; flex-direction: column; gap: 12px; }
.furn-client { padding: 0; overflow: hidden; }
.furn-client-head {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr);
  gap: 16px 24px;
  align-items: start;
  text-align: left;
  background: transparent;
  border: 0;
  padding: 16px 18px;
  cursor: pointer;
  font: inherit;
  color: inherit;
}
.furn-client-title { min-width: 0; }
.furn-client-head h3 { margin: 0 0 4px; font-family: var(--font-display); font-size: 1.15rem; }
.furn-head-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.furn-client-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px 12px;
  min-width: 0;
}
.furn-client-kpis .kpi-label {
  display: block;
  font-family: var(--font-label);
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
}
.furn-client-kpis b {
  font-family: var(--font-display);
  font-size: 0.95rem;
  word-break: break-word;
}
.furn-client-body { padding: 0 18px 16px; border-top: 1px solid rgba(26,26,26,0.12); }
.furn-client .table-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
}
.furn-table { width: 100%; border-collapse: collapse; font-size: 0.86rem; min-width: 640px; }
.furn-table th, .furn-table td { padding: 8px 6px; border-bottom: 1px solid rgba(26,26,26,0.1); vertical-align: top; }
.furn-table th {
  font-family: var(--font-label);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
  text-align: left;
  white-space: nowrap;
}
.furn-table .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.furn-item-dates { font-size: 0.75rem; color: var(--text-muted); margin-top: 2px; }
.furn-table .pos, .furn-client-kpis .pos { color: var(--ok); }
.furn-table .neg, .furn-client-kpis .neg { color: var(--risk); }
.furn-status {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  max-width: 200px;
  white-space: normal;
  line-height: 1.25;
  text-align: left;
}
.furn-status-main { font-size: 0.68rem; }
.furn-status-sub {
  font-size: 0.58rem;
  font-weight: 600;
  opacity: 0.85;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.furn-status-cell { min-width: 120px; vertical-align: middle; }
.furn-row.ok td:first-child { box-shadow: inset 3px 0 0 var(--ok); }
.furn-row.mid td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
.furn-row.bad td:first-child { box-shadow: inset 3px 0 0 var(--risk); }

@media (max-width: 1200px) {
  .furn-summary, .furn-pay-kpis { grid-template-columns: repeat(2, 1fr); }
  .furn-month-kpis { grid-template-columns: 1fr; }
  .furn-client-head { grid-template-columns: 1fr; }
  .furn-client-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .furn-funnel { flex-direction: column; min-height: 0; }
  .furn-funnel-seg { border-right: 0; border-bottom: 2px solid var(--ink); }
  .furn-funnel-seg:last-child { border-bottom: 0; }
  .furn-client-kpis { grid-template-columns: 1fr 1fr; }
}

/* —— period bar (compact toolbar) —— */
.period-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
  width: 100%;
  padding: 0;
  border-top: none;
}

.period-bar label {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  white-space: nowrap;
}

.period-bar input[type=date],
.period-bar select,
select,
input[type=search],
input[type=text] {
  font-family: var(--font-label);
  padding: 4px 8px;
  border-radius: 0;
  border: 1px solid var(--ink);
  background: var(--bg-card);
  color: var(--text-primary);
  font-size: 0.78rem;
  max-width: 100%;
}

.period-bar .btn { padding: 5px 10px; font-size: 0.72rem; }

.muted { color: var(--text-muted); font-size: 0.82rem; font-family: var(--font-label); }
code { font-family: var(--font-label); font-size: 0.82em; color: var(--accent); background: var(--code-bg); padding: 1px 6px; border-radius: 0; border: 1px solid var(--line); }

/* —— auth —— */
.pult-auth-gate {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  background: var(--bg-page);
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  padding: 16px;
}

.pult-auth-gate.on { display: flex; }
html.auth-locked .app-shell { display: none; }
html.auth-locked body { overflow: hidden; }

.pult-auth-card {
  width: min(400px, 100%);
  padding: 28px;
  border: var(--card-border);
  border-radius: 0;
  background: var(--bg-card);
  box-shadow: none;
}

.pult-auth-card h2 {
  font-family: var(--font-display);
  color: var(--text-primary);
  font-size: 1.35rem;
  margin: 0 0 8px;
}

.pult-auth-card label {
  display: block;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin: 12px 0 4px;
}

.pult-auth-card input {
  width: 100%;
  padding: 10px 12px;
  border-radius: 0;
  border: 1px solid var(--ink);
  background: var(--bg-card);
  color: var(--text-primary);
  font-family: var(--font-label);
}

.pult-auth-card .err { color: var(--risk); font-size: 0.78rem; margin-top: 8px; min-height: 1.1em; }

.pult-auth-user {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  padding: 4px 10px;
  border: 1px solid var(--ink);
  border-radius: 0;
  background: #FAFAFA;
}

.pult-auth-logout {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 6px 12px;
  border-radius: 0;
  border: var(--card-border);
  background: var(--bg-card);
  color: var(--text-primary);
  cursor: pointer;
}

.pult-auth-logout:hover { background: var(--gold-dim); }

.pult-auth-logout:disabled {
  opacity: 0.65;
  cursor: default;
  background: var(--bg-card);
}

.changelog-intro {
  margin: 0 0 16px;
}

.changelog-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.changelog-release {
  padding: 16px 18px;
}

.changelog-release-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
  margin-bottom: 8px;
}

.changelog-ver {
  font-family: var(--font-label);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
}

.changelog-title {
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 600;
  margin: 2px 0 0;
  color: var(--text-primary);
  line-height: 1.25;
}

.changelog-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
}

.changelog-badge.on-battle {
  border-color: var(--ink);
  background: #E8F0E4;
}

.changelog-badge.local {
  border-color: var(--ink);
  background: #F5EFE3;
}

.changelog-summary {
  font-family: var(--font-body);
  font-size: 0.95rem;
  margin: 0 0 14px;
  color: var(--text-primary);
  max-width: 62rem;
}

.changelog-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 20px;
}

.changelog-grid h3 {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0 0 6px;
  color: var(--text-muted);
}

.changelog-list {
  margin: 0;
  padding-left: 1.15rem;
  font-family: var(--font-body);
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--text-primary);
}

.changelog-list li + li {
  margin-top: 4px;
}

.changelog-did-not .changelog-list {
  color: var(--text-primary);
}

.changelog-empty {
  margin: 0;
  font-size: 0.85rem;
}

@media (max-width: 900px) {
  .changelog-grid {
    grid-template-columns: 1fr;
  }
}

.pult-saved-views { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.pult-saved-views select, .pult-saved-views input {
  font-family: var(--font-label);
  padding: 6px 10px;
  border-radius: 0;
  border: 1px solid var(--ink);
  background: var(--bg-card);
}

/* —— misc components —— */
.view { display: none; }
.view.on {
  display: block;
  animation: viewIn 0.22s ease;
  min-width: 0;
  max-width: 100%;
}

#dir-workspace-body {
  min-width: 0;
  max-width: 100%;
}

@keyframes viewIn { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }

.deal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 12px;
  border-bottom: 1px solid var(--table-line);
  border-left: 3px solid transparent;
}

.deal-row.has-risk { border-left-color: var(--risk); background: rgba(155, 44, 44, 0.04); }
.deal-row.has-warn { border-left-color: var(--accent); background: rgba(161, 98, 7, 0.04); }
.deal-row .title { color: var(--text-primary); font-size: 0.9rem; font-weight: 600; }
.deal-row .btn.primary,
.prio-row .btn.primary {
  flex-shrink: 0;
  white-space: nowrap;
  min-width: 7.5rem;
  text-align: center;
}

.active-row, .row-on {
  background: var(--focus) !important;
  border-radius: 0 !important;
  padding: 12px !important;
  margin: 4px 0;
  border: 1px solid var(--accent) !important;
}

.att-lead {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  align-items: baseline;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: var(--card-border);
  background: #FAFAFA;
}
.att-lead .att-open {
  font-family: var(--font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.att-lead .att-open-lab {
  font-family: var(--font-label);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  margin-left: 6px;
}
.att-lead .att-focus {
  font-size: 0.92rem;
  color: var(--text-primary);
}
.att-lead .att-focus b { color: var(--risk); font-weight: 700; }

.att-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 10px; margin: 0 0 14px; }
.att-grid.hot { grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); margin-bottom: 10px; }

.att-card {
  padding: 14px 16px;
  border-radius: 0;
  border: var(--card-border);
  background: #FAFAFA;
  cursor: pointer;
  text-align: left;
  transition: background 0.15s, border-color 0.15s, transform 0.12s;
}
.att-card:hover { transform: translateX(2px); background: #fff; }
.att-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.att-card b { display: block; font-family: var(--font-display); font-size: 1.45rem; color: var(--ink); line-height: 1.1; font-weight: 700; }
.att-card span { font-family: var(--font-label); font-size: 0.7rem; color: var(--text-muted); text-transform: uppercase; letter-spacing: 0.04em; font-weight: 600; }
.att-card .att-share {
  display: block;
  margin-top: 6px;
  font-family: var(--font-label);
  font-size: 0.65rem;
  color: var(--text-muted);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}

.att-card.risk { border-color: var(--risk); border-width: 2px; background: rgba(155, 44, 44, 0.08); }
.att-card.risk b { color: var(--risk); }
.att-card.risk span { color: var(--risk); }
.att-card.warn { border-color: var(--accent); border-width: 2px; background: var(--gold-dim); }
.att-card.warn b { color: var(--accent); }
.att-card.warn span { color: #7A4E06; }
.att-card.is-zero { opacity: 0.42; border-style: dashed; cursor: default; }
.att-card.is-zero:hover { transform: none; }
.att-card.is-full b::after {
  content: " · все";
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  opacity: 0.75;
}

.prio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  padding: 14px 12px;
  border-bottom: 1px solid var(--table-line);
  border-left: 3px solid var(--line);
  background: var(--bg-card);
}
.prio-row.risk { border-left-color: var(--risk); background: rgba(155, 44, 44, 0.04); }
.prio-row.warn { border-left-color: var(--accent); background: rgba(161, 98, 7, 0.04); }
.prio-row .prio-main { flex: 1; min-width: 200px; }
.prio-row .prio-title {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-weight: 700;
  color: var(--text-primary);
  font-size: 0.95rem;
}
.prio-row .prio-meta {
  margin-top: 4px;
  font-size: 0.8rem;
  color: var(--text-muted);
  line-height: 1.4;
}
.prio-row .prio-tags { margin-top: 6px; }
.prio-row .prio-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  flex-shrink: 0;
}
.prio-row .prio-actions .btn { min-width: auto; }

.prio-money,
.chip-opp {
  display: inline-flex;
  align-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.2;
  color: var(--ink);
  border: 2px solid var(--ink);
  background: var(--gold-dim);
  padding: 3px 10px;
  white-space: nowrap;
}
.prio-money {
  flex-shrink: 0;
  font-size: 1.15rem;
  padding: 6px 12px;
}
.thread-opp-row {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  margin-top: 0;
}
.thread-opp-row .chip-opp { font-size: 0.95rem; padding: 2px 8px; }

.chat-dates {
  text-align: right;
  font-family: var(--font-label);
  font-size: 0.72rem;
  line-height: 1.35;
  color: var(--text-muted);
  min-width: 9.5rem;
}
.chat-dates-row {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  margin-bottom: 2px;
}
.chat-dates-lab {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.62rem;
  color: var(--text-muted);
}
.chat-dates b {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--ink);
  letter-spacing: 0.01em;
}
.chat-dates--inline {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 12px;
  text-align: left;
  min-width: 0;
}
.chat-dates--inline .chat-dates-inline-item {
  display: inline-flex;
  align-items: baseline;
  gap: 5px;
  white-space: nowrap;
}
.chat-dates--inline b {
  font-size: 0.84rem;
}
/* Одна полоса: слева сделка, справа даты/сумма/кнопки — без высокой колонки и дыры */
.thread-head-top {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 6px 12px;
}
.thread-head-main {
  min-width: 0;
  flex: 1 1 220px;
}
.thread-head-main .title {
  font-size: 0.95rem;
  line-height: 1.2;
  margin: 0;
}
.thread-head-main .thread-sub,
.thread-head-main .thread-meta {
  margin: 1px 0 0;
  font-size: 0.78rem;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.thread-head-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 6px 10px;
  flex: 1 1 280px;
}
.thread-head-meta .btn {
  padding: 3px 9px;
  font-size: 0.72rem;
  min-height: 0;
}
.thread-head-meta .layout-switch {
  margin-top: 0;
}
.thread-head-meta .layout-switch .tab {
  padding: 1px 6px;
  min-height: 0;
  font-size: 0.7rem;
}
.thread-head .thread-topics {
  margin-top: 4px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.thread-head .thread-why {
  margin-top: 8px;
  border: 1px solid var(--line);
  background: var(--bg-card);
  max-height: none;
  overflow: visible;
  padding: 0 !important;
}
.thread-head .thread-why--risk {
  border-color: rgba(166, 61, 50, 0.45);
}
.thread-head .thread-why > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: center;
  padding: 8px 10px;
  font-family: var(--font-label);
  font-size: 0.78rem;
}
.thread-head .thread-why > summary::-webkit-details-marker { display: none; }
.thread-head .thread-why-lab {
  flex: 0 0 auto;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.65rem;
  color: var(--text-muted);
}
.thread-head .thread-why--risk .thread-why-lab { color: var(--risk); }
.thread-head .thread-why-teaser {
  flex: 1 1 140px;
  min-width: 0;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.thread-head .thread-why-more {
  flex: 0 0 auto;
  font-family: var(--font-label);
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--accent);
  border: 1px solid var(--accent);
  background: var(--gold-dim);
  padding: 3px 9px;
  cursor: pointer;
}
.thread-head .thread-why > summary:hover .thread-why-more {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}
.thread-head .thread-why[open] > summary {
  border-bottom: 1px solid var(--line);
}
.thread-head .thread-why[open] .thread-why-more {
  color: var(--ink);
  border-color: var(--ink);
  background: #FAFAFA;
  font-size: 0;
}
.thread-head .thread-why[open] .thread-why-more::before {
  content: "Свернуть";
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.thread-head .thread-why-body {
  padding: 10px 12px 12px;
}
.thread-head .thread-why-body ul {
  margin: 0;
  padding-left: 18px;
  font-family: var(--font-body);
  font-size: 0.88rem;
  line-height: 1.5;
}
.thread-head .thread-why-body li { margin: 0 0 8px; }
.thread-head .thread-why-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.thread-head-right,
.deal-row-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.deal-row-mgr {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--text-primary);
  text-align: right;
  max-width: 11rem;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.deal-row-right .btn.primary { align-self: flex-end; }

.att-more {
  margin: 0 0 14px;
  border: 1px solid var(--line);
  padding: 8px 12px;
  background: #FAFAFA;
}
.att-more > summary {
  list-style: none;
  font-family: var(--font-label);
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--text-primary);
  cursor: pointer;
  padding: 4px 0;
}
.att-more > summary::-webkit-details-marker { display: none; }
.att-more > summary::before {
  content: "▸ ";
  color: var(--accent);
}
.att-more[open] > summary::before { content: "▾ "; }

.prio-tags-more {
  display: inline;
  margin-left: 4px;
}
.prio-tags-more > summary {
  list-style: none;
  display: inline;
  cursor: pointer;
  font-family: var(--font-label);
  font-size: 0.68rem;
  color: var(--text-muted);
  border-bottom: 1px dotted var(--line);
}
.prio-tags-more > summary::-webkit-details-marker { display: none; }
.prio-tags-more .tag { margin-top: 4px; }

.admin-note {
  margin: 10px 0 0;
  border: 1px dashed var(--line);
  padding: 6px 10px;
  background: transparent;
}
.admin-note > summary {
  list-style: none;
  cursor: pointer;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.admin-note > summary::-webkit-details-marker { display: none; }
.admin-note code {
  font-size: 0.75rem;
  word-break: break-all;
}

.nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35em;
  height: 1.25em;
  padding: 0 5px;
  margin-left: 6px;
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  border: 1px solid var(--risk);
  background: var(--risk);
  color: #fff;
  vertical-align: middle;
}

.panel.sev-ok { border-color: var(--ok); }
.panel.sev-warn { border-color: var(--accent); }
.panel.sev-risk { border-color: var(--risk); }

.qa-legend {
  font-family: var(--font-label);
  font-size: 0.68rem;
  color: var(--text-muted);
  padding: 4px 0;
  white-space: nowrap;
}
.qa-legend b { font-weight: 700; }
.qa-legend .leg.low { color: var(--score-low); }
.qa-legend .leg.mid { color: var(--score-mid); }
.qa-legend .leg.high { color: var(--score-high); }
.qa-legend .leg b { color: inherit; }

.d26-fold {
  margin-top: 14px;
}
.d26-fold > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  padding: 4px 0 10px;
  user-select: none;
}
.d26-fold > summary::-webkit-details-marker { display: none; }
.d26-fold > summary::before {
  content: "▸ ";
  color: var(--accent);
  font-family: var(--font-label);
}
.d26-fold[open] > summary::before { content: "▾ "; }
.d26-fold .d26-head { margin: 0; }

/* свёртка системных панелей (темы / замечания) — по умолчанию закрыты */
.panel-folds {
  align-items: start;
}
.panel-fold {
  border: var(--card-border);
  background: var(--bg-card);
  padding: 0;
  margin: 0;
}
.panel-fold > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 14px;
  padding: 12px 16px;
  user-select: none;
}
.panel-fold > summary::-webkit-details-marker { display: none; }
.panel-fold > summary::after {
  content: "▸";
  font-family: var(--font-label);
  font-size: 0.75rem;
  color: var(--text-muted);
  margin-left: auto;
}
.panel-fold[open] > summary::after { content: "▾"; }
.panel-fold[open] > summary {
  border-bottom: 1px solid var(--line);
}
.panel-fold-title {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
}
.panel-fold-teaser {
  font-family: var(--font-label);
  font-size: 0.75rem;
  color: var(--text-muted);
  letter-spacing: 0.02em;
}
.panel-fold-body {
  padding: 12px 16px 16px;
}

.att-sticky {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 12px;
  padding: 10px 14px;
  border: 2px solid var(--accent);
  background: var(--gold-dim);
  font-family: var(--font-label);
  font-size: 0.85rem;
}
.att-sticky b { color: var(--accent); }

.client-card {
  padding: 14px 16px;
  border: var(--card-border);
  border-radius: 0;
  background: #FAFAFA;
  margin-bottom: 8px;
}

.client-card .cname { font-weight: 700; color: var(--text-primary); font-size: 0.95rem; font-family: var(--font-display); }

.pass-card {
  border: var(--card-border);
  border-radius: 0;
  background: var(--bg-card);
  padding: 20px 22px;
  box-shadow: none;
}

.pass-list {
  max-height: min(70vh, 720px);
  overflow: auto;
  border: var(--card-border);
  border-radius: 0;
  background: var(--bg-card);
}

.pass-layout {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) minmax(340px, 1.05fr);
  gap: 16px;
  align-items: start;
}

.pass-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
  margin: 8px 0;
}

.pass-kpis {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 14px 0;
}

.pass-kpis .kpi { padding: 12px 10px; }

.pass-kpis-hero {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  margin: 0 0 18px;
}

.pass-sec {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--line);
}

.pass-sec h4 {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  margin: 0 0 10px;
}

.eng-track {
  height: 6px;
  background: #E5E5E5;
  border: 1px solid var(--line);
  margin-top: 8px;
  max-width: 320px;
}

.eng-fill {
  height: 100%;
  background: var(--accent);
}

.mgr-picker-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 14px;
  align-items: center;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: var(--card-border);
  background: #FAFAFA;
}

.mgr-picker-bar label {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-primary);
}

.mgr-picker-bar select {
  flex: 1;
  min-width: min(100%, 280px);
  max-width: 420px;
}

.mgr-roster-panel {
  padding: 14px 16px 16px;
}

.mgr-roster-panel .section-lab {
  margin-bottom: 10px;
}

.mgr-roster-panel .table-wrap {
  max-height: none;
  overflow: auto;
}

/* Полноэкранный паспорт менеджера */
.pass-full {
  border: var(--card-border);
  background: var(--bg-card);
  padding: 20px 22px 24px;
}

.pass-full-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--table-line);
  margin-bottom: 14px;
}

.pass-full-head-main {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-width: 0;
  flex: 1;
}

.pass-full-name {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 700;
  line-height: 1.2;
  border: 0;
  padding: 0;
}

.pass-full-name::before { display: none; }

.pass-full-hint {
  margin: 0 0 14px;
  max-width: 52rem;
}

.pass-full-picker {
  margin: 0;
  flex: 0 1 340px;
  min-width: min(100%, 240px);
}

.pass-full-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.pass-sec-block {
  margin: 0;
  padding: 16px 16px 14px;
}

.pass-sec-title {
  margin: 0 0 12px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--accent);
  border: 0;
  padding: 0;
}

.pass-sec-title::before { display: none; }

.chats-topbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  margin-bottom: 12px;
  align-items: center;
}
.chats-topbar-mgr {
  margin-left: auto;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  max-width: 100%;
  min-width: 0;
}
.chat-toolbar-scope {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: flex-start;
  justify-content: space-between;
}
.chat-toolbar-scope #chat-filters {
  flex: 1 1 auto;
  min-width: 0;
}
.chat-toolbar-scope .chats-toolbar-mgr {
  margin-left: 0;
  flex: 0 1 auto;
  justify-content: flex-end;
}
.chats-topbar-mgr .chats-mgr-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 0.75rem;
  flex-shrink: 0;
}
.chats-topbar-mgr .chats-mgr-toggle-mark {
  font-family: var(--font-label);
  font-weight: 700;
  min-width: 0.9em;
}
.chats-topbar-mgr .chats-mgr-toggle-lab {
  font-family: var(--font-label);
  font-weight: 600;
  max-width: 220px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.chats-topbar-mgr .chats-mgr-panel {
  display: flex;
  flex-wrap: nowrap;
  gap: 8px;
  align-items: center;
  min-width: 0;
}
.chats-topbar-mgr .chats-mgr-panel[hidden] {
  display: none !important;
}
.chats-topbar-mgr label {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--text-muted);
  white-space: nowrap;
  flex-shrink: 0;
}
.chats-topbar-mgr select {
  min-width: 0;
  width: min(100%, 280px);
  max-width: min(100%, 360px);
}
.chats-topbar-mgr .period-chip {
  flex-shrink: 0;
  white-space: nowrap;
}

.d26-split {
  display: grid;
  grid-template-columns: 1fr 1.15fr;
  gap: 16px;
  align-items: start;
}

.chat-toolbar {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: var(--card-border);
  background: var(--bg-card);
}

.chat-toolbar .qa-index {
  margin: 0;
  padding: 10px 12px;
}

.chat-toolbar .tabs {
  flex-wrap: wrap;
  row-gap: 4px;
}

.chat-toolbar #retail-att-filters {
  flex-wrap: wrap;
  row-gap: 4px;
  margin: 0 !important;
  overflow: visible;
}

.chat-toolbar-search {
  display: none;
}

.pult-slice-status--compact {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  margin: 4px 0 0;
  padding: 0;
  border: none;
  background: transparent;
  font-family: var(--font-label);
  font-size: 0.7rem;
  color: var(--text-muted);
  line-height: 1.3;
}
.pult-slice-status--compact .period-chip {
  font-size: 0.68rem;
  padding: 1px 6px;
}

.chat-workspace-grid {
  display: grid;
  /* minmax(0): иначе при ~740px main жёсткие 320+480 режут список по вешке */
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.55fr);
  gap: 0;
  align-items: stretch;
  border: var(--card-border);
  background: var(--bg-card);
  /* почти весь экран + запас вниз (~+½ к прошлой высоте) */
  height: clamp(960px, calc(100vh - 36px), 1800px);
  max-height: calc(100vh - 24px);
  margin: 0 0 12px;
  overflow: hidden;
  min-width: 0;
}

.chat-panel-list,
.chat-panel-thread {
  display: flex;
  flex-direction: column;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  margin: 0;
  border: none !important;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  padding: 8px 12px 10px;
}

.chat-panel-list {
  border-right: 1px solid var(--line) !important;
}

.chat-panel-head {
  flex: 0 0 auto;
  margin-bottom: 6px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: flex-start;
  justify-content: space-between;
}
.chat-panel-head-main {
  flex: 1 1 160px;
  min-width: 0;
}
.chat-panel-head-search {
  flex: 0 1 220px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 2px;
  min-width: 140px;
  max-width: 260px;
  margin-left: auto;
}
.chat-panel-head-search input {
  width: 100%;
  padding: 5px 8px;
  border: 1px solid var(--ink);
  background: var(--bg-page);
  font-family: var(--font-label);
  font-size: 0.78rem;
  border-radius: 0;
}
.chat-panel-head-search #chats-q-hint {
  font-size: 0.65rem;
  text-align: right;
}

.chat-panel-head h2 {
  margin: 0 0 2px;
  font-size: 1rem;
}

.chat-panel-head h2::after {
  content: '';
  display: block;
  width: 32px;
  height: 2px;
  background: var(--accent);
  margin-top: 4px;
}

.chat-panel-head #dialog-list-meta {
  margin: 4px 0 0;
  font-size: 0.78rem;
}

.chat-panel-list h2,
.chat-panel-thread h2 {
  flex: 0 0 auto;
  margin-top: 0;
  margin-bottom: 6px;
  font-size: 1rem;
}

.chat-panel-list h2::after,
.chat-panel-thread h2::after {
  width: 32px;
  height: 2px;
  margin-top: 4px;
}

.chat-panel-thread > h2 {
  /* заголовок дублирует смысл карточки — убираем, чтобы не красть высоту у чата */
  display: none;
}

.chat-panel-list .list-scroll,
.chat-panel-list .vlist-host {
  flex: 1 1 auto;
  min-height: 0;
  max-height: none;
  height: auto !important;
  overflow: auto;
  overflow-anchor: none;
  border: none;
  background: transparent;
}

.chat-panel-thread #thread-pane {
  flex: 1 1 auto;
  min-height: 0;
  height: auto !important;
  overflow: hidden;
  border: none;
  padding: 0;
  background: transparent;
}

/* фаза B: кнопка «к списку» — только в master–detail */
.chat-md-toolbar {
  display: none;
  flex: 0 0 auto;
  margin: 0 0 8px;
}
.chat-md-back {
  font-family: var(--font-label);
  font-size: 0.78rem;
  font-weight: 600;
  padding: 6px 12px;
}

/* чаты: без отрицательного margin — на half-screen клип по вешке */
#view-chats.view.on {
  margin: 0;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

#view-chats .deal-row {
  padding-left: 10px;
  padding-right: 8px;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

#view-chats .deal-row > div:first-child {
  flex: 1 1 220px;
  min-width: 0;
}

/* Карточка сделки с несколькими OL-сессиями */
.deal-sess-badge {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  border: 1px solid var(--ink);
  background: var(--gold-dim);
  color: var(--ink);
  padding: 2px 8px;
  white-space: nowrap;
}
.deal-sess-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.deal-sess-chip {
  font-family: var(--font-label);
  font-size: 0.72rem;
  line-height: 1.2;
  border: 1px solid var(--line);
  background: #FAFAFA;
  color: var(--text);
  padding: 4px 8px;
  cursor: pointer;
  text-align: left;
}
.deal-sess-chip:hover {
  border-color: var(--ink);
}
.deal-sess-chip.on {
  border-color: var(--accent);
  background: var(--gold-dim);
  color: var(--ink);
}
.deal-sess-chip .deal-sess-chip-meta {
  display: block;
  color: var(--text-muted);
  margin-top: 1px;
}

.d26-funnel-wrap { border: var(--card-border); border-radius: 0; overflow: hidden; background: var(--bg-card); }
.d26-seg-row { border-radius: 0; border: 1px solid var(--line); background: #FAFAFA; }

.vlist-skel {
  background: linear-gradient(90deg, #FAFAFA, #EFEFEF, #FAFAFA);
  background-size: 200% 100%;
  animation: vlist-shimmer 1.2s ease infinite;
  border-radius: 0;
  margin-bottom: 6px;
}

@keyframes vlist-shimmer { 0% { background-position: 100% 0; } 100% { background-position: -100% 0; } }

.pult-query-state--error { color: var(--risk); }
.pult-query-state--loading { color: var(--text-muted); }

.thread-empty { padding: 24px; color: var(--text-muted); text-align: center; font-family: var(--font-label); }

/* thread pane — больше высоты в новом layout */
.split#chat-workspace {
  align-items: stretch;
  height: min(calc(100vh - 48px), 1400px);
  min-height: 720px;
}
.split#chat-workspace > .chat-col { display: flex; flex-direction: column; min-height: 0; height: 100%; }
#thread-pane { display: flex; flex-direction: column; flex: 1; min-height: 0; height: 100%; overflow: hidden; border: var(--card-border); padding: 14px; background: var(--bg-card); }
.chat-panel-thread #thread-pane {
  border: none;
  padding: 0;
  background: transparent;
}
#thread-pane .thread-head { flex: 0 0 auto; padding-bottom: 6px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
#thread-pane .layout-switch { margin-top: 0; display: flex; flex-wrap: wrap; gap: 4px; align-items: center; }
#thread-pane .layout-switch-hint { display: none; }
#thread-pane[data-layout="a"] .thread-body { flex-direction: row; gap: 14px; display: flex; flex: 1; min-height: 0; overflow: hidden; }
#thread-pane[data-layout="a"] .chat { flex: 1 1 55%; border-right: 1px solid var(--line); padding-right: 12px; overflow: auto; min-height: 0; }
#thread-pane[data-layout="a"] .qa-side,
#thread-pane[data-layout="a"] .qa-box { flex: 1 1 45%; overflow: auto; padding-left: 4px; min-height: 0; }
#thread-pane[data-layout="b"] .pane-tabs { border: var(--card-border); border-radius: 0; background: #FAFAFA; display: flex; margin-bottom: 8px; flex: 0 0 auto; }
#thread-pane[data-layout="b"] .pane-tabs .tab { flex: 1; border-radius: 0; border-bottom: 2px solid transparent; }
#thread-pane[data-layout="b"] .pane-tabs .tab.on { background: var(--gold-dim); border-bottom-color: var(--accent); box-shadow: none; }
#thread-pane[data-layout="b"] .thread-body {
  flex: 1;
  min-height: 0;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
#thread-pane[data-layout="b"] .pane-panel {
  display: none;
  flex: 1;
  min-height: 0;
  overflow: auto;
}
#thread-pane[data-layout="b"] .pane-panel.on { display: block; }
/* ширина 100% + flex: ряды msg-row растягиваются, op уезжает вправо */
#thread-pane[data-layout="b"] .pane-panel.on.chat {
  display: flex !important;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
  padding: 10px 12px 14px;
  background: #F3F1ED;
}
/* —— фаза A+B: half-screen / узкий main —— */
/* A: 1 колонка + stack deal-row; B: list XOR thread (data-chat-md) */
@container pult-main (max-width: 980px) {
  .chat-workspace-grid {
    grid-template-columns: 1fr;
    height: auto;
    max-height: none;
    min-height: 0;
    overflow: visible;
  }
  .chat-panel-list,
  .chat-panel-thread {
    height: auto;
    overflow: visible;
    min-width: 0;
  }
  .chat-panel-list {
    border-right: none !important;
    border-bottom: 1px solid var(--line) !important;
  }
  .chat-panel-list .list-scroll,
  .chat-panel-list .vlist-host {
    max-height: min(70vh, 640px);
    min-height: 280px;
  }
  .chat-panel-thread #thread-pane {
    min-height: 480px;
    max-height: min(80vh, 820px);
    overflow: auto;
  }
  .chat-panel-head-search {
    flex: 1 1 100%;
    max-width: none;
    margin-left: 0;
  }
  .split { grid-template-columns: 1fr; }
  .split#chat-workspace { height: auto; min-height: 0; }
  #view-chats .deal-row-right,
  .chat-panel-list .deal-row-right {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 1;
    gap: 8px 12px;
  }
  #view-chats .deal-row-mgr,
  .chat-panel-list .deal-row-mgr {
    white-space: normal;
    max-width: none;
    text-align: left;
    overflow: visible;
    text-overflow: unset;
  }
  #view-chats .deal-row-right .btn.primary,
  .chat-panel-list .deal-row-right .btn.primary {
    align-self: center;
    min-width: 0;
  }
  /* master–detail: вешка = смена экрана, не две колонки */
  .chat-workspace-grid[data-chat-md="list"] .chat-panel-thread {
    display: none !important;
  }
  .chat-workspace-grid[data-chat-md="list"] .chat-panel-list {
    border-bottom: none !important;
  }
  .chat-workspace-grid[data-chat-md="thread"] .chat-panel-list {
    display: none !important;
  }
  .chat-workspace-grid[data-chat-md="thread"] .chat-md-toolbar {
    display: block;
  }
  .chat-workspace-grid[data-chat-md="thread"] {
    min-height: min(85vh, 900px);
  }
}

@media (max-width: 1200px) {
  .chat-workspace-grid {
    grid-template-columns: 1fr;
    height: auto;
    max-height: none;
    min-height: 0;
    overflow: visible;
  }
  .chat-panel-list,
  .chat-panel-thread {
    height: auto;
    overflow: visible;
    min-width: 0;
  }
  .chat-panel-list {
    border-right: none !important;
    border-bottom: 1px solid var(--line) !important;
  }
  .chat-panel-list .list-scroll,
  .chat-panel-list .vlist-host {
    max-height: min(70vh, 640px);
    min-height: 280px;
  }
  .chat-panel-thread #thread-pane {
    min-height: 480px;
    max-height: min(80vh, 820px);
    overflow: auto;
  }
  .chat-panel-head-search {
    flex: 1 1 100%;
    max-width: none;
    margin-left: 0;
  }
  .split { grid-template-columns: 1fr; }
  .split#chat-workspace { height: auto; min-height: 0; }
  #view-chats .deal-row-right,
  .chat-panel-list .deal-row-right {
    width: 100%;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 1;
    gap: 8px 12px;
  }
  #view-chats .deal-row-mgr,
  .chat-panel-list .deal-row-mgr {
    white-space: normal;
    max-width: none;
    text-align: left;
    overflow: visible;
    text-overflow: unset;
  }
  #view-chats .deal-row-right .btn.primary,
  .chat-panel-list .deal-row-right .btn.primary {
    align-self: center;
    min-width: 0;
  }
  .chat-workspace-grid[data-chat-md="list"] .chat-panel-thread {
    display: none !important;
  }
  .chat-workspace-grid[data-chat-md="list"] .chat-panel-list {
    border-bottom: none !important;
  }
  .chat-workspace-grid[data-chat-md="thread"] .chat-panel-list {
    display: none !important;
  }
  .chat-workspace-grid[data-chat-md="thread"] .chat-md-toolbar {
    display: block;
  }
  .chat-workspace-grid[data-chat-md="thread"] {
    min-height: min(85vh, 900px);
  }
}

@media (max-width: 1200px) {
  .radar-summary { grid-template-columns: 1fr 1fr; }
  .radar-grid { grid-template-columns: 1fr; }
}

@media (max-width: 900px) {
  body { overflow: auto; }
  .app-shell {
    grid-template-columns: 1fr;
    min-height: 100vh;
  }
  .sidebar {
    position: fixed;
    left: 0;
    top: 0;
    width: min(280px, 88vw);
    transform: translateX(-100%);
    transition: transform 0.2s ease;
    box-shadow: none;
  }
  html.sidebar-open .sidebar { transform: translateX(0); }
  html.sidebar-open::before {
    content: '';
    position: fixed;
    inset: 0;
    background: rgba(26, 26, 26, 0.35);
    z-index: 25;
  }
  .sidebar-toggle { display: block; }
  .main { height: auto; min-height: 100vh; }
  .main-body { overflow: visible; }
  .kpis, .layout { grid-template-columns: 1fr 1fr; }
  .grid { grid-template-columns: 1fr 1fr; }
  /* chat-workspace / deal-row — уже в @media 1200 + @container */
  #view-chats.view.on {
    margin: 0;
    width: 100%;
  }
  .pass-layout { grid-template-columns: 1fr; }
  .pass-kpis { grid-template-columns: 1fr 1fr; }
  .pass-kpis-hero { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pass-full-grid { grid-template-columns: 1fr; }
  .pass-full-head-main { flex-direction: column; }
  .d26-split { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .main-head { padding: 8px 12px 6px; }
  .main-body { padding: 12px 12px 28px; }
  .kpis, .grid, .layout, .radar-summary { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
  .card:hover { transform: none; }
}


/* ——— ФОТ B2B: сводная / подробная (эталон ФОТ/Август, язык pult-kp) ——— */
.fot-head-panel .filter-bar { align-items: center; gap: 10px 14px; flex-wrap: wrap; }
.fot-layout-tabs { margin-left: auto; }
.fot-kpis .kpi b { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.02em; }
.fot-data-note { margin-top: 12px; max-width: 62rem; }
.fot-integ { margin-top: 8px; border-left: 3px solid var(--accent); padding-left: 10px; }
.fot-shelf-tabs { margin: 0 0 10px; }
.fot-archive-list { margin-top: 10px; }
.fot-arch-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.fot-row-click { cursor: pointer; }
.fot-row-click:hover td { background: var(--gold-dim); }
.fot-summary-panel { margin-top: 14px; }
.fot-summary-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 16px; margin-bottom: 12px; }
.fot-summary-title h2 { margin: 0; font-size: 1.15rem; }
.fot-summary-wrap { overflow-x: auto; border: var(--card-border); }
.fot-summary-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.fot-summary-table th,
.fot-summary-table td { padding: 10px 12px; border-bottom: 1px solid var(--line); vertical-align: top; }
.fot-summary-table thead th {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--accent);
  background: var(--bg3);
  border-bottom: 2px solid var(--ink);
  white-space: nowrap;
}
.fot-summary-table .num,
.fot-detail-table .num,
.fot-payout-mini .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.fot-dop { max-width: 14rem; font-size: 0.82rem; color: var(--text-secondary); line-height: 1.35; }
.fot-hand { color: var(--ink); }
.fot-summary-table tfoot td,
.fot-foot td {
  font-weight: 700;
  border-top: 2px solid var(--ink);
  background: var(--surf2);
}
.fot-detail-wrap { margin-top: 14px; display: flex; flex-direction: column; gap: 14px; }
.fot-jump-nav {
  display: flex; flex-wrap: wrap; gap: 8px 12px;
  padding: 10px 0 2px;
  font-family: var(--font-label); font-size: 0.82rem;
}
.fot-jump {
  color: var(--accent); text-decoration: none; border-bottom: 1px solid transparent;
}
.fot-jump:hover { border-bottom-color: var(--accent); }
.fot-person { padding-top: 18px; }
.fot-person h2 { margin: 0 0 10px; font-size: 1.2rem; }
.fot-person-sec {
  margin: 16px 0 8px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--accent);
}
.fot-detail-table,
.fot-payout-mini { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.fot-detail-table th,
.fot-detail-table td,
.fot-payout-mini th,
.fot-payout-mini td { padding: 8px 10px; border-bottom: 1px solid var(--line); }
.fot-detail-table thead th,
.fot-payout-mini thead th {
  font-family: var(--font-label); font-size: 0.68rem; text-transform: uppercase;
  letter-spacing: 0.03em; color: var(--muted); background: var(--bg3);
}
.fot-em td { font-weight: 700; }
.fot-tri {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px; margin-top: 14px;
}
.fot-tri > div {
  border: var(--card-border); padding: 12px 14px; background: var(--surf2);
}
.fot-tri b {
  display: block; font-family: var(--font-display); font-size: 1.25rem; margin-bottom: 4px;
}
.fot-tri span {
  font-family: var(--font-label); font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.03em; color: var(--muted);
}
@media (max-width: 900px) {
  .fot-layout-tabs { margin-left: 0; width: 100%; }
  .fot-tri { grid-template-columns: 1fr; }
  .fot-dop { max-width: 10rem; }
}

/* —— Пульс розницы: карточки менеджеров —— */
.pulse-head {
  margin-bottom: 16px;
}
.pulse-head h2 {
  margin: 0 0 12px;
  font-family: var(--font-display);
  font-size: 1.35rem;
}
.pulse-summary-kpis {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}
.pulse-summary-hint {
  margin: 8px 0 0;
  font-size: 0.78rem;
}
.pulse-summary-kpi {
  border: var(--card-border);
  background: #FAFAFA;
  padding: 14px 10px 12px;
  text-align: center;
  min-width: 0;
}
.pulse-summary-kpi b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.55rem;
  font-weight: 700;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.pulse-summary-kpi span {
  display: block;
  margin-top: 6px;
  font-family: var(--font-label);
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pulse-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 16px;
}
.pulse-mgr-card {
  background: var(--bg-card);
  border: var(--card-border);
  border-radius: 0;
  padding: 16px 16px 14px;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font: inherit;
  transition: transform 0.2s ease, background 0.15s;
  box-shadow: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.pulse-mgr-card:hover {
  background: var(--gold-dim);
  transform: translateX(3px);
}
.pulse-mgr-card.on {
  background: var(--gold-dim);
  outline: 2px solid var(--accent);
  outline-offset: -2px;
}
.pulse-mgr-card-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--table-line);
}
.pulse-mgr-card-top h3 {
  margin: 0;
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.25;
  border: 0;
  padding: 0;
}
.pulse-mgr-card-top h3::before { display: none; }
.pulse-mgr-store {
  margin-top: 4px;
  font-size: 0.82rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.pulse-mgr-badges {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex-shrink: 0;
}
.pulse-badge {
  font-family: var(--font-label);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid var(--ink);
  padding: 3px 8px;
  background: var(--bg-card);
  white-space: nowrap;
}
.pulse-badge.score { background: var(--ink); color: #fff; border-color: var(--ink); }
.pulse-badge.load-ok { border-color: var(--ok); color: var(--ok); }
.pulse-badge.load-high { border-color: var(--score-mid); color: var(--score-mid); }
.pulse-badge.load-crit { border-color: var(--risk); color: var(--risk); }
.pulse-block-lab {
  font-family: var(--font-label);
  font-size: 0.65rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 6px;
}
.pulse-stat-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--ink);
  background: #FAFAFA;
}
.pulse-stat-row.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pulse-stat-row.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pulse-stat {
  padding: 8px 6px 7px;
  text-align: center;
  border-right: 1px solid var(--ink);
  min-width: 0;
  min-height: 3.6rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 2px;
}
.pulse-stat:last-child { border-right: none; }
.pulse-stat b {
  display: block;
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.pulse-stat span {
  display: block;
  font-family: var(--font-label);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--text-muted);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.pulse-stat.is-empty b { color: var(--text-muted); font-weight: 500; }
.pulse-load-bar {
  border: 1px solid var(--ink);
  padding: 10px 12px;
  background: var(--bg-card);
}
.pulse-load-bar.load-ok { border-color: var(--ok); background: rgba(47, 107, 63, 0.06); }
.pulse-load-bar.load-high { border-color: var(--score-mid); background: var(--score-mid-dim); }
.pulse-load-bar.load-crit { border-color: var(--risk); background: rgba(155, 44, 44, 0.06); }
.pulse-load-bar-main {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.pulse-load-bar-main b {
  font-family: var(--font-display);
  font-size: 1.45rem;
  font-weight: 700;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
}
.pulse-load-bar.load-ok .pulse-load-bar-main b { color: var(--ok); }
.pulse-load-bar.load-high .pulse-load-bar-main b { color: var(--score-mid); }
.pulse-load-bar.load-crit .pulse-load-bar-main b { color: var(--risk); }
.pulse-load-bar-main span {
  font-family: var(--font-label);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.pulse-load-bar-sub {
  margin-top: 4px;
  font-size: 0.7rem;
}
.pulse-mgr-foot {
  margin-top: auto;
  padding-top: 2px;
  font-family: var(--font-label);
  font-size: 0.72rem;
  color: var(--text-muted);
}
@media (max-width: 900px) {
  .pulse-grid { grid-template-columns: 1fr; }
  .pulse-summary-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pulse-stat-row.cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pulse-stat-row.cols-4 .pulse-stat:nth-child(2) { border-right: none; }
  .pulse-stat-row.cols-4 .pulse-stat:nth-child(n+3) { border-top: 1px solid var(--ink); }
}
@media (max-width: 560px) {
  .pulse-summary-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* --- Радар 1С · Просрочка (локаль) --- */
.radar1c-od .radar-kpi.clickable { cursor: pointer; }
.radar1c-od .radar-kpi.clickable:hover { background: #F5F5F5; }
.radar1c-od .radar-kpi.clickable.on {
  background: var(--gold-dim, #F5E6C8);
  outline: 2px solid var(--gold, #A16207);
}
.radar1c-od .radar-kpi[data-od-jump] { cursor: pointer; }
.radar1c-od .radar-kpi[data-od-jump]:hover { background: #F5F5F5; }
.radar1c-od .detail-wrap.hidden-orders { display: none; margin-top: 12px; }
.radar1c-od .detail-wrap.hidden-orders.on { display: block; }
.radar1c-od .detail-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  font-family: Inter, sans-serif;
  font-size: 13px;
  font-weight: 600;
}
.radar1c-od-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 10px 0;
  font-family: Inter, sans-serif;
  font-size: 12px;
}
.radar1c-od-filters .tag {
  border: 2px solid var(--ink, #111);
  padding: 2px 8px;
  background: #fff;
}
.radar1c-od-boards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.radar1c-od .board h4 {
  margin: 0 0 8px;
  font-family: Inter, sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.radar1c-od .cut-list { display: flex; flex-direction: column; gap: 6px; }
.radar1c-od .cut-card {
  text-align: left;
  border: 2px solid var(--ink, #111);
  background: #fff;
  padding: 8px 10px;
  cursor: pointer;
  font-family: Inter, sans-serif;
}
.radar1c-od .cut-card:hover { background: #F5F5F5; }
.radar1c-od .cut-card.on { background: var(--gold-dim, #F5E6C8); }
.radar1c-od .cut-card .t,
.radar1c-products .cut-card .t { font-weight: 600; font-size: 13px; white-space: normal; overflow-wrap: anywhere; }
.radar1c-products .radar1c-od-boards { min-width: 0; }
.radar1c-products .board,
.radar1c-products .prd-card,
.radar1c-products .cut-card { min-width: 0; max-width: 100%; box-sizing: border-box; }
.radar1c-products .cut-card { width: 100%; }
.radar1c-products .prd-card { position: relative; }
.radar1c-products .prd-eye {
  position: absolute;
  top: 4px;
  right: 4px;
  width: 22px;
  height: 22px;
  padding: 2px;
  border: 0;
  background: transparent;
  color: #1A1A1A;
  cursor: pointer;
}
.radar1c-products .prd-eye svg { display: block; width: 16px; height: 16px; }
.prd-float-back {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: rgba(26, 26, 26, 0.45);
}
.prd-float-card {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 41;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  width: min(520px, calc(100vw - 32px));
  height: min(88vh, 960px);
  padding: 36px 16px 12px;
  background: #fff;
  border: 2px solid #1A1A1A;
  overflow: hidden;
}
.prd-float-x {
  position: absolute;
  top: 4px;
  right: 6px;
  border: 0;
  background: transparent;
  font-size: 18px;
  line-height: 1;
  cursor: pointer;
}
.prd-float-card .prd-stage {
  position: relative;
  flex: 1 1 auto;
  min-height: 0;
  background: #F7F5F2;
  border: 2px solid #1A1A1A;
}
.prd-float-card .prd-shot {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.prd-float-card .muted { margin: 8px 0 0; text-align: center; }
.radar1c-od .cut-card .m {
  font-family: "Playfair Display", Georgia, serif;
  font-size: 18px;
  color: var(--gold, #A16207);
  margin-top: 2px;
}
.radar1c-od .cut-card .s { font-size: 11px; color: #666; margin-top: 2px; }
.radar1c-od .nomen-detail.panel { margin-top: 14px; }
.radar1c-od .nomen-detail.panel.empty {
  color: #666;
  font-family: Inter, sans-serif;
  font-size: 13px;
  padding: 12px;
  border: 2px dashed #ccc;
}
.radar1c-od .nomen-detail .pos-name { max-width: 420px; }
.radar1c-od .table-wrap { overflow-x: auto; }

/* Розница · Менеджеры */
.employee-summary { display: grid; gap: 16px; padding-bottom: 24px; }
.employee-preview .employee-call-info summary { cursor: pointer; font-family: var(--font-label); font-size: .75rem; font-weight: 600; }
.employee-preview .employee-call-info p { margin: 8px 0 0; }
/* Scoped preview corrections; the canonical dashboard stylesheet is unchanged. */
.employee-preview .pulse-mgr-card { display: grid; gap: 12px; min-width: 0; }
.employee-preview .pulse-stat-row { margin: 0; }
.employee-preview .employee-sipuni, .employee-preview .employee-finance { display: grid; gap: 10px; }
.employee-preview .employee-source-caption { margin: 0; font-size: .7rem; }
.employee-preview .employee-month-table { width: 100%; table-layout: fixed; font-size: .78rem; }
.employee-preview .employee-month-table th:first-child { width: 40%; }
.employee-preview .employee-month-table th:nth-child(2) { width: 18%; }
.employee-preview .employee-month-table th, .employee-preview .employee-month-table td { padding: 8px 5px; white-space: normal; overflow-wrap: anywhere; }
.employee-preview .pulse-mgr-card-top { min-height: 65px; }
.employee-preview .pulse-stat b { white-space: normal; overflow-wrap: anywhere; }
.employee-preview .pulse-stat span { white-space: normal; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.employee-preview .pulse-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.employee-preview .pass-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.employee-preview .table-wrap { max-height: 480px; overflow: auto; }
.employee-preview .kpis .kpi { min-width: 0; }
.employee-preview .kpi b { overflow-wrap: anywhere; }
.employee-preview .main-body { display: block; }
.employee-preview #employee-preview { display: grid; gap: 16px; padding-bottom: 24px; }
.employee-preview #employee-period { margin: 0; font-family: var(--font-label); font-size: .75rem; }
@media (max-width: 700px) {
  .employee-preview .pass-full-grid, .employee-preview .pass-kpis, .employee-preview .kpis { grid-template-columns: minmax(0, 1fr); }
  .employee-preview .pass-full { padding: 12px; min-width: 0; }
  .employee-preview .pass-full-head-main { flex-direction: column; }
}
/* Sipuni period report inside the existing employee card. */
.sipuni-period-report{min-width:0;margin-top:20px}
.sipuni-period-report .report-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:12px 0}
.sipuni-period-report .report-toolbar label{display:grid;gap:4px;font:500 .76rem var(--font-label);min-width:0}
.sipuni-period-report input[type=date]{font:.8rem var(--font-label);padding:8px;border:1px solid var(--ink);background:var(--bg-card);color:var(--ink);max-width:100%}
.sipuni-period-report .report-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.sipuni-period-report .kpis{margin:16px 0;grid-template-columns:repeat(4,minmax(0,1fr))}
.sipuni-period-report .kpi b{font-size:1.9rem;overflow-wrap:anywhere}
.sipuni-period-report .kpi span{font-size:.7rem}
.sipuni-period-report h3{margin:24px 0 10px}
.sipuni-period-report .note{margin:12px 0}
.sipuni-period-report .table-wrap{width:100%;overflow:auto}
.sipuni-period-report table{width:100%;font-size:.8rem}
.sipuni-period-report th,.sipuni-period-report td{padding:8px 10px;white-space:nowrap}
.sipuni-period-report .source-caption{margin-top:18px;font-size:.85rem}
.sipuni-period-report .hour-row{display:grid;grid-template-columns:100px minmax(0,1fr) 50px;gap:12px;align-items:center;font:.8rem var(--font-label);margin:12px 0}
.sipuni-period-report .hour-row .radar-bar-wrap{height:16px;margin:0}
@media(max-width:1200px){.sipuni-period-report .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.sipuni-period-report .report-toolbar label{flex:1 1 130px}.sipuni-period-report{padding:14px}.sipuni-period-report .hour-row{grid-template-columns:84px minmax(0,1fr) 38px;gap:6px}}
