/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo — редизайн вкладки «Запуск и ведение» (Советчик / advisor.js)
   ───────────────────────────────────────────────────────────────────────────
   ⚠ ГРАНИЦЫ (жёсткие, согласовано с Артёмом 2026-07-04):
   • ТОЛЬКО ВИЗУАЛ. Ни строки бэкенда/логики/данных.
   • Общий submodule advisor.js НЕ правится — Эталон рендерит его сам и этот файл
     НЕ грузит → Эталон не тронут. Подключается ТОЛЬКО в Nelvo-шелле (webui/index.html).
   • Всё скоупится под #content (контейнер advisor) → перебивает inline ADVISOR_CSS
     по специфичности; !important только там, где host-разметка эмитит inline-style.
   Источник: Downloads/design_handoff_zapusk_vedenie. Прецедент: webui/index.html:3529.
   ═══════════════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap');

/* маркер загрузки + общие токены (self-contained, emerald+ink) */
#content{
  --nelvo-redesign:1;
  --nlv-paper:#FFFFFF; --nlv-canvas:#FBFBFC;
  --nlv-ink-50:#F6F7F8; --nlv-ink-100:#EEF0F2; --nlv-ink-150:#E2E5E9; --nlv-ink-200:#C7CCD2;
  --nlv-ink-300:#9AA1AB; --nlv-ink-400:#767D87; --nlv-ink-500:#5A616B; --nlv-ink-600:#3D434D;
  --nlv-ink-700:#2C313A; --nlv-ink-800:#1E2227; --nlv-ink-900:#14171A;
  --nlv-accent-50:#EFF9F3; --nlv-accent-100:#DDF3E8; --nlv-accent-300:#6BD3A6;
  --nlv-accent-500:#12A56B; --nlv-accent-600:#0E8A57; --nlv-accent-700:#0B6E47;
  --nlv-warn-600:#B4730F; --nlv-warn-100:#FBF0DC; --nlv-danger:#C0392B; --nlv-danger-100:#F7E0DE;
  --nlv-r-sm:8px; --nlv-r-md:12px; --nlv-r-lg:16px; --nlv-r-pill:999px;
  --nlv-sh-xs:0 1px 2px rgba(20,23,26,.05);
  --nlv-sh-sm:0 1px 2px rgba(20,23,26,.06), 0 2px 6px rgba(20,23,26,.05);
  --nlv-sh-lg:0 12px 32px rgba(20,23,26,.10), 0 4px 8px rgba(20,23,26,.05);
  --nlv-font-sans:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --nlv-font-mono:"JetBrains Mono",ui-monospace,"SF Mono",monospace;
  --nlv-btn-hi:inset 0 1px 0 rgba(255,255,255,.26);
}

/* ── раскладка ── */
#content .adv-wrap{ grid-template-columns:minmax(0,1fr) 372px; gap:24px; }
#content .adv-sidebar{ gap:16px; }
/* FIX (QA-агент, критичный): мой #content .adv-wrap (спец. 1,1,0) бил host mobile-
   медиазапрос .adv-wrap (0,1,0) → на ≤1023px грид оставался 2-колоночным, главная
   колонка схлопывалась в 0px. Свой медиазапрос той же спецификации → на мобиле 1 колонка. */
@media(max-width:1023px){ #content .adv-wrap{ grid-template-columns:1fr; } }

/* ═══════════ ЗАГОЛОВОК ПРОЕКТА + «Поток активен» ═══════════ */
#content .adv-header-main h2,
#content .adv-header h2{ font:800 28px/1.15 var(--nlv-font-sans); letter-spacing:-.02em; color:var(--nlv-ink-900); }
#content .adv-header .adv-acct-sub,
#content .adv-header-main .adv-meta{ font:400 14px/1.5 var(--nlv-font-sans); color:var(--nlv-ink-500); }

/* ═══════════ ПЕРЕКЛЮЧАТЕЛЬ ЭТАПОВ (pills) ═══════════ */
#content .adv-pill{
  border:1px solid var(--nlv-ink-150); background:var(--nlv-paper); color:var(--nlv-ink-700);
  border-radius:var(--nlv-r-pill); padding:7px 14px 7px 8px; gap:8px;
  font:600 13.5px/1 var(--nlv-font-sans);
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease, color .15s ease;
}
#content .adv-pill:hover{ border-color:var(--nlv-accent-300); box-shadow:0 0 0 3px var(--nlv-accent-50); }
#content .adv-pill-num{
  width:22px; height:22px; border-radius:var(--nlv-r-pill); background:var(--nlv-ink-100);
  color:var(--nlv-ink-500); font:700 12px/1 var(--nlv-font-mono); display:grid; place-items:center; flex:0 0 auto;
}
#content .adv-pill-active{
  background:var(--nlv-accent-600); border-color:var(--nlv-accent-700); color:#fff;
  box-shadow:var(--nlv-btn-hi), 0 4px 12px rgba(14,138,87,.22);
}
#content .adv-pill-active .adv-pill-num{ background:rgba(255,255,255,.22); color:#fff; }
#content .adv-pill-done{ background:var(--nlv-paper); border-color:var(--nlv-ink-150); color:var(--nlv-ink-700); }
#content .adv-pill-done .adv-pill-num{ background:var(--nlv-accent-100); color:var(--nlv-accent-700); }
#content .adv-pill-locked,
#content .adv-pill-skipped{ color:var(--nlv-ink-400); border-style:dashed; border-color:var(--nlv-ink-200); }
#content .adv-pill-locked .adv-pill-num,
#content .adv-pill-skipped .adv-pill-num{ background:var(--nlv-ink-100); color:var(--nlv-ink-300); }
#content .adv-pill-tool{ border-style:dashed; border-color:var(--nlv-ink-200); color:var(--nlv-ink-500); }

/* ═══════════ СТРОКА СТАТУСА ПОДКЛЮЧЕНИЯ ═══════════ */
#content .adv-conn,
#content .adv-conn-line{
  border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); background:var(--nlv-paper);
  box-shadow:var(--nlv-sh-xs); padding:12px 16px;
}
#content .adv-conn-chip{ font:600 13px/1 var(--nlv-font-sans); color:var(--nlv-ink-700); gap:7px; }
#content .adv-conn-dot{ width:8px; height:8px; }
#content .adv-conn-val,
#content .adv-conn-counter{ font-family:var(--nlv-font-mono); color:var(--nlv-ink-400); }
#content .adv-conn-line-cta a,
#content .adv-conn-line-cta{ color:var(--nlv-accent-700); font-weight:600; }

/* ═══════════ ПАНЕЛЬ АКТИВНОГО ЭТАПА (карточка) ═══════════ */
#content .adv-panel,
#content .adv-card{
  background:var(--nlv-paper); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-lg);
  box-shadow:var(--nlv-sh-sm); padding:22px;
}
#content .adv-substage-title,
#content .adv-panel > .adv-header h3{
  font:800 22px/1.2 var(--nlv-font-sans); letter-spacing:-.01em; color:var(--nlv-ink-900);
}
#content .adv-meta,
#content .adv-meta-sm{ color:var(--nlv-ink-500); font-family:var(--nlv-font-sans); }
#content .adv-meta-xs{ font:500 11px/1.3 var(--nlv-font-mono); color:var(--nlv-ink-400); }

/* ═══════════ СТАТУС-БЕЙДЖИ ЭТАПА/ПОДЭТАПА ═══════════ */
#content .adv-status-badge{
  border-radius:var(--nlv-r-pill); font:600 12px/1 var(--nlv-font-sans); padding:5px 11px; gap:6px; border:1px solid transparent;
}
#content .adv-status-done,
#content .adv-status-badge.adv-status-done{ background:var(--nlv-accent-100); color:var(--nlv-accent-700); }
#content .adv-status-awaiting,
#content .adv-status-pending{ background:var(--nlv-warn-100); color:var(--nlv-warn-600); }
#content .adv-status-running{ background:var(--nlv-accent-50); color:var(--nlv-accent-700); }
#content .adv-status-skipped{ background:var(--nlv-ink-100); color:var(--nlv-ink-500); }

/* ═══════════ КНОПКИ (3D primary/approve · secondary · ghost) ═══════════ */
#content .btn.btn-primary,
#content .btn.btn-success{
  background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700));
  border:1px solid var(--nlv-accent-700); color:#fff; border-radius:var(--nlv-r-sm);
  font:600 13.5px/1 var(--nlv-font-sans); padding:10px 16px; letter-spacing:-.005em;
  box-shadow:var(--nlv-btn-hi), 0 1px 2px rgba(11,110,71,.35), 0 5px 13px rgba(18,165,107,.20);
  transition:filter .14s ease, transform .08s ease, box-shadow .14s ease;
}
#content .btn.btn-success{ background:linear-gradient(180deg,var(--nlv-accent-600),var(--nlv-accent-700)); }
#content .btn.btn-primary:hover,
#content .btn.btn-success:hover{ filter:brightness(1.04); box-shadow:var(--nlv-btn-hi), 0 7px 18px rgba(18,165,107,.28); }
#content .btn.btn-primary:active,
#content .btn.btn-success:active{ transform:translateY(1px) scale(.99); box-shadow:var(--nlv-btn-hi), 0 2px 6px rgba(11,110,71,.30); }
#content .btn.btn-primary:disabled,
#content .btn.btn-success:disabled{ opacity:.55; filter:grayscale(.15); cursor:default; }
#content .btn.btn-outline{
  background:var(--nlv-paper); border:1px solid var(--nlv-ink-200); color:var(--nlv-ink-700);
  border-radius:var(--nlv-r-sm); font:600 13.5px/1 var(--nlv-font-sans); padding:10px 16px;
  box-shadow:var(--nlv-sh-xs); transition:filter .14s ease, border-color .14s ease, background .14s ease;
}
#content .btn.btn-outline:hover{ background:var(--nlv-ink-50); border-color:var(--nlv-ink-300); }
#content .btn.btn-outline:active{ transform:translateY(1px) scale(.99); }

/* ═══════════ ПОДЭТАПЫ (карточки) ═══════════ */
#content .adv-substage{
  background:var(--nlv-paper); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md);
  padding:16px 18px; transition:border-color .14s ease, box-shadow .14s ease;
}
#content .adv-substage:hover{ border-color:var(--nlv-ink-200); box-shadow:var(--nlv-sh-xs); }
#content .adv-substage-locked{ opacity:.72; background:var(--nlv-ink-50); }
#content .adv-substage-head{ gap:10px; }
#content .adv-substage-artifact{ margin-top:12px; }

/* артефакт / markdown-контейнер со скроллом */
#content .adv-artifact{
  border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); background:var(--nlv-canvas);
  padding:16px 18px; max-height:50vh; overflow:auto;
  font:400 14px/1.6 var(--nlv-font-sans); color:var(--nlv-ink-700);
}
#content .adv-artifact h1,#content .adv-artifact h2,#content .adv-artifact h3{ color:var(--nlv-ink-900); font-family:var(--nlv-font-sans); }
#content .adv-artifact code,#content .adv-artifact pre{ font-family:var(--nlv-font-mono); }

/* чипы (файлы/минусы/быстрые ссылки) */
#content .adv-chip{
  background:var(--nlv-ink-50); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-pill);
  font:500 12px/1.3 var(--nlv-font-sans); color:var(--nlv-ink-600); padding:5px 11px; gap:6px;
}
#content .adv-chip-x{ color:var(--nlv-ink-400); }
#content .adv-chip-size{ font-family:var(--nlv-font-mono); color:var(--nlv-ink-400); }

/* «Поправить» (_chatBox — inline-стили host → нужен !important точечно) */
#content .adv-substage-artifact input[type="text"],
#content .adv-substage-artifact textarea{
  border:1px solid var(--nlv-ink-200) !important; border-radius:var(--nlv-r-md) !important;
  background:var(--nlv-paper) !important; color:var(--nlv-ink-900) !important;
  padding:11px 14px !important; font:400 14px/1.4 var(--nlv-font-sans) !important;
}
#content .adv-substage-artifact input[type="text"]:focus,
#content .adv-substage-artifact textarea:focus{
  outline:none !important; border-color:var(--nlv-accent-500) !important; box-shadow:0 0 0 3px var(--nlv-accent-50) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   ЗОНА B — ПРАВАЯ ПАНЕЛЬ (верифицировано агентом: Playwright @2x, console чист)
   ═══════════════════════════════════════════════════════════════════════════ */
#content .adv-live{ border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-lg); background:var(--nlv-paper); box-shadow:var(--nlv-sh-xs); padding:20px; gap:16px; }
#content .adv-live-title{ font:800 18px/1.2 var(--nlv-font-sans); color:var(--nlv-ink-900); letter-spacing:-.01em; }
#content .adv-live-head{ align-items:flex-start; gap:12px; }
#content .adv-live-tabs{ gap:2px; background:var(--nlv-ink-100); padding:3px; border-radius:var(--nlv-r-pill); flex-wrap:nowrap; }
#content .adv-live-tab{ border:1px solid transparent; background:transparent; color:var(--nlv-ink-500); font:600 12px/1 var(--nlv-font-sans); padding:7px 12px; border-radius:var(--nlv-r-pill); transition:color .15s ease, background .15s ease, box-shadow .15s ease; }
#content .adv-live-tab:hover{ color:var(--nlv-ink-700); }
#content .adv-live-tab.active{ background:var(--nlv-paper); color:var(--nlv-ink-900); box-shadow:var(--nlv-sh-xs); font-weight:700; }
#content .adv-live-period{ font:500 12px/1 var(--nlv-font-mono); color:var(--nlv-ink-400); letter-spacing:.01em; margin-top:-6px; }
#content .adv-live-metrics{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#content .adv-live-metric{ background:var(--nlv-paper); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); padding:12px 14px; min-height:0; text-align:left; align-items:stretch; justify-content:flex-start; gap:4px; overflow:hidden; }
#content .adv-live-metric-label{ order:-1; font:500 11px/1.2 var(--nlv-font-mono); color:var(--nlv-ink-400); text-transform:uppercase; letter-spacing:.05em; text-align:left; }
#content .adv-live-metric-val{ font:600 24px/1.05 var(--nlv-font-mono); color:var(--nlv-ink-900); font-variant-numeric:tabular-nums; text-align:left; max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#content .adv-live-metric-qual{ font:500 11px/1.2 var(--nlv-font-sans); color:var(--nlv-warn-600); font-style:normal; text-align:left; margin-top:0; }
#content .adv-live-metric.adv-live-metric-soft{ opacity:1; }
#content .adv-live-metric.adv-live-metric-soft .adv-live-metric-val{ color:var(--nlv-ink-500); }
#content .adv-live-warning{ background:var(--nlv-ink-50); color:var(--nlv-ink-500); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); padding:12px 14px; font:400 12.5px/1.45 var(--nlv-font-sans); }
#content .adv-live-warning .adv-icn{ color:var(--nlv-ink-400); }
#content .adv-live-warning-body{ gap:8px; }
#content .adv-live-warning-btn{ background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)); border:1px solid var(--nlv-accent-700); color:#fff; box-shadow:var(--nlv-btn-hi), var(--nlv-sh-xs); border-radius:var(--nlv-r-sm); font:600 12px/1 var(--nlv-font-sans); padding:8px 14px; cursor:pointer; transition:filter .14s ease, transform .06s ease; }
#content .adv-live-warning-btn:hover{ filter:brightness(.97); }
#content .adv-live-warning-btn:active{ transform:translateY(1px) scale(.99); }
/* чат «Спросить Nelvo» */
#content .adv-sidebar-section:has(.adv-chat-toggle){ border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-lg); background:var(--nlv-paper); box-shadow:var(--nlv-sh-xs); padding:16px; gap:14px; }
#content .adv-chat-toggle{ width:100%; justify-content:space-between; background:transparent; border:none; color:var(--nlv-ink-900); font:800 18px/1.2 var(--nlv-font-sans); letter-spacing:-.01em; padding:0; border-radius:0; cursor:pointer; }
#content .adv-chat-toggle:hover{ background:transparent; }
#content .adv-chat-toggle svg,#content .adv-chat-toggle .adv-icn{ color:var(--nlv-accent-600); flex:0 0 auto; order:-1; }
#content .adv-chat-drawer{ background:transparent; border:none; border-radius:0; }
#content .adv-chat-drawer[aria-expanded="true"]{ max-height:600px; border:none; }
#content .adv-chat-log{ padding:0 0 4px; gap:12px; min-height:0; }
#content .adv-chat-msg.user .adv-chat-bubble{ background:var(--nlv-ink-900); color:#fff; border-radius:14px; border-bottom-right-radius:5px; font:500 14px/1.45 var(--nlv-font-sans); }
#content .adv-chat-msg.bot .adv-chat-bubble{ background:var(--nlv-ink-50); color:var(--nlv-ink-700); border-radius:14px; border-bottom-left-radius:5px; font:400 14px/1.5 var(--nlv-font-sans); }
#content .adv-chat-bubble.error{ background:var(--nlv-danger); color:#fff; }
#content .adv-chat-input-row{ padding:0; border-top:none; margin-top:4px; flex-direction:column; align-items:stretch; gap:12px; }
#content .adv-chat-input{ width:100%; box-sizing:border-box; border:1px solid var(--nlv-ink-200); border-radius:var(--nlv-r-md); padding:12px 14px; font:400 14px/1.4 var(--nlv-font-sans); color:var(--nlv-ink-900); background:var(--nlv-paper); }
#content .adv-chat-input:focus{ outline:none; border-color:var(--nlv-accent-500); box-shadow:0 0 0 3px var(--nlv-accent-50); }
#content .adv-chat-input::placeholder{ color:var(--nlv-ink-400); }
#content .adv-chat-send{ align-self:flex-end; appearance:none; background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)); border:1px solid var(--nlv-accent-700); color:#fff; box-shadow:var(--nlv-btn-hi), var(--nlv-sh-xs); border-radius:var(--nlv-r-sm); height:auto; padding:9px 18px; font:600 13px/1 var(--nlv-font-sans); cursor:pointer; transition:filter .14s ease, transform .06s ease; }
#content .adv-chat-send:hover:not(:disabled){ filter:brightness(.97); }
#content .adv-chat-send:active:not(:disabled){ transform:translateY(1px) scale(.99); }
#content .adv-chat-send:disabled{ opacity:.5; cursor:not-allowed; }
#content .adv-chat-clear{ color:var(--nlv-ink-400); }
#content .adv-chat-clear:hover{ color:var(--nlv-accent-600); }
/* история прогонов */
#content .adv-sidebar-section:has(.adv-history-toggle){ border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-lg); background:var(--nlv-paper); box-shadow:var(--nlv-sh-xs); padding:16px; gap:14px; }
#content .adv-history-toggle{ width:100%; justify-content:space-between; background:transparent; border:none; color:var(--nlv-ink-900); font:800 18px/1.2 var(--nlv-font-sans); letter-spacing:-.01em; padding:0; border-radius:0; cursor:pointer; }
#content .adv-history-toggle:hover{ background:transparent; }
#content .adv-history-toggle-count{ font:600 12px/1 var(--nlv-font-mono); color:var(--nlv-ink-400); background:var(--nlv-ink-100); border-radius:var(--nlv-r-pill); padding:3px 9px; margin-left:8px; }
#content .adv-history-drawer[aria-expanded="true"]{ max-height:600px; }
#content .adv-history-inner{ padding:12px 0 0; gap:14px; }
#content .adv-history-group-title{ font:600 11px/1.2 var(--nlv-font-mono); color:var(--nlv-ink-400); text-transform:uppercase; letter-spacing:.06em; }
#content .adv-history-card{ background:var(--nlv-paper); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); padding:12px 14px; gap:10px; transition:border-color .14s ease, box-shadow .14s ease; }
#content .adv-history-card:hover{ border-color:var(--nlv-accent-300); box-shadow:var(--nlv-sh-xs); }
#content .adv-history-card-status.done{ background:var(--nlv-accent-500); }
#content .adv-history-card-status.running{ background:var(--nlv-warn-600); }
#content .adv-history-card-status.error,#content .adv-history-card-status.failed{ background:var(--nlv-danger); }
#content .adv-history-card-status.pending{ background:var(--nlv-ink-200); }
#content .adv-history-card-label{ font:600 13px/1.3 var(--nlv-font-sans); color:var(--nlv-ink-800); }
#content .adv-history-card-preview{ font:400 12px/1.4 var(--nlv-font-sans); color:var(--nlv-ink-500); }
#content .adv-history-card-date{ font:500 11px/1 var(--nlv-font-mono); color:var(--nlv-ink-400); }
#content .adv-history-empty{ font:400 13px/1.5 var(--nlv-font-sans); color:var(--nlv-ink-400); }

/* ═══════════════════════════════════════════════════════════════════════
   PER-STAGE специфика (собрано из оркестратора, каждая зона верифиц. мок-рендером)
   Все правила scoped #content, токены --nlv-*, !important только против host-inline.
   ═══════════════════════════════════════════════════════════════════════ */

/* ──────── stage1.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo · Зона STAGE1 — Этап 1 «Подготовка» вкладки «Запуск и ведение»
   ───────────────────────────────────────────────────────────────────────────
   Специфика зоны ПОВЕРХ базового оверлея (webui/ds/advisor-redesign.css):
     • «Бриф проекта» — сворачиваемый блок .adv-extra + поля .adv-conn-field /
       .adv-conn-input / .adv-extra-textarea + «Сохранить бриф».
     • «Досье клиента» — markdown-таблица ключ→значение внутри .adv-artifact
       (.adv-md table/th/td), значение с переносом overflow-wrap:anywhere.
     • «Материалы клиента» — заметки/ссылки/дропзона .adv-dropzone → чип-грид
       файлов (.adv-chip / .adv-chip-name / .adv-chip-size / .adv-chip-x).

   ⚠ ГРАНИЦЫ: только визуал. Всё под #content. Токены --nlv-* из базы (не
   переопределяю их блок). !important — лишь там, где host эмитит inline-style
   (adv-brief-status, adv-extra-status, adv-error). Классы .adv-chip /.adv-chip-x
   /.adv-chip-size / .adv-artifact уже в базе — здесь только НЕпокрытая специфика.
   advisor.js не тронут (читался только для реальных классов).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ═══════════ СВОРАЧИВАЕМЫЙ БЛОК (.adv-extra — бриф + доп. материалы) ═══════════ */
#content .adv-extra{
  margin-top:18px; border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-lg);
  background:var(--nlv-paper); box-shadow:var(--nlv-sh-xs); overflow:hidden;
}
#content .adv-extra-head{
  padding:14px 18px; background:var(--nlv-paper); gap:10px; user-select:none;
  font:700 14px/1.35 var(--nlv-font-sans); color:var(--nlv-ink-800);
  transition:background .14s ease;
}
#content .adv-extra-head:hover{ background:var(--nlv-ink-50); }
#content .adv-extra-head .adv-extra-chev{ color:var(--nlv-ink-300); flex:0 0 auto; }
#content .adv-extra.open .adv-extra-head{ border-bottom:1px solid var(--nlv-ink-150); }
#content .adv-extra.open .adv-extra-chev{ color:var(--nlv-accent-600); }
#content .adv-extra-body{ padding:18px; background:var(--nlv-canvas); }

/* ═══════════ ПОЛЯ ФОРМЫ БРИФА (.adv-conn-field / input / textarea) ═══════════ */
#content .adv-extra .adv-conn-field{ gap:6px; margin-bottom:14px; }
#content .adv-extra .adv-conn-field label,
#content .adv-extra-label{
  font:600 12px/1.3 var(--nlv-font-sans); color:var(--nlv-ink-500);
  letter-spacing:-.005em; margin:0 0 2px;
}
#content .adv-extra-label{ display:block; margin-top:14px; }
#content .adv-extra-label:first-child{ margin-top:0; }
#content .adv-extra .adv-conn-input,
#content .adv-extra-textarea,
#content .adv-extra .adv-urls-input{
  width:100%; box-sizing:border-box;
  border:1px solid var(--nlv-ink-200); border-radius:var(--nlv-r-md);
  background:var(--nlv-paper); color:var(--nlv-ink-900);
  padding:11px 14px; font:400 14px/1.45 var(--nlv-font-sans);
  transition:border-color .14s ease, box-shadow .14s ease;
}
#content .adv-extra-textarea{ min-height:96px; resize:vertical; }
#content .adv-extra .adv-urls-input{ min-height:84px; resize:vertical; font-family:var(--nlv-font-mono); font-size:13px; }
#content .adv-extra .adv-conn-input:focus,
#content .adv-extra-textarea:focus,
#content .adv-extra .adv-urls-input:focus{
  outline:none; border-color:var(--nlv-accent-500); box-shadow:0 0 0 3px var(--nlv-accent-50);
}
#content .adv-extra .adv-conn-input::placeholder,
#content .adv-extra-textarea::placeholder,
#content .adv-extra .adv-urls-input::placeholder{ color:var(--nlv-ink-300); }
/* статус-строки под кнопкой (host задаёт inline color/font-size → перебиваем точечно) */
#content #adv-brief-status,
#content #adv-extra-status{ font:500 12px/1.4 var(--nlv-font-sans) !important; color:var(--nlv-ink-400) !important; margin-top:10px !important; }

/* ═══════════ ДОСЬЕ КЛИЕНТА (таблица ключ→значение в .adv-artifact) ═══════════ */
#content .adv-artifact .adv-md table,
#content .adv-artifact table{
  width:100%; border-collapse:collapse; margin:6px 0 14px; table-layout:fixed;
  font:400 13.5px/1.5 var(--nlv-font-sans);
}
#content .adv-artifact .adv-md th,
#content .adv-artifact th{
  text-align:left; vertical-align:top; padding:9px 12px;
  background:var(--nlv-ink-50); color:var(--nlv-ink-500);
  font:600 11.5px/1.3 var(--nlv-font-mono); text-transform:uppercase; letter-spacing:.04em;
  border-bottom:1px solid var(--nlv-ink-150); width:26%; white-space:nowrap;
}
#content .adv-artifact .adv-md td,
#content .adv-artifact td{
  vertical-align:top; padding:9px 12px; color:var(--nlv-ink-700);
  border-bottom:1px solid var(--nlv-ink-100);
  overflow-wrap:anywhere; word-break:break-word;
}
#content .adv-artifact .adv-md td:first-child,
#content .adv-artifact td:first-child{
  color:var(--nlv-ink-500); font-weight:600; width:26%; white-space:normal;
}
#content .adv-artifact .adv-md tr:last-child td{ border-bottom:none; }

/* ═══════════ ДРОПЗОНА ФАЙЛОВ (.adv-dropzone) ═══════════ */
#content .adv-dropzone{
  flex-direction:column; align-items:center; gap:10px;
  padding:26px 20px; margin-top:8px; text-align:center;
  border:1.5px dashed var(--nlv-ink-200); border-radius:var(--nlv-r-md);
  background:var(--nlv-paper); color:var(--nlv-ink-400); cursor:pointer;
  transition:border-color .14s ease, background .14s ease, color .14s ease;
}
#content .adv-dropzone:hover{ border-color:var(--nlv-accent-300); background:var(--nlv-accent-50); color:var(--nlv-ink-600); }
#content .adv-dropzone.is-dragover{ border-color:var(--nlv-accent-500); background:var(--nlv-accent-50); color:var(--nlv-accent-700); }
#content .adv-dropzone svg{ color:var(--nlv-ink-300); }
#content .adv-dropzone:hover svg,
#content .adv-dropzone.is-dragover svg{ color:var(--nlv-accent-600); }
#content .adv-dropzone-hint{ font:500 11.5px/1.3 var(--nlv-font-sans); color:var(--nlv-ink-400); }

/* ═══════════ ЧИП-ГРИД ФАЙЛОВ (.adv-chips + .adv-chip-name — специфика зоны) ═══════════
   .adv-chip / .adv-chip-x / .adv-chip-size уже в базе — здесь только контейнер,
   выравнивание имени с ellipsis и небольшой апгрейд чипа под файловый вид. */
#content .adv-chips{ display:flex; flex-wrap:wrap; gap:8px; margin-top:12px; }
#content .adv-chips .adv-chip{
  padding:6px 8px 6px 11px; background:var(--nlv-paper);
  box-shadow:var(--nlv-sh-xs); max-width:100%;
}
#content .adv-chip-name{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:200px;
  color:var(--nlv-ink-700); font:500 12px/1.3 var(--nlv-font-sans);
}
#content .adv-chip-x{
  display:inline-flex; align-items:center; justify-content:center;
  width:18px; height:18px; border:none; background:transparent; cursor:pointer;
  border-radius:var(--nlv-r-pill); font-size:15px; line-height:1;
  color:var(--nlv-ink-300); transition:color .12s ease, background .12s ease;
}
#content .adv-chip-x:hover{ color:var(--nlv-danger); background:var(--nlv-danger-100); }

/* ═══════════ WARNING «Поля проекта пустые» (host inline background/color) ═══════════ */
#content .adv-error{
  margin-top:16px !important; gap:9px !important; align-items:flex-start !important;
  padding:12px 14px; border-radius:var(--nlv-r-md);
  background:var(--nlv-warn-100) !important; color:var(--nlv-warn-600) !important;
  font:500 12.5px/1.5 var(--nlv-font-sans);
}
#content .adv-error strong{ color:var(--nlv-warn-600); font-weight:700; }

/* ──────── stage2.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo · зона «stage2» — Этап 2 «Семантика» (Советчик / advisor.js)
   ───────────────────────────────────────────────────────────────────────────
   ТОЛЬКО ВИЗУАЛ. advisor.js не правится (читался только для реальных классов).
   Всё под #content, поверх базового оверлея webui/ds/advisor-redesign.css.
   Токены --nlv-* уже определены в базе — здесь НЕ переопределяются.
   !important — только против host inline-стилей (adv-urls-input host эмитит
   inline color/size на label; сам textarea без inline → без !important).

   Специфика зоны (чего НЕТ в базе):
   • .adv-md — markdown-подсистема артефакта #adv-artifact-stage-2 (база красит
     контейнер .adv-artifact и общие h1/h2/h3, но не .adv-md h3/h4/ul/ol/li/…);
   • .adv-md table — таблица кластеров, если придёт markdown-таблицей;
   • .adv-md blockquote / hr — семантика оформляет минус-слова и разделы;
   • .adv-sub-section + h4 — шапка «Семантика (этапы 2.1–2.5)»;
   • .adv-urls-input — textarea URL конкурентов.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── markdown-артефакт семантики: читаемая типографика ── */
#content .adv-artifact .adv-md{ font:400 14px/1.6 var(--nlv-font-sans); color:var(--nlv-ink-700); }
#content .adv-artifact .adv-md > :first-child{ margin-top:0; }
#content .adv-artifact .adv-md > :last-child{ margin-bottom:0; }
#content .adv-artifact .adv-md h3{
  font:800 17px/1.25 var(--nlv-font-sans); letter-spacing:-.01em; color:var(--nlv-ink-900);
  margin:20px 0 8px; padding-top:14px; border-top:1px solid var(--nlv-ink-100);
}
#content .adv-artifact .adv-md h3:first-child{ margin-top:0; padding-top:0; border-top:none; }
#content .adv-artifact .adv-md h4{
  font:700 11px/1.3 var(--nlv-font-mono); text-transform:uppercase; letter-spacing:.06em;
  color:var(--nlv-ink-400); margin:16px 0 6px;
}
#content .adv-artifact .adv-md p{ margin:0 0 10px; }
#content .adv-artifact .adv-md strong{ font-weight:700; color:var(--nlv-ink-900); }
#content .adv-artifact .adv-md em{ font-style:italic; color:var(--nlv-ink-600); }
#content .adv-artifact .adv-md a{ color:var(--nlv-accent-700); text-decoration:none; border-bottom:1px solid var(--nlv-accent-100); }
#content .adv-artifact .adv-md a:hover{ border-bottom-color:var(--nlv-accent-500); }
#content .adv-artifact .adv-md code{
  font:500 .88em/1.4 var(--nlv-font-mono); color:var(--nlv-accent-700);
  background:var(--nlv-accent-50); border:1px solid var(--nlv-accent-100);
  border-radius:var(--nlv-r-sm); padding:1px 6px;
}
#content .adv-artifact .adv-md pre{
  background:var(--nlv-ink-50); border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md);
  padding:12px 14px; margin:10px 0; overflow:auto;
}
#content .adv-artifact .adv-md pre code{ background:transparent; border:none; padding:0; color:var(--nlv-ink-700); }
#content .adv-artifact .adv-md hr{ border:none; border-top:1px solid var(--nlv-ink-150); margin:18px 0; }

/* ── списки семантики (кластеры / минус-слова, если приходят как ul/ol) ── */
#content .adv-artifact .adv-md ul,
#content .adv-artifact .adv-md ol{ margin:8px 0 14px; padding-left:22px; }
#content .adv-artifact .adv-md li{ margin:5px 0; padding-left:2px; }
#content .adv-artifact .adv-md li::marker{ color:var(--nlv-accent-500); font-weight:700; }
#content .adv-artifact .adv-md ul ul,
#content .adv-artifact .adv-md ol ol{ margin:5px 0; }

/* ── таблица кластеров (markdown-таблица .adv-md table, если рендерится) ── */
#content .adv-artifact .adv-md table{
  width:100%; border-collapse:separate; border-spacing:0; margin:12px 0 16px;
  border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); overflow:hidden;
  font:400 13px/1.45 var(--nlv-font-sans); color:var(--nlv-ink-700);
}
#content .adv-artifact .adv-md thead th{
  background:var(--nlv-ink-50); color:var(--nlv-ink-500);
  font:700 11px/1.3 var(--nlv-font-mono); text-transform:uppercase; letter-spacing:.05em;
  text-align:left; padding:10px 14px; border-bottom:1px solid var(--nlv-ink-150); white-space:nowrap;
}
#content .adv-artifact .adv-md tbody td{
  padding:10px 14px; border-bottom:1px solid var(--nlv-ink-100); vertical-align:top;
}
#content .adv-artifact .adv-md tbody tr:last-child td{ border-bottom:none; }
#content .adv-artifact .adv-md tbody tr:nth-child(even){ background:var(--nlv-canvas); }
#content .adv-artifact .adv-md tbody tr:hover{ background:var(--nlv-accent-50); }
#content .adv-artifact .adv-md tbody td:first-child{ font-weight:700; color:var(--nlv-ink-900); }
/* числовые колонки (кол-во фраз и т.п.) — моноширинно, вправо */
#content .adv-artifact .adv-md td[align="right"],
#content .adv-artifact .adv-md th[align="right"]{ text-align:right; font-family:var(--nlv-font-mono); font-variant-numeric:tabular-nums; }
#content .adv-artifact .adv-md td[align="center"],
#content .adv-artifact .adv-md th[align="center"]{ text-align:center; }

/* ── blockquote семантики (примечания / минус-слова-выноски) ── */
#content .adv-artifact .adv-md blockquote{
  margin:12px 0; padding:10px 16px; border-left:3px solid var(--nlv-accent-300);
  background:var(--nlv-accent-50); border-radius:0 var(--nlv-r-sm) var(--nlv-r-sm) 0;
  color:var(--nlv-ink-600); font:400 13.5px/1.55 var(--nlv-font-sans);
}
#content .adv-artifact .adv-md blockquote p:last-child{ margin-bottom:0; }

/* ── шапка блока подэтапов «Семантика (2.1–2.5)» ── */
#content .adv-sub-section{ margin-top:24px; }
#content .adv-sub-section > h4{
  font:800 15px/1.25 var(--nlv-font-sans); letter-spacing:-.01em; color:var(--nlv-ink-900);
  margin:0 0 14px; padding-bottom:10px; border-bottom:1px solid var(--nlv-ink-150);
}

/* ── textarea URL конкурентов (шаг 2.0) ── */
#content .adv-urls-input{
  width:100%; box-sizing:border-box; min-height:88px; resize:vertical;
  border:1px solid var(--nlv-ink-200); border-radius:var(--nlv-r-md);
  background:var(--nlv-paper); color:var(--nlv-ink-900);
  font:400 13px/1.5 var(--nlv-font-mono); padding:12px 14px;
  transition:border-color .14s ease, box-shadow .14s ease;
}
#content .adv-urls-input::placeholder{ color:var(--nlv-ink-300); }
#content .adv-urls-input:focus{ outline:none; border-color:var(--nlv-accent-500); box-shadow:0 0 0 3px var(--nlv-accent-50); }

/* ──────── stage3.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   ЗОНА stage3 — Этап 3 «Структура»: markdown-артефакт (.adv-artifact > .adv-md)
   ───────────────────────────────────────────────────────────────────────────
   Только визуал. Специфика зоны поверх базового оверлея advisor-redesign.css.
   Реальный DOM (advisor.js: advMarkdown → id="adv-artifact-stage-3"):
     <div class="adv-artifact"><div class="adv-md"> h3 · h4 · p · ul/ol · li ·
     strong · em · code </div></div>. Скролл (max-height:50vh) + фон/рамка
     .adv-artifact уже в базе — здесь НЕ дублирую, стилизую типографику .adv-md.
   Host-CSS .adv-md использует токены Эталона (--c-*/--ff-*), которых в Nelvo-
   шелле нет → перекрываю на --nlv-*. !important не нужен: #content .adv-md * бьёт
   host .adv-md * по id-специфичности; inline-стилей на этих тегах host не эмитит.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── контейнер markdown внутри артефакта ── */
#content .adv-artifact .adv-md{
  font:400 14px/1.6 var(--nlv-font-sans);
  color:var(--nlv-ink-700);
}
#content .adv-artifact .adv-md > :first-child{ margin-top:0; }
#content .adv-artifact .adv-md > :last-child{ margin-bottom:0; }

/* ── заголовки h1–h3 (advMarkdown маппит # / ## → h3, ### + → h4) ── */
#content .adv-artifact .adv-md h1{
  font:800 20px/1.25 var(--nlv-font-sans); letter-spacing:-.015em;
  color:var(--nlv-ink-900); margin:18px 0 9px;
}
#content .adv-artifact .adv-md h2{
  font:700 17px/1.3 var(--nlv-font-sans); letter-spacing:-.01em;
  color:var(--nlv-ink-900); margin:16px 0 8px;
}
#content .adv-artifact .adv-md h3{
  font:700 15px/1.3 var(--nlv-font-sans); letter-spacing:-.01em;
  color:var(--nlv-ink-900); margin:16px 0 7px;
}
#content .adv-artifact .adv-md h4{
  font:600 12px/1.3 var(--nlv-font-mono); letter-spacing:.04em;
  text-transform:uppercase; color:var(--nlv-ink-400); margin:14px 0 6px;
}

/* ── параграфы ── */
#content .adv-artifact .adv-md p{ margin:0 0 10px; }

/* ── списки ── */
#content .adv-artifact .adv-md ul,
#content .adv-artifact .adv-md ol{ margin:6px 0 12px; padding-left:20px; }
#content .adv-artifact .adv-md li{ margin:3px 0; }
#content .adv-artifact .adv-md li::marker{ color:var(--nlv-accent-500); }
#content .adv-artifact .adv-md ul ul,
#content .adv-artifact .adv-md ol ol,
#content .adv-artifact .adv-md ul ol,
#content .adv-artifact .adv-md ol ul{ margin:3px 0 4px; }

/* ── inline-разметка ── */
#content .adv-artifact .adv-md strong{ font-weight:700; color:var(--nlv-ink-900); }
#content .adv-artifact .adv-md em{ font-style:italic; color:var(--nlv-ink-600); }
#content .adv-artifact .adv-md code{
  font:500 .88em/1.4 var(--nlv-font-mono); color:var(--nlv-accent-700);
  background:var(--nlv-accent-50); border:1px solid var(--nlv-accent-100);
  border-radius:var(--nlv-r-sm); padding:1px 6px;
}

/* ── защитно: pre/blockquote/table/hr (advMarkdown их сейчас НЕ эмитит,
      но безопасно, если рендер расширят; без них правило просто не сработает) ── */
#content .adv-artifact .adv-md pre{
  font:500 12.5px/1.55 var(--nlv-font-mono); color:var(--nlv-ink-800);
  background:var(--nlv-ink-50); border:1px solid var(--nlv-ink-150);
  border-radius:var(--nlv-r-md); padding:12px 14px; margin:8px 0 12px;
  overflow-x:auto; white-space:pre;
}
#content .adv-artifact .adv-md pre code{
  background:none; border:none; padding:0; color:inherit; font-size:1em;
}
#content .adv-artifact .adv-md blockquote{
  margin:8px 0 12px; padding:4px 0 4px 14px;
  border-left:3px solid var(--nlv-accent-300); color:var(--nlv-ink-500);
}
#content .adv-artifact .adv-md hr{
  border:none; border-top:1px solid var(--nlv-ink-150); margin:16px 0;
}
#content .adv-artifact .adv-md table{
  width:100%; border-collapse:collapse; margin:8px 0 12px;
  font:400 13px/1.45 var(--nlv-font-sans);
}
#content .adv-artifact .adv-md th,
#content .adv-artifact .adv-md td{
  border:1px solid var(--nlv-ink-150); padding:8px 11px; text-align:left;
  vertical-align:top;
}
#content .adv-artifact .adv-md th{
  background:var(--nlv-ink-50); color:var(--nlv-ink-700); font-weight:700;
  font-family:var(--nlv-font-mono); font-size:11.5px; letter-spacing:.03em;
  text-transform:uppercase;
}
#content .adv-artifact .adv-md tr:nth-child(even) td{ background:var(--nlv-canvas); }

/* ── скролл-контейнер: держим 50vh (в базе уже так; тут — тонкий скроллбар зоны) ── */
#content .adv-artifact{ scrollbar-width:thin; scrollbar-color:var(--nlv-ink-200) transparent; }
#content .adv-artifact::-webkit-scrollbar{ width:9px; height:9px; }
#content .adv-artifact::-webkit-scrollbar-thumb{
  background:var(--nlv-ink-200); border-radius:var(--nlv-r-pill);
  border:2px solid var(--nlv-canvas);
}
#content .adv-artifact::-webkit-scrollbar-thumb:hover{ background:var(--nlv-ink-300); }
#content .adv-artifact::-webkit-scrollbar-track{ background:transparent; }

/* ──────── stage4.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   ЗОНА STAGE4 — Этап 4 «Объявления» (карточки 4.1, расширения 4.2, релевантность 4.5)
   ───────────────────────────────────────────────────────────────────────────
   Специфика зоны поверх базового оверлея (webui/ds/advisor-redesign.css).
   ⚠ advisor.js рендерит 4.1/4.2/4.5 чистыми INLINE-стилями через insertAdjacentHTML,
     БЕЗ классов-крючков (renderAdsCardsView / renderExtensionsView / renderRelevanceView).
     Контейнеры со стабильными id:
       #adv-artifact-sub-4_1 — карточки объявлений (метка кластера + карточки)
       #adv-artifact-sub-4_2 — расширения (быстрые ссылки / уточнения-чипы)
       #adv-artifact-sub-4_5 — таблица релевантности (score / группа / комментарий)
     Поэтому таргет = id-контейнер + структура ([style*=...], :first-child) + !important
     (перебить host inline-style — единственный доступный рычаг, классов нет).
   Границы: ТОЛЬКО ВИЗУАЛ. Ни строки логики/данных. Всё под #content. Токены --nlv-*.
   #fff допустим только на accent/тёмном фоне; hex-инлайны host'а матчим строкой в
   селекторе (это данные разметки, не наш новый цвет) и перекрываем токеном.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── общая обёртка структурных вьюх 4.x внутри артефакта ── */
#content #adv-artifact-sub-4_1 > div[style*="margin-top:12px"],
#content #adv-artifact-sub-4_2 > div[style*="margin-top:12px"],
#content #adv-artifact-sub-4_5 > div[style*="margin-top:12px"]{
  margin-top:14px !important;
}

/* заголовок вьюхи («Объявления — N шт», «Расширения…», «Релевантность N») */
#content #adv-artifact-sub-4_1 > div[style*="margin-top:12px"] > div[style*="font-weight:700"],
#content #adv-artifact-sub-4_2 > div[style*="margin-top:12px"] > div[style*="font-weight:700"],
#content #adv-artifact-sub-4_5 > div[style*="margin-top:12px"] > div[style*="font-weight:700"]{
  font:800 15px/1.25 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-900) !important;
  letter-spacing:-.01em;
  margin-bottom:10px;
}

/* ═══════════ 4.1 КАРТОЧКИ ОБЪЯВЛЕНИЙ ═══════════ */

/* метка кластера над группой карточек → mono uppercase, приглушённая */
#content #adv-artifact-sub-4_1 > div > div[style*="margin-top:12px"] > div[style*="font-weight:600"][style*="var(--ink-500"]{
  font:600 11px/1.3 var(--nlv-font-mono) !important;
  color:var(--nlv-ink-400) !important;
  text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:8px !important;
}

/* карточка объявления (host: border-radius:10px + padding:11px 13px) */
#content #adv-artifact-sub-4_1 div[style*="border-radius:10px"][style*="padding:11px 13px"]{
  border:1px solid var(--nlv-ink-150) !important;
  border-radius:var(--nlv-r-md) !important;
  background:var(--nlv-paper) !important;
  padding:14px 16px !important;
  margin-bottom:10px !important;
  box-shadow:var(--nlv-sh-xs);
  transition:border-color .14s ease, box-shadow .14s ease;
}
#content #adv-artifact-sub-4_1 div[style*="border-radius:10px"][style*="padding:11px 13px"]:hover{
  border-color:var(--nlv-ink-200) !important;
  box-shadow:var(--nlv-sh-sm);
}

/* заголовок объявления (host красит #1a73e8 → перекрываем в accent-700, 16/700) */
#content #adv-artifact-sub-4_1 div[style*="color:#1a73e8"]{
  font:700 16px/1.35 var(--nlv-font-sans) !important;
  color:var(--nlv-accent-700) !important;
  letter-spacing:-.005em;
}
/* вторая часть заголовка (title2) — тот же цвет-акцент, наследует размер строки */
#content #adv-artifact-sub-4_1 div[style*="color:#1a73e8"] span[style*="color:#1a73e8"]{
  color:var(--nlv-accent-700) !important;
}

/* отображаемый URL / displayPath (host: #0a8a0a) → приглушённо-акцентный, mono */
#content #adv-artifact-sub-4_1 div[style*="color:#0a8a0a"]{
  font:500 12px/1.4 var(--nlv-font-mono) !important;
  color:var(--nlv-accent-600) !important;
  margin:4px 0 !important;
}

/* тело объявления (host: #3c4043) → ink-600, читаемый */
#content #adv-artifact-sub-4_1 div[style*="color:#3c4043"]{
  font:400 13.5px/1.5 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-600) !important;
  margin-top:6px !important;
}

/* ═══════════ 4.2 РАСШИРЕНИЯ — быстрые ссылки / уточнения-чипы ═══════════ */

/* подзаголовки «Быстрые ссылки» / «Уточнения» → mono uppercase-метка */
#content #adv-artifact-sub-4_2 div[style*="font-size:12.5px"][style*="var(--ink-500"]{
  font:600 11px/1.3 var(--nlv-font-mono) !important;
  color:var(--nlv-ink-400) !important;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin:12px 0 6px !important;
}
/* список быстрых ссылок (host инлайнит font-size/line-height/padding-left на ul) */
#content #adv-artifact-sub-4_2 ul{
  font:400 13.5px/1.6 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-700) !important;
}
#content #adv-artifact-sub-4_2 ul li{ margin-bottom:2px; }
#content #adv-artifact-sub-4_2 ul li span[style*="var(--ink-400"]{ color:var(--nlv-ink-400) !important; }
/* чипы уточнений (host: border-radius:999px inline) → DS-чип */
#content #adv-artifact-sub-4_2 span[style*="border-radius:999px"]{
  background:var(--nlv-ink-50) !important;
  border:1px solid var(--nlv-ink-150) !important;
  border-radius:var(--nlv-r-pill) !important;
  color:var(--nlv-ink-600) !important;
  font:500 12px/1.3 var(--nlv-font-sans) !important;
  padding:5px 11px !important;
  margin:0 6px 6px 0 !important;
}

/* ═══════════ 4.5 ТАБЛИЦА РЕЛЕВАНТНОСТИ ═══════════ */

/* строка (host: border-top + padding:8px 0) */
#content #adv-artifact-sub-4_5 div[style*="border-top"][style*="padding:8px 0"]{
  border-top:1px solid var(--nlv-ink-100) !important;
  padding:12px 0 !important;
  gap:14px !important;
  align-items:flex-start;
}

/* score — крупный mono tabular; цвет по порогам через матч host-инлайна:
   ≥0.9 host=#0a8a0a → accent · ≥0.75 host=#b8860b → warn · <0.75 host=#c0392b → danger */
#content #adv-artifact-sub-4_5 div[style*="font-weight:700"][style*="min-width:42px"]{
  font:700 15px/1.2 var(--nlv-font-mono) !important;
  min-width:48px !important;
  font-variant-numeric:tabular-nums;
}
#content #adv-artifact-sub-4_5 div[style*="min-width:42px"][style*="color:#0a8a0a"]{ color:var(--nlv-accent-600) !important; }
#content #adv-artifact-sub-4_5 div[style*="min-width:42px"][style*="color:#b8860b"]{ color:var(--nlv-warn-600) !important; }
#content #adv-artifact-sub-4_5 div[style*="min-width:42px"][style*="color:#c0392b"]{ color:var(--nlv-danger) !important; }

/* группа (title1) — заголовок строки */
#content #adv-artifact-sub-4_5 div[style*="border-top"][style*="padding:8px 0"] > div[style*="flex:1"] > div[style*="font-weight:600"]:first-child{
  font:600 13.5px/1.35 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-900) !important;
}
/* метка кластера под группой (host: var(--ink-400)) → mono uppercase */
#content #adv-artifact-sub-4_5 div[style*="flex:1"] > div[style*="var(--ink-400"]{
  font:600 11px/1.3 var(--nlv-font-mono) !important;
  color:var(--nlv-ink-400) !important;
  text-transform:uppercase;
  letter-spacing:.05em;
  margin-top:2px;
}
/* комментарий (host: var(--ink-500)) */
#content #adv-artifact-sub-4_5 div[style*="flex:1"] > div[style*="var(--ink-500"]{
  font:400 12.5px/1.5 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-500) !important;
  margin-top:4px !important;
}

/* ──────── stage5.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo advisor — ЗОНА stage5 «Аудитории» (специфика зоны поверх базы)
   ───────────────────────────────────────────────────────────────────────────
   База: nelvo-repo/webui/ds/advisor-redesign.css (токены --nlv-*, .btn, .adv-*).
   Здесь — ТОЛЬКО то, чего в базе нет: карточка «Уже собранные аудитории»,
   3-колоночная сетка секций (Direct ретаргетинг / Метрика сегменты / цели),
   заголовки секций с точкой-маркером, списки, блок ошибок доступа (danger).
   ⚠ ТОЛЬКО ВИЗУАЛ. advisor.js не трогается. Всё под #content.
   !important — только против host inline-стилей (grid-template-columns:1fr на
   обёртке + inline background/color/margin на .adv-error). Токены --nlv-*.
   Реальные классы взяты из renderAudiencesLists()/renderStage5Body() advisor.js.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Заголовок подсекции «Уже собранные аудитории» ── */
#content .adv-sub-section h4{
  display:inline-flex; align-items:center; gap:8px;
  font:800 15px/1.3 var(--nlv-font-sans); letter-spacing:-.01em; color:var(--nlv-ink-900);
}

/* ── Обёртка блока аудиторий = карточка (paper, обводка ink-150) ── */
#content #adv-audiences-box{
  background:var(--nlv-paper);
  border:1px solid var(--nlv-ink-150);
  border-radius:var(--nlv-r-md);
  padding:16px 18px;
}

/* ── Сетка в 3 колонки (host эмитит inline grid-template-columns:1fr → !important) ── */
#content #adv-audiences-box > div[style]{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:20px !important;
  align-items:start;
}

/* ── Колонка = чистая ячейка (снимаем host dashed-рамку/margin/max-height) ── */
#content #adv-audiences-box .adv-context-preview{
  background:transparent; border:none; border-radius:0;
  padding:0; margin:0; max-height:none; overflow:visible;
  font:400 13px/1.45 var(--nlv-font-sans); color:var(--nlv-ink-600); min-width:0;
}

/* Заголовок секции: mono-uppercase + цветная точка-маркер + разделитель */
#content #adv-audiences-box .adv-section-title{
  display:flex; align-items:center; gap:8px;
  font:600 11px/1.2 var(--nlv-font-mono);
  text-transform:uppercase; letter-spacing:.07em; color:var(--nlv-ink-400);
  margin:0 0 12px; padding-bottom:8px; border-bottom:1px solid var(--nlv-ink-100);
}
#content #adv-audiences-box .adv-section-title::before{
  content:""; flex:0 0 auto; width:7px; height:7px; border-radius:var(--nlv-r-pill);
  background:var(--nlv-accent-500);
}

/* ── Списки аудиторий (маркер-точка, tight) ── */
#content #adv-audiences-box .adv-list-tight{
  list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:7px;
}
#content #adv-audiences-box .adv-list-tight li{
  position:relative; padding-left:16px;
  font:400 13px/1.4 var(--nlv-font-sans); color:var(--nlv-ink-700); overflow-wrap:anywhere;
}
#content #adv-audiences-box .adv-list-tight li::before{
  content:""; position:absolute; left:3px; top:8px;
  width:4px; height:4px; border-radius:var(--nlv-r-pill); background:var(--nlv-ink-200);
}

/* приписка типа «(retargeting)», «(sitelink)» */
#content #adv-audiences-box .adv-meta-xs{
  font:500 11px/1.3 var(--nlv-font-mono); color:var(--nlv-ink-400); letter-spacing:.01em;
}

/* «пусто» */
#content #adv-audiences-box .adv-hint{
  font:italic 400 12px/1.4 var(--nlv-font-sans); color:var(--nlv-ink-300);
}

/* спиннер-строка загрузки (одиночный .adv-context-preview без сетки) */
#content #adv-audiences-box > .adv-context-preview{
  color:var(--nlv-ink-400); font:400 13px/1.45 var(--nlv-font-sans);
}

/* ── Блок ошибок доступа (host даёт inline warn background/color → danger + !important) ── */
#content #adv-audiences-box .adv-error{
  grid-column:1 / -1 !important;
  margin-top:12px !important;
  padding:11px 13px !important;
  background:var(--nlv-danger-100) !important;
  color:var(--nlv-danger) !important;
  border:1px solid var(--nlv-danger);
  border-radius:var(--nlv-r-md);
  font:400 12.5px/1.45 var(--nlv-font-sans);
  display:flex; gap:8px; align-items:flex-start;
}
#content #adv-audiences-box .adv-error .adv-icn,
#content #adv-audiences-box .adv-error svg{
  flex:0 0 auto; margin-top:1px; color:var(--nlv-danger);
}

/* ── Mobile 375px — секции в одну колонку с разделителями ── */
@media (max-width:640px){
  #content #adv-audiences-box > div[style]{ grid-template-columns:1fr !important; gap:14px !important; }
  #content #adv-audiences-box .adv-context-preview{
    border-bottom:1px solid var(--nlv-ink-100); padding-bottom:12px;
  }
  #content #adv-audiences-box .adv-context-preview:last-of-type{ border-bottom:none; padding-bottom:0; }
}

/* ──────── stage6.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   ЗОНА stage6 — Этап 6 «Запуск»: предзапусковый чек-лист (артефакт .adv-md)
   ───────────────────────────────────────────────────────────────────────────
   Только визуал. Всё под #content. Токены --nlv-* из базового оверлея
   (webui/ds/advisor-redesign.css) — не переопределяю. Не дублирую базовый
   .adv-artifact/.adv-md/.btn/.adv-status-* — только специфику этой зоны.
   Артефакт stage-6 приходит markdown'ом → advMarkdown() → .adv-md с <h3/h4>,
   <ul><li>, <strong>. GFM-checkbox [ ]/[x] парсер НЕ поддерживает, отдельного
   DOM для чекбоксов/таблицы метрик нет → стилизуем список как чек-лист
   косметически (маркер-галочка, «ключ» = <strong>). Скоуп: #adv-artifact-stage-6.
   ═══════════════════════════════════════════════════════════════════════════ */

/* контейнер артефакта этого этапа — чуть плотнее, как «карточка чек-листа» */
#content #adv-artifact-stage-6{
  padding:6px 4px;
}
#content #adv-artifact-stage-6 .adv-md{
  display:flex; flex-direction:column; gap:2px;
}

/* заголовок «Предзапусковый чек-лист» внутри артефакта */
#content #adv-artifact-stage-6 .adv-md h3{
  font:700 14px/1.3 var(--nlv-font-sans); letter-spacing:-.01em;
  color:var(--nlv-ink-900); margin:2px 0 10px;
}
#content #adv-artifact-stage-6 .adv-md h4{
  font:600 12px/1.3 var(--nlv-font-mono); text-transform:uppercase; letter-spacing:.05em;
  color:var(--nlv-ink-400); margin:14px 0 6px;
}

/* сам чек-лист: снять маркеры браузера, каждая строка = ряд с галочкой-чипом */
#content #adv-artifact-stage-6 .adv-md ul{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:2px;
}
#content #adv-artifact-stage-6 .adv-md li{
  position:relative; margin:0; padding:11px 12px 11px 40px;
  border-radius:var(--nlv-r-md);
  font:500 13.5px/1.5 var(--nlv-font-sans); color:var(--nlv-ink-700);
  transition:background .12s ease;
}
#content #adv-artifact-stage-6 .adv-md li:hover{
  background:var(--nlv-ink-50);
}
/* галочка-чип слева (косметический маркер выполненного пункта) */
#content #adv-artifact-stage-6 .adv-md li::before{
  content:""; position:absolute; left:10px; top:11px;
  width:20px; height:20px; border-radius:var(--nlv-r-pill);
  background:var(--nlv-accent-100) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230B6E47' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>") center / 12px 12px no-repeat;
  box-shadow:inset 0 0 0 1px var(--nlv-accent-100);
}
#content #adv-artifact-stage-6 .adv-md li::marker{ content:none; }

/* тонкий разделитель между пунктами чек-листа (как строки таблицы в эталоне) */
#content #adv-artifact-stage-6 .adv-md li + li{
  border-top:1px solid var(--nlv-ink-100);
  border-radius:0;
}
#content #adv-artifact-stage-6 .adv-md li:hover + li{ border-top-color:transparent; }
#content #adv-artifact-stage-6 .adv-md li:hover{ border-radius:var(--nlv-r-md); }

/* «ключ» пункта (МЕТРИКА / UTM / БЮДЖЕТ / МОДЕРАЦИЯ) — <strong> в начале строки */
#content #adv-artifact-stage-6 .adv-md li strong{
  color:var(--nlv-ink-900); font-weight:700;
}

/* нумерованный вариант чек-листа (если приходит 1. 2. 3.) — тот же ряд-стиль */
#content #adv-artifact-stage-6 .adv-md ol{
  list-style:none; margin:0; padding:0;
  display:flex; flex-direction:column; gap:2px;
  counter-reset:nlv-s6;
}
#content #adv-artifact-stage-6 .adv-md ol li{
  counter-increment:nlv-s6;
}
#content #adv-artifact-stage-6 .adv-md ol li::before{
  content:counter(nlv-s6); background-image:none;
  font:700 11px/20px var(--nlv-font-mono); text-align:center;
  color:var(--nlv-accent-700);
}

/* вводный/пояснительный абзац внутри артефакта */
#content #adv-artifact-stage-6 .adv-md p{
  font:400 13px/1.55 var(--nlv-font-sans); color:var(--nlv-ink-500);
  margin:2px 0 8px; padding:0 2px;
}

/* ──────── stage7.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo · зона «stage7» — Этап 7 «Ведение» (вкладка «Запуск и ведение»)
   ───────────────────────────────────────────────────────────────────────────
   Только специфика зоны. НЕ дублирует базу (webui/ds/advisor-redesign.css):
   плитки live-stats (.adv-live*), .adv-substage, .adv-status-*, .btn, .adv-meta —
   уже там. Здесь ТОЛЬКО то, что база не покрывает и рендерит host-разметка
   этапа 7: лента авто-сигналов мониторинга (#adv-alerts-box → .adv-alerts*/
   .adv-alert*) и заголовок секции подэтапов 7.1–7.7 (.adv-sub-section h4).
   Токены --nlv-* уже определены базовым оверлеем; токен-блок НЕ переопределяем.
   Всё под #content. !important — нет (host не эмитит inline-style на этих узлах).
   Реальные классы сверены по advisor.js (loadAlerts / renderStage7Body).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Заголовок секции «Подэтапы 7.1–7.7» ── */
#content .adv-sub-section > h4{
  font:600 12px/1.2 var(--nlv-font-mono);
  color:var(--nlv-ink-400);
  text-transform:uppercase;
  letter-spacing:.06em;
  margin:4px 0 12px;
}

/* ── Лента авто-сигналов мониторинга (#adv-alerts-box) ── */

/* загрузка */
#content .adv-alerts-loading{
  display:flex; align-items:center; gap:8px;
  font:400 13px/1.4 var(--nlv-font-sans); color:var(--nlv-ink-400);
  margin-bottom:16px;
}

/* «Сигналов нет» — спокойный accent-тон (всё ок) */
#content .adv-alerts-empty{
  display:flex; align-items:flex-start; gap:9px;
  background:var(--nlv-accent-50);
  border:1px solid var(--nlv-accent-100);
  border-radius:var(--nlv-r-md);
  color:var(--nlv-ink-600);
  padding:12px 14px;
  font:400 12.5px/1.5 var(--nlv-font-sans);
  margin-bottom:16px;
}
#content .adv-alerts-empty .adv-alerts-ok-icn{
  color:var(--nlv-accent-600); font-weight:700; flex:0 0 auto; line-height:1.5;
}

/* контейнер списка сигналов */
#content .adv-alerts{
  display:flex; flex-direction:column; gap:8px;
  margin-bottom:16px;
}

/* шапка «Сигналы мониторинга» + счётчик */
#content .adv-alerts-head{
  display:flex; align-items:center; gap:8px;
  font:600 11px/1.2 var(--nlv-font-mono);
  color:var(--nlv-ink-400);
  text-transform:uppercase; letter-spacing:.06em;
  margin-bottom:2px;
}
#content .adv-alerts-badge{
  background:var(--nlv-warn-100); color:var(--nlv-warn-600);
  border-radius:var(--nlv-r-pill);
  padding:2px 9px;
  font:600 11px/1.4 var(--nlv-font-mono);
  letter-spacing:0;
}

/* строка сигнала — по умолчанию severity=warning (амбер акцент слева) */
#content .adv-alert-row{
  display:flex; align-items:center; gap:10px;
  background:var(--nlv-warn-100);
  border:1px solid var(--nlv-warn-100);
  border-left:3px solid var(--nlv-warn-600);
  border-radius:var(--nlv-r-md);
  padding:11px 13px;
  font:500 12.5px/1.45 var(--nlv-font-sans);
}
#content .adv-alert-row.adv-alert-warn{
  background:var(--nlv-warn-100);
  border-color:var(--nlv-warn-100);
  border-left-color:var(--nlv-warn-600);
}
/* severity=critical — красный акцент */
#content .adv-alert-row.adv-alert-crit{
  background:var(--nlv-danger-100);
  border-color:var(--nlv-danger-100);
  border-left-color:var(--nlv-danger);
}
#content .adv-alert-dot{
  width:8px; height:8px; border-radius:var(--nlv-r-pill);
  background:var(--nlv-warn-600); flex:0 0 auto;
}
#content .adv-alert-row.adv-alert-crit .adv-alert-dot{ background:var(--nlv-danger); }
#content .adv-alert-msg{ color:var(--nlv-ink-800); flex:1 1 auto; }
#content .adv-alert-date{
  color:var(--nlv-ink-400); font:500 11px/1 var(--nlv-font-mono);
  flex:0 0 auto; white-space:nowrap;
}

/* ──────── tools.css ──────── */
/* ═══════════════════════════════════════════════════════════════════════════
   Nelvo — редизайн ЗОНА «ИНСТРУМЕНТЫ» вкладки «Запуск и ведение» (advisor.js)
   ───────────────────────────────────────────────────────────────────────────
   Только специфика доп-инструментов #8 «Добавить кампанию» и #9 «РСЯ-картинки».
   • Форма/панель = .adv-card, .adv-pill, .btn* → уже покрыты базовым оверлеем,
     здесь НЕ дублируются.
   • #qa-result (превью сборки) и #adv-rsya-grid-4_4 (грид креативов) host эмитит
     жирными inline-стилями (border/color/background hex) → перебиваем точечными
     [style*=…] + !important ТОЛЬКО против host inline. Токены --nlv-* из базы.
   • Всё под #content. advisor.js НЕ тронут (read-only). Ни строки логики/данных.
   Источник разметки: dashboard-platform/modules/yandex_advisor/frontend/advisor.js
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── #8 форма «Добавить кампанию»: локальные детали, не покрытые базой ── */
/* label'ы «Темы / маски», «Название кампании» — host inline font-size/weight.
   Эталон: обычный регистр sans (не uppercase — иначе «(по одной на строку)» кричит). */
#content .adv-card > label[style*="font-weight:600"]{
  font:600 13px/1.4 var(--nlv-font-sans) !important;
  color:var(--nlv-ink-700) !important; letter-spacing:-.005em;
}
/* textarea/input сборки (host inline _qaIn: border hex + radius) */
#content #qa-masks,
#content #qa-name{
  border:1px solid var(--nlv-ink-200) !important; border-radius:var(--nlv-r-md) !important;
  background:var(--nlv-paper) !important; color:var(--nlv-ink-900) !important;
  padding:11px 14px !important; font:400 14px/1.45 var(--nlv-font-sans) !important;
  transition:border-color .14s ease, box-shadow .14s ease;
}
#content #qa-masks:focus,
#content #qa-name:focus{
  outline:none !important; border-color:var(--nlv-accent-500) !important;
  box-shadow:0 0 0 3px var(--nlv-accent-50) !important;
}
#content #qa-masks::placeholder,
#content #qa-name::placeholder{ color:var(--nlv-ink-300); }
/* «Собрать агентами» — host inline _qaBtn (background:#111) → 3D primary как в базе */
#content .adv-card > button[onclick^="quickAddAssemble"]{
  background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)) !important;
  border:1px solid var(--nlv-accent-700) !important; color:#fff !important;
  border-radius:var(--nlv-r-sm) !important; padding:11px 18px !important;
  font:600 13.5px/1 var(--nlv-font-sans) !important; letter-spacing:-.005em;
  box-shadow:var(--nlv-btn-hi), 0 1px 2px rgba(11,110,71,.35), 0 5px 13px rgba(18,165,107,.20) !important;
  transition:filter .14s ease, transform .08s ease, box-shadow .14s ease;
}
#content .adv-card > button[onclick^="quickAddAssemble"]:hover{ filter:brightness(1.04); }
#content .adv-card > button[onclick^="quickAddAssemble"]:active{ transform:translateY(1px) scale(.99); }
#content .adv-card > button[onclick^="quickAddAssemble"]:disabled{ opacity:.6; filter:grayscale(.15); cursor:default; }
/* «Сгенерировать / обновить картинки» (#9) — тот же _qaBtn inline */
#content .adv-card > button[onclick^="generateCreativesNow"]{
  background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)) !important;
  border:1px solid var(--nlv-accent-700) !important; color:#fff !important;
  border-radius:var(--nlv-r-sm) !important; padding:11px 18px !important;
  font:600 13.5px/1 var(--nlv-font-sans) !important; letter-spacing:-.005em;
  box-shadow:var(--nlv-btn-hi), 0 1px 2px rgba(11,110,71,.35), 0 5px 13px rgba(18,165,107,.20) !important;
  transition:filter .14s ease, transform .08s ease, box-shadow .14s ease;
}
#content .adv-card > button[onclick^="generateCreativesNow"]:hover{ filter:brightness(1.04); }
#content .adv-card > button[onclick^="generateCreativesNow"]:active{ transform:translateY(1px) scale(.99); }

/* ── #qa-result — превью собранной кампании (host inline-heavy) ── */
/* контейнер превью: border hex + radius:10px + padding:14px */
#content #qa-result > div[style*="border:1px solid"]{
  border:1px solid var(--nlv-ink-150) !important; border-radius:var(--nlv-r-md) !important;
  background:var(--nlv-canvas) !important; padding:16px 18px !important;
  box-shadow:var(--nlv-sh-xs);
}
/* заголовок «Название · Поиск/РСЯ» (font-weight:700, первый child) */
#content #qa-result > div > div[style*="font-weight:700"]{
  font:800 16px/1.25 var(--nlv-font-sans) !important; color:var(--nlv-ink-900) !important;
  letter-spacing:-.01em;
}
/* строка «N групп · K ключей · M объявлений» → mono */
#content #qa-result > div > div[style*="color:var(--ink-400"][style*="margin:2px 0 6px"]{
  font:500 12.5px/1.4 var(--nlv-font-mono) !important; color:var(--nlv-ink-500) !important;
  letter-spacing:.01em;
}
/* строки групп (border-top hex + padding) */
#content #qa-result > div > div[style*="border-top:1px solid"]{
  border-top:1px solid var(--nlv-ink-100) !important;
  font:400 13px/1.5 var(--nlv-font-sans) !important; color:var(--nlv-ink-600) !important;
  padding:7px 0 !important;
}
#content #qa-result > div > div[style*="border-top:1px solid"] b{ color:var(--nlv-ink-900); font-weight:700; }

/* чипы наличия ассетов ✓ / — (host inline background hex) */
#content #qa-result span[style*="border-radius:20px"]{
  display:inline-flex !important; align-items:center; gap:5px;
  font:600 12px/1 var(--nlv-font-sans) !important; padding:5px 11px !important;
  border-radius:var(--nlv-r-pill) !important; margin:2px 6px 2px 0 !important;
  border:1px solid transparent;
}
/* чип «есть» ✓  (inline background:#eaf7ea; color:#0a7a0a) */
#content #qa-result span[style*="background:#eaf7ea"]{
  background:var(--nlv-accent-50) !important; color:var(--nlv-accent-700) !important;
  border-color:var(--nlv-accent-100);
}
/* чип «нет» —  (inline background:#f3f4f6; color:#9aa0a6) */
#content #qa-result span[style*="background:#f3f4f6"]{
  background:var(--nlv-ink-100) !important; color:var(--nlv-ink-400) !important;
  border-color:var(--nlv-ink-150);
}

/* warning в превью (inline color:#b8860b) */
#content #qa-result div[style*="color:#b8860b"]{
  color:var(--nlv-warn-600) !important;
  font:500 12.5px/1.45 var(--nlv-font-sans) !important;
}

/* кнопки превью-действий (host inline _qaBtn варианты) */
/* «Превью в Директ (без записи)» — inline background:#fff;color:#111;border hex → secondary/outline */
#content #qa-result button[onclick^="quickAddLaunch('preview'"]{
  background:var(--nlv-paper) !important; color:var(--nlv-ink-700) !important;
  border:1px solid var(--nlv-ink-200) !important; border-radius:var(--nlv-r-sm) !important;
  padding:11px 18px !important; font:600 13.5px/1 var(--nlv-font-sans) !important;
  box-shadow:var(--nlv-sh-xs); transition:filter .14s ease, border-color .14s ease, background .14s ease;
}
#content #qa-result button[onclick^="quickAddLaunch('preview'"]:hover{
  background:var(--nlv-ink-50) !important; border-color:var(--nlv-ink-300) !important;
}
#content #qa-result button[onclick^="quickAddLaunch('preview'"]:active{ transform:translateY(1px) scale(.99); }
/* «Создать черновик» — inline _qaBtn (background:#111) → 3D primary */
#content #qa-result button[onclick^="quickAddLaunch('apply'"]{
  background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)) !important;
  border:1px solid var(--nlv-accent-700) !important; color:#fff !important;
  border-radius:var(--nlv-r-sm) !important; padding:11px 18px !important;
  font:600 13.5px/1 var(--nlv-font-sans) !important; letter-spacing:-.005em;
  box-shadow:var(--nlv-btn-hi), 0 1px 2px rgba(11,110,71,.35), 0 5px 13px rgba(18,165,107,.20) !important;
  transition:filter .14s ease, transform .08s ease, box-shadow .14s ease;
}
#content #qa-result button[onclick^="quickAddLaunch('apply'"]:hover{ filter:brightness(1.04); }
#content #qa-result button[onclick^="quickAddLaunch('apply'"]:active{ transform:translateY(1px) scale(.99); }
#content #qa-result button[onclick^="quickAddLaunch"]:disabled{ opacity:.6; filter:grayscale(.15); cursor:default; }

/* launch-msg после превью/применения (inline color:#0a8a0a успех / #b8860b предупреждение) */
#content #qa-launch-msg{ font:500 13px/1.5 var(--nlv-font-sans) !important; }
#content #qa-launch-msg div[style*="color:#0a8a0a"]{ color:var(--nlv-accent-600) !important; font-weight:600; }
#content #qa-launch-msg div[style*="color:#b8860b"]{ color:var(--nlv-warn-600) !important; }
#content #qa-launch-msg div[style*="color:var(--ink-400"]{
  font:400 12.5px/1.45 var(--nlv-font-mono) !important; color:var(--nlv-ink-400) !important;
}

/* стрим-лог генерации креативов (#9) */
#content #creatives-stream{
  font:400 12px/1.5 var(--nlv-font-mono) !important; color:var(--nlv-ink-400) !important;
}

/* ── #9 #adv-rsya-grid-4_4 — грид РСЯ-креативов (host inline img/border) ── */
/* картинка креатива: inline border hex(var(--c-paper-2)) + radius + background */
#content #adv-rsya-grid-4_4 img[style*="aspect-ratio"]{
  border:1px solid var(--nlv-ink-150) !important; border-radius:var(--nlv-r-md) !important;
  background:var(--nlv-ink-50) !important; box-shadow:var(--nlv-sh-xs);
}
/* заголовок кластера (inline font-weight:600;font-size:13px) */
#content #adv-rsya-grid-4_4 div[style*="font-weight:600"][style*="font-size:13px"]{
  font:700 13px/1.35 var(--nlv-font-sans) !important; color:var(--nlv-ink-800) !important;
}
/* «не сгенерирован» плейсхолдер (inline dashed border + color) */
#content #adv-rsya-grid-4_4 div[style*="1px dashed"]{
  border:1px dashed var(--nlv-ink-200) !important; border-radius:var(--nlv-r-md) !important;
  color:var(--nlv-ink-400) !important; background:var(--nlv-canvas);
  font:400 12px/1.4 var(--nlv-font-sans) !important;
}
/* .adv-meta-xs (Вариант · формат · KB) уже определён в базе — не дублируем.
   «Регенерировать» = .btn.btn-outline.btn-sm — базовый .btn-outline покрывает. */

/* ──────── shell-refine (чат-тоггл «Спросить Nelvo» и «История прогонов»: host
   даёт им заливку --c-ember/--c-ember-deep → тёмно-зелёный бокс. Делаем заголовком-
   текстом: прозрачный фон в ОБОИХ состояниях. Host использует attr-селектор
   [aria-expanded="true"] — бьём !important, чтобы не зависеть от порядка) ──────── */
#content .adv-chat-toggle,
#content .adv-chat-toggle[aria-expanded="true"],
#content .adv-history-toggle,
#content .adv-history-toggle[aria-expanded="true"]{
  background:transparent !important; border-color:transparent !important;
  color:var(--nlv-ink-900) !important; box-shadow:none !important;
}
#content .adv-chat-toggle:hover,
#content .adv-history-toggle:hover{ box-shadow:none !important; }

/* ═══════════ QA-ФИКСЫ (по находкам мультиагентной верификации на живом стенде) ═══════════ */
/* FIX-2: refine «Поправить» send-кнопка (_chatBoxHtml:3638) — host inline background:#111.
   Редизайн: чёрных кнопок нет. Любую inline-#111 кнопку → emerald 3D (inline → !important). */
#content button[style*="background:#111"]{
  background:linear-gradient(180deg,var(--nlv-accent-500),var(--nlv-accent-700)) !important;
  border:1px solid var(--nlv-accent-700) !important; color:#fff !important;
  box-shadow:var(--nlv-btn-hi), 0 1px 2px rgba(11,110,71,.35) !important;
  transition:filter .14s ease, transform .08s ease !important;
}
#content button[style*="background:#111"]:hover{ filter:brightness(1.04) !important; }
#content button[style*="background:#111"]:active{ transform:translateY(1px) scale(.99) !important; }

/* FIX-3: бейдж/↗ Истории уходили на 2-ю строку (карточка — грид auto 1fr, косметика
   аппендит margin-left:auto → новый ряд). Делаем карточку flex → бейдж inline справа. */
#content .adv-history-card{ display:flex !important; align-items:center; gap:10px; }
#content .adv-history-card-body{ flex:1 1 auto; min-width:0; }
#content .adv-history-card .nlv-hc-badge{ margin-left:0; }

/* markdown-таблицы (собираются nlvMarkdownTables из pipe-<p> — advMarkdown их не делает) */
#content .nlv-md-table{ width:100%; border-collapse:collapse; margin:10px 0; font:400 13px/1.5 var(--nlv-font-sans);
  border:1px solid var(--nlv-ink-150); border-radius:var(--nlv-r-md); overflow:hidden; }
#content .nlv-md-table th{ text-align:left; font:600 11px/1.3 var(--nlv-font-mono); text-transform:uppercase;
  letter-spacing:.04em; color:var(--nlv-ink-400); padding:9px 13px; background:var(--nlv-ink-50);
  border-bottom:1px solid var(--nlv-ink-150); }
#content .nlv-md-table td{ padding:9px 13px; border-bottom:1px solid var(--nlv-ink-100); color:var(--nlv-ink-700);
  font-variant-numeric:tabular-nums; }
#content .nlv-md-table tr:last-child td{ border-bottom:none; }
#content .nlv-md-table tbody tr:hover{ background:var(--nlv-ink-50); }

/* ═══════════════════ МАКЕТ-ФИКСЫ v2 (по глобальному ревью vs Claude Design) ═══════════════════ */

/* 1. Заголовок ПОДЭТАПА был 22px/800 (шарил селектор с заголовком этапа) → мельче, как в макете */
#content .adv-substage .adv-substage-title{ font:600 15px/1.35 var(--nlv-font-sans); letter-spacing:normal; }

/* 2. «Спросить Nelvo» / «История прогонов» — заголовок разъезжался (space-between + иконка order:-1) */
#content .adv-chat-toggle,
#content .adv-history-toggle{ justify-content:flex-start; gap:9px; }
#content .adv-chat-toggle svg, #content .adv-chat-toggle .adv-icn{ order:0; }
#content .adv-history-toggle-count{ margin-left:auto; }

/* 3. Подэтапы: высокие карточки → компактные строки (title+badge+кнопка в ряд, артефакт ниже) */
#content .adv-substage{ display:flex; flex-wrap:wrap; align-items:center; column-gap:14px; row-gap:10px; padding:14px 16px; }
#content .adv-substage-head{ flex:1 1 auto; display:flex; align-items:center; gap:10px; min-width:0; }
#content .adv-substage-head .adv-status-badge{ margin-left:auto; }
#content .adv-substage-actions{ flex:0 0 auto; margin:0; }
#content .adv-substage-artifact{ flex:1 1 100%; }

/* 4. Убрать ▶ play-треугольник из run-кнопок и шевронов (макет §4.3 — без треугольника) */
#content .btn svg:has(polygon),
#content button svg:has(polygon),
#content .adv-extra-chev svg:has(polygon){ display:none; }

/* 5. markdown h4 (заголовки кампаний) были 12px mono uppercase серые → нормальный подзаголовок */
#content .adv-artifact .adv-md h4{ font:600 14px/1.35 var(--nlv-font-sans); text-transform:none; letter-spacing:normal;
  color:var(--nlv-ink-800); margin:14px 0 6px; padding-top:12px; border-top:1px solid var(--nlv-ink-100); }
#content .adv-artifact .adv-md h4:first-child{ border-top:none; padding-top:0; margin-top:0; }
#content .adv-artifact .adv-md h3{ font:700 16px/1.3 var(--nlv-font-sans); color:var(--nlv-ink-900); text-transform:none; }

/* 6. Структурные вьюхи 4.x/relevance — host white-space:pre-wrap рисовал пустые строки (+259px) → схлопнуть */
#content .adv-substage-artifact{ white-space:normal; }

/* 7. Заголовок tool-карточки «Добавить кампанию» не был покрыт → 22px как заголовок */
#content .adv-card > h3{ font:800 22px/1.2 var(--nlv-font-sans); letter-spacing:-.01em; color:var(--nlv-ink-900); margin:0 0 4px; }

/* 8. Тумблер Поиск/РСЯ — активный красился громким stage-green → мягкий сегмент */
#content #qa-t-search.adv-pill-active, #content #qa-t-rsya.adv-pill-active{
  background:var(--nlv-ink-100); border-color:var(--nlv-ink-200); color:var(--nlv-ink-900); box-shadow:none; }
#content #qa-t-search.adv-pill-active .adv-pill-num, #content #qa-t-rsya.adv-pill-active .adv-pill-num{
  background:var(--nlv-ink-200); color:var(--nlv-ink-700); }

/* префикс подэтапа «7.1» — серый mono отдельным спаном (nlvSubstagePrefix) */
#content .nlv-subnum{ color:var(--nlv-ink-400); font-weight:600; font-family:var(--nlv-font-mono); font-size:.92em; margin-right:3px; }

/* иконка файлового чипа (nlvFileChipIcon) */
#content .nlv-fic{ display:inline-flex; align-items:center; color:var(--nlv-ink-400); margin-right:4px; flex:0 0 auto; }
