/* ── OVERVIEW v2 ── */
.overview-header {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 12px; margin-bottom: 18px;
}
.overview-header-left { display: flex; flex-direction: column; gap: 3px; }
.overview-period-row {
  display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.overview-compare-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; color: var(--text3);
  padding: 3px 9px; border-radius: 20px;
  background: var(--bg3); border: 1px solid var(--border);
  white-space: nowrap;
}
.overview-compare-badge .cbdot {
  width: 5px; height: 5px; border-radius: 50%;
  background: var(--accent); flex-shrink: 0;
}
.overview-section-hdr {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 12px;
}
.overview-section-lbl {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 1px; white-space: nowrap;
}
.overview-section-line { flex: 1; height: 1px; background: var(--border); }

/* Новая сетка карточек */
.overview-facts-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px; margin-bottom: 4px;
}
/* Карточка */
.ov2-card {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 11px; padding: 15px 16px 13px;
  position: relative; overflow: hidden;
  transition: border-color 0.15s;
}
.ov2-card::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--ov2-accent, transparent);
  border-radius: 12px 12px 0 0;
}
.ov2-card:hover { border-color: var(--border2); }
.ov2-card.locked { border-style: dashed; opacity: 0.65; }

.ov2-label {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.6px;
  margin-bottom: 9px;
}
.ov2-main {
  display: flex; align-items: baseline; gap: 8px;
  flex-wrap: wrap; margin-bottom: 5px;
}
.ov2-value {
  font-size: 24px; font-weight: 800; color: var(--text);
  letter-spacing: -0.5px; line-height: 1.1;
  font-family: var(--font-display);
}
.ov2-value.muted {
  font-size: 16px; color: var(--text3);
  font-style: italic; font-weight: 400;
  font-family: var(--font-body);
}
.ov2-delta {
  display: inline-flex; align-items: center; gap: 2px;
  font-size: 11px; font-weight: 700;
  padding: 2px 7px; border-radius: 20px; white-space: nowrap;
}
.ov2-delta.pos { background: var(--green-bg); color: var(--green); }
.ov2-delta.neg { background: var(--red-bg); color: var(--red); }
.ov2-delta.neu { background: var(--bg3); color: var(--text3); }

.ov2-rows {
  border-top: 1px solid var(--border); padding-top: 7px; margin-top: 6px;
  display: flex; flex-direction: column; gap: 3px;
}
.ov2-row { display: flex; justify-content: space-between; font-size: 12px; }
.ov2-row-lbl { color: var(--text3); }
.ov2-row-val { color: var(--text2); font-weight: 600; }
.ov2-row-val.ok  { color: var(--green); }
.ov2-row-val.warn { color: var(--yellow); }
.ov2-row-val.err  { color: var(--red); }

.ov2-prev {
  display: flex; justify-content: space-between;
  font-size: 11px; color: var(--text3); margin-top: 5px;
}
.ov2-delta-hint {
  font-size: 11px; color: var(--text3); margin-top: 3px; line-height: 1.3;
}
.ov2-lock-note {
  font-size: 11px; color: var(--text3); margin-top: 7px;
  display: flex; align-items: center; gap: 4px; line-height: 1.4;
}

[data-theme="light"] .ov2-card { box-shadow: var(--shadow); }

@media (max-width: 980px) {
  .overview-facts-v2 { grid-template-columns: 1fr 1fr 1fr; }
}
@media (max-width: 620px) {
  .overview-facts-v2 { grid-template-columns: 1fr 1fr; }
  .ov2-value { font-size: 20px; }
}
@media (max-width: 400px) {
  .overview-facts-v2 { grid-template-columns: 1fr; }
}
/* ── END OVERVIEW v2 ── */

/* ── SIGNALS (второй слой) ── */

/* Заголовок секции */
/* ── Главное за период (period summary) ── */
.period-summary {
  margin-top: 20px;
  display: none; /* скрыт — дублирует блок «Главное за период» в подробностях */
}
.period-summary-hdr {
  display: flex; align-items: center; gap: 8px;
  margin-bottom: 12px;
}
.period-summary-lbl {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 1px; white-space: nowrap;
}
.period-summary-line { flex: 1; height: 1px; background: var(--border); }

.period-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}
@media (max-width: 1200px) {
  .period-summary-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .period-summary-grid { grid-template-columns: 1fr; }
}

.period-summary-card {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px 14px;
  transition: border-color 0.15s, box-shadow 0.15s;
  position: relative;
  overflow: hidden;
}
.period-summary-card[onclick]:hover {
  border-color: var(--accent);
  box-shadow: 0 2px 12px rgba(0,0,0,0.07);
}
/* Цветовая полоска слева по типу */
.period-summary-card--adv    { border-left: 3px solid var(--yellow); }
.period-summary-card--sales  { border-left: 3px solid var(--green);  }
.period-summary-card--stock  { border-left: 3px solid #6b8cba;       }
.period-summary-card--finance{ border-left: 3px solid var(--accent); }

.psm-head {
  display: flex; align-items: center; gap: 6px;
  margin-bottom: 6px;
}
.psm-icon  { font-size: 13px; line-height: 1; }
.psm-title {
  font-size: 11px; font-weight: 700;
  color: var(--text2); text-transform: uppercase;
  letter-spacing: 0.4px; flex: 1;
}
.psm-arrow { font-size: 14px; color: var(--text3); margin-left: auto; }

.psm-body {
  font-size: 12px; color: var(--text); line-height: 1.5;
}
.psm-loading { color: var(--text3); font-style: italic; }
.psm-muted   { color: var(--text3); }
.psm-warn    { color: var(--yellow); font-weight: 600; }
.psm-neg     { color: var(--red); }

/* ============================================================
   PRIORITY SIGNALS — Куда смотреть в первую очередь
   ============================================================ */

/* Секция вставляется динамически после signals-section */
#priority-signals-wrap { }

.prs-section-hdr {
  display: flex; align-items: center; gap: 8px;
  margin-top: 24px; margin-bottom: 12px;
}
.prs-section-lbl {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 1px; white-space: nowrap;
}
.prs-section-line { flex: 1; height: 1px; background: var(--border); }

/* Сетка — 3 виджета в ряд */
.prs-widgets-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 6px;
  align-items: start;
}
@media (max-width: 1100px) { .prs-widgets-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px)  { .prs-widgets-grid { grid-template-columns: 1fr; } }

/* Скелет */
.prs-widget-skeleton {
  height: 64px; border-radius: 10px;
  background: linear-gradient(90deg, var(--bg2) 25%, var(--bg3) 50%, var(--bg2) 75%);
  background-size: 200% 100%;
  animation: prs-shimmer 1.4s infinite;
  border: 1px solid var(--border);
}
@keyframes prs-shimmer { 0%{background-position:200% 0} 100%{background-position:-200% 0} }

/* Виджет-плашка */
.prs-widget {
  background: var(--bg2);
  border: 1px solid var(--border);
  border-left: 3px solid var(--prs-accent, var(--border2));
  border-radius: 10px;
  overflow: hidden;
  transition: border-color 0.15s;
}
[data-theme="light"] .prs-widget { box-shadow: var(--shadow); }
.prs-widget--sales   { --prs-accent: var(--green); }
.prs-widget--stock   { --prs-accent: #6b8cba; }
.prs-widget--finance { --prs-accent: var(--accent); }
.prs-widget--open {
  border-color: var(--prs-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--prs-accent) 14%, transparent);
}

/* Шапка */
.prs-widget-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 11px 14px; gap: 10px; cursor: pointer; user-select: none;
}
.prs-widget-head:hover { background: var(--bg3); }
.prs-widget--open .prs-widget-head { background: color-mix(in srgb, var(--prs-accent) 5%, var(--bg2)); }
.prs-widget-head-left { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.prs-widget-icon  { font-size: 14px; line-height: 1; flex-shrink: 0; }
.prs-widget-meta  { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.prs-widget-title {
  font-size: 11px; font-weight: 700; color: var(--text2);
  text-transform: uppercase; letter-spacing: 0.4px;
}
.prs-widget-summary {
  font-size: 12px; color: var(--text);
  display: flex; align-items: center; gap: 5px;
  overflow: hidden; white-space: nowrap;
}
.prs-widget-toptitle {
  color: var(--text2); font-size: 11px;
  overflow: hidden; text-overflow: ellipsis; flex: 1; min-width: 0;
}
.prs-widget-ok    { color: var(--green); font-size: 11px; }
.prs-widget-stub  { color: var(--text3); font-style: italic; font-size: 11px; }
.prs-widget-count {
  font-size: 10px; font-weight: 700; color: var(--text3);
  background: var(--bg3); border: 1px solid var(--border2);
  border-radius: 20px; padding: 1px 6px; flex-shrink: 0;
}
.prs-widget-btn {
  background: none; border: none; cursor: pointer;
  color: var(--text3); font-size: 13px; flex-shrink: 0;
  padding: 2px 4px; line-height: 1;
  transition: color 0.15s;
}
.prs-widget-btn:hover { color: var(--text2); }

/* Тело виджета */
.prs-widget-body { border-top: 1px solid var(--border); background: var(--bg3); }
.prs-widget-empty {
  padding: 14px 16px; font-size: 12px; color: var(--text3); text-align: center;
}
.prs-data-warn {
  display: flex; align-items: center; gap: 6px;
  background: var(--yellow-bg); padding: 8px 14px;
  font-size: 11px; color: var(--yellow);
  border-bottom: 1px solid var(--border);
}
.prs-error {
  background: var(--red-bg); border: 1px solid rgba(255,94,109,0.2);
  border-radius: 10px; padding: 12px 16px;
  font-size: 12px; color: var(--red); grid-column: 1 / -1;
}

/* Badge severity */
.prs-badge {
  font-size: 9px; font-weight: 700; letter-spacing: 0.3px;
  padding: 1px 6px; border-radius: 20px; white-space: nowrap;
  text-transform: uppercase; flex-shrink: 0; line-height: 1.6;
}
.prs-badge--critical { background: var(--red-bg);    color: var(--red);    border: 1px solid rgba(255,94,109,0.25); }
.prs-badge--high     { background: var(--yellow-bg); color: var(--yellow); border: 1px solid rgba(245,183,49,0.25); }
.prs-badge--medium   { background: var(--blue-bg);   color: var(--accent); border: 1px solid rgba(61,127,255,0.25); }
.prs-badge--low      { background: var(--bg3);       color: var(--text3);  border: 1px solid var(--border2); }

/* Строка кейса */
.prs-case-row     { background: var(--bg2); }
.prs-case-divider { height: 1px; background: var(--border); }
.prs-row-main     { display: flex; align-items: flex-start; padding: 10px 14px 10px 0; }
.prs-row-photo {
  width: 40px; height: 40px; flex-shrink: 0;
  object-fit: cover; border-radius: 6px;
  margin: 1px 10px 0 12px; background: var(--bg3);
}
.prs-row-photo--empty {
  width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 6px; background: var(--bg3);
  margin: 1px 10px 0 12px;
}
.prs-row-body   { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.prs-row-top    { display: flex; align-items: center; gap: 6px; }
.prs-row-title  {
  font-size: 12px; font-weight: 600; color: var(--text);
  flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.prs-row-meta   { display: flex; align-items: center; gap: 5px; flex-shrink: 0; }
.prs-row-money  { font-size: 11px; font-weight: 600; color: var(--text2); white-space: nowrap; }
.prs-row-conf   { font-size: 10px; color: var(--text3); white-space: nowrap; }
.prs-row-summary { font-size: 11px; color: var(--text2); line-height: 1.4; }
.prs-row-evlist  { display: flex; flex-direction: column; gap: 1px; }
.prs-row-ev {
  font-size: 10px; color: var(--text3); line-height: 1.4;
  padding-left: 9px; position: relative;
}
.prs-row-ev::before { content: '·'; position: absolute; left: 2px; }
.prs-row-actions { display: flex; align-items: center; gap: 6px; margin-top: 3px; }
.prs-row-btn-go {
  font-size: 11px; font-weight: 600; color: var(--accent);
  background: var(--blue-bg); border: 1px solid rgba(61,127,255,0.18);
  border-radius: 6px; padding: 3px 10px; cursor: pointer;
  font-family: var(--font-body); white-space: nowrap;
}
.prs-row-btn-go:hover { background: rgba(61,127,255,0.15); }
.prs-row-btn-details {
  font-size: 11px; color: var(--text3);
  background: none; border: 1px solid var(--border2);
  border-radius: 6px; padding: 3px 8px; cursor: pointer;
  font-family: var(--font-body); white-space: nowrap;
}
.prs-row-btn-details:hover { color: var(--text2); }

/* Раскрытые подробности строки */
.prs-row-expand {
  margin: 0 14px 10px 62px;
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 8px; padding: 10px 12px;
}
.prs-fsec-title {
  font-size: 9px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.8px; color: var(--text3);
  margin-bottom: 5px; margin-top: 6px;
}
.prs-fsec-title:first-child { margin-top: 0; }
.prs-factor-row {
  display: flex; align-items: flex-start; gap: 6px;
  padding: 3px 0; border-bottom: 1px solid var(--border);
}
.prs-factor-row:last-child { border-bottom: none; }
.prs-factor-label  { flex: 1; color: var(--text2); font-size: 11px; line-height: 1.4; }
.prs-factor-value  { color: var(--text3); font-size: 10px; flex-shrink: 0; max-width: 100px; text-align: right; }
.prs-factor-status { flex-shrink: 0; }
.prs-factor-limit  {
  font-size: 10px; color: var(--text3); line-height: 1.5;
  padding-left: 8px; position: relative; margin-bottom: 2px;
}
.prs-factor-limit::before { content: '—'; position: absolute; left: 0; }

/* Status chips */
.prs-status-chip {
  font-size: 9px; font-weight: 600;
  padding: 1px 5px; border-radius: 20px; white-space: nowrap; line-height: 1.6;
}
.prs-status--confirmed     { background: var(--green-bg); color: var(--green); }
.prs-status--not_confirmed { background: var(--bg3); color: var(--text3); border: 1px solid var(--border2); }
.prs-status--not_blocking  { background: var(--bg3); color: var(--text3); border: 1px solid var(--border2); }
.prs-status--stable        { background: var(--green-bg); color: var(--green); }
.prs-status--unknown       { background: var(--bg3); color: var(--text3); border: 1px solid var(--border2); }
.prs-status--attention     { background: var(--yellow-bg); color: var(--yellow); }
.prs-status--ok            { background: var(--green-bg); color: var(--green); }

@media (max-width: 640px) {
  .prs-row-photo, .prs-row-photo--empty { display: none; }
  .prs-row-main   { padding-left: 12px; }
  .prs-row-expand { margin-left: 12px; }
}

/* Direction status badge в шапке виджета */
.prs-dir-status {
  font-size: 9px; font-weight: 700; letter-spacing: 0.3px;
  padding: 2px 7px; border-radius: 20px; white-space: nowrap;
  text-transform: uppercase; flex-shrink: 0; line-height: 1.6;
}
.prs-dir-status--red    { background: var(--red-bg);    color: var(--red);    border: 1px solid rgba(255,94,109,0.25); }
.prs-dir-status--yellow { background: var(--yellow-bg); color: var(--yellow); border: 1px solid rgba(245,183,49,0.25); }
.prs-dir-status--green  { background: var(--green-bg);  color: var(--green);  border: 1px solid rgba(34,211,160,0.25); }

/* Окраска шапки по статусу — только фон, мягко */
.prs-widget-head--red {
  background: color-mix(in srgb, var(--red) 6%, var(--bg2)) !important;
}
.prs-widget-head--red:hover {
  background: color-mix(in srgb, var(--red) 10%, var(--bg2)) !important;
}
.prs-widget-head--yellow {
  background: color-mix(in srgb, var(--yellow) 6%, var(--bg2)) !important;
}
.prs-widget-head--yellow:hover {
  background: color-mix(in srgb, var(--yellow) 10%, var(--bg2)) !important;
}
.prs-widget-head--green {
  background: color-mix(in srgb, var(--green) 4%, var(--bg2)) !important;
}

/* Цвет левой полоски по статусу */
.prs-widget-status--red    { --prs-accent: var(--red) !important; }
.prs-widget-status--yellow { --prs-accent: var(--yellow) !important; }
.prs-widget-status--green  { --prs-accent: var(--green) !important; }

/* Краткое описание в шапке */
.prs-widget-desc {
  font-size: 11px; color: var(--text2);
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  flex: 1; min-width: 0;
}

/* Название объекта под заголовком кейса */
.prs-row-obj {
  font-size: 10px; color: var(--text3); line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Артикулы товара */
.prs-row-vcodes {
  font-size: 10px; color: var(--text3); line-height: 1.3; margin-top: 1px;
}

/* top_objects блок */
.prs-top-objects { }
.prs-top-object-row { background: var(--bg2); }

/* Заголовок секции case-карточек */
.prs-cases-header {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: 0.8px; color: var(--text3);
  padding: 10px 14px 6px;
  border-top: 1px solid var(--border);
}
.prs-cases-list { }

/* Signals list */
.prs-dir-signals { padding: 10px 14px; display: flex; flex-direction: column; gap: 4px; }
.prs-dir-signal-item {
  font-size: 11px; color: var(--text3); line-height: 1.4;
  padding-left: 10px; position: relative;
}
.prs-dir-signal-item::before { content: '·'; position: absolute; left: 2px; }

/* Кнопка перехода в раздел */
.prs-dir-action { padding: 8px 14px 12px; }

/* ============================================================ */

.signals-section-hdr {
  display: flex; align-items: center; gap: 8px;
  margin-top: 28px; margin-bottom: 14px;
}
.signals-section-lbl {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 1px; white-space: nowrap;
}
.signals-section-line { flex: 1; height: 1px; background: var(--border); }

/* Grid-раскладка виджетов «Главное за период» */
.signals-grid-wrap {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.signals-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-bottom: 0;
  /* Нижние скругления сбрасываются когда expanded-area открыта — через JS-класс */
}
/* Когда expanded открыт — нижние углы ряда прямые, примыкают к expanded-area */
.signals-grid-wrap.has-expanded .signals-row .signals-grid-item .sig-widget {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
  border-bottom-color: transparent;
}
/* Активная карточка при раскрытии — нижняя граница сливается с expanded-area */
.signals-grid-wrap.has-expanded .signals-grid-item .sig-widget.active {
  border-bottom-color: var(--sig-accent, var(--accent));
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}
.signals-grid-item {
  min-width: 0;
}
/* sig-widget внутри грида — убираем margin-bottom, он теперь от gap */
.signals-grid-item .sig-widget {
  margin-bottom: 0;
  height: 100%;
}
/* Expanded area — полная ширина, появляется под рядом */
.signals-expanded-area {
  margin-top: 0;
  border-radius: 0 0 12px 12px;
  border: 1px solid var(--exp-accent, var(--border));
  border-top: none;
  background: color-mix(in srgb, var(--exp-accent, var(--border)) 4%, var(--bg2));
  /* Цветная полоска слева — продолжение акцента активной карточки */
  border-left: 3px solid var(--exp-accent, var(--border));
  transition: border-color 0.15s, background 0.15s;
}
.signals-expanded-area:empty {
  display: none;
}
/* Тело виджета в expanded-area — без лишних рамок, наследует контейнер */
.signals-expanded-area > .sig-widget-body {
  display: block;
  background: transparent;
  border: none;
  border-radius: 0;
}
/* Медиа для grid */
@media (max-width: 1100px) {
  .signals-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
  .signals-row { grid-template-columns: 1fr; }
}

/* Виджет-карточка второго слоя */
.sig-widget {
  background: var(--bg2); border: 1px solid var(--border);
  border-radius: 11px;
  margin-bottom: 10px;
  transition: border-color 0.15s, box-shadow 0.15s;
  /* Цветовая полоска слева — задаётся через --sig-accent на каждом виджете */
  border-left: 3px solid var(--sig-accent, var(--border));
}
.sig-widget:hover { border-color: var(--sig-accent, var(--border2)); }
/* Активный (раскрытый) виджет — подсветка */
.sig-widget.active {
  border-left: 4px solid var(--sig-accent, var(--accent));
  border-top-color:    var(--sig-accent, var(--accent));
  border-right-color:  var(--sig-accent, var(--accent));
  border-bottom-color: var(--sig-accent, var(--accent));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--sig-accent, var(--accent)) 22%, transparent),
              0 4px 16px color-mix(in srgb, var(--sig-accent, var(--accent)) 14%, transparent);
  background: color-mix(in srgb, var(--sig-accent, var(--accent)) 5%, var(--bg2));
}
.sig-widget-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 18px; gap: 16px; cursor: pointer;
  user-select: none;
  border-radius: 11px; /* скругление для корректного hover-фона */
}
/* При раскрытии шапка теряет нижние скругления */
.sig-widget.active .sig-widget-head {
  border-radius: 10px 10px 0 0;
}
.sig-widget-head:hover { background: var(--bg3); border-radius: 10px; }
.sig-widget.active .sig-widget-head:hover { border-radius: 10px 10px 0 0; }
.sig-widget-head-left { display: flex; align-items: center; gap: 14px; flex: 1; min-width: 0; }
.sig-widget-icon {
  font-size: 18px; flex-shrink: 0;
  width: 36px; height: 36px; border-radius: 8px;
  background: var(--bg3); display: flex; align-items: center; justify-content: center;
}
.sig-widget-meta { min-width: 0; flex: 1; }
.sig-widget-title {
  font-size: 12px; font-weight: 700; color: var(--text);
  margin-bottom: 3px;
}
.sig-widget-summary {
  font-size: 12px; color: var(--text3);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 600px;
}
.sig-widget-summary b { color: var(--text2); font-weight: 600; }

/* Факты справа в шапке */
.sig-widget-facts {
  display: flex; align-items: center; gap: 16px; flex-shrink: 0;
}
.sig-fact {
  text-align: right;
}
.sig-fact-val {
  font-size: 15px; font-weight: 700; color: var(--text);
  font-family: var(--font-display); letter-spacing: -0.3px;
}
.sig-fact-lbl {
  font-size: 10px; color: var(--text3); text-transform: uppercase;
  letter-spacing: 0.5px; margin-top: 1px;
}

/* Кнопка открыть — только стрелка */
.sig-toggle-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  border: 1px solid var(--border2); background: transparent;
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; flex-shrink: 0;
  font-size: 14px; line-height: 1;
}
.sig-toggle-btn:hover { background: var(--bg3); border-color: var(--text3); color: var(--text); }
.sig-toggle-btn .arrow { transition: transform 0.2s; display: inline-block; }
.sig-toggle-btn.open .arrow { transform: rotate(180deg); }

/* Флаги-бейджи кампаний */
.sig-flag {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 10px; font-weight: 700; padding: 2px 7px;
  border-radius: 20px; white-space: nowrap; flex-shrink: 0;
}
.sig-flag.top-spend   { background: var(--blue-bg);   color: var(--accent); }
.sig-flag.spend-up    { background: var(--red-bg);     color: var(--red); }
.sig-flag.spend-down  { background: var(--green-bg);   color: var(--green); }
.sig-flag.drr-up      { background: var(--red-bg);     color: var(--red); }
.sig-flag.drr-down    { background: var(--green-bg);   color: var(--green); }
.sig-flag.no-orders   { background: var(--yellow-bg);  color: var(--yellow); }
.sig-flag.no-revenue  { background: var(--yellow-bg);  color: var(--yellow); }
.sig-flag.no-stats    { background: var(--bg3);        color: var(--text3); }

/* Тело виджета (таблица) */
.sig-widget-body {
  display: none; border-top: 1px solid var(--border);
}
.sig-widget-body.open { display: block; }

/* Таблица РК — скроллируемый контейнер */
.sig-table-scroll {
  overflow-x: auto;
  overflow-y: auto;
  /* ~6 строк по ~62px + thead ~37px */
  max-height: 415px;
  scrollbar-width: thin;
  scrollbar-color: var(--border2) transparent;
}
.sig-table-scroll::-webkit-scrollbar { width: 5px; height: 5px; }
.sig-table-scroll::-webkit-scrollbar-track { background: transparent; }
.sig-table-scroll::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }
.sig-table {
  width: 100%; border-collapse: collapse; font-size: 12px;
  min-width: 700px;
}
.sig-table thead th {
  position: sticky; top: 0; z-index: 2;
  background: var(--bg3);
}
.sig-table th {
  padding: 9px 14px; text-align: left;
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.5px;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.sig-table th.num { text-align: right; }
.sig-table th.ctr { text-align: center; }
.sig-table td {
  padding: 10px 14px; border-bottom: 1px solid var(--border);
  vertical-align: middle;
}
.sig-table tr:last-child td { border-bottom: none; }
.sig-table tr:hover td { background: var(--bg3); }
.sig-table td.num { text-align: right; color: var(--text2); font-weight: 600; }
.sig-table td.ctr { text-align: center; }
.sig-table td.num.ok  { color: var(--green); }
.sig-table td.num.warn { color: var(--yellow); }
.sig-table td.num.err  { color: var(--red); }

/* Название РК */
.sig-camp-name {
  display: flex; align-items: center; gap: 4px;
  font-weight: 600; color: var(--text); font-size: 12px;
  margin-bottom: 3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  max-width: 220px;
}
.sig-camp-flags { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }

.sig-camp-name-text {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sig-camp-edit-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  color: var(--text3);
  font-size: 11px;
  line-height: 1;
  cursor: pointer;
  opacity: 0.55;
  flex-shrink: 0;
}
.sig-camp-edit-btn:hover {
  opacity: 1;
  color: var(--accent);
  border-color: var(--border2);
  background: var(--bg3);
}
.sig-camp-alias-mark {
  display: inline-flex;
  width: fit-content;
  margin-top: 2px;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--blue-bg);
  color: var(--accent);
  font-size: 10px;
  font-weight: 600;
}
.sig-camp-editbox {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 210px;
  max-width: 260px;
}
.sig-camp-edit-input {
  width: 100%;
  padding: 6px 8px;
  border-radius: 8px;
  border: 1px solid var(--border2);
  background: var(--bg2);
  color: var(--text);
  font: 12px var(--font-body);
  outline: none;
}
.sig-camp-edit-input:focus {
  border-color: var(--accent);
}
.sig-camp-edit-actions {
  display: flex;
  gap: 6px;
}
.sig-camp-edit-save,
.sig-camp-edit-cancel {
  padding: 5px 8px;
  border-radius: 8px;
  border: 1px solid var(--border2);
  font: 11px var(--font-body);
  font-weight: 600;
  cursor: pointer;
}
.sig-camp-edit-save {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
.sig-camp-edit-cancel {
  background: var(--bg2);
  color: var(--text2);
}
.sig-camp-edit-hint {
  color: var(--text3);
  font-size: 10px;
  line-height: 1.25;
}
.sig-camp-edit-error {
  color: var(--red);
  font-size: 10px;
  font-weight: 600;
}

/* Статус кампании — цветной бейдж */
.sig-status {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11px; font-weight: 600;
  padding: 2px 8px; border-radius: 20px; white-space: nowrap;
}
.sig-status::before {
  content: ''; width: 5px; height: 5px; border-radius: 50%;
  background: currentColor; flex-shrink: 0;
}
.sig-status.active  { color: var(--green);  background: var(--green-bg); }
.sig-status.paused  { color: var(--yellow); background: var(--yellow-bg); }
.sig-status.stopped { color: var(--text3);  background: var(--bg3); }

/* Изменение расхода / ДРР в таблице */
.sig-chg {
  display: inline-flex; align-items: center; gap: 3px;
  font-size: 11px; font-weight: 700; padding: 1px 6px;
  border-radius: 11px; white-space: nowrap;
}
.sig-chg.up   { background: var(--red-bg);   color: var(--red); }
.sig-chg.down { background: var(--green-bg); color: var(--green); }
.sig-chg.neu  { background: var(--bg3);      color: var(--text3); }

/* Нет данных */
.sig-empty {
  padding: 24px; text-align: center;
  font-size: 12px; color: var(--text3);
}

[data-theme="light"] .sig-widget { box-shadow: var(--shadow); }

@media (max-width: 700px) {
  .sig-widget-facts { display: none; }
  .sig-camp-name { max-width: 140px; }
}
/* ── END SIGNALS ── */

/* ── SKU TOOLTIP ── */
.sku-tip-popup {
  position: fixed; z-index: 9999;
  background: var(--bg2); border: 1px solid var(--border2);
  border-radius: 10px; padding: 10px 0;
  box-shadow: 0 8px 32px rgba(0,0,0,0.28);
  pointer-events: none; opacity: 0;
  transition: opacity 0.12s; user-select: none;
  min-width: 220px; max-width: 280px;
  max-height: 320px; overflow-y: auto;
}
.sku-tip-popup.visible { opacity: 1; pointer-events: auto; }
.sku-tip-header {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.6px;
  padding: 0 12px 8px; border-bottom: 1px solid var(--border);
  margin-bottom: 4px;
}
.sku-tip-row {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 12px;
}
.sku-tip-row:hover { background: var(--bg3); }
.sku-tip-img {
  width: 36px; height: 36px; border-radius: 6px;
  object-fit: cover; flex-shrink: 0;
  border: 1px solid var(--border);
}
.sku-tip-img-empty {
  background: var(--bg3);
}
.sku-tip-info { min-width: 0; }
.sku-tip-art {
  font-size: 11px; font-weight: 700; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sku-tip-name {
  font-size: 11px; color: var(--text3); margin-top: 1px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}

/* Бейдж кол-ва SKU рядом с названием кампании */
.sig-sku-count {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 600; color: var(--accent);
  background: var(--blue-bg); border-radius: 10px;
  padding: 1px 6px; margin-left: 6px; cursor: pointer;
  white-space: nowrap;
}
.sig-camp-name {
  cursor: default;
}
.sig-camp-name[onmouseenter] {
  cursor: default;
}
/* Inline дельта под значением в ячейке таблицы */
.sig-cell-delta {
  margin-top: 3px;
}
.sig-cell-delta .sig-chg {
  font-size: 10px; padding: 1px 5px;
}
/* ── END SKU TOOLTIP ── */

/* ── ДРР тултип-иконка ── */
.sig-drr-tip-icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--bg3); border: 1px solid var(--border2);
  color: var(--text3); font-size: 9px; font-weight: 700;
  cursor: help; vertical-align: middle; margin-left: 3px;
  font-style: normal; line-height: 1;
}
.sig-drr-tip-icon:hover { border-color: var(--text3); color: var(--text2); }

/* ── ID кампании под названием ── */
.sig-camp-id {
  font-size: 10px; color: var(--text3); margin-top: 1px;
  font-weight: 400; letter-spacing: 0.2px;
}

/* ── Бейджи типов кампаний в таблице ── */
.sig-type-badge {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; padding: 2px 8px;
  border-radius: 20px; white-space: nowrap;
}
.sig-type-badge.type-search  { background: var(--blue-bg);        color: var(--accent); }
.sig-type-badge.type-shelf   { background: var(--green-bg);       color: var(--green); }
.sig-type-badge.type-catalog { background: rgba(168,85,247,0.1);  color: #a855f7; }
.sig-type-badge.type-card    { background: var(--yellow-bg);      color: var(--yellow); }
.sig-type-badge.type-auto    { background: var(--bg3);            color: var(--text2); }
.sig-type-badge.type-other   { background: var(--bg3);            color: var(--text2); }
.sig-type-badge.type-unknown { background: transparent;           color: var(--text3); font-weight: 400; }
[data-theme="light"] .sig-type-badge.type-catalog { background: rgba(168,85,247,0.08); }

/* ── Фильтры рекламного виджета ── */
.sig-adv-filters {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px 14px; border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.sig-adv-dropdowns {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.sig-adv-dd-wrap { position: relative; }
.sig-adv-dd {
  padding: 5px 28px 5px 10px; border-radius: 8px;
  background: var(--bg2); border: 1px solid var(--border2);
  color: var(--text2); font-size: 12px; font-family: var(--font-body);
  outline: none; cursor: pointer; appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237a82a0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 9px center;
  transition: border-color 0.15s;
}
.sig-adv-dd:hover  { border-color: var(--text3); }
.sig-adv-dd:focus  { border-color: var(--accent); color: var(--text); }
[data-theme="light"] .sig-adv-dd { background-color: var(--bg2); }

.sig-adv-search {
  padding: 5px 10px; border-radius: 8px;
  background: var(--bg2); border: 1px solid var(--border2);
  color: var(--text); font-size: 12px; font-family: var(--font-body);
  outline: none; width: 220px; min-width: 140px;
  transition: border-color 0.15s;
}
.sig-adv-search::placeholder { color: var(--text3); }
.sig-adv-search:focus { border-color: var(--accent); }

/* ── Сортировка числовых колонок ── */
.sig-th-sort { cursor: pointer; user-select: none; }
.sig-th-sort:hover .sig-sort-arrows { color: var(--text2); }
.sig-th-inner {
  display: inline-flex; align-items: center; gap: 4px; justify-content: flex-end;
  width: 100%;
}
.sig-sort-arrows {
  font-size: 10px; color: var(--text3); transition: color 0.15s;
}
.sig-sort-arrows.active { color: var(--accent); }

/* Кнопка сброса сортировки */
.sig-adv-reset {
  padding: 5px 10px; border-radius: 8px; font-size: 11px; font-weight: 600;
  border: 1px solid var(--border2); background: var(--bg2);
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; white-space: nowrap;
}
.sig-adv-reset:hover { border-color: var(--red); color: var(--red); background: var(--red-bg); }

@media (max-width: 700px) {
  .sig-widget-facts { display: none; }
  .sig-camp-name { max-width: 140px; }
  .sig-adv-filters { flex-wrap: wrap; gap: 8px; }
  .sig-adv-search { width: 100%; min-width: unset; }
  .sig-adv-dropdowns { width: 100%; flex-wrap: wrap; }
  .sig-adv-dd { width: 100%; }
  .sig-table-scroll { max-height: 340px; }
}

/* ============================================================
   ВИДЖЕТ ПРОДАЖ — второй слой
   ============================================================ */

/* ── Воронка-цепочка ── */
.sig-sales-chain {
  display: flex; align-items: center; gap: 0;
  padding: 14px 18px; border-bottom: 1px solid var(--border);
  background: var(--bg3); overflow-x: auto;
  scrollbar-width: none;
}
.sig-sales-chain::-webkit-scrollbar { display: none; }
.sig-chain-arrow {
  color: var(--text3); font-size: 14px; flex-shrink: 0;
  padding: 0 8px; margin-top: -12px;
}
.sig-chain-item {
  text-align: center; flex-shrink: 0; min-width: 70px; padding: 0 6px;
}
.sig-chain-item.warn .sig-chain-val { color: var(--yellow); }
.sig-chain-label {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 3px;
}
.sig-chain-val {
  font-size: 18px; font-weight: 700; color: var(--text);
  font-family: var(--font-display); letter-spacing: -0.5px; line-height: 1;
}
.sig-chain-sub {
  font-size: 10px; color: var(--text3); margin-top: 2px; min-height: 14px;
  white-space: nowrap;
}
.sig-chain-sub.warn { color: var(--yellow); }
.sig-chain-delta {
  font-size: 11px; margin-top: 3px; min-height: 16px;
}

/* ── Дельты ── */
.sales-delta {
  font-size: 11px; font-weight: 700;
  display: inline-flex; align-items: center;
}
.sales-delta.pos { color: var(--green); }
.sales-delta.neg { color: var(--red); }

/* ── Бейджи-фильтры ── */
.sig-sales-badge-filters {
  display: flex; gap: 6px; flex-wrap: wrap;
  padding: 10px 14px; border-bottom: 1px solid var(--border);
}
.sig-sales-badge-btn {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600;
  border: 1px solid var(--border2); background: var(--bg2);
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; white-space: nowrap;
}
.sig-sales-badge-btn:hover { border-color: var(--text3); color: var(--text2); }
.sig-sales-badge-btn.active { border-color: var(--text2); color: var(--text); background: var(--bg3); }
.sig-sales-badge-btn.flag-cancel.active  { background: var(--yellow-bg); border-color: var(--yellow); color: var(--yellow); }
.sig-sales-badge-btn.flag-buyout.active  { background: var(--red-bg);    border-color: var(--red);    color: var(--red); }
.sig-sales-badge-btn.flag-bad.active     { background: var(--red-bg);    border-color: var(--red);    color: var(--red); }
.sig-sales-badge-btn.flag-returns.active { background: var(--yellow-bg); border-color: var(--yellow); color: var(--yellow); }
.sig-sales-badge-btn.flag-good.active    { background: var(--green-bg);  border-color: var(--green);  color: var(--green); }
.sig-sales-badge-btn.flag-stable.active  { background: var(--bg3);       border-color: var(--text3);  color: var(--text2); }
.sig-badge-cnt {
  font-size: 10px; font-weight: 700; opacity: 0.8;
}

/* ── Флаги-бейджи на строке связки ── */
.sig-sales-flag {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; padding: 3px 8px;
  border-radius: 20px; white-space: nowrap;
}
.sig-sales-flag.sm { font-size: 10px; padding: 2px 7px; }
.sig-sales-flag.flag-cancel  { background: var(--yellow-bg); color: var(--yellow); }
.sig-sales-flag.flag-buyout  { background: var(--red-bg);    color: var(--red); }
.sig-sales-flag.flag-bad     { background: var(--red-bg);    color: var(--red); }
.sig-sales-flag.flag-returns { background: var(--yellow-bg); color: var(--yellow); }
.sig-sales-flag.flag-good    { background: var(--green-bg);  color: var(--green); }
.sig-sales-flag.flag-stable  { background: var(--bg3);       color: var(--text3); }

/* ── Тулбар поиска+сортировки ── */
.sig-sales-toolbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 10px 14px; border-bottom: 1px solid var(--border);
  background: var(--bg3);
}

/* ── Список связок ── */
.sig-imt-list {
  overflow-y: auto; max-height: 440px;
  scrollbar-width: thin;
  scrollbar-color: var(--border2) transparent;
}
.sig-imt-list::-webkit-scrollbar { width: 4px; }
.sig-imt-list::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }

.sig-imt-row {
  display: flex; align-items: center; gap: 14px;
  padding: 10px 16px; border-bottom: 1px solid var(--border);
  transition: background 0.1s;
}
.sig-imt-row:last-child { border-bottom: none; }
.sig-imt-row:hover { background: var(--bg3); }

.sig-imt-left {
  display: flex; align-items: center; gap: 10px;
  flex-shrink: 0; width: 240px; min-width: 0;
}
.sig-imt-photo {
  width: 40px; height: 40px; border-radius: 6px;
  object-fit: cover; flex-shrink: 0;
  border: 1px solid var(--border);
}
.sig-imt-photo-empty {
  background: var(--bg3);
}
.sig-imt-info { min-width: 0; }
.sig-imt-title {
  display: flex; align-items: center; gap: 5px; min-width: 0;
}
.sig-imt-skus {
  font-size: 10px; font-weight: 600; color: var(--accent);
  background: var(--blue-bg); border-radius: 10px;
  padding: 1px 6px; flex-shrink: 0;
}

/* Подпись «от заказов» / «от продаж» под значением метрики */
.sig-imt-sublabel {
  font-size: 9px; color: var(--text3); margin-top: 1px;
  white-space: nowrap;
}

/* Метрики */
.sig-imt-metrics {
  display: flex; gap: 0; flex: 1; min-width: 0;
}
.sig-imt-metric {
  display: flex; flex-direction: column; align-items: center;
  flex: 1; min-width: 0; padding: 0 4px;
}
.sig-imt-metric + .sig-imt-metric {
  border-left: 1px solid var(--border);
}
.sig-imt-mlabel {
  font-size: 9px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 2px;
  white-space: nowrap;
}
.sig-imt-mval {
  font-size: 12px; font-weight: 600; color: var(--text2);
  display: flex; align-items: center; gap: 3px; flex-wrap: wrap;
  justify-content: center;
}
.sig-imt-mval.ok   { color: var(--green); }
.sig-imt-mval.warn { color: var(--yellow); }
.sig-imt-rate { font-size: 10px; color: var(--text3); }
.sig-imt-rate.warn { color: var(--yellow); }

.sig-imt-right {
  flex-shrink: 0; width: 100px; text-align: right;
}

/* Кнопка «показать ещё» */
.sig-imt-more {
  padding: 12px 16px; text-align: center;
  border-top: 1px solid var(--border);
}
.sig-imt-more-btn {
  padding: 5px 14px; border-radius: 20px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border2); background: transparent;
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s;
}
.sig-imt-more-btn:hover { border-color: var(--accent); color: var(--accent); }

/* ── Адаптив ── */
@media (max-width: 700px) {
  .sig-imt-left { width: 140px; }
  .sig-imt-right { display: none; }
  .sig-chain-val { font-size: 14px; }
  .sig-sales-badge-filters { gap: 4px; }
}
/* ── END SALES WIDGET ── */

/* ── Кнопка «Детали» в строке связки ── */
.sig-imt-title {
  display: flex; align-items: center; gap: 5px; min-width: 0;
}
.sig-imt-title-text {
  font-size: 11px; font-weight: 600; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.sig-imt-details-btn {
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 600; color: var(--accent);
  padding: 3px 9px; border-radius: 20px;
  border: 1px solid var(--border2); background: transparent;
  text-decoration: none; white-space: nowrap;
  transition: all 0.15s; margin-top: 5px;
}
.sig-imt-details-btn:hover { background: var(--blue-bg); border-color: var(--accent); }

/* ── Оверлей-лоадер при открытии связки из URL ── */
.imt-open-overlay {
  position: absolute; inset: 0; z-index: 10;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; background: rgba(var(--bg2-rgb, 14,17,24), 0.75);
  backdrop-filter: blur(2px); border-radius: 8px;
  min-height: 80px;
}
[data-theme="light"] .imt-open-overlay { background: rgba(255,255,255,0.8); }
.imt-open-spinner {
  width: 24px; height: 24px; border-radius: 50%;
  border: 2px solid var(--border2);
  border-top-color: var(--accent);
  animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.imt-open-label { font-size: 12px; color: var(--text2); }

/* ── Подсветка связки ── */
@keyframes imtHighlight {
  0%   { box-shadow: 0 0 0 2px var(--accent); background: var(--blue-bg); }
  80%  { box-shadow: 0 0 0 2px var(--accent); background: var(--blue-bg); }
  100% { box-shadow: none; background: transparent; }
}
.analytics-imt.imt-highlight {
  animation: imtHighlight 2.5s ease-out forwards; border-radius: 12px;
}

/* ============================================================
   ВИДЖЕТ ОСТАТКОВ
   ============================================================ */

/* Флаги */
.sig-sales-flag.flag-warn    { background: rgba(245,158,11,0.12); color: #f59e0b; }
.sig-sales-flag.flag-stale   { background: var(--bg3); color: var(--text3); }
.sig-sales-flag.flag-inway   { background: var(--blue-bg); color: var(--accent); }
.sig-sales-flag.flag-cost    { background: rgba(168,85,247,0.1); color: #a855f7; }
.sig-sales-flag.flag-ineff   { background: rgba(168,85,247,0.1); color: #a855f7; }
.sig-sales-flag.flag-loc     { background: rgba(245,158,11,0.12); color: #f59e0b; }
.sig-sales-flag.flag-excess  { background: rgba(99,102,241,0.1); color: #6366f1; }
.sig-sales-badge-btn.flag-warn.active   { background: rgba(245,158,11,0.12); border-color: #f59e0b; color: #f59e0b; }
.sig-sales-badge-btn.flag-stale.active  { background: var(--bg3); border-color: var(--text3); color: var(--text2); }
.sig-sales-badge-btn.flag-inway.active  { background: var(--blue-bg); border-color: var(--accent); color: var(--accent); }
.sig-sales-badge-btn.flag-cost.active   { background: rgba(168,85,247,0.1); border-color: #a855f7; color: #a855f7; }
.sig-sales-badge-btn.flag-ineff.active  { background: rgba(168,85,247,0.1); border-color: #a855f7; color: #a855f7; }
.sig-sales-badge-btn.flag-loc.active    { background: rgba(245,158,11,0.12); border-color: #f59e0b; color: #f59e0b; }
.sig-sales-badge-btn.flag-excess.active { background: rgba(99,102,241,0.1); border-color: #6366f1; color: #6366f1; }

/* Переключатель Связки/Склады */
.sig-stock-toolbar-row {
  display: flex; align-items: center; gap: 0;
  border-bottom: 1px solid var(--border); background: var(--bg3);
}
.sig-stock-view-toggle {
  display: flex; gap: 0; flex-shrink: 0;
  border-right: 1px solid var(--border); padding: 10px 14px;
}
.sig-view-btn {
  padding: 4px 14px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border2); background: transparent;
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s;
}
.sig-view-btn:first-child { border-radius: 8px 0 0 8px; }
.sig-view-btn:last-child  { border-radius: 0 8px 8px 0; border-left: none; }
.sig-view-btn.active { background: var(--accent); border-color: var(--accent); color: #fff; }

/* Иконка тултипа ? */
.sig-qtip {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--bg3); border: 1px solid var(--border2);
  color: var(--text3); font-size: 9px; font-weight: 700;
  cursor: help; vertical-align: middle; margin-left: 2px;
  font-style: normal; line-height: 1; flex-shrink: 0;
}
.sig-qtip:hover { border-color: var(--text3); color: var(--text2); }

/* Попап тултипа */
.sig-stock-qtip-pop {
  position: absolute; z-index: 9999;
  background: var(--bg2); border: 1px solid var(--border2);
  border-radius: 10px; padding: 10px 14px;
  font-size: 12px; line-height: 1.5; color: var(--text2);
  max-width: 280px; box-shadow: 0 4px 20px rgba(0,0,0,0.18);
  pointer-events: none;
}

/* Шкала локализации */
.sig-loc-badge {
  display: inline-flex; align-items: center;
  font-size: 10px; font-weight: 700; padding: 2px 8px;
  border-radius: 20px; white-space: nowrap;
}
.sig-loc-badge.loc-great { background: var(--green-bg);        color: var(--green); }
.sig-loc-badge.loc-good  { background: rgba(52,211,153,0.1);   color: #34d399; }
.sig-loc-badge.loc-mid   { background: rgba(245,158,11,0.12);  color: #f59e0b; }
.sig-loc-badge.loc-low   { background: rgba(249,115,22,0.12);  color: #f97316; }
.sig-loc-badge.loc-bad   { background: var(--red-bg);          color: var(--red); }
.sig-loc-badge.loc-none  { background: var(--bg3);             color: var(--text3); }

/* Цвет подписи в цепочке */
.sig-chain-sub.loc-great-text { color: var(--green); }
.sig-chain-sub.loc-good-text  { color: #34d399; }
.sig-chain-sub.loc-mid-text   { color: #f59e0b; }
.sig-chain-sub.loc-low-text   { color: #f97316; }
.sig-chain-sub.loc-bad-text   { color: var(--red); }

/* Цвета метрик в строке */
.sig-imt-mval.warn   { color: var(--yellow); }
.sig-imt-mval.excess { color: #6366f1; }
.oos-risk-inline     { color: var(--red); }

/* sig-imt-title fix */
.sig-imt-title { display: flex; align-items: center; gap: 5px; min-width: 0; }
.sig-imt-title-text {
  font-size: 11px; font-weight: 600; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.sig-imt-details-btn {
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 600; color: var(--accent);
  padding: 3px 9px; border-radius: 20px;
  border: 1px solid var(--border2); background: transparent;
  text-decoration: none; white-space: nowrap;
  transition: all 0.15s; margin-top: 5px;
}
.sig-imt-details-btn:hover { background: var(--blue-bg); border-color: var(--accent); }

/* analytics highlight */
@keyframes imtHighlight {
  0%   { box-shadow: 0 0 0 2px var(--accent); background: var(--blue-bg); }
  80%  { box-shadow: 0 0 0 2px var(--accent); background: var(--blue-bg); }
  100% { box-shadow: none; background: transparent; }
}
.analytics-imt.imt-highlight { animation: imtHighlight 2.5s ease-out forwards; border-radius: 12px; }

/* overlay loader */
.imt-open-overlay {
  position: absolute; inset: 0; z-index: 10;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 10px; background: rgba(var(--bg2-rgb, 14,17,24), 0.75);
  backdrop-filter: blur(2px); border-radius: 8px; min-height: 80px;
}
[data-theme="light"] .imt-open-overlay { background: rgba(255,255,255,0.8); }
.imt-open-spinner {
  width: 24px; height: 24px; border-radius: 50%;
  border: 2px solid var(--border2); border-top-color: var(--accent);
  animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.imt-open-label { font-size: 12px; color: var(--text2); }

@media (max-width: 700px) {
  .sig-stock-toolbar-row { flex-wrap: wrap; }
  .sig-stock-view-toggle { border-right: none; border-bottom: 1px solid var(--border); width: 100%; }
}
/* ── END STOCK WIDGET ── */

/* ============================================================
   STOCK WIDGET — Остатки, склады и регионы
   ============================================================ */
.sig-imt-title { display:flex; align-items:center; gap:5px; min-width:0; }
.sig-imt-title-text { font-size:11px; font-weight:600; color:var(--text); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.sig-imt-details-btn { display:inline-flex; align-items:center; font-size:11px; font-weight:600; color:var(--accent); padding:3px 9px; border-radius:20px; border:1px solid var(--border2); background:transparent; text-decoration:none; white-space:nowrap; transition:all 0.15s; margin-top:5px; }
.sig-imt-details-btn:hover { background:var(--blue-bg); border-color:var(--accent); }

/* Таббар */
.sig-stock-tab-bar { display:flex; align-items:center; border-bottom:1px solid var(--border); background:var(--bg3); flex-wrap:wrap; }
.sig-stock-tabs { display:flex; gap:0; flex-shrink:0; border-right:1px solid var(--border); padding:8px 14px; }
.sig-stock-tab { padding:4px 14px; font-size:12px; font-weight:600; border:1px solid var(--border2); background:transparent; color:var(--text3); cursor:pointer; font-family:var(--font-body); transition:all 0.15s; }
.sig-stock-tab:first-child { border-radius:8px 0 0 8px; }
.sig-stock-tab:last-child  { border-radius:0 8px 8px 0; border-left:none; }
.sig-stock-tab.active,
.sig-stock-tab[aria-selected="true"] { background:#9aa0b8; border-color:#9aa0b8; color:#fff; }
.sig-stock-tab .sig-qtip { margin-left:4px; }

/* Тултип ? */
.sig-qtip { display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; background:var(--bg3); border:1px solid var(--border2); color:var(--text3); font-size:9px; font-weight:700; cursor:help; vertical-align:middle; margin-left:2px; line-height:1; flex-shrink:0; }
.sig-qtip:hover { border-color:var(--text3); color:var(--text2); }
.sig-stock-qtip-pop { position:absolute; z-index:9999; background:var(--bg2); border:1px solid var(--border2); border-radius:10px; padding:10px 14px; font-size:12px; line-height:1.5; color:var(--text2); max-width:280px; box-shadow:0 4px 20px rgba(0,0,0,0.18); pointer-events:none; }

/* Флаги */
.sig-sales-flag.flag-warn    { background:rgba(245,158,11,0.12); color:#f59e0b; }
.sig-sales-flag.flag-stale   { background:var(--bg3);            color:var(--text3); }
.sig-sales-flag.flag-inway   { background:var(--blue-bg);        color:var(--accent); }
.sig-sales-flag.flag-cost    { background:rgba(168,85,247,0.1);  color:#a855f7; }
.sig-sales-flag.flag-ineff   { background:rgba(168,85,247,0.1);  color:#a855f7; }
.sig-sales-flag.flag-loc     { background:rgba(245,158,11,0.12); color:#f59e0b; }
.sig-sales-flag.flag-excess  { background:rgba(99,102,241,0.1);  color:#6366f1; }
.sig-sales-flag.flag-anomaly { background:rgba(239,68,68,0.1);   color:#ef4444; }
.sig-sales-flag.flag-cancel  { background:rgba(245,158,11,0.12); color:#f59e0b; }
.sig-sales-flag.flag-good    { background:var(--green-bg);       color:var(--green); }
.sig-sales-badge-btn.flag-warn.active    { background:rgba(245,158,11,0.12); border-color:#f59e0b; color:#f59e0b; }
.sig-sales-badge-btn.flag-stale.active   { background:var(--bg3);            border-color:var(--text3); color:var(--text2); }
.sig-sales-badge-btn.flag-inway.active   { background:var(--blue-bg);        border-color:var(--accent); color:var(--accent); }
.sig-sales-badge-btn.flag-cost.active    { background:rgba(168,85,247,0.1);  border-color:#a855f7; color:#a855f7; }
.sig-sales-badge-btn.flag-ineff.active   { background:rgba(168,85,247,0.1);  border-color:#a855f7; color:#a855f7; }
.sig-sales-badge-btn.flag-excess.active  { background:rgba(99,102,241,0.1);  border-color:#6366f1; color:#6366f1; }
.sig-sales-badge-btn.flag-anomaly.active { background:rgba(239,68,68,0.1);   border-color:#ef4444; color:#ef4444; }
.sig-sales-badge-btn.flag-cancel.active  { background:rgba(245,158,11,0.12); border-color:#f59e0b; color:#f59e0b; }
.sig-sales-badge-btn.flag-good.active    { background:var(--green-bg);       border-color:var(--green); color:var(--green); }

/* OOS */
.oos-ok   { color:var(--text3); }
.oos-low  { color:#f59e0b; font-weight:600; }
.oos-mid  { color:#f97316; font-weight:600; }
.oos-high { color:var(--red); font-weight:700; }
.oos-risk-inline { color:var(--red); font-weight:600; }

/* analytics */
@keyframes imtHighlight { 0%{box-shadow:0 0 0 2px var(--accent);background:var(--blue-bg);}80%{box-shadow:0 0 0 2px var(--accent);background:var(--blue-bg);}100%{box-shadow:none;background:transparent;} }
.analytics-imt.imt-highlight { animation:imtHighlight 2.5s ease-out forwards; border-radius:12px; }
.imt-open-overlay { position:absolute; inset:0; z-index:10; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; background:rgba(14,17,24,0.75); backdrop-filter:blur(2px); border-radius:8px; min-height:80px; }
[data-theme="light"] .imt-open-overlay { background:rgba(255,255,255,0.8); }
.imt-open-spinner { width:24px; height:24px; border-radius:50%; border:2px solid var(--border2); border-top-color:var(--accent); animation:spin 0.7s linear infinite; }
.imt-open-label { font-size:12px; color:var(--text2); }

@media (max-width:700px) { .sig-stock-tab-bar{flex-wrap:wrap;} .sig-stock-tabs{border-right:none;border-bottom:1px solid var(--border);width:100%;} }
/* ── END STOCK WIDGET ── */

/* sig-imt-table — таблица связок с единой шапкой */
.sig-imt-table { min-width: 700px; }
.sig-imt-table td { padding: 10px 14px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.sig-imt-table tr:last-child td { border-bottom: none; }
.sig-imt-table tr:hover td { background: var(--bg3); }
.sig-imt-table td.num { text-align: right; font-weight: 600; color: var(--text2); }
.sig-imt-table td.num.warn   { color: var(--yellow); }
.sig-imt-table td.num.excess { color: #6366f1; }
.sig-imt-left { display: flex; align-items: center; gap: 10px; }

/* Локализация — цвета текста */
.loc-good-text { color: var(--green); }
.loc-mid-text  { color: #f59e0b; }
.loc-bad-text  { color: var(--red); }

/* ============================================================
   ВИДЖЕТ ФИНАНСЫ, РАСХОДЫ И ПРИБЫЛЬ
   ============================================================ */

/* Акцент финансового виджета */
#sig-widget-finance { --sig-accent: #7c6cff; }

/* Рентабельность под цепочкой */
.fin-margin-row {
  display: flex; align-items: center; gap: 6px;
  padding: 8px 18px; border-bottom: 1px solid var(--border);
  background: var(--bg2); font-size: 12px; color: var(--text2);
}
.fin-margin-val {
  font-weight: 700; color: var(--green);
}
.fin-margin-val.neg { color: var(--red); }

/* Баннер "нет себестоимости" */
.fin-cost-banner {
  display: flex; align-items: center; gap: 8px;
  padding: 7px 14px; border-bottom: 1px solid var(--border);
  background: rgba(245,183,49,0.07);
  font-size: 12px; color: var(--yellow);
  font-weight: 600;
}
.fin-cost-banner-icon { font-size: 14px; flex-shrink: 0; }
[data-theme="light"] .fin-cost-banner { background: rgba(217,119,6,0.06); }

/* Дельты в шапке виджета */
.fin-head-delta {
  display: inline-flex; align-items: center;
  font-size: 11px; font-weight: 700; padding: 1px 6px;
  border-radius: 11px;
}
.fin-head-delta.pos { background: var(--green-bg); color: var(--green); }
.fin-head-delta.neg { background: var(--red-bg);   color: var(--red); }
.fin-head-delta.neu { background: var(--bg3);       color: var(--text3); }

/* Дельты в таблицах (profit_impact) */
.fin-delta {
  display: inline-flex; align-items: center;
  font-size: 12px; font-weight: 700;
}
.fin-delta.pos { color: var(--green); }
.fin-delta.neg { color: var(--red); }
.fin-delta.neu { color: var(--text3); }

/* Цепочка — ok/warn цвет значения */
.sig-chain-val.fin-chain-ok   { color: var(--green); }
.sig-chain-val.fin-chain-warn { color: var(--yellow); }

/* Таблица факторов */
.fin-factors-scroll { max-height: 420px; }
.fin-factors-table { min-width: 680px; }
.fin-compare-table td:nth-child(2) { min-width: 300px; }
.fin-factor-name {
  font-weight: 500; color: var(--text); font-size: 12px;
  display: flex; align-items: center; gap: 5px;
  white-space: nowrap;
}
/* Выделенная строка «Итоговая прибыль» */
.fin-factor-result td { background: rgba(124,108,255,0.06) !important; font-weight: 700; }
[data-theme="light"] .fin-factor-result td { background: rgba(124,108,255,0.05) !important; }

/* severity */
.fin-sev-high { font-size: 11px; }

/* Строка расхода с нулевым значением */
.fin-expense-zero td { opacity: 0.55; }

/* Таблица расходов WB */
.fin-expenses-scroll { max-height: 360px; }
.fin-expenses-table  { min-width: 620px; }

/* Таблица связок — переиспользуем sig-imt-table, добавляем скролл */
.fin-imt-scroll { max-height: 318px; }
.fin-imt-table  { min-width: 1040px; }


/* Finance IMT table: compact product column, centered metric columns */
.fin-imt-table {
  table-layout: fixed;
  min-width: 980px;
}
.fin-imt-table .fin-imt-name-th,
.fin-imt-table .fin-imt-name-cell {
  width: 300px;
  min-width: 300px;
  max-width: 300px;
}
.fin-imt-table .fin-imt-left {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.fin-imt-table .sig-imt-info {
  min-width: 0;
  max-width: 210px;
}
.fin-imt-table .sig-imt-title-text {
  display: block;
  max-width: 170px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fin-imt-table th.num,
.fin-imt-table td.num {
  text-align: center;
  vertical-align: middle;
}
.fin-imt-table td.num .sig-sales-compare {
  justify-content: center;
  text-align: center;
  margin: 0 auto;
}
.fin-imt-table td.num .sig-sales-change {
  width: 100%;
  margin-left: 0;
}

/* ok/warn в числовых ячейках связок */
.sig-imt-table td.num.ok  { color: var(--green); }

/* Флаг финансовых связок: flag-cost */
.sig-sales-flag.flag-cost      { background: rgba(168,85,247,0.1); color: #a855f7; }
.sig-sales-badge-btn.flag-cost.active { background: rgba(168,85,247,0.1); border-color: #a855f7; color: #a855f7; }

/* Тультип финансового виджета — переиспользуем sig-stock-qtip-pop */

@media (max-width: 700px) {
  .fin-factors-table  { min-width: 480px; }
  .fin-expenses-table { min-width: 460px; }
  .fin-imt-table      { min-width: 580px; }
}
/* ── END FINANCE WIDGET ── */

/* ============================================================
   WB SALES REPORTS — вкладка «Отчёты WB» + модалка
   ============================================================ */

/* ── Спиннер ── */
.wb-spin {
  display: inline-block; width: 14px; height: 14px;
  border: 2px solid var(--border2); border-top-color: var(--accent);
  border-radius: 50%; animation: spin 0.7s linear infinite;
  vertical-align: middle; margin-right: 6px; flex-shrink: 0;
}

/* ── Подзаголовок вкладки ── */
.wb-reports-loading { display: flex; align-items: center; justify-content: center; gap: 6px; }
.wb-reports-note {
  padding: 10px 18px 8px;
  font-size: 12px; color: var(--text2);
  border-bottom: 1px solid var(--border);
}
.wb-reports-note-method {
  color: var(--text3); font-size: 11px;
}

/* ── Список отчётов ── */
.wb-report-list {
  overflow-y: auto; max-height: 440px;
  scrollbar-width: thin; scrollbar-color: var(--border2) transparent;
}
.wb-report-list::-webkit-scrollbar { width: 4px; }
.wb-report-list::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }

.wb-report-row {
  display: flex; align-items: center; gap: 12px; justify-content: space-between;
  padding: 12px 18px; border-bottom: 1px solid var(--border);
  transition: background 0.1s;
}
.wb-report-row:last-child { border-bottom: none; }
.wb-report-row:hover { background: var(--bg3); }

.wb-report-row-left {
  display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0;
}
.wb-report-icon { font-size: 20px; flex-shrink: 0; }
.wb-report-row-meta { min-width: 0; }
.wb-report-row-title {
  font-size: 12px; font-weight: 700; color: var(--text);
}
.wb-report-row-dates {
  font-size: 11px; color: var(--text3); margin-top: 2px;
}
.wb-report-row-status {
  margin-top: 3px;
  font-size: 11px;
  color: var(--text2);
}
.wb-report-row-status-done { color: var(--green); }
.wb-report-row-status-error,
.wb-report-row-status-rate_limited { color: var(--red); }
.wb-report-row-status-pending,
.wb-report-row-status-loading { color: var(--accent); }

.wb-report-row-right {
  display: flex; align-items: center; gap: 16px; flex-shrink: 0;
}
.wb-report-row-kpi { text-align: right; }
.wb-kpi-label { font-size: 10px; color: var(--text3); display: block; text-transform: uppercase; letter-spacing: 0.4px; }
.wb-kpi-val   { font-size: 13px; font-weight: 700; color: var(--text); }

.wb-report-row-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.wb-rows-cnt { font-size: 11px; color: var(--text3); white-space: nowrap; }

/* Кнопки строки */
.wb-btn-open, .wb-btn-fetch {
  padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border2); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; white-space: nowrap;
}
.wb-btn-open  { background: transparent; color: var(--accent); border-color: var(--border2); }
.wb-btn-open:hover { background: var(--blue-bg); border-color: var(--accent); }
.wb-btn-fetch { background: transparent; color: var(--text2); }
.wb-btn-fetch:hover { border-color: var(--accent); color: var(--accent); }
.wb-btn-fetch.wb-btn-loading { opacity: 0.6; cursor: default; }
.wb-row-error { font-size: 11px; color: var(--red); margin-top: 4px; padding: 0 18px; }

/* ── Модалка ── */
.wb-report-modal {
  display: none; position: fixed; inset: 0; z-index: 10000;
}
.wb-report-modal.open { display: flex; align-items: flex-start; justify-content: center; padding: 32px 16px 16px; }
.wb-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.55);
  backdrop-filter: blur(2px); z-index: 0;
}
.wb-modal-inner {
  position: relative; z-index: 1;
  background: var(--bg2); border: 1px solid var(--border2);
  border-radius: 14px; width: 100%; max-width: 860px;
  max-height: calc(100vh - 64px); overflow: hidden;
  display: flex; flex-direction: column;
  box-shadow: 0 24px 64px rgba(0,0,0,0.35);
}
[data-theme="light"] .wb-modal-inner { box-shadow: 0 8px 40px rgba(0,0,0,0.14); }

.wb-modal-header {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 18px 22px 14px; border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}
.wb-modal-title {
  font-size: 16px; font-weight: 700; color: var(--text);
  font-family: var(--font-display); letter-spacing: -0.3px;
}
.wb-modal-subtitle {
  font-size: 12px; color: var(--text3); margin-top: 3px;
}
.wb-modal-note {
  font-size: 11px; color: var(--text3); margin-top: 6px;
  max-width: 580px; line-height: 1.4;
}
.wb-modal-close {
  padding: 4px 8px; border-radius: 8px; font-size: 14px;
  border: 1px solid var(--border2); background: transparent;
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; flex-shrink: 0; line-height: 1;
}
.wb-modal-close:hover { border-color: var(--red); color: var(--red); }

.wb-modal-body {
  overflow-y: auto; flex: 1; padding: 18px 22px 22px;
  scrollbar-width: thin; scrollbar-color: var(--border2) transparent;
}
.wb-modal-body::-webkit-scrollbar { width: 5px; }
.wb-modal-body::-webkit-scrollbar-thumb { background: var(--border2); border-radius: 4px; }
body.wb-modal-open { overflow: hidden; }

/* ── KPI-сетка ── */
.wb-kpi-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px;
  margin-bottom: 16px;
}
.wb-kpi-card {
  background: var(--bg3); border: 1px solid var(--border);
  border-radius: 10px; padding: 10px 14px;
}
.wb-kpi-card.wb-kpi-accent {
  background: var(--bg2); border-color: var(--border2);
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.wb-kpi-card-label {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 4px;
  display: flex; align-items: center; gap: 4px;
}
.wb-kpi-card-val {
  font-size: 15px; font-weight: 700; color: var(--text);
  font-family: var(--font-display); letter-spacing: -0.3px;
}
.wb-kpi-positive .wb-kpi-card-val { color: var(--green); }
.wb-kpi-negative .wb-kpi-card-val { color: var(--red); }

/* ── Формула прибыли ── */
.wb-formula-block {
  background: rgba(124,108,255,0.06); border: 1px solid rgba(124,108,255,0.18);
  border-radius: 10px; padding: 12px 16px; margin-bottom: 16px;
}
[data-theme="light"] .wb-formula-block { background: rgba(124,108,255,0.04); }
.wb-formula-title {
  font-size: 11px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px; margin-bottom: 8px;
}
.wb-formula-calc {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.wb-formula-num    { font-size: 14px; font-weight: 600; color: var(--text2); }
.wb-formula-op     { font-size: 14px; color: var(--text3); }
.wb-formula-result { font-size: 15px; font-weight: 700; color: var(--text); font-family: var(--font-display); }
.wb-formula-result.wb-kpi-positive { color: var(--green); }
.wb-formula-result.wb-kpi-negative { color: var(--red); }

/* ── Секции модалки ── */
.wb-section { margin-bottom: 18px; }
.wb-section-title {
  font-size: 11px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.5px;
  margin-bottom: 10px; display: flex; align-items: center; gap: 6px;
}
.wb-rows-total { font-weight: 400; text-transform: none; letter-spacing: 0; }

/* ── Группы операций ── */
.wb-op-groups {
  border: 1px solid var(--border); border-radius: 10px; overflow: hidden;
}
.wb-og-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 9px 14px; border-bottom: 1px solid var(--border);
  transition: background 0.1s;
}
.wb-og-row:last-child { border-bottom: none; }
.wb-og-row:hover { background: var(--bg3); }
.wb-og-info { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.wb-og-title {
  font-size: 12px; font-weight: 600; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0;
}
.wb-og-cnt {
  font-size: 11px; color: var(--text3); flex-shrink: 0; white-space: nowrap;
}
.wb-og-amount { font-size: 13px; font-weight: 700; flex-shrink: 0; white-space: nowrap; }
.wb-og-pos { color: var(--green); }
.wb-og-neg { color: var(--text2); }

/* ── Таблица строк ── */
.wb-rows-scroll { max-height: 340px; }
.wb-rows-table  { min-width: 720px; }
.wb-oper-name   { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 180px; display: inline-block; vertical-align: middle; }
.wb-rows-more   { padding: 10px 0; text-align: center; }

/* ── Методология ── */
.wb-methodology {
  font-size: 11px; color: var(--text3); line-height: 1.5;
  border-top: 1px solid var(--border); padding-top: 14px; margin-top: 4px;
}

/* ── Адаптив ── */
@media (max-width: 860px) {
  .wb-kpi-grid { grid-template-columns: repeat(3, 1fr); }
  .wb-report-modal { padding: 0; align-items: flex-end; }
  .wb-modal-inner  { max-width: 100%; border-radius: 14px 14px 0 0; max-height: 92vh; }
}
@media (max-width: 600px) {
  .wb-kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .wb-report-row { flex-wrap: wrap; }
  .wb-report-row-right { width: 100%; justify-content: space-between; }
}
/* ── END WB REPORTS ── */

/* ============================================================
   WB HUMAN GROUPS — расшифровка операций
   ============================================================ */

/* human_summary — итоговая строка над группами */
.wb-human-summary {
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap;
  padding: 10px 14px; background: var(--bg3);
  border: 1px solid var(--border); border-radius: 10px;
  margin-bottom: 10px; font-size: 12px;
}
.wb-hs-item { display: flex; flex-direction: column; align-items: center; gap: 1px; }
.wb-hs-label { font-size: 10px; color: var(--text3); text-transform: uppercase; letter-spacing: 0.4px; }
.wb-hs-val   { font-size: 14px; font-weight: 700; font-family: var(--font-display); }
.wb-hs-sep   { font-size: 16px; color: var(--text3); padding: 0 4px; margin-top: 8px; }
.wb-summary-pos  { color: var(--green); }
.wb-summary-neg  { color: var(--red); }
.wb-summary-warn {
  width: 100%; font-size: 11px; color: var(--yellow);
  padding-top: 4px; border-top: 1px solid var(--border); margin-top: 4px;
}

/* Список групп */
.wb-human-groups {
  display: flex; flex-direction: column; gap: 6px;
}

/* Одна группа */
.wb-hg-group {
  border: 1px solid var(--border); border-radius: 10px;
  overflow: hidden;
}
.wb-hg-income  { border-left: 3px solid var(--green); }
.wb-hg-expense { border-left: 3px solid var(--text3); }
.wb-hg-mixed   { border-left: 3px solid var(--border2); }

.wb-hg-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
  padding: 10px 14px; background: var(--bg3);
}
.wb-hg-head-left { flex: 1; min-width: 0; }
.wb-hg-title {
  font-size: 12px; font-weight: 700; color: var(--text); display: block;
}
.wb-hg-subtitle {
  font-size: 11px; color: var(--text3); margin-top: 2px;
}
.wb-hg-head-right {
  display: flex; flex-direction: column; align-items: flex-end; gap: 2px; flex-shrink: 0;
}
.wb-hg-cnt { font-size: 10px; color: var(--text3); }

/* Items внутри группы */
.wb-hg-items {
  border-top: 1px solid var(--border);
}
.wb-hg-item {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 7px 14px; border-bottom: 1px solid var(--border);
  font-size: 12px; transition: background 0.1s;
}
.wb-hg-item:last-child { border-bottom: none; }
.wb-hg-item:hover { background: var(--bg3); }
.wb-hg-item-left {
  display: flex; align-items: center; gap: 8px; flex: 1; min-width: 0;
}
.wb-hg-item-title {
  color: var(--text2); white-space: nowrap; overflow: hidden;
  text-overflow: ellipsis; min-width: 0;
}

/* Технические строки — collapsible */
.wb-tech-section {
  margin-top: 14px; border-top: 1px solid var(--border); padding-top: 10px;
}
.wb-tech-toggle {
  display: flex; align-items: center; gap: 7px;
  background: none; border: none; cursor: pointer;
  font-size: 12px; color: var(--text3); font-family: var(--font-body);
  padding: 4px 0; transition: color 0.15s;
}
.wb-tech-toggle:hover { color: var(--text2); }
.wb-tech-arrow { font-size: 10px; flex-shrink: 0; }
.wb-tech-cnt   { color: var(--text3); font-size: 11px; }
.wb-tech-body  { margin-top: 10px; }
.wb-tech-note  {
  font-size: 11px; color: var(--text3); margin-bottom: 10px;
  padding: 8px 12px; background: var(--bg3);
  border-radius: 8px; line-height: 1.4;
}

@media (max-width: 600px) {
  .wb-human-summary { gap: 4px; }
  .wb-hs-sep { display: none; }
  .wb-hg-head { flex-wrap: wrap; }
}
/* ── END WB HUMAN GROUPS ── */

/* ============================================================
   WB TAX SETTINGS + COST WARN
   ============================================================ */

/* Блок настройки налоговой ставки */
.wb-tax-block {
  padding: 12px 18px; border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.wb-tax-row {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; flex-wrap: wrap;
}
.wb-tax-label-wrap { flex: 1; min-width: 0; }
.wb-tax-label {
  font-size: 12px; font-weight: 600; color: var(--text); display: block;
}
.wb-tax-sublabel {
  font-size: 11px; color: var(--text3); margin-top: 2px;
}
.wb-tax-input-wrap {
  display: flex; align-items: center; gap: 6px; flex-shrink: 0; flex-wrap: wrap;
}
.wb-tax-input {
  width: 64px; padding: 5px 8px; border-radius: 8px;
  background: var(--bg2); border: 1px solid var(--border2);
  color: var(--text); font-size: 13px; font-weight: 600;
  font-family: var(--font-body); outline: none; text-align: right;
  transition: border-color 0.15s;
}
.wb-tax-input:focus { border-color: var(--accent); }
.wb-tax-pct { font-size: 13px; font-weight: 600; color: var(--text2); }
.wb-tax-save-btn {
  padding: 5px 12px; border-radius: 8px; font-size: 12px; font-weight: 600;
  border: 1px solid var(--border2); background: var(--bg2);
  color: var(--text2); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; white-space: nowrap;
}
.wb-tax-save-btn:hover { border-color: var(--accent); color: var(--accent); }
.wb-tax-status {
  font-size: 11px; font-weight: 600; min-width: 80px;
}
.wb-tax-status.ok  { color: var(--green); }
.wb-tax-status.err { color: var(--red); }
.wb-tax-method {
  font-size: 11px; color: var(--text3); margin-top: 6px; line-height: 1.4;
}

/* Предупреждение о себестоимости в модалке */
.wb-cost-warn {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 9px 14px; margin-bottom: 12px;
  background: rgba(245,183,49,0.07); border: 1px solid rgba(245,183,49,0.2);
  border-radius: 10px; font-size: 12px; color: var(--yellow); font-weight: 600;
  line-height: 1.4;
}
[data-theme="light"] .wb-cost-warn { background: rgba(217,119,6,0.06); }
.wb-cost-warn-icon { font-size: 14px; flex-shrink: 0; }
.wb-cost-warn-cnt  { font-weight: 400; color: var(--yellow); opacity: 0.8; }

/* Исправляем item в группах — перенос длинного названия */
.wb-hg-item {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 10px;
}
.wb-hg-item-title {
  color: var(--text2); white-space: normal; word-break: break-word;
  overflow: visible; text-overflow: unset; min-width: 0; flex: 1;
}
/* Fallback og-row без wb-og-info */
.wb-og-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.wb-og-title { flex: 1; min-width: 0; }

@media (max-width: 600px) {
  .wb-tax-row { flex-direction: column; }
  .wb-tax-input-wrap { flex-wrap: wrap; }
}
/* ── END WB TAX ── */

/* ============================================================
   WB MISSING COST ITEMS — раскрывающийся список
   ============================================================ */

.wb-cost-warn-block {
  margin-bottom: 12px;
}

/* Переписываем wb-cost-warn под новую структуру */
.wb-cost-warn {
  display: flex; align-items: flex-start; gap: 8px;
  padding: 10px 14px;
  background: rgba(245,183,49,0.07); border: 1px solid rgba(245,183,49,0.2);
  border-radius: 10px 10px 0 0;
  font-size: 12px; color: var(--yellow); line-height: 1.4;
}
.wb-cost-warn-block .wb-miss-list ~ .wb-cost-warn,
.wb-cost-warn:only-child { border-radius: 10px; }
.wb-cost-warn-body {
  display: flex; flex-direction: column; gap: 4px; flex: 1;
}
.wb-cost-warn-text  { font-weight: 600; color: var(--yellow); }
.wb-cost-warn-cnt   { font-size: 11px; color: var(--yellow); opacity: 0.85; font-weight: 400; }
.wb-cost-show-btn {
  align-self: flex-start; margin-top: 4px;
  padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600;
  border: 1px solid rgba(245,183,49,0.35); background: transparent;
  color: var(--yellow); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s;
}
.wb-cost-show-btn:hover { background: rgba(245,183,49,0.12); }

/* Список товаров без себестоимости */
.wb-miss-list {
  border: 1px solid rgba(245,183,49,0.2); border-top: none;
  border-radius: 0 0 10px 10px; overflow: hidden;
}
.wb-miss-row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px !important; border-bottom: 1px solid var(--border);
  background: var(--bg2); transition: background 0.1s;
}
.wb-miss-row:last-of-type { border-bottom: none; }
.wb-miss-row:hover { background: var(--bg3); }
.wb-miss-photo {
  width: 40px; height: 40px; border-radius: 6px;
  object-fit: cover; flex-shrink: 0; border: 1px solid var(--border);
}
.wb-miss-photo-empty { background: var(--bg3); }
.wb-miss-info { flex: 1; min-width: 0; }
.wb-miss-title {
  font-size: 12px; font-weight: 600; color: var(--text);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wb-miss-art {
  font-size: 11px; color: var(--text3); margin-top: 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.wb-miss-nm { color: var(--text3); opacity: 0.7; }
.wb-miss-nums {
  display: flex; flex-direction: column; gap: 2px;
  flex-shrink: 0; text-align: right;
}
.wb-miss-num-row { display: flex; gap: 6px; align-items: baseline; justify-content: flex-end; }
.wb-miss-nlabel { font-size: 10px; color: var(--text3); }
.wb-miss-nval   { font-size: 12px; font-weight: 600; color: var(--text2); }

/* Подсказка внутри списка */
.wb-miss-hint {
  padding: 10px 14px; font-size: 11px; color: var(--text3);
  background: var(--bg3); border-top: 1px solid var(--border);
  line-height: 1.4;
}

[data-theme="light"] .wb-cost-warn { background: rgba(217,119,6,0.06); }

@media (max-width: 600px) {
  .wb-miss-nums { display: none; }
}
/* ── END WB MISSING COST ── */

/* ============================================================
   FINANCE SETTINGS BLOCK (в настройках магазина)
   ============================================================ */
.fin-settings-block { padding: 4px 0 8px; }
.fin-settings-label {
  font-size: 12px; font-weight: 600; color: var(--text2);
  margin-bottom: 10px;
}
.fin-settings-row {
  display: flex; align-items: flex-start; gap: 12px; flex-wrap: wrap;
}
.fin-settings-field-wrap { flex: 1; min-width: 200px; }
.fin-settings-input {
  width: 100%; padding: 8px 10px; border-radius: 8px;
  background: var(--bg3); border: 1px solid var(--border2);
  color: var(--text); font-size: 13px; font-family: var(--font-body);
  outline: none; transition: border-color 0.15s; margin-bottom: 8px;
}
.fin-settings-input:focus { border-color: var(--accent); }
.fin-settings-input::placeholder { color: var(--text3); }

.fin-settings-presets {
  display: flex; gap: 6px; flex-wrap: wrap;
}
.fin-preset-btn {
  padding: 3px 10px; border-radius: 20px; font-size: 11px; font-weight: 600;
  border: 1px solid var(--border2); background: var(--bg2);
  color: var(--text3); cursor: pointer; font-family: var(--font-body);
  transition: all 0.15s; white-space: nowrap;
}
.fin-preset-btn:hover { border-color: var(--accent); color: var(--accent); }

.fin-settings-rate-wrap {
  display: flex; flex-direction: column; gap: 4px; flex-shrink: 0;
}
.fin-settings-rate-lbl {
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px;
}
.fin-settings-rate-input {
  width: 80px; padding: 8px 10px; border-radius: 8px;
  background: var(--bg3); border: 1px solid var(--border2);
  color: var(--text); font-size: 13px; font-weight: 600;
  font-family: var(--font-body); outline: none; text-align: right;
  transition: border-color 0.15s;
}
.fin-settings-rate-input:focus { border-color: var(--accent); }

.fin-settings-note {
  font-size: 11px; color: var(--text3); margin-top: 10px;
}
.fin-settings-method {
  font-size: 11px; color: var(--text3); margin-top: 4px; line-height: 1.4;
}
.fin-settings-status { font-size: 12px; font-weight: 600; }
.fin-settings-status.ok  { color: var(--green); }
.fin-settings-status.err { color: var(--red); }

/* Readonly-отображение налога во вкладке Отчёты WB */
.wb-tax-readonly {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 7px 14px; border-bottom: 1px solid var(--border);
  background: var(--bg3); font-size: 12px; color: var(--text2);
}
.wb-tax-readonly.wb-tax-none { color: var(--text3); }
.wb-tax-settings-link {
  font-size: 11px; color: var(--accent); text-decoration: none;
  padding: 2px 8px; border-radius: 20px; border: 1px solid var(--border2);
  transition: all 0.15s; margin-left: 4px; white-space: nowrap;
}
.wb-tax-settings-link:hover { background: var(--blue-bg); border-color: var(--accent); }

/* sublabel в KPI-карточке модалки */
.wb-kpi-card-sub {
  font-size: 10px; color: var(--text3); margin-top: 3px;
  font-weight: 400; line-height: 1.3;
}

/* ── END FINANCE SETTINGS ── */



/* ── Шапка колонок списка связок (sales widget) ── */
.sig-imt-thead {
  display: flex; align-items: center; gap: 14px;
  padding: 7px 16px; border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.sig-imt-thead-left {
  width: 240px; flex-shrink: 0;
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.5px;
}
.sig-imt-thead-metrics {
  display: flex; gap: 0; flex: 1; min-width: 0;
}
.sig-imt-thead-col {
  flex: 1; text-align: center;
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: 0.4px;
}
.sig-imt-thead-right {
  flex-shrink: 0; width: 100px;
}
@media (max-width: 700px) {
  .sig-imt-thead { display: none; }
}

/* ── Сортировка колонок шапки sales widget ── */
.sig-imt-thead-sortable {
  cursor: pointer; user-select: none;
  transition: color 0.15s;
}
.sig-imt-thead-sortable:hover { color: var(--text2); }
.sales-col-sort {
  font-size: 10px; color: var(--text3);
  margin-left: 3px; transition: color 0.15s;
}
.sales-col-sort.active { color: var(--accent); }

/* ── Подпись полного остатка под основным значением ── */
.stock-subvalue {
  font-size: 10px; color: var(--text3);
  font-weight: 400; margin-top: 2px; line-height: 1.2;
}

/* ── В пути: два числа в ячейке склада ── */
.stock-inway-sep {
  color: var(--text3); margin: 0 3px; font-weight: 400;
}
.stock-inway-hint {
  font-size: 9px; font-weight: 400; color: var(--text3);
  text-transform: none; letter-spacing: 0; margin-top: 1px;
}

/* ============================================================
   TAX MODE SETTINGS — dropdown налогового режима
   ============================================================ */
#tax-mode-block label { font-size: 12px; color: var(--text2); font-weight: 600; }

#settings-tax-mode:focus {
  border-color: var(--accent);
  outline: none;
}
#settings-tax-mode option {
  background: var(--bg2);
  color: var(--text);
}

#tax-custom-rate-wrap input:focus,
#tax-vat-rate-wrap input:focus { outline: none; }

#tax-mode-info {
  background: var(--bg3);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 8px 10px;
}
#tax-mode-info-label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text);
}
#tax-mode-info-desc {
  font-size: 11px;
  color: var(--text3);
  margin-top: 3px;
  line-height: 1.45;
}

#tax-mode-save-btn:hover {
  opacity: 0.88;
}
#tax-mode-save-btn:active {
  opacity: 0.75;
}

/* ── Tooltip "?" у налогового режима ── */
#tax-mode-qtip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  font-size: 10px;
  font-weight: 700;
  background: var(--bg3);
  border: 1px solid var(--border2);
  border-radius: 50%;
  cursor: help;
  color: var(--text3);
  flex-shrink: 0;
  user-select: none;
}
#tax-mode-qtip:hover { border-color: var(--accent); color: var(--accent); }


/* ============================================================
   WB FINANCE BRIDGE — Финансовый результат по периодам
   ============================================================ */

.wbbt-wrap { background:var(--bg2); border:1px solid var(--border); border-radius:12px; overflow:hidden; }

/* Шапка */
.wbbt-head { display:flex; align-items:center; gap:10px; padding:8px 14px; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.wbbt-period-label { font-size:11px; font-weight:600; color:var(--text3); white-space:nowrap; flex-shrink:0; }
.wbbt-presets { display:flex; gap:4px; flex-wrap:wrap; }
.wbbt-btn {
  padding:3px 10px; font-size:11px; font-weight:600;
  border:1px solid var(--border2); border-radius:14px;
  background:transparent; color:var(--text2);
  cursor:pointer; font-family:var(--font-body); line-height:1.5;
  transition:border-color .12s, color .12s, background .12s;
}
.wbbt-btn:hover  { border-color:var(--accent); color:var(--accent); }
.wbbt-btn.active { background:var(--accent); border-color:var(--accent); color:#fff; }

.wbbt-spinner { padding:14px; font-size:12px; color:var(--text3); display:flex; align-items:center; gap:6px; }
.wbbt-empty   { padding:14px; font-size:12px; color:var(--text3); text-align:center; line-height:1.5; }
.wbbt-period  { font-size:11px; color:var(--text3); padding:7px 14px 0; line-height:1.4; display:flex; align-items:center; gap:5px; flex-wrap:wrap; }
.wbbt-cache-note {
  font-size:11px; color:#73510c;
  background:rgba(255,193,7,.10); border-left:3px solid rgba(255,193,7,.55);
  margin:7px 14px 0; padding:5px 10px; border-radius:0 6px 6px 0; line-height:1.4;
}
.wbbt-warn    {
  font-size:11px; color:#92580d;
  background:rgba(255,193,7,.09); border-left:3px solid rgba(255,193,7,.45);
  margin:6px 14px 0; padding:5px 10px; border-radius:0 6px 6px 0; line-height:1.4;
}



/* Два блока внутри финансов по закрытым отчётам WB */
.wbbt-panels {
  display: grid;
  grid-template-columns: minmax(320px, .82fr) minmax(520px, 1.18fr);
  gap: 9px;
  padding: 9px 12px 8px;
  align-items: stretch;
}
.wbbt-card {
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg2);
  overflow: hidden;
  min-width: 0;
}
.wbbt-card-head {
  padding: 10px 12px 8px;
  border-bottom: 1px solid var(--border);
  background: var(--bg3);
}
.wbbt-card-title {
  font-size: 12px;
  font-weight: 800;
  color: var(--text);
  line-height: 1.25;
}
.wbbt-card-sub {
  margin-top: 2px;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.35;
}
.wbbt-card .wbbt-grid { margin-top: 0; }
.wbbt-fin-list { padding: 8px 12px 4px; }
.wbbt-card-finresult .wbbt-fin-list {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  column-gap: 18px;
  row-gap: 0;
  padding: 8px 12px 2px;
}
.wbbt-fin-col {
  min-width: 0;
}
.wbbt-fin-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 5px 0;
  border-bottom: 1px dashed var(--border);
  font-size: 12px;
}
.wbbt-fin-row:last-child { border-bottom: none; }
.wbbt-fin-row span:first-child { color: var(--text2); line-height: 1.35; }
.wbbt-fin-row b { color: var(--text); white-space: nowrap; text-align: right; font-size: 12px; }
.wbbt-fin-row.muted span:first-child { color: var(--text3); }
.wbbt-fin-row.basis { grid-column: 1 / -1; }
.wbbt-card-finresult > .wbbt-fin-list > .wbbt-fin-row.basis { grid-column: 1 / -1; }
.wbbt-fin-row.expense b { color: var(--red); }
.wbbt-fin-row.subtotal { margin-top: 2px; border-top: 1px solid var(--border); }
.wbbt-fin-row.total {
  margin-top: 0;
  padding-top: 5px;
  border-top: 1px solid var(--border);
  border-bottom: none;
}
.wbbt-fin-row.total span:first-child,
.wbbt-fin-row.total b { font-size: 13px; font-weight: 800; color: var(--text); }
.wbbt-quality {
  margin: 6px 12px 0;
  padding: 5px 8px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 11px;
  line-height: 1.35;
}
.wbbt-quality.ok { background: rgba(16,185,129,.08); color: var(--green); }
.wbbt-quality.warn { background: rgba(255,193,7,.10); color: #92580d; }
.wbbt-quality.bad { background: rgba(239,68,68,.08); color: var(--red); }
.wbbt-quality b { white-space: nowrap; }
.wbbt-card-note {
  margin: 8px 12px 10px;
  padding-top: 8px;
  border-top: 1px solid var(--border);
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
}
.wbbt-fin-note {
  padding: 6px 12px 9px;
  font-size: 11px;
  color: var(--text3);
  line-height: 1.45;
}

/* ═══════════════════════════════════════════════════════════
   ГЛАВНЫЙ GRID — 4 строки × 2 колонки
   Строка 0: пустая шапка описаний | заголовки колонок
   Строки 1-3: описание | данные
   grid-template-rows: auto для каждой строки — браузер
   выбирает max(высота описания, высота данных) для каждой строки,
   и оба элемента растягиваются до этой высоты.
   ═══════════════════════════════════════════════════════════ */
.wbbt-grid {
  display: grid;
  grid-template-columns: 26% 1fr;
  grid-template-rows: repeat(4, auto);
  margin-top: 8px;
  overflow-x: auto;
}

/* Каждая пара (def + nums) занимает свою строку grid.
   Оба элемента одной строки всегда одинаковой высоты — это
   обеспечивает grid без какого-либо JS. */

/* Левая ячейка (описание) */
.wbbt-grid-def {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  padding: 12px 13px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

/* Правая ячейка (числа) */
.wbbt-grid-nums {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 30px;
  align-items: center;
  padding: 0 14px;
  border-bottom: 1px solid var(--border);
  min-width: 260px;
}

/* Убираем нижнюю границу у последних строк */
.wbbt-grid-def-profit,
.wbbt-grid-nums-profit { border-bottom: none; }

/* Строка заголовков */
.wbbt-grid-hdr-def  { padding:6px 13px; background:var(--bg3); }
.wbbt-grid-hdr-nums {
  background: var(--bg3);
  padding: 6px 14px;
}
.wbbt-grid-hdr-nums span {
  text-align: right;
  font-size: 10px; font-weight: 700; color: var(--text3);
  text-transform: uppercase; letter-spacing: .3px;
}
.wbbt-grid-hdr-nums span:last-child { text-align:center; }

/* Цвет фона строк — одинаковый для def и nums одной строки */
.wbbt-grid-def-revenue, .wbbt-grid-nums-revenue { background: rgba(59,130,246,.05); }
.wbbt-grid-def-pay,     .wbbt-grid-nums-pay     { background: rgba(16,185,129,.05); }
.wbbt-grid-def-profit,  .wbbt-grid-nums-profit  { background: rgba(139,92,246,.05); }

/* Текст описания */
.wbbt-def-name { font-size:12px; font-weight:700; color:var(--text); display:inline-flex; align-items:center; }
.wbbt-def-name .mtt-icon { margin-left:5px; }
.wbbt-def-text { font-size:11px; color:var(--text3); line-height:1.45; }

/* Числовые ячейки */
.wbbt-grid-nums span {
  text-align: right;
  font-size: 12px; font-weight: 600; color: var(--text);
  white-space: nowrap;
}
.wbbt-grid-nums span:last-child { text-align:center; }

/* Числа */
.wbbt-neg { color:var(--red) !important; }
.wbbt-na  { color:var(--text3) !important; font-weight:400 !important; }
.wbbt-dev { color:var(--text2) !important; }

/* Кнопка «?» */
.wbbt-why {
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; font-size:10px; font-weight:700;
  border:1px solid var(--border2); border-radius:50%;
  background:var(--bg2); color:var(--text3);
  cursor:pointer; font-family:var(--font-body);
  transition:border-color .12s, color .12s;
}
.wbbt-why:hover { border-color:var(--accent); color:var(--accent); }


/* Footer */
.wbbt-footer { padding:7px 14px 10px; border-top:1px solid var(--border); }
.wbbt-footer a { font-size:11px; color:var(--accent); text-decoration:none; }
.wbbt-footer a:hover { text-decoration:underline; }

/* ── Модалка ── */
.wbbt-modal-bg { position:fixed; inset:0; background:rgba(0,0,0,.46); z-index:1200; display:flex; align-items:center; justify-content:center; padding:16px; }
.wbbt-modal-box { background:var(--bg2); border:1px solid var(--border); border-radius:12px; width:100%; max-width:440px; max-height:85vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 6px 28px rgba(0,0,0,.22); }
.wbbt-modal-hd { display:flex; justify-content:space-between; align-items:flex-start; padding:13px 15px 10px; border-bottom:1px solid var(--border); flex-shrink:0; gap:10px; }
.wbbt-modal-title { font-size:13px; font-weight:700; color:var(--text); line-height:1.3; }
.wbbt-modal-x { background:none; border:none; font-size:14px; cursor:pointer; color:var(--text3); padding:0; flex-shrink:0; }
.wbbt-modal-x:hover { color:var(--text); }
.wbbt-modal-bd { padding:12px 15px 15px; overflow-y:auto; flex:1; font-size:12px; color:var(--text2); line-height:1.55; }
.wbbt-modal-bd p { margin:0 0 8px; }
.wbbt-modal-bd p:last-child { margin-bottom:0; }
.wbbt-dir    { color:var(--text); font-weight:600; }
.wbbt-reason { color:var(--text3); font-size:11px; }

/* Товары без себестоимости */
.wbbt-miss-block { margin-top:10px; border:1px solid rgba(255,193,7,.35); border-radius:8px; overflow:hidden; background:rgba(255,193,7,.05); }
.wbbt-miss-block--info { border-color: var(--border2); background: var(--bg3); }
.wb-miss-hint--info { color: var(--text3); font-style: italic; }
.wbbt-miss-head { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 12px; font-size:12px; color:var(--text2); flex-wrap:wrap; }
.wbbt-miss-list { border-top:1px solid rgba(255,193,7,.25); }

/* Удержания */
.wbbt-ded-list { list-style:none; padding:0; margin:6px 0 0; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.wbbt-ded-list li { display:flex; justify-content:space-between; align-items:baseline; gap:8px; padding:6px 11px; border-bottom:1px solid var(--border); font-size:12px; }
.wbbt-ded-list li:last-child { border-bottom:none; }
.wbbt-ded-name { color:var(--text2); flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.wbbt-ded-val  { font-weight:700; color:var(--text); white-space:nowrap; flex-shrink:0; }

/* Ссылки на отчёты */
.wbbt-rep-links { margin-top:10px; border-top:1px solid var(--border); padding-top:10px; }
.wbbt-rep-links-title { font-size:10px; font-weight:700; color:var(--text3); text-transform:uppercase; letter-spacing:.3px; margin-bottom:6px; }
.wbbt-rep-item { display:flex; align-items:center; gap:6px; width:100%; padding:7px 10px; margin-bottom:4px; background:var(--bg3); border:1px solid var(--border); border-radius:7px; font-size:12px; font-weight:600; color:var(--accent); cursor:pointer; font-family:var(--font-body); text-align:left; transition:background .12s, border-color .12s; }
.wbbt-rep-item:hover { background:var(--bg2); border-color:var(--accent); }
.wbbt-rep-dates { font-size:11px; font-weight:400; color:var(--text3); margin-left:auto; }
.wbbt-rep-link-btn { font-size:12px; color:var(--accent); background:none; border:none; cursor:pointer; font-family:var(--font-body); padding:0; }
.wbbt-rep-link-btn:hover { text-decoration:underline; }
.wbbt-rep-note { font-size:11px; color:var(--text3); margin-top:4px; line-height:1.4; }

/* Адаптив: на узких экранах описания уходят наверх */
@media (max-width:900px) {
  .wbbt-panels { grid-template-columns:1fr; }
}

@media (max-width:640px) {
  .wbbt-grid { grid-template-columns:1fr; }
  .wbbt-grid-def { border-right:none; justify-content:flex-start; padding:10px 12px 6px; }
  .wbbt-grid-nums { border-bottom: 1px solid var(--border); padding:6px 12px 10px; }
  .wbbt-grid-def-profit { border-bottom: 1px solid var(--border); }
  .wbbt-grid-nums-profit { border-bottom:none; }
}

