/* ==========================================================================
   Launch Tracker · дизайн-система v11 «Обсидиан / Ирис»
   Сигнатура: «линия сигнала» — градиент из четырёх статусов запусков
   (Active → Paused → Banned → Testing). Пульс продукта в одной нити.
   ========================================================================== */

:root {
  color-scheme: dark;
  /* Палитра */
  /* v215 «контрольная» тёмная: 4 ступени глубины, шаг светлоты ~3–4%, нейтраль чуть холоднее */
  --bg:        #0b0c10;   /* обсидиан — фон страницы (самый глубокий слой) */
  --surface:   #13151b;   /* слюда — карточки, панели, таблицы */
  --surface-2: #1a1d25;   /* уголь — поля ввода, шапки, итоги */
  --surface-3: #232733;   /* приподнятое — hover, активная вкладка, счётчики */
  --line:      #262a35;   /* гравировка — границы */
  --line-2:    #363c4b;   /* границы полей и при наведении */
  --text:      #e8eaf0;   /* кость — основной текст (15.8:1) */
  --muted:     #a2a7b6;   /* вторичный текст (7.6:1) */
  --dim:       #7f8597;   /* подписи, ID (4.9:1 на surface — проходит AA) */

  --accent:     #8a8aff;  /* ирис — действия, фокус, выбор */
  --accent-hi:  #a4a4ff;
  --accent-2:   #b78aff;  /* второй тон градиента действий */
  --accent-ink: #0e0e13;
  --danger:     #ff7a7a;
  --accent-rgb: 138, 138, 255;

  /* Семантика: «чернила» (текст/иконки) и RGB для подложек. В тёмной — светлее, чтобы держать 4.5:1 */
  --ok-ink:   #4ade9b;  --ok-rgb:   74, 222, 155;
  --warn-ink: #ffc35a;  --warn-rgb: 255, 195, 90;
  --bad-ink:  #ff7a7a;  --bad-rgb:  255, 122, 122;
  --info-rgb: 108, 178, 255;
  --fb-blue:  #5aa2ff;  --fb-rgb:   90, 162, 255;  /* синий Ads Manager, осветлённый для тёмного фона */
  --toggle-off: #3a4050;
  --col-hi:   rgba(138, 138, 255, .055);  /* подсветка ключевой колонки — едва заметная */
  --raise:    inset 0 1px 0 rgba(255, 255, 255, .035);  /* «блик» сверху вместо тени — тени на чёрном не видны */

  /* Статусы — семантика запусков */
  --st-active:  #4ade9b;
  --st-paused:  #ffc357;
  --st-banned:  #ff7a7a;
  --st-testing: #6cb2ff;

  /* Сигнатура: линия сигнала */
  --signal: linear-gradient(90deg, var(--st-active), var(--st-paused), var(--st-banned), var(--st-testing));

  /* Сегменты UTM-конструктора */
  --seg-static: #9494a8;
  --seg-cab:    #ffb187;
  --seg-agent:  #c9a2ff;
  --seg-b:      #8a8aff;
  --seg-ad:     #7fdc9e;

  --font:    'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --display: 'Space Grotesk', var(--font);
  --mono:    'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;

  --radius:    10px;
  --radius-lg: 14px;
  --shadow-pop: 0 12px 36px rgba(0, 0, 0, .55);
  --ring: 0 0 0 3px rgba(138, 138, 255, .22);

  /* альфа-тона: фоны/границы для пилюль и подсветок (тёмная тема) */
  --accent-a-bg:   rgba(138, 138, 255, .10);
  --accent-a-bg2:  rgba(138, 138, 255, .16);
  --accent-a-line: rgba(138, 138, 255, .40);
  --ok-a-bg:       rgba(58, 214, 160, .10);
  --ok-a-line:     rgba(58, 214, 160, .35);
  --warn-a-bg:     rgba(255, 195, 87, .10);
  --warn-a-line:   rgba(255, 195, 87, .35);
  --bad-a-bg:      rgba(255, 112, 112, .10);
  --bad-a-line:    rgba(255, 112, 112, .35);
  --info-a-bg:     rgba(98, 168, 255, .10);
  --info-a-line:   rgba(98, 168, 255, .32);
  --row-bad-bg:    rgba(255, 112, 112, .05);
  --row-bad-hov:   rgba(255, 112, 112, .09);
  --hover-row:     rgba(138, 138, 255, .045);
  --topbar-bg:     rgba(21, 21, 28, .88);
  --overlay:       rgba(8, 8, 12, .66);
  --tab-shadow:    0 1px 4px rgba(0, 0, 0, .35);
  --ease: 140ms cubic-bezier(.4, 0, .2, 1);
}

/* ============ Светлая тема ============ */
:root[data-theme="light"] {
  color-scheme: light;
  --bg:        #f4f5f9;   /* дневной фон */
  --surface:   #ffffff;   /* карточки, топбар */
  --surface-2: #eceef4;   /* поля, hover-строки */
  --line:      #dcdfe8;   /* границы */
  --line-2:    #c4c8d4;
  --text:      #1a1c24;   /* основной текст */
  --muted:     #5c6070;
  --dim:       #8a8f9e;

  --accent:     #5b5bef;  /* ирис — насыщеннее для контраста на белом */
  --accent-hi:  #4a4ae0;
  --accent-2:   #9a5bef;
  --accent-ink: #ffffff;
  --danger:     #e03b3b;
  --accent-rgb: 91, 91, 239;
  --surface-3: #e3e6ee;
  --ok-ink:   #11895c;  --ok-rgb:   18, 160, 106;
  --warn-ink: #a86a00;  --warn-rgb: 192, 122, 0;
  --bad-ink:  #d22f2f;  --bad-rgb:  214, 48, 48;
  --info-rgb: 37, 112, 224;
  --fb-blue:  #1877f2;  --fb-rgb:   24, 119, 242;
  --toggle-off: #ccd0d5;
  --col-hi:   rgba(91, 91, 239, .06);
  --raise:    none;

  --st-active:  #12a06a;
  --st-paused:  #c07a00;
  --st-banned:  #d63030;
  --st-testing: #2570e0;

  --seg-static: #5c6070;
  --seg-cab:    #c2611f;
  --seg-agent:  #7d3fd0;
  --seg-b:      #4a4ae0;
  --seg-ad:     #1a8f4a;

  --shadow-pop: 0 12px 36px rgba(30, 35, 60, .18);
  --ring: 0 0 0 3px rgba(91, 91, 239, .2);
}
:root[data-theme="light"] {
  --accent-a-bg:   rgba(91, 91, 239, .09);
  --accent-a-bg2:  rgba(91, 91, 239, .15);
  --accent-a-line: rgba(91, 91, 239, .45);
  --ok-a-bg:       rgba(18, 160, 106, .11);
  --ok-a-line:     rgba(18, 160, 106, .45);
  --warn-a-bg:     rgba(192, 122, 0, .11);
  --warn-a-line:   rgba(192, 122, 0, .45);
  --bad-a-bg:      rgba(214, 48, 48, .09);
  --bad-a-line:    rgba(214, 48, 48, .45);
  --info-a-bg:     rgba(37, 112, 224, .10);
  --info-a-line:   rgba(37, 112, 224, .40);
  --row-bad-bg:    rgba(214, 48, 48, .055);
  --row-bad-hov:   rgba(214, 48, 48, .10);
  --hover-row:     rgba(91, 91, 239, .05);
  --topbar-bg:     rgba(255, 255, 255, .92);
  --overlay:       rgba(28, 32, 48, .45);
  --tab-shadow:    0 1px 4px rgba(30, 35, 60, .16);
}
:root[data-theme="light"] input[type="date"],
:root[data-theme="light"] select { color-scheme: light; }


/* ---------- Базис ---------- */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14px;
  line-height: 1.45;
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
.hidden { display: none !important; }
.mono { font-family: var(--mono); }
button { font-family: inherit; }
input, select, textarea { font-family: inherit; }
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):not([type="range"])),
:where(select),
:where(textarea) {
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  border-radius: 8px;
  padding: 8px 11px;
  font-size: 13.5px;
}
:where(input):focus-visible, :where(select):focus-visible, :where(textarea):focus-visible {
  outline: none; border-color: var(--accent); box-shadow: var(--ring);
}
::placeholder { color: var(--dim); }
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
select, textarea {
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  border-radius: 8px;
  padding: 8px 11px;
  font-size: 13.5px;
}
input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]):focus,
select:focus, textarea:focus {
  outline: none; border-color: var(--accent); box-shadow: var(--ring);
}
input::placeholder, textarea::placeholder { color: var(--dim); }
::selection { background: rgba(var(--accent-rgb), .3); }

/* тонкие скроллбары */
* { scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
*::-webkit-scrollbar { width: 8px; height: 8px; }
*::-webkit-scrollbar-thumb { background: var(--line-2); border-radius: 8px; }
*::-webkit-scrollbar-track { background: transparent; }

/* ---------- Кнопки ---------- */
.btn {
  border: 1px solid var(--line);
  background: var(--surface-2);
  color: var(--text);
  border-radius: var(--radius);
  padding: 9px 16px;
  font-size: 13.5px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--ease), border-color var(--ease), color var(--ease), transform var(--ease);
  white-space: nowrap;
}
.btn:hover { background: var(--surface-2); border-color: var(--line-2); }
.btn:active { transform: translateY(1px); }
.btn:focus-visible { outline: none; box-shadow: var(--ring); }
.btn-primary {
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  border-color: transparent;
  color: var(--accent-ink);
  font-weight: 600;
}
.btn-primary:hover { filter: brightness(1.12); background: linear-gradient(135deg, var(--accent), var(--accent-2)); border-color: transparent; }
.btn-ghost { background: transparent; }
.btn-ghost:hover { background: var(--surface-2); }
.btn-sm { padding: 6px 12px; font-size: 12.5px; }
.btn-block { width: 100%; }
.btn-danger-ghost { background: transparent; color: var(--danger); border-color: transparent; }
.btn-danger-ghost:hover { background: var(--bad-a-bg); border-color: transparent; }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn.ui-danger { color: var(--danger); border-color: var(--bad-a-line); background: transparent; }
.btn.ui-danger:hover { background: var(--bad-a-bg); }
.btn-bulk-danger { color: var(--danger); border-color: var(--bad-a-line); }
.btn-bulk-danger:hover { background: var(--bad-a-bg); }

/* иконко-кнопки в строках */
.row-btn {
  background: transparent; border: 1px solid transparent; border-radius: 8px;
  color: var(--muted); cursor: pointer; padding: 4px 7px; font-size: 13px;
  transition: color var(--ease), background var(--ease);
}
.row-btn:hover { color: var(--text); background: var(--surface-2); }
.row-btn:focus-visible { outline: none; box-shadow: var(--ring); }
.row-btn.danger:hover { color: var(--danger); background: var(--bad-a-bg); }

/* ---------- Формы ---------- */
.field { display: flex; flex-direction: column; gap: 5px; }
.field > span {
  font-size: 11px; font-weight: 600; color: var(--muted);
  text-transform: uppercase; letter-spacing: .06em;
}
.field .hint { font-style: normal; color: var(--dim); font-weight: 400; text-transform: none; letter-spacing: 0; }
.field input, .field select, .filters input, .filters select {
  background: var(--surface-2);
  border: 1px solid var(--line);
  color: var(--text);
  border-radius: var(--radius);
  padding: 9px 11px;
  font-size: 13.5px;
  min-width: 0;
  transition: border-color var(--ease), box-shadow var(--ease);
}
.field input:focus, .field select:focus, .filters input:focus, .filters select:focus {
  outline: none; border-color: var(--accent); box-shadow: var(--ring);
}
.field input.mono { font-family: var(--mono); font-size: 13px; }
.checkbox-field { flex-direction: row; align-items: center; gap: 9px; }
.checkbox-field span { font-size: 14px; color: var(--text); text-transform: none; letter-spacing: 0; font-weight: 400; }
.checkbox-field input { accent-color: var(--accent); width: 16px; height: 16px; }
.form-error {
  background: var(--row-bad-hov);
  border: 1px solid var(--bad-a-line);
  color: var(--danger);
  border-radius: var(--radius);
  padding: 9px 12px;
  margin-top: 12px;
  font-size: 13.5px;
}
input[type="date"] { color-scheme: dark; }

/* ---------- Логин ---------- */
.login-wrap {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  background:
    radial-gradient(640px 340px at 50% -10%, rgba(138, 138, 255, .08), transparent 70%),
    var(--bg);
}
.login-card {
  width: 100%; max-width: 384px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: 34px 30px 30px;
  display: flex; flex-direction: column; gap: 16px;
  position: relative;
  overflow: hidden;
}
.login-card::before {           /* линия сигнала — верх карточки */
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: var(--signal);
}
.login-logo, .topbar-logo {
  font-family: var(--display);
  font-weight: 700; font-size: 21px; letter-spacing: -.01em;
}
.login-logo span, .topbar-logo span { color: var(--accent); }
.login-sub { margin: -8px 0 4px; color: var(--muted); font-size: 13.5px; }

/* ---------- Топбар ---------- */
.topbar {
  display: flex; align-items: center; gap: 20px;
  padding: 0 20px;
  height: 58px;
  background: var(--topbar-bg);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
  position: sticky; top: 0; z-index: 20;
}
.topbar::after {                /* линия сигнала под топбаром */
  content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px;
  background: var(--signal);
  opacity: .8;
}
.topbar-logo { font-size: 17px; }
.topbar-tabs {
  display: flex; gap: 2px;
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 3px;
  max-width: max-content;
}
.tab {
  position: relative;
  background: transparent; border: none; color: var(--muted);
  font-size: 13.5px; font-weight: 500; padding: 7px 13px;
  border-radius: 9px; cursor: pointer;
  transition: color var(--ease), background var(--ease);
}
.tab:hover { color: var(--text); }
.tab.active { color: var(--text); background: var(--surface); box-shadow: var(--tab-shadow); }
.tab:focus-visible { outline: none; box-shadow: var(--ring); }
.topbar-user { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.user-chip {
  display: flex; align-items: baseline; gap: 8px; font-size: 13px;
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: 99px; padding: 5px 13px;
}
.user-chip code { color: var(--accent); font-size: 12px; }

/* ---------- Контент и панели ---------- */
.content { padding: 22px 24px; max-width: none; margin: 0; }
.panel-title {
  margin: 0; font-family: var(--display);
  font-size: 18px; font-weight: 600; letter-spacing: -.01em;
}
.panel-note { margin: 6px 0 0; color: var(--muted); font-size: 13px; max-width: 640px; }

.toolbar {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 16px; margin-bottom: 16px; flex-wrap: wrap;
}
.filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.filters input[type="search"] { width: 240px; }
.filters input[type="date"] { width: 138px; }
.toolbar-actions { display: flex; gap: 8px; }
.date-presets {
  display: inline-flex; gap: 2px;
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 2px;
}
.date-presets .btn { border: none; background: transparent; }
.date-presets .btn:hover { background: var(--surface); }

/* ---------- Таблицы ---------- */
.table-wrap {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  overflow-x: auto;
}
table.grid { width: 100%; min-width: 100%; border-collapse: collapse; font-size: 13.5px; }
.grid th {
  text-align: left; font-size: 10.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted);
  padding: 11px 12px;
  border-bottom: 1px solid var(--line);
  white-space: nowrap;
  background: var(--surface);
  cursor: pointer; user-select: none;
  position: relative;
}
.grid td {
  padding: 9px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}
.grid tbody tr:last-child td { border-bottom: none; }
.grid tbody tr { transition: background var(--ease); }
.grid tbody tr:hover { background: var(--hover-row); }
.grid .num { text-align: right; font-variant-numeric: tabular-nums; }
.grid td.num { font-family: var(--mono); font-size: 12.5px; }
.grid .actions-col { width: 1%; }
.grid td .cell-mono { font-family: var(--mono); font-size: 12.5px; color: var(--muted); }
.cell-comment { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.row-actions { display: flex; gap: 2px; justify-content: flex-end; }

/* обрезание содержимого + сортировка */
.grid th, .grid td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grid td .cell-mono { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.th-label { vertical-align: middle; }
.th-arrow { margin-left: 4px; color: var(--accent); font-weight: 700; }
th.th-sorted { color: var(--text); }

/* статус-пилюли */
.status-pill {
  display: inline-block; padding: 3px 10px; border-radius: 99px;
  font-size: 11.5px; font-weight: 600; letter-spacing: .01em;
  background: var(--surface-2); color: var(--muted);
  border: 1px solid var(--line);
}
.status-pill[data-st="active"]  { color: var(--st-active);  background: var(--ok-a-bg);  border-color: var(--ok-a-line); }
.status-pill[data-st="paused"]  { color: var(--st-paused);  background: var(--warn-a-bg);  border-color: var(--warn-a-line); }
.status-pill[data-st="banned"]  { color: var(--st-banned);  background: var(--bad-a-bg); border-color: var(--bad-a-line); }
.status-pill[data-st="testing"] { color: var(--st-testing); background: var(--info-a-bg);  border-color: var(--info-a-line); }

.empty { padding: 52px 24px; text-align: center; color: var(--muted); }
.badge-off {
  font-size: 11.5px; font-weight: 600; color: var(--danger);
  border: 1px solid var(--bad-a-line); border-radius: 99px; padding: 2px 9px;
}
.badge-on {
  font-size: 11.5px; font-weight: 600; color: var(--st-active);
  border: 1px solid var(--ok-a-line); border-radius: 99px; padding: 2px 9px;
}
.badge-role { font-size: 11.5px; color: var(--muted); }
.badge-role-admin { color: var(--seg-agent); }
.badge-role-assistant { color: var(--st-testing); }
.assist-of { color: var(--muted); font-size: 12px; }

/* недоделанные запуски (нет ссылки) */
/* индикатор наличия ссылки на выдачу */
.sel-col { white-space: nowrap; }
.link-dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  margin-right: 6px; vertical-align: middle; flex: 0 0 auto;
}
.link-dot.has-link { background: var(--st-active); box-shadow: 0 0 4px var(--st-active); }
.link-dot.no-link  { background: var(--st-banned); box-shadow: 0 0 4px var(--st-banned); }

/* разделители дней */
tr.day-sep td {
  background: var(--bg) !important;
  color: var(--muted);
  font-family: var(--display);
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .1em;
  padding: 7px 12px;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}

/* инлайн-редактирование */
.cell-edit { cursor: text; }
.cell-edit:hover { background: var(--surface-2); box-shadow: inset 0 0 0 1px var(--line-2); }
.grid td.editing { padding: 4px 6px; }
.inline-input {
  width: 100%; box-sizing: border-box; font: inherit;
  padding: 4px 6px; border-radius: 6px;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--accent); outline: none;
}
select.inline-input { padding: 3px 4px; }

/* ресайз и перетаскивание колонок */
.col-resizer {
  position: absolute; top: 0; right: -5px; width: 11px; height: 100%;
  cursor: col-resize; z-index: 2;
  display: flex; align-items: center; justify-content: center;
}
/* Постоянно видимая метка-«ручка», чтобы было понятно, за что тянуть */
.col-resizer::before {
  content: ''; width: 2px; height: 60%; border-radius: 2px;
  background: var(--line-2); transition: background var(--ease), height var(--ease);
}
.col-resizer:hover::before,
.col-resizer.active::before { background: var(--accent); height: 100%; width: 3px; }
/* точки-«захваты» для наглядности */
.col-resizer::after {
  content: '⋮'; position: absolute; font-size: 11px; line-height: 1;
  color: var(--dim); pointer-events: none; opacity: .7;
}
.col-resizer:hover::after { color: var(--accent); opacity: 1; }
body.col-resizing, body.col-resizing * { cursor: col-resize !important; user-select: none !important; }
table.grid[data-resizable] td,
table.grid[data-resizable] th { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.grid th.dragging { opacity: .4; }
.grid th.drag-over { box-shadow: inset 3px 0 0 var(--accent); }

/* массовые действия и галочки */
.bulk-bar {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; margin-bottom: 10px;
  background: var(--surface); border: 1px solid var(--accent-a-line);
  border-radius: var(--radius);
}
.bulk-count { font-size: 13px; color: var(--muted); margin-right: 4px; }
.sel-col { width: 34px; text-align: center; }
.sel-col input, .cell-check input { accent-color: var(--accent); cursor: pointer; }
.cell-check { text-align: center; }
.cell-check input { width: 15px; height: 15px; }

/* приоритет */
.prio-pill {
  font-size: 11.5px; padding: 2px 9px; border-radius: 20px;
  border: 1px solid var(--line); display: inline-block; white-space: nowrap;
}
.prio-high   { color: var(--st-banned); background: var(--bad-a-bg); border-color: var(--bad-a-line); }
.prio-medium { color: var(--st-paused); background: var(--warn-a-bg);  border-color: var(--warn-a-line); }
.prio-low    { color: var(--muted); background: var(--surface-2); border-color: var(--line-2); }
.prio-none   { color: var(--muted); opacity: .5; }

/* цветные бейджи: продукт, CTC, кастомные списки */
.prod-badge {
  font-weight: 600; font-size: 12.5px;
  padding: 2px 9px; border-radius: 7px;
  border: 1px solid transparent; display: inline-block;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: middle;
}
.ctc-badge {
  font-family: var(--mono); font-size: 12.5px;
  padding: 2px 7px; border-radius: 6px; display: inline-block;
}
.cval-badge {
  font-size: 12px; padding: 2px 9px; border-radius: 20px;
  border: 1px solid var(--line); display: inline-block;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
  vertical-align: middle;
}
.cc-dot {
  display: inline-block; width: 9px; height: 9px; border-radius: 50%;
  margin: 0 3px 0 6px; vertical-align: baseline;
}

/* комментарий */
.comment-clip { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#cm-text {
  width: 100%; box-sizing: border-box; resize: vertical;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 9px 11px; font: inherit; min-height: 120px;
}
#cm-text:focus { border-color: var(--accent); outline: none; box-shadow: var(--ring); }

/* действия не обрезаются */
td.actions-cell { overflow: visible; text-overflow: clip; padding-right: 10px; background: inherit; }
td.actions-cell .row-actions { display: inline-flex; flex-wrap: nowrap; gap: 4px; }

/* переключатель прокрутки и настройка колонок */
.hscroll-toggle {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 12.5px; color: var(--muted); cursor: pointer;
  margin: 0; user-select: none;
}
.hscroll-toggle input { accent-color: var(--accent); cursor: pointer; }
.table-tools { display: flex; align-items: center; gap: 16px; margin-bottom: 10px; }
.colset-pop {
  position: absolute; z-index: 260; margin-top: -6px;
  background: var(--surface); border: 1px solid var(--accent-a-line);
  border-radius: var(--radius); padding: 10px 12px;
  box-shadow: var(--shadow-pop);
  max-height: 340px; overflow-y: auto; min-width: 220px;
}
.colset-title {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted); margin-bottom: 8px;
}
.colset-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 13px; padding: 4px 2px; cursor: pointer; user-select: none;
}
.colset-row input { accent-color: var(--accent); cursor: pointer; }

/* ---------- Справочники ---------- */
.dicts-grid {
  display: grid; gap: 16px;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
}
.dict-card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 16px;
}
.dict-card h3 { margin: 0 0 4px; font-family: var(--display); font-size: 15px; font-weight: 600; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.dict-card .dict-note { font-size: 12px; color: var(--muted); margin: 0 0 12px; }
.dict-items { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; max-height: 320px; overflow-y: auto; }
.dict-item {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 8px;
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: 8px; padding: 7px 7px 7px 11px; font-size: 13.5px;
  transition: border-color var(--ease);
}
.dict-item:hover { border-color: var(--line-2); }
.dict-item .dict-value { flex: 1 1 140px; min-width: 0; white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
.dict-item .row-actions { margin-left: auto; flex: 0 0 auto; display: inline-flex; gap: 2px; }
.dict-add { display: flex; flex-wrap: wrap; gap: 8px; }
.dict-add input { flex: 1 1 160px; min-width: 0; }
.dict-count {
  display: inline-block; font-size: 11px; font-weight: 600;
  color: var(--muted); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: 20px;
  padding: 1px 8px; margin-left: 6px; vertical-align: middle;
  font-family: var(--mono);
}
.dict-search {
  width: 100%; box-sizing: border-box; margin-bottom: 8px;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 7px 10px; font: inherit; font-size: 13px;
}
.dict-search:focus { border-color: var(--accent); outline: none; box-shadow: var(--ring); }
.dict-empty { padding: 10px 4px; color: var(--muted); font-size: 12.5px; }
.dict-more { width: 100%; margin: 6px 0 2px; }
.dict-row-color, .dict-add-color {
  width: 26px; height: 24px; padding: 1px; border: 1px solid var(--line);
  border-radius: 6px; background: var(--surface-2); cursor: pointer; flex: 0 0 auto;
}
.cc-add { flex-wrap: wrap; }
.cc-add select { min-width: 90px; }
.cc-opts { margin-top: 10px; }
.cc-opts-cap { font-size: 12px; color: var(--muted); margin-bottom: 6px; }
.cc-opt-row { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.cc-opt-row .cc-opt-value { flex: 1; }
.cc-opt-row input[type="color"] {
  width: 34px; height: 30px; padding: 2px; border: 1px solid var(--line);
  border-radius: 7px; background: var(--surface-2); cursor: pointer;
}

/* ---------- Модалки ---------- */
.modal-backdrop {
  position: fixed; inset: 0; z-index: 50;
  background: var(--overlay);
  backdrop-filter: blur(3px);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 40px 16px; overflow-y: auto;
}
.modal {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); width: 100%; max-width: 440px;
  padding: 22px 24px 24px;
  box-shadow: var(--shadow-pop);
  max-height: calc(100vh - 80px);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.modal-wide { max-width: 1000px; width: min(1000px, 96vw); }
/* Интеграции: тело прокручивается, шапка и футер зафиксированы */
#modal-dom-settings { padding: 20px 16px; }
#modal-dom-settings .modal { max-width: 1400px; width: min(1400px, 96vw); max-height: calc(100vh - 40px); }
#modal-dom-settings .dom-set { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding-right: 6px; }
#modal-dom-settings .modal-foot { flex: 0 0 auto; margin-top: 12px; }
.dom-set-grid.dom-set-cf { grid-template-columns: minmax(300px, 1.6fr) minmax(220px, 1fr) auto auto; }
.modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 18px; flex: 0 0 auto; }
.modal-head h3 { margin: 0; font-family: var(--display); font-size: 17px; font-weight: 600; }
/* форма/тело прокручивается, шапка и футер остаются на месте */
.modal > form { display: flex; flex-direction: column; min-height: 0; flex: 1 1 auto; overflow: hidden; }
.modal > form > .form-grid,
.modal > form > .utm-box { flex: 0 0 auto; }
.modal > form { overflow-y: auto; }
.modal-x {
  background: none; border: none; color: var(--muted); font-size: 24px;
  line-height: 1; cursor: pointer; padding: 2px 6px; border-radius: 6px;
}
.modal-x:hover { color: var(--text); background: var(--surface-2); }
.modal-foot { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; flex: 0 0 auto; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.form-grid-1 { grid-template-columns: 1fr; }
.field-span2 { grid-column: span 2; }
/* не даём длинному контенту (ссылки, mono-поля) распирать колонку за границы формы */
.form-grid .field { min-width: 0; }
.form-grid .field input,
.form-grid .field select { width: 100%; max-width: 100%; box-sizing: border-box; }
.form-grid .field .ld-name-row { min-width: 0; }
.form-grid .field .ld-name-row input { min-width: 0; }

/* ui-модалки (confirm / prompt / alert) */
.ui-modal-back {
  position: fixed; inset: 0; z-index: 10000;
  background: var(--overlay); backdrop-filter: blur(3px);
  display: flex; align-items: center; justify-content: center; padding: 20px;
}
.ui-modal {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 18px 20px; width: 100%; max-width: 420px;
  box-shadow: var(--shadow-pop);
}
.ui-modal-title { font-family: var(--display); font-size: 15px; font-weight: 600; margin-bottom: 8px; }
.ui-modal-msg { font-size: 13.5px; color: var(--muted); margin-bottom: 12px; line-height: 1.5; }
.ui-modal-fields { display: grid; gap: 10px; margin-bottom: 12px; }
.ui-field { display: grid; gap: 5px; }
.ui-field span { font-size: 11px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .06em; }
.ui-field input, .ui-field select {
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 8px 11px; font: inherit; font-size: 13.5px; width: 100%; box-sizing: border-box;
}
.ui-field input:focus, .ui-field select:focus { border-color: var(--accent); outline: none; box-shadow: var(--ring); }
.ui-modal-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 4px; }

/* ---------- Сигнатурный блок формы: UTM-конструктор ---------- */
.utm-box {
  margin-top: 18px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 4px 0;
}
.utm-row {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: 12px; align-items: center;
  padding: 10px 14px;
}
.utm-row + .utm-row { border-top: 1px dashed var(--line); }
.utm-label {
  font-size: 10.5px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; color: var(--muted);
}
.utm-value { font-size: 12.5px; word-break: break-all; line-height: 1.6; font-family: var(--mono); }
.utm-wait { color: var(--dim); font-family: var(--font); font-size: 13px; }
.seg-static { color: var(--seg-static); }
.seg-cab    { color: var(--seg-cab); }
.seg-agent  { color: var(--seg-agent); }
.seg-b      { color: var(--seg-b); }
.seg-ad     { color: var(--seg-ad); }
.btn-copy { padding: 7px 13px; font-size: 13px; }
.btn-copy.copied { color: var(--st-active); border-color: var(--ok-a-line); }

/* ---------- Тост ---------- */
.toast {
  position: fixed; left: 50%; bottom: 28px; transform: translateX(-50%);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 99px; padding: 10px 20px; font-size: 13.5px;
  z-index: 500; box-shadow: var(--shadow-pop);
  overflow: hidden;
}
.toast::before {
  content: ''; position: absolute; left: 0; right: 0; top: 0; height: 2px;
  background: var(--signal);
}

/* ---------- Дашборд ---------- */
.dash-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px; align-items: start;
}
.dash-card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 16px;
}
.dash-card h3 {
  margin: 0 0 12px; font-family: var(--display); font-size: 13px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .07em; color: var(--muted);
}
.dash-card h4 { margin: 14px 0 6px; font-size: 12.5px; color: var(--muted); }
.dash-card h4:first-of-type { margin-top: 4px; }
.dash-wide { grid-column: 1 / -1; }
.dash-total { display: flex; flex-direction: column; justify-content: center; align-items: center; min-height: 110px; }
.dash-num { font-family: var(--display); font-size: 44px; font-weight: 700; line-height: 1; letter-spacing: -.02em; }
.dash-cap { color: var(--muted); font-size: 12.5px; margin-top: 8px; }
.dash-row { display: flex; align-items: center; gap: 10px; padding: 4px 0; }
.dash-row-label { flex: 0 0 92px; font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dash-bar { flex: 1; height: 7px; background: var(--surface-2); border-radius: 6px; overflow: hidden; }
.dash-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-2)); border-radius: 6px; }
.dash-row-num { flex: 0 0 34px; text-align: right; font-family: var(--mono); font-size: 12.5px; }
.dash-names { flex: 1; font-size: 12.5px; color: var(--muted); }
.dash-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.dash-table th {
  text-align: left; font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--muted); padding: 5px 8px; border-bottom: 1px solid var(--line);
}
.dash-table td { padding: 5px 8px; border-bottom: 1px solid var(--line); }
.dash-table tbody tr:last-child td { border-bottom: none; }
.dash-table .num { text-align: right; font-family: var(--mono); }
.dash-buyers {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.dash-buyer {
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 12px 14px;
}
.dash-buyer-head {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 6px; font-size: 14px;
}
.dash-buyer-total { font-family: var(--display); font-weight: 700; font-size: 17px; color: var(--accent); }
.dash-sub {
  font-size: 10px; text-transform: uppercase; letter-spacing: .07em;
  color: var(--muted); margin: 8px 0 2px;
}
.dash-geo-block { margin-bottom: 4px; }

/* ---------- Popover-редактор ---------- */
.popover {
  position: absolute; z-index: 300;
  background: var(--surface); border: 1px solid var(--accent-a-line);
  border-radius: var(--radius); padding: 10px 12px 12px;
  box-shadow: var(--shadow-pop);
}
.popover-title {
  font-size: 10.5px; text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted); margin-bottom: 6px;
}
.popover-text {
  width: 100%; box-sizing: border-box; resize: vertical;
  background: var(--surface-2); color: var(--text);
  border: 1px solid var(--line); border-radius: 8px;
  padding: 8px 10px; font: inherit; font-size: 13px;
}
.popover-text:focus { border-color: var(--accent); outline: none; }
.popover-foot { display: flex; justify-content: flex-end; gap: 8px; margin-top: 8px; }

/* ---------- Combobox ---------- */
.combo { position: relative; }
.combo input { width: 100%; box-sizing: border-box; }
.combo-list {
  position: absolute; top: calc(100% + 4px); left: 0; right: 0; z-index: 250;
  background: var(--surface); border: 1px solid var(--accent-a-line);
  border-radius: var(--radius);
  max-height: 260px; overflow-y: auto;
  box-shadow: var(--shadow-pop);
  padding: 4px;
}
.combo-item {
  padding: 7px 10px; border-radius: 7px; cursor: pointer; font-size: 13px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.combo-item:hover, .combo-item.active { background: var(--accent-a-bg2); }
.combo-more { padding: 7px 10px; font-size: 12px; color: var(--muted); }
.combo-hint { color: var(--muted); font-style: normal; font-size: 11.5px; margin-left: 4px; }

/* ---------- Генератор оффер-ссылок ---------- */
.links-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 14px; align-items: start;
}
.lg-result { margin-top: 14px; display: grid; gap: 12px; }
.lg-block { background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius); padding: 10px 12px; }
.lg-cap {
  font-size: 10px; text-transform: uppercase; letter-spacing: .07em;
  color: var(--muted); margin-bottom: 5px;
}
.lg-out { font-size: 13px; margin-bottom: 8px; word-break: break-all; min-height: 18px; }
.lg-url { font-family: var(--mono); font-size: 12px; color: var(--accent); }
.bl-url-hint { display: block; font-family: var(--mono); font-size: 11px; word-break: break-all; }
#bl-items .dict-value { white-space: normal; }
.bl-add { display: block; }
.bl-add .modal-foot { justify-content: flex-start; margin-top: 14px; }

/* ---------- История ---------- */
.audit-act {
  font-size: 11.5px; padding: 2px 9px; border-radius: 20px;
  border: 1px solid var(--line); display: inline-block;
}
.audit-create  { color: var(--st-active);  border-color: var(--ok-a-line); }
.audit-update  { color: var(--st-testing); border-color: var(--info-a-line); }
.audit-delete  { color: var(--danger);     border-color: var(--bad-a-line); }

/* ---------- Кнопка «Креативы» в строке ---------- */
.btn-drive.drive-ready { color: var(--st-active); border-color: var(--ok-a-line); }
.btn-drive.drive-loading { opacity: .7; animation: drive-pulse 1s infinite; }
@keyframes drive-pulse { 50% { opacity: .35; } }

/* ---------- Кабинеты ---------- */
.cab-agency-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.cab-ag-pill {
  background: var(--surface); color: var(--text);
  border: 1px solid var(--line); border-radius: 99px;
  padding: 6px 14px; font: inherit; font-size: 13px; cursor: pointer;
  transition: border-color var(--ease), background var(--ease);
}
.cab-ag-pill:hover { border-color: var(--accent-a-line); }
.cab-ag-pill.active { border-color: var(--accent); background: var(--accent-a-bg2); }
.cab-ag-x { margin-left: 6px; opacity: .6; }
.cab-ag-x:hover { opacity: 1; color: var(--danger); }
.cab-ag-add select {
  background: var(--surface); color: var(--muted);
  border: 1px dashed var(--line-2); border-radius: 99px;
  padding: 6px 10px; font: inherit; font-size: 13px; cursor: pointer;
}
#cab-card { max-width: 100%; }
/* список кабинетов: без внутреннего скролла — растягивается на всю высоту, листается сама страница */
#cab-list { max-height: none; overflow-y: visible; }
.cab-head { margin-bottom: 2px; }
.cab-add { display: flex; gap: 8px; margin-bottom: 10px; }
.cab-add input { flex: 1; }
.cab-row { display: flex; align-items: center; gap: 12px; }
.cab-id { flex: 0 0 auto; overflow: visible; text-overflow: clip; white-space: nowrap; }
.cab-row-farm .cab-id { flex: 0 0 auto; min-width: 130px; }
.cab-row-farm .cab-status-pill { margin-left: auto; }
.cab-row-farm .row-actions { flex: 0 0 auto; }
.cab-date { color: var(--muted); font-size: 12px; flex: 0 0 78px; font-family: var(--mono); }
.cab-status-pill {
  font-size: 11.5px; padding: 2px 10px; border-radius: 99px;
  border: 1px solid var(--line); cursor: pointer; white-space: nowrap;
}
.cab-status-select { max-width: 150px; }
.cab-chart-box { margin-bottom: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); max-width: 720px; }
.cab-chart-sum { cursor: pointer; list-style: none; padding: 9px 14px; font-family: var(--display); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); display: flex; align-items: center; gap: 8px; user-select: none; }
.cab-chart-sum::-webkit-details-marker { display: none; }
.cab-chart-sum::before { content: "\25B8"; font-size: 11px; transition: transform var(--ease); }
.cab-chart-box[open] .cab-chart-sum::before { transform: rotate(90deg); }
.cab-chart-box[open] .cab-chart-sum { border-bottom: 1px solid var(--line); }
.cab-chart { padding: 12px 14px 4px; max-width: 100%; }
.cabchart-title {
  font-family: var(--display); font-size: 12.5px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .07em; color: var(--muted);
  margin: 0 0 10px;
}
.cabchart-row { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.cabchart-ag { flex: 0 0 96px; font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cabchart-body { flex: 1; }
.cabchart-bar {
  display: flex; height: 10px; border-radius: 5px; overflow: hidden;
  background: var(--surface-2); border: 1px solid var(--line);
}
.cabchart-seg { height: 100%; }
.cabchart-legend { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; }
.cabchart-lg { font-size: 11.5px; color: var(--muted); display: inline-flex; align-items: center; gap: 4px; }
.cabchart-lg i { width: 9px; height: 9px; border-radius: 2px; display: inline-block; }

/* ---------- Креативы: файловый менеджер ---------- */
#cr-search { min-width: 220px; }
.cr-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.cr-crumbs { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; font-size: 13px; }
.cr-crumb {
  background: none; border: none; color: var(--accent-hi); cursor: pointer;
  font: inherit; font-size: 13px; padding: 2px 5px; border-radius: 6px;
}
.cr-crumb:hover { background: var(--accent-a-bg2); }
.cr-actions { display: flex; gap: 8px; }
.cr-drop {
  border: 2px dashed transparent; border-radius: var(--radius-lg); min-height: 200px;
  transition: border-color var(--ease), background var(--ease); padding: 4px;
}
.cr-drop.drag { border-color: var(--accent); background: var(--accent-a-bg); }
.cr-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px;
}
.cr-card {
  position: relative;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 10px; display: flex; flex-direction: column; gap: 6px;
  transition: border-color var(--ease), transform var(--ease), background var(--ease);
}
.cr-card:hover { border-color: var(--line-2); transform: translateY(-1px); }
.cr-folder { background: var(--surface-2); }
.cr-thumb {
  height: 92px; display: flex; align-items: center; justify-content: center;
  font-size: 34px; background: var(--surface-2); border-radius: 8px; overflow: hidden;
}
.cr-folder .cr-thumb { background: transparent; }
.cr-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cr-name { font-size: 12.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; cursor: default; }
.cr-folder .cr-name { cursor: pointer; font-weight: 600; }
.cr-meta { font-size: 11px; color: var(--muted); font-family: var(--mono); }
.cr-row-actions { display: flex; gap: 3px; margin-top: 2px; }
.cr-loading { padding: 20px; color: var(--muted); text-align: center; }
.cr-check {
  position: absolute; top: 8px; left: 8px; z-index: 2;
  width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer;
  opacity: 0; transition: opacity var(--ease);
}
.cr-card:hover .cr-check, .cr-check:checked, .cr-card.cr-selected .cr-check { opacity: 1; }
.cr-card.cr-selected { border-color: var(--accent); background: var(--accent-a-bg); }
.cr-selbar {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 8px 12px; margin-bottom: 10px;
  background: var(--surface); border: 1px solid var(--accent-a-line); border-radius: var(--radius);
}
.cr-sel-count { font-size: 13px; color: var(--muted); }
.cr-clip { font-size: 13px; color: var(--muted); display: inline-flex; align-items: center; gap: 8px; }
.cr-uploads { margin-top: 14px; display: flex; flex-direction: column; gap: 6px; }
.cr-upload {
  display: flex; align-items: center; gap: 10px; font-size: 12.5px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px;
}
.cr-up-name { flex: 0 0 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cr-up-bar { flex: 1; height: 5px; background: var(--surface-2); border-radius: 4px; overflow: hidden; }
.cr-up-bar i { display: block; height: 100%; width: 0; background: var(--signal); transition: width .2s; }
.cr-up-pct { flex: 0 0 40px; text-align: right; font-family: var(--mono); }
.cr-upload.done .cr-up-pct { color: var(--st-active); }
.cr-upload.failed .cr-up-pct { color: var(--danger); }

/* ---------- Адаптив ---------- */
@media (max-width: 900px) {
  .topbar { flex-wrap: wrap; height: auto; padding: 10px 14px; gap: 10px; }
  .topbar-tabs { order: 3; width: 100%; max-width: none; overflow-x: auto; }
  .topbar-user { margin-left: auto; }
  .content { padding: 14px 10px; }
  .filters input[type="search"] { width: 100%; }
  .filters > * { flex: 1 1 45%; }
  .toolbar-actions { width: 100%; }
  .toolbar-actions .btn { flex: 1; }
  .form-grid { grid-template-columns: 1fr; }
  .field-span2 { grid-column: span 1; }
  .utm-row { grid-template-columns: 1fr; gap: 6px; }
  .utm-row .btn-copy { justify-self: start; }
  .modal-backdrop { padding: 12px 8px; }
  .cr-up-name { flex-basis: 120px; }

  /* таблица запусков → карточки */
  #launches-table thead { display: none; }
  #launches-table, #launches-table tbody, #launches-table tr, #launches-table td { display: block; width: 100%; }
  #launches-table tr { border-bottom: 8px solid var(--bg); padding: 6px 0; }
  #launches-table td { border: none; padding: 5px 14px; }
  #launches-table td:empty { display: none; }
  #launches-table td[data-label]::before {
    content: attr(data-label);
    display: inline-block; width: 110px;
    font-size: 10.5px; font-weight: 600; text-transform: uppercase;
    letter-spacing: .06em; color: var(--muted);
  }
  #launches-table td.num { text-align: left; }
  .cell-comment { max-width: none; white-space: normal; }
  .row-actions { justify-content: flex-start; padding-left: 110px; }
}

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


/* ---------- v12: копия ссылки Fanpage ---------- */
.cell-fp { position: relative; }
.cell-fp .fp-wrap { display: flex; align-items: center; gap: 4px; min-width: 0; }
.cell-fp .fp-id { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cell-fp .fp-copy { flex: 0 0 auto; opacity: 0; transition: opacity var(--ease); }
.cell-fp:hover .fp-copy { opacity: 1; }

/* ---------- v12: уведомления ---------- */
.notif-wrap { position: relative; }
.notif-btn { position: relative; font-size: 15px; padding: 5px 10px; }
.notif-badge {
  position: absolute; top: -4px; right: -4px;
  min-width: 17px; height: 17px; padding: 0 4px;
  border-radius: 99px; background: var(--danger); color: #fff;
  font-size: 10.5px; font-weight: 700; line-height: 17px; text-align: center;
  font-family: var(--mono);
}
.notif-panel {
  position: absolute; top: calc(100% + 8px); right: 0; z-index: 300;
  width: 340px; max-height: 440px; display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--radius-lg); box-shadow: var(--shadow-pop);
  overflow: hidden;
}
.notif-head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 12px 8px 14px; border-bottom: 1px solid var(--line);
  font-family: var(--display); font-size: 13px; font-weight: 600;
}
.notif-list { overflow-y: auto; }
.notif-item {
  padding: 10px 14px; border-bottom: 1px solid var(--line);
  cursor: pointer; transition: background var(--ease);
}
.notif-item:last-child { border-bottom: none; }
.notif-item:hover { background: var(--surface-2); }
.notif-item.unread { box-shadow: inset 3px 0 0 var(--accent); background: var(--accent-a-bg); }
.notif-title { font-size: 13px; font-weight: 600; }
.notif-body { font-size: 12.5px; color: var(--muted); margin-top: 2px; }
.notif-time { font-size: 11px; color: var(--dim); margin-top: 4px; font-family: var(--mono); }
.notif-empty { padding: 24px 16px; color: var(--muted); font-size: 13px; text-align: center; }

/* подсветка строки при переходе из уведомления */
@keyframes row-flash-kf {
  0%, 60% { background: var(--accent-a-bg2); }
  100% { background: transparent; }
}
tr.row-flash td { animation: row-flash-kf 2.4s ease-out; }

@media (max-width: 900px) {
  .notif-panel { position: fixed; left: 8px; right: 8px; top: 60px; width: auto; }
}

/* ---------- v12: раздел «Тексты» ---------- */
.tx-grid {
  display: grid; grid-template-columns: minmax(280px, 380px) minmax(360px, 640px);
  gap: 16px; align-items: start;
}
.tx-params {
  margin: 14px 0; padding: 12px;
  background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius);
}
.tx-params-cap {
  font-size: 10.5px; font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; color: var(--muted); margin-bottom: 10px;
}
.tx-param-row { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.tx-param-name { flex: 0 0 78px; font-size: 12.5px; color: var(--muted); }
.tx-param-row input, .tx-param-row select { flex: 1; min-width: 0; }
.tx-param-custom .tx-cp-name { flex: 0 0 120px; }
.tx-prompt-field { margin-bottom: 14px; }
.tx-prompt-row { display: flex; align-items: center; gap: 4px; }
.tx-prompt-row select { flex: 1; }
.tx-result { margin-top: 16px; }
.tx-result-head {
  display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px;
  font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--muted);
}
#tx-result { width: 100%; box-sizing: border-box; resize: vertical; font-size: 13.5px; line-height: 1.55; }
@media (max-width: 900px) { .tx-grid { grid-template-columns: 1fr; } }

/* ---------- v12: кнопка копии ссылки Fanpage видима ---------- */


/* ---------- v13: статус подключения AI ---------- */
.tx-ai-state { margin-top: 8px; font-size: 11.5px; color: var(--muted); line-height: 1.45; }
.tx-ai-state.ok { color: var(--st-active); }

/* ---------- v15: масштаб строк таблицы ---------- */
.density-switch {
  display: inline-flex; gap: 2px;
  background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--radius); padding: 2px;
}
.density-switch .btn { border: none; background: transparent; }
.density-switch .btn:hover { background: var(--surface); }
.density-switch .btn.active { background: var(--surface); color: var(--text); box-shadow: var(--tab-shadow); }

.dens-compact table.grid { font-size: 12px; }
.dens-compact .grid td { padding: 3px 8px; line-height: 1.25; }
.dens-compact .grid th { padding: 6px 8px; font-size: 9.5px; }
.dens-compact .status-pill, .dens-compact .prio-pill,
.dens-compact .cval-badge { padding: 0 7px; font-size: 10.5px; }
.dens-compact .prod-badge, .dens-compact .ctc-badge { padding: 0 6px; font-size: 11.5px; }
.dens-compact .row-btn { padding: 1px 5px; font-size: 12px; }
.dens-compact tr.day-sep td { padding: 3px 8px; font-size: 10px; }
.dens-compact .grid td.num { font-size: 11.5px; }

.dens-cozy .grid td { padding: 14px 14px; }
.dens-cozy .grid th { padding: 14px 14px; }

/* ---------- v16: конфигуратор лендингов ---------- */
.ld-steps { display: grid; gap: 12px; max-width: 1200px; }
/* Компактная раскладка: значения в 3 колонки, меньше пустого места */
.ld-card { padding: 14px 16px; }
.ld-card h3 { display: flex; align-items: center; gap: 9px; margin: 0 0 10px; font-size: 15px; }
.ld-sub { margin: 10px 0 6px; }
.ld-num {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--surface-2); border: 1px solid var(--line);
  font-family: var(--mono); font-size: 11.5px; color: var(--accent);
}
.ld-drop {
  display: flex; align-items: center; justify-content: center;
  min-height: 84px; padding: 14px; cursor: pointer; text-align: center;
  border: 2px dashed var(--line-2); border-radius: var(--radius);
  color: var(--muted); font-size: 13px;
  transition: border-color var(--ease), background var(--ease);
}
.ld-drop:hover, .ld-drop.drag { border-color: var(--accent); background: var(--accent-a-bg); color: var(--text); }
.ld-scan {
  margin-top: 12px; padding: 10px 12px; font-size: 12.5px; line-height: 1.7;
  background: var(--bg); border: 1px solid var(--line); border-radius: var(--radius);
}
.ld-scan code { font-family: var(--mono); font-size: 11.5px; color: var(--accent-hi); }
.ld-ok { color: var(--st-active); }
.ld-warn { color: var(--st-paused); }
.ld-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; margin-bottom: 14px; }
.ld-sub {
  font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em;
  color: var(--muted); margin: 14px 0 8px;
}
.ld-sub .hint { text-transform: none; letter-spacing: 0; font-style: normal; color: var(--dim); }
.ld-price-row { display: flex; align-items: center; gap: 8px; margin-bottom: 7px; }
.ld-from {
  flex: 0 0 190px; font-family: var(--mono); font-size: 12px;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 7px;
  padding: 7px 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ld-arrow { color: var(--dim); }
.ld-price-row input { flex: 1; min-width: 0; }
.ld-rule-from { flex: 0 0 190px !important; font-family: var(--mono); font-size: 12px; }
.ld-count { flex: 0 0 34px; font-size: 11.5px; color: var(--dim); font-family: var(--mono); }
.ld-imgs { display: flex; gap: 14px; flex-wrap: wrap; }
.ld-img { cursor: pointer; text-align: center; }
.ld-img-prev {
  width: 132px; height: 132px; display: flex; align-items: center; justify-content: center;
  border: 2px dashed var(--line-2); border-radius: var(--radius);
  color: var(--dim); font-size: 26px; overflow: hidden;
  transition: border-color var(--ease);
}
.ld-img:hover .ld-img-prev { border-color: var(--accent); }
.ld-img.filled .ld-img-prev { border-style: solid; border-color: var(--st-active); }
.ld-img-prev img { width: 100%; height: 100%; object-fit: contain; background: var(--surface-2); }
.ld-img-cap { margin-top: 6px; font-family: var(--mono); font-size: 11.5px; color: var(--muted); }
.ld-result {
  margin-top: 12px; padding: 10px 12px; font-size: 12.5px;
  background: var(--ok-a-bg); border: 1px solid var(--ok-a-line);
  border-radius: var(--radius); color: var(--text);
}
.ld-result code { font-family: var(--mono); font-size: 11.5px; }
@media (max-width: 900px) { .ld-grid { grid-template-columns: 1fr; } .ld-from, .ld-rule-from { flex-basis: 120px !important; } }

/* ---------- v17: редактор словарей лендингов ---------- */
.ld-dict-modal { max-width: 760px; }
.ld-dict-tools { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
.ld-dict-search { margin: 0; flex: 1; }
.ld-dict-list {
  max-height: 46vh; overflow-y: auto; display: flex; flex-direction: column; gap: 6px;
  padding-right: 4px; margin-bottom: 12px;
}
.ld-dict-row { display: flex; align-items: center; gap: 8px; }
.ld-dict-from {
  flex: 0 0 46%; font-size: 12px; color: var(--muted);
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 7px;
  padding: 7px 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ld-dict-to { flex: 1; min-width: 0; }
#ld-geo-hint { display: block; margin-top: 4px; font-size: 11.5px; color: var(--dim); }
@media (max-width: 900px) { .ld-dict-from { flex-basis: 40%; } }

/* ---------- v19: выбор болванки лендинга ---------- */
.ld-tpls { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-bottom: 12px; }
.ld-tpl {
  display: flex; flex-direction: column; align-items: center; gap: 6px; text-align: center;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--radius);
  padding: 14px 12px; cursor: pointer; font: inherit; color: var(--text);
  transition: border-color var(--ease), background var(--ease);
}
.ld-tpl:hover { border-color: var(--line-2); }
.ld-tpl.active { border-color: var(--accent); background: var(--accent-a-bg2); }
.ld-tpl-logo { font-size: 28px; line-height: 1; }
.ld-tpl-name { font-family: var(--display); font-weight: 600; font-size: 14px; }
.ld-own { margin-bottom: 10px; }
.ld-own summary { cursor: pointer; font-size: 12.5px; color: var(--muted); padding: 4px 0; }
.ld-own summary:hover { color: var(--text); }
.ld-values { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px 14px; margin-bottom: 4px; }
.ld-value-row .hint { color: var(--dim); font-style: normal; }
@media (max-width: 1100px) { .ld-values { grid-template-columns: 1fr 1fr; } }

/* ---------- v20: имя файла лендинга ---------- */
.ld-name-row { display: flex; gap: 6px; align-items: center; }
.ld-name-row input { flex: 1; }

/* ---------- v21: редактор стандартного промта ---------- */
#prompt-card { grid-column: 1 / -1; margin-top: 4px; }
.sp-text { width: 100%; box-sizing: border-box; resize: vertical; font-size: 13px; line-height: 1.5; }
.sp-foot { justify-content: flex-end; gap: 8px; margin-top: 10px; }
.sp-state { margin-top: 8px; font-size: 11.5px; color: var(--muted); }


/* ---------- v22: тёмные выпадающие списки ---------- */
select { color-scheme: dark; }
select option, select optgroup {
  background: var(--surface-2);
  color: var(--text);
}

/* ---------- v23: единая таблица офферов по GEO ---------- */
.dash-offers { table-layout: fixed; width: 100%; }
.dash-offers .c-offer { width: 40%; }
.dash-offers .c-num { width: 20%; }
.dash-offers .dash-geo-sep td {
  padding-top: 14px; font-family: var(--display); font-weight: 600;
  font-size: 12px; letter-spacing: .04em; color: var(--accent);
  border-bottom: 1px solid var(--line);
}
.dash-offers .dash-geo-sep:first-child td { padding-top: 4px; }

/* ---------- v27: матрица прав доступа ---------- */
.perms-table th.num, .perms-table td.num { text-align: center; white-space: nowrap; }
.perms-table th { font-size: 10px; }
.perm-box { width: 16px; height: 16px; cursor: pointer; accent-color: var(--accent); }
.perm-td { cursor: pointer; user-select: none; }
.perm-td:hover { background: var(--surface-2); }
.perm-cell { display: inline-block; min-width: 20px; font-size: 14px; }
.perm-yes { color: var(--st-active); }
.perm-no { color: var(--st-ban); }
.perm-inherit { color: var(--dim); }
.perm-always { color: var(--accent); }
.perm-admin-row td { opacity: .6; }
.perms-table .dim { color: var(--dim); font-family: var(--mono); font-size: 11px; }

/* ---------- v29: каталог колонок с видимостью ---------- */
.cc-item { align-items: center; }
.cc-vis { display: flex; align-items: center; gap: 8px; cursor: pointer; flex: 1; }
.cc-vis-box { width: 16px; height: 16px; accent-color: var(--accent); cursor: pointer; flex: 0 0 auto; }
.dict-empty { color: var(--dim); font-size: 13px; padding: 8px 2px; }

/* ---------- v29: подсказка о ресайзе колонок ---------- */
.hscroll-hint { color: var(--dim); font-size: 11.5px; font-weight: 400; margin-left: 2px; }

/* ---------- v29: настройки уведомлений ---------- */
.notif-head-actions { display: flex; gap: 4px; align-items: center; }
.notif-settings {
  padding: 10px 14px; border-bottom: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 8px; background: var(--surface-2);
}
.notif-opt { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.notif-opt input { width: 15px; height: 15px; accent-color: var(--accent); cursor: pointer; }
.notif-opt-hint { font-size: 11px; color: var(--dim); line-height: 1.4; }

/* ---------- v29: тумблер темы ---------- */
.theme-toggle { font-size: 15px; line-height: 1; padding: 6px 9px; }


/* ============ Светлая тема: точечные правки контраста ============ */
:root[data-theme="light"] .login-logo,
:root[data-theme="light"] .topbar-logo { color: #1a1c24; }

/* активная вкладка на светлом топбаре: заметный фон + рамка */
:root[data-theme="light"] .tab.active {
  background: var(--surface-2);
  box-shadow: inset 0 0 0 1px var(--line-2);
  color: var(--accent-hi);
}
:root[data-theme="light"] .tab { color: #5c6070; }
:root[data-theme="light"] .tab:hover { color: #1a1c24; }

/* заголовки таблицы — контрастнее */
:root[data-theme="light"] .grid th {
  color: #5c6070;
  background: var(--surface-2);
  border-bottom-color: var(--line-2);
}

/* строка-разделитель дат */
:root[data-theme="light"] tr.day-sep td {
  color: #5c6070;
}

/* кнопки-призраки: явная рамка */
:root[data-theme="light"] .btn-ghost {
  border-color: var(--line-2);
  color: #3a3f52;
}
:root[data-theme="light"] .btn-ghost:hover { background: var(--surface-2); }

/* поля ввода/селекты — рамка заметнее на белом */
:root[data-theme="light"] input,
:root[data-theme="light"] select,
:root[data-theme="light"] textarea {
  border-color: var(--line-2);
}

/* бейджи ролей на белом фоне — приглушённый фон-подложка */
:root[data-theme="light"] .badge-role-admin {
  color: #6b3fd0; background: rgba(122,63,208,.1);
  border-radius: 99px; padding: 2px 9px;
}
:root[data-theme="light"] .badge-role-assistant {
  color: #1a6fd0; background: rgba(26,111,208,.1);
  border-radius: 99px; padding: 2px 9px;
}
:root[data-theme="light"] .badge-role-teamlead,
:root[data-theme="light"] .badge-role-buyer {
  color: #3a3f52; background: rgba(90,96,112,.1);
  border-radius: 99px; padding: 2px 9px;
}

/* переключатели плотности строк */
:root[data-theme="light"] .density-switch { background: var(--surface-2); }
:root[data-theme="light"] .density-switch .btn.active {
  background: #ffffff; color: var(--accent-hi);
  box-shadow: 0 1px 3px rgba(30,35,60,.16);
}
:root[data-theme="light"] .density-switch .btn:hover { background: rgba(255,255,255,.6); }

/* тень всплывашек мягче, рамка виднее */
:root[data-theme="light"] .notif-panel,
:root[data-theme="light"] .modal-card,
:root[data-theme="light"] .colset-pop,
:root[data-theme="light"] .dict-card {
  border-color: var(--line-2);
}

/* полоски прокрутки в светлой теме */
:root[data-theme="light"] ::-webkit-scrollbar-thumb {
  background: #c4c8d4;
}
:root[data-theme="light"] ::-webkit-scrollbar-track {
  background: #eceef4;
}

/* выделение текста */
:root[data-theme="light"] ::selection { background: rgba(91,91,239,.22); }

/* ---------- undo/redo кнопки ---------- */
.undo-group { display: inline-flex; gap: 2px; margin-right: 6px; }
.btn-icon { font-size: 16px; line-height: 1; padding: 6px 10px; min-width: 34px; }
.btn-icon:disabled { opacity: .35; cursor: default; }
:root[data-theme="light"] .btn-icon:not(:disabled) { color: var(--accent-hi); }

/* ---------- v31: личная строка-разделитель ---------- */
tr.row-spacer td { height: 16px; background: transparent; border: none !important; padding: 0; }
.row-spacer-btn.active { color: var(--accent); }

/* ---------- v32: настройка кнопок строки ---------- */
.row-btn.rowbtn-off { display: none; }
.rowbtn-list { display: flex; flex-direction: column; gap: 8px; }
.rowbtn-opt { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.rowbtn-opt.locked { opacity: .6; cursor: default; }
.rowbtn-opt input { width: 15px; height: 15px; accent-color: var(--accent); }
.rowbtn-ic { display: inline-block; min-width: 24px; text-align: center; font-size: 14px; }

/* ---------- v32: меню цвета оффера ---------- */
.offer-color-menu {
  position: fixed; z-index: 1000; background: var(--surface);
  border: 1px solid var(--line-2); border-radius: var(--radius);
  box-shadow: var(--shadow-pop); padding: 12px; width: 220px;
}
.ocm-title { font-size: 12px; color: var(--muted); margin-bottom: 8px; line-height: 1.4; }
.ocm-title b { color: var(--text); }
.ocm-swatches { display: grid; grid-template-columns: repeat(7, 1fr); gap: 5px; margin-bottom: 10px; }
.ocm-sw { width: 22px; height: 22px; border-radius: 5px; border: 2px solid transparent; cursor: pointer; padding: 0; }
.ocm-sw.active { border-color: var(--text); }
.ocm-sw:hover { transform: scale(1.12); }
.ocm-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ocm-custom { font-size: 12px; color: var(--muted); display: flex; align-items: center; gap: 5px; }
.ocm-custom input[type=color] { width: 28px; height: 24px; padding: 0; border: 1px solid var(--line-2); border-radius: 4px; cursor: pointer; }

/* ---------- v32: drag-and-drop строк ---------- */
.row-draggable { cursor: default; }
.row-draggable[draggable="true"] { cursor: grab; }
.row-dragging { opacity: .4; cursor: grabbing; }
tr.drop-above td { box-shadow: inset 0 2px 0 var(--accent); }
tr.drop-below td { box-shadow: inset 0 -2px 0 var(--accent); }

/* приглушённая подпись про технические метки */
.ld-muted { color: var(--muted); font-size: 12px; }

/* ---------- v37: King + комментарий в кабинетах Farm ---------- */
.cab-row-farm { flex-wrap: nowrap; }
.cab-king-multi { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; flex: 0 1 auto; }
.king-chip { background: var(--accent); color: #fff; font-size: 11px; padding: 2px 7px; border-radius: 10px; white-space: nowrap; }
.king-empty { color: var(--muted); font-size: 12px; }
.king-add-btn { background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 6px; cursor: pointer; padding: 1px 6px; color: var(--muted); font-size: 11px; }
.king-add-btn:hover { color: var(--text); }
.king-picker { position: fixed; z-index: 1000; background: var(--surface); border: 1px solid var(--line-2); border-radius: 10px; box-shadow: var(--shadow-pop); padding: 8px; min-width: 160px; max-height: 260px; overflow-y: auto; }
.king-opt { display: flex; align-items: center; gap: 8px; padding: 5px 8px; font-size: 13px; cursor: pointer; border-radius: 6px; }
.king-opt:hover { background: var(--surface-2); }
.king-opt input { width: 15px; height: 15px; accent-color: var(--accent); }
.cab-comment { flex: 1 1 200px; min-width: 120px; }
.cab-head { display: flex; align-items: center; gap: 10px; }
.cab-head .dict-search { flex: 1 1 auto; }
.cab-head-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; flex-wrap: wrap; }
.cab-check-period { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.cab-check-period select { padding: 5px 8px; background: var(--surface-2); color: var(--text); border: 1px solid var(--line); border-radius: 8px; font: inherit; font-size: 12px; cursor: pointer; }

/* редактор списка King */
.king-editor { position: fixed; inset: 0; z-index: 60; background: var(--overlay);
  backdrop-filter: blur(3px); display: flex; align-items: flex-start; justify-content: center; padding: 60px 16px; overflow-y: auto; }
.king-editor-inner { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg);
  width: 100%; max-width: 420px; padding: 20px 22px; box-shadow: var(--shadow-pop); }
.king-editor-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.king-add { display: flex; gap: 8px; margin: 12px 0; }
.king-add input { flex: 1 1 auto; }
.king-list { display: flex; flex-direction: column; gap: 6px; max-height: 320px; overflow-y: auto; }
.king-item { display: flex; align-items: center; justify-content: space-between;
  padding: 7px 10px; background: var(--surface-2); border-radius: 8px; }

/* ---------- v39: фильтр колонок таблицы ---------- */
th { position: relative; }
.th-filter { background: none; border: none; color: var(--muted); cursor: pointer;
  font-size: 9px; padding: 0 2px; margin-left: 3px; opacity: .5; vertical-align: middle; }
th:hover .th-filter { opacity: 1; }
.th-filter.active { color: var(--accent); opacity: 1; }
.col-filter-pop { position: fixed; z-index: 1000; background: var(--surface);
  border: 1px solid var(--line-2); border-radius: 10px; box-shadow: var(--shadow-pop);
  padding: 10px; width: 230px; }
.col-filter-search { width: 100%; box-sizing: border-box; margin-bottom: 8px; padding: 6px 8px;
  background: var(--surface-2); border: 1px solid var(--line-2); border-radius: 6px; color: var(--text); font-size: 13px; }
.col-filter-actions { display: flex; gap: 8px; margin-bottom: 6px; }
.col-filter-actions button { flex: 1; background: var(--surface-2); border: 1px solid var(--line-2);
  border-radius: 6px; padding: 4px; font-size: 11px; color: var(--muted); cursor: pointer; }
.col-filter-actions button:hover { color: var(--text); }
.col-filter-list { max-height: 220px; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; margin-bottom: 8px; }
.col-filter-opt { display: flex; align-items: center; gap: 7px; padding: 4px 6px; font-size: 13px;
  cursor: pointer; border-radius: 5px; }
.col-filter-opt:hover { background: var(--surface-2); }
.col-filter-opt span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.col-filter-opt input { flex: 0 0 auto; width: 14px; height: 14px; accent-color: var(--accent); }
.col-filter-foot { display: flex; gap: 8px; }
.col-filter-foot .btn { flex: 1; }

/* ---------- Ads Power конвертер ---------- */
.ap-wrap { max-width: 900px; }
.ap-note { color: var(--muted); font-size: 14px; margin-bottom: 20px; line-height: 1.5; }
.ap-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; margin-bottom: 20px; }
.ap-grid .field-span2 { grid-column: span 2; }
.ap-grid .field span { display: block; font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 5px; }
.ap-grid .field input, .ap-grid .field select { width: 100%; box-sizing: border-box; }
.ap-drop {
  border: 2px dashed var(--line-2); border-radius: var(--radius); padding: 36px 20px;
  text-align: center; cursor: pointer; transition: border-color .15s, background .15s; margin-bottom: 16px;
}
.ap-drop.ap-drop-over { border-color: var(--accent); background: var(--surface-2); }
.ap-drop-icon { font-size: 34px; margin-bottom: 10px; }
.ap-drop-hint { color: var(--muted); font-size: 12px; margin-top: 6px; }
.ap-status { padding: 10px 14px; border-radius: 8px; font-size: 14px; margin-bottom: 16px; background: var(--surface-2); }
.ap-status-ok { color: var(--st-active); background: color-mix(in srgb, var(--st-active) 12%, transparent); }
.ap-status-warn { color: var(--st-banned); background: color-mix(in srgb, var(--st-banned) 12%, transparent); }
.ap-actions { display: flex; gap: 10px; margin-bottom: 20px; flex-wrap: wrap; }
.ap-preview-wrap { margin-top: 8px; }
.ap-preview-head { font-size: 12px; color: var(--muted); margin-bottom: 8px; font-weight: 600; }
.ap-preview {
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px;
  padding: 14px; font-size: 12px; font-family: var(--mono, monospace); overflow-x: auto;
  max-height: 340px; overflow-y: auto; white-space: pre-wrap; word-break: break-all; color: var(--text);
}

/* ---------- Ads Power: таблица распознавания ---------- */
.ap-recognition { margin: 8px 0 16px; }
.ap-rc-head { font-size: 12px; color: var(--muted); margin-bottom: 8px; font-weight: 600; }
.ap-rc-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; }
.ap-rc-table { border-collapse: collapse; width: 100%; font-size: 12px; }
.ap-rc-table th, .ap-rc-table td { padding: 7px 10px; text-align: left; border-bottom: 1px solid var(--line); white-space: nowrap; }
.ap-rc-table th { background: var(--surface-2); color: var(--muted); font-weight: 600; }
.ap-rc-table tr:last-child td { border-bottom: none; }
.ap-rc-ok { color: var(--text); }
.ap-rc-empty { color: var(--muted); opacity: .5; }
.ap-rc-warn { color: var(--st-banned); }

/* Карты кабинетов */
.cab-cards-multi { display: inline-flex; flex-wrap: wrap; gap: 4px; align-items: center; cursor: pointer; min-width: 60px; }
.card-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 8px 3px 6px;
  background: linear-gradient(135deg, #2b2f52 0%, #3a2f5e 50%, #4a3a63 100%);
  color: #f0f0f8; border: 1px solid rgba(255,255,255,.12);
  border-radius: 7px; font-size: 11px; white-space: nowrap;
  box-shadow: 0 1px 3px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
}
.card-chip-ic { font-size: 11px; opacity: .9; }
.card-chip-name { font-weight: 600; }
.card-chip-num { font-family: var(--mono, monospace); letter-spacing: .5px; opacity: .85; }
:root[data-theme="light"] .card-chip { background: linear-gradient(135deg, #4b4f7a 0%, #5a4f8e 100%); color: #fff; }
.card-add-hint { color: var(--muted); font-size: 12px; opacity: .6; }
.cab-cards-multi:hover .card-add-hint { opacity: 1; }
.cab-popover { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.45); padding: 10px; min-width: 220px; max-width: 90vw; box-sizing: border-box; }
.card-picker { display: flex; flex-direction: column; gap: 6px; }
.card-pick-item { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; padding: 4px 6px; color: var(--text); border-radius: 6px; }
.card-pick-item:hover { background: var(--surface-2); }
.card-pick-empty { font-size: 12px; color: var(--muted); padding: 4px; }
.ui-modal-backdrop { position: fixed; inset: 0; background: rgba(0,0,0,.4); display: flex; align-items: center; justify-content: center; z-index: 9998; }
.my-cards-list { display: flex; flex-direction: column; gap: 6px; max-height: 300px; overflow-y: auto; }
.my-card-row { display: flex; align-items: center; justify-content: space-between; padding: 8px 10px; background: var(--surface-2); color: var(--text); border-radius: 8px; font-size: 14px; }

/* Компактные фильтры кабинетов */
.cab-filters { display: flex; flex-wrap: wrap; gap: 10px 14px; margin: 8px 0 12px; padding: 10px 12px; background: var(--surface-2); border-radius: 10px; }
.cab-filter-field { display: flex; flex-direction: column; gap: 3px; font-size: 12px; }
.cab-filter-field span { color: var(--muted); font-weight: 600; }
.cab-filter-field select { padding: 6px 10px; border: 1px solid var(--line); border-radius: 7px; background: var(--surface-2); color: var(--text); font-size: 13px; min-width: 150px; }
/* Строка кабинета — вытянута в ширину, метки компактно */
.cab-row { flex-wrap: wrap; }
.cab-row .cab-id { min-width: 90px; }
@media (max-width: 700px) {
  .cab-filters { gap: 8px; }
  .cab-filter-field select { min-width: 120px; }
  .cab-row { gap: 8px; }
}

/* Модалка Мои карты — тёмная тема */
.ui-modal-backdrop .ui-modal { background: var(--surface); color: var(--text); border: 1px solid var(--line); border-radius: 14px; padding: 20px; box-shadow: 0 12px 40px rgba(0,0,0,.5); box-sizing: border-box; width: 100%; }
.my-card-add { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.mc-input { width: 100%; box-sizing: border-box; padding: 10px 12px; background: var(--surface-2); color: var(--text); border: 1px solid var(--line); border-radius: 8px; font-size: 14px; outline: none; }
.mc-input:focus { border-color: var(--accent, #6366f1); }
.mc-input::placeholder { color: var(--muted); }
.my-card-add .btn { width: 100%; }
.my-card-row span { color: var(--text); }
/* фильтры карт/king — плейсхолдер и опции тёмные */
.cab-filter-field select option { background: var(--surface); color: var(--text); }
.card-add-hint { color: var(--muted); }

/* Проверка кабинетов по Keitaro */
/* индикатор состояния кабинета — единая колонка слева, без заливки всей строки */
.cab-dot { flex: 0 0 16px; width: 16px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; line-height: 1; }
.cab-dot-none { visibility: hidden; }
.cab-dot-green::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--ok-ink); box-shadow: 0 0 0 3px rgba(var(--ok-rgb),.16); }
.cab-dot-red::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--bad-ink); box-shadow: 0 0 0 3px rgba(220,38,38,.16); }
.cab-dot-yellow { color: var(--warn-ink); cursor: help; }
.cab-check-missing { margin: 10px 0; padding: 12px 14px; background: linear-gradient(135deg, rgba(220,38,38,.18), rgba(234,88,12,.18)); border: 2px solid var(--bad-ink); border-radius: 10px; }
.cab-miss-title { font-weight: 700; color: #fca5a5; margin-bottom: 8px; font-size: 14px; }
.cab-miss-list { display: flex; flex-wrap: wrap; gap: 8px; }
.cab-miss-item { display: inline-block; padding: 4px 10px; background: rgba(0,0,0,.3); border: 1px solid var(--bad-ink); border-radius: 7px; font-size: 13px; color: #fff; }
.cab-check-info { margin: 8px 0; padding: 8px 12px; background: var(--surface-2); border-radius: 8px; font-size: 13px; color: var(--text); }
.ktg-list { display: flex; flex-direction: column; gap: 6px; }
.ktg-row { display: flex; align-items: center; justify-content: space-between; padding: 6px 10px; background: var(--surface-2); border-radius: 7px; font-size: 13px; color: var(--text); }

/* Таймфрейм диаграммы кабинетов */
.cabchart-tf { display: inline-flex; gap: 4px; margin: 0 0 12px; }
.cabchart-tf-btn { padding: 4px 12px; background: var(--surface-2); color: var(--muted); border: 1px solid var(--line); border-radius: 7px; font-size: 12px; cursor: pointer; }
.cabchart-tf-btn.active { background: var(--accent, #6366f1); color: #fff; border-color: var(--accent, #6366f1); }

/* ================= Домены ================= */
.btn-xs { padding: 3px 8px; font-size: 11.5px; border-radius: 6px; }
.dom-card { margin-bottom: 16px; }
.dom-card textarea { width: 100%; box-sizing: border-box; font-family: var(--mono); font-size: 13px; resize: vertical; min-height: 120px; }
.dom-form-row { display: flex; align-items: center; gap: 12px; margin-top: 10px; flex-wrap: wrap; }
.dom-kt { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted); }
.dom-kt select { min-width: 200px; }
.dom-count { color: var(--muted); font-size: 12.5px; flex: 1 1 auto; }
.dom-note { margin-top: 10px; color: var(--dim); font-size: 12px; }
.dom-runcard { margin-bottom: 12px; padding: 12px 14px; }
.dom-runhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.dom-runtitle { font-size: 13px; color: var(--text); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dom-runstat { display: inline-flex; gap: 6px; margin-left: 6px; }
.dom-runbtns { display: flex; gap: 6px; flex-wrap: wrap; }
.dom-rows { display: flex; flex-direction: column; gap: 4px; }
.dom-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(160px, 1.4fr) minmax(120px, 1.6fr) auto; gap: 10px; align-items: center;
  padding: 6px 10px; background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; font-size: 13px; }
.dom-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dom-st { display: flex; gap: 6px; flex-wrap: wrap; }
.dom-err { color: var(--bad-ink); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dom-act { justify-self: end; }
.dom-b { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 999px; font-size: 11.5px; border: 1px solid var(--line); color: var(--muted); background: transparent; white-space: nowrap; }
.dom-b-ok { color: var(--ok-ink); border-color: rgba(var(--ok-rgb),.4); background: rgba(var(--ok-rgb),.10); }
.dom-b-err { color: var(--bad-ink); border-color: rgba(220,38,38,.4); background: rgba(220,38,38,.10); }
.dom-b-wait { color: var(--warn-ink); border-color: rgba(var(--warn-rgb),.4); background: rgba(var(--warn-rgb),.10); }
.dom-b-warn { color: var(--warn-ink); }
.dom-b-mut { color: var(--muted); }
/* модалка настроек */
.dom-set h4 { margin: 14px 0 6px; font-family: var(--display); font-size: 13px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
.dom-set h4:first-child { margin-top: 0; }
.dom-soon { font-weight: 400; font-size: 11px; color: var(--dim); text-transform: none; }
.dom-set-note { font-size: 12px; color: var(--muted); margin-bottom: 8px; }
.dom-kt-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 8px; }
.dom-kt-row { display: grid; grid-template-columns: 1.1fr 1.3fr auto 1fr 1.2fr auto auto auto; gap: 10px; align-items: center; padding: 8px 10px;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: 8px; font-size: 12.5px; }
.dom-kt-row input { padding: 5px 8px; font-size: 12.5px; min-width: 0; }
.dom-kt-host { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); }
.dom-kt-key { color: var(--muted); white-space: nowrap; }
.dom-kt-res { grid-column: 1 / -1; font-size: 12.5px; color: var(--muted); min-height: 0; white-space: normal; word-break: break-word; line-height: 1.4; }
.dom-kt-res.ok { color: var(--ok-ink); } .dom-kt-res.err { color: var(--bad-ink); }
.dom-kt-res:empty { display: none; }
.dom-kt-add { display: grid; grid-template-columns: 1fr 1.4fr 1fr auto; gap: 8px; align-items: center; }
.dom-set-grid { display: grid; grid-template-columns: minmax(360px, 2fr) auto auto; gap: 10px; align-items: center; }
.dom-set-grid input { min-width: 0; width: 100%; font-size: 13px; padding: 7px 10px; }
.dom-set-grid .dom-kt-res { grid-column: 1 / -1; }
.dom-cf-opt { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--text); cursor: pointer; user-select: none; }
.dom-cf-opt input { width: 15px; height: 15px; accent-color: var(--accent); }
.dom-cf-opt.dom-cf-off { color: var(--dim); cursor: not-allowed; }
.dom-row-cf { grid-template-columns: minmax(170px, 1.1fr) minmax(260px, 2fr) minmax(150px, 1.2fr) minmax(100px, 1fr) auto; }
.dom-ns { font-family: var(--mono); font-size: 11.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 260px; display: inline-block; vertical-align: middle; }
.dom-set-state { font-size: 12px; color: var(--muted); white-space: nowrap; }
@media (max-width: 760px) {
  .dom-row, .dom-row-cf { grid-template-columns: 1fr; }
  .dom-act { justify-self: start; }
  .dom-kt-row, .dom-kt-add, .dom-set-grid { grid-template-columns: 1fr; }
}
/* ---- видимость справочников ---- */
.dict-mode { font-size: 11.5px; padding: 2px 6px; border-radius: 6px; background: var(--surface-2); color: var(--muted); border: 1px solid var(--line); }
.dict-mode-badge { font-size: 11px; color: var(--warn-ink); font-weight: 500; }
.dict-tools { display: inline-flex; gap: 6px; flex-wrap: wrap; flex-basis: 100%; }
.dict-acc { font-size: 11px; padding: 2px 9px; border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--muted); cursor: pointer; white-space: nowrap; max-width: 100%; overflow: hidden; text-overflow: ellipsis; flex: 0 1 auto; font-weight: 400; font-family: inherit; }
.dict-acc:hover { border-color: var(--line-2); color: var(--text); }
.dict-acc-limited { color: var(--warn-ink); border-color: rgba(var(--warn-rgb),.45); }
.dict-add-acc { white-space: nowrap; }
.dict-item { position: relative; }
/* диалог выбора сотрудников */
.modal-acc { max-width: 440px; }
.dacc-sub { font-size: 12px; color: var(--muted); margin: -4px 0 10px; }
.dacc-tools { display: flex; gap: 6px; margin-bottom: 8px; }
.dacc-tools input { flex: 1 1 auto; min-width: 0; }
.dacc-list { max-height: 50vh; overflow-y: auto; display: flex; flex-direction: column; gap: 2px; border: 1px solid var(--line); border-radius: 8px; padding: 4px; margin-bottom: 10px; }
.dacc-row { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 6px; font-size: 14px; cursor: pointer; }
.dacc-row:hover { background: var(--surface-2); }
.dacc-row input { width: 18px; height: 18px; accent-color: var(--accent); flex: 0 0 auto; }
.dacc-name { flex: 1 1 auto; }
.dacc-role { font-size: 11px; color: var(--dim); }
.dacc-count { margin-right: auto; font-size: 12px; color: var(--muted); }
.dacc-select { width: 100%; margin-bottom: 12px; font-size: 14px; padding: 8px 10px; }
@media (max-width: 760px) {
  .modal-acc { max-width: none; width: 100%; height: 100%; max-height: 100%; border-radius: 0; display: flex; flex-direction: column; }
  .dacc-list { flex: 1 1 auto; max-height: none; }
  .modal-acc .modal-foot { flex-wrap: wrap; }
}
.ktg-kt { font-size: 11px; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 1px 7px; margin-left: 6px; }
.cab-spend { width: 96px; flex: 0 0 96px; text-align: right; font-family: var(--mono); font-size: 12.5px; }
.cab-foot { display: flex; gap: 6px; align-items: center; padding: 8px 11px; font-size: 12.5px; color: var(--muted); border-top: 1px dashed var(--line); margin-top: 4px; }
.cab-foot b { color: var(--text); }
.cab-foot-n { color: var(--dim); font-size: 11.5px; }
.cab-ag-badge { font-size: 11px; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--surface); color: var(--muted); white-space: nowrap; flex: 0 0 auto; }
.cab-ag-pill.cab-ag-all { font-weight: 600; }
#cab-new-agency { min-width: 110px; }
/* ---- короткие ссылки ---- */
.sl-table { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.sl-thead, .sl-tr { display: grid; grid-template-columns: 44px minmax(220px, 1.4fr) minmax(160px, 1fr) minmax(120px, .8fr) 120px minmax(90px, .6fr) 150px; gap: 10px; align-items: center; padding: 9px 12px; }
.sl-thead { font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); background: var(--surface-2); border-bottom: 1px solid var(--line); }
.sl-tr { border-bottom: 1px solid var(--line); background: var(--surface); font-size: 13px; }
.sl-tr:last-child { border-bottom: 0; }
.sl-id { color: var(--muted); font-family: var(--mono); font-size: 12px; }
.sl-url-cell { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.sl-url-box { display: flex; align-items: center; gap: 6px; min-width: 0; }
.sl-url-box code { font-size: 12px; color: var(--warn-ink); overflow-wrap: anywhere; background: var(--surface-2); padding: 3px 6px; border-radius: 6px; flex: 1 1 auto; }
.sl-copy { flex: 0 0 auto; border: 1px solid var(--line); background: transparent; color: var(--muted); border-radius: 6px; padding: 3px 7px; cursor: pointer; font-size: 12px; }
.sl-copy:hover { color: var(--text); border-color: var(--line-2); }
.sl-copy-ad { align-self: flex-start; border: 1px dashed var(--line-2); background: transparent; color: var(--muted); border-radius: 6px; padding: 2px 7px; cursor: pointer; font-size: 11px; }
.sl-copy-ad:hover { color: var(--text); }
.sl-title-cell { display: flex; align-items: center; gap: 6px; min-width: 0; }
.sl-title { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; display: flex; align-items: center; gap: 8px; }
.sl-thumb { width: 36px; height: 36px; border-radius: 6px; object-fit: cover; border: 1px solid var(--line); flex: 0 0 auto; }
.sl-comment { color: var(--muted); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sl-status-cell { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; }
.sl-st { font-weight: 600; font-size: 12px; }
.sl-st-live { color: var(--ok-ink); } .sl-st-off { color: var(--dim); } .sl-st-warn { color: var(--warn-ink); }
.sl-clicks, .sl-owner { color: var(--muted); }
.sl-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.sl-actions { display: flex; flex-wrap: wrap; gap: 4px; justify-content: flex-end; }
.sl-btn-edit { background: #f59e0b; color: #1a1a1a; border-color: #f59e0b; }
.sl-btn-del { background: var(--bad-ink); color: #fff; border-color: var(--bad-ink); }
.sl-form { display: flex; flex-direction: column; gap: 10px; }
.sl-form .field textarea, .sl-form .field input[type=text], .sl-form .field select { width: 100%; }
.sl-preview { font-size: 12.5px; color: var(--muted); margin: -4px 0 0; }
.sl-preview code { color: var(--warn-ink); }
.sl-hint { font-size: 11.5px; color: var(--muted); margin-top: -6px; }
.sl-img-cur { display: flex; align-items: center; gap: 10px; }
.sl-img-cur img { width: 120px; height: 63px; object-fit: cover; border-radius: 6px; border: 1px solid var(--line); }
.sl-status { flex-direction: row !important; align-items: center; gap: 8px; }
/* настройки — по шагам */
.sl-steps { display: flex; flex-direction: column; gap: 14px; }
.sl-step { display: flex; gap: 12px; }
.sl-step-n { flex: 0 0 26px; height: 26px; border-radius: 50%; background: var(--accent); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 13px; }
.sl-step-b { flex: 1 1 auto; font-size: 13px; color: var(--muted); line-height: 1.45; }
.sl-step-b b { color: var(--text); }
.sl-step-b code { color: var(--warn-ink); }
.sl-step-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.sl-step-row input { flex: 1 1 220px; min-width: 0; }
.sl-step-hint { font-size: 11.5px; color: var(--dim); }
@media (max-width: 900px) {
  .sl-thead { display: none; }
  .sl-tr { grid-template-columns: 1fr; gap: 6px; }
  .sl-actions { justify-content: flex-start; }
}
.sl-form .invalid, .sl-form .invalid:focus { border-color: var(--bad-ink) !important; box-shadow: 0 0 0 2px rgba(220,38,38,.25); }
#sl-err { margin-top: 10px; }

/* AdsPower: таблица-предпросмотр с переназначением столбцов */
.ap-tbl-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:12px; color:var(--muted); font-weight:600; }
.ap-tbl-scroll { overflow:auto; max-height:480px; border:1px solid var(--line); border-radius:8px; }
.ap-tbl { border-collapse:collapse; width:100%; font-size:12px; }
.ap-tbl th, .ap-tbl td { padding:6px 10px; text-align:left; border-bottom:1px solid var(--line); white-space:nowrap; max-width:260px; overflow:hidden; text-overflow:ellipsis; }
.ap-tbl th { background:var(--surface-2); color:var(--text); font-weight:600; position:sticky; top:0; z-index:1; }
.ap-tbl th .ap-th-src { display:block; font-weight:400; font-size:10px; color:var(--muted); margin-top:2px; }
.ap-tbl th .ap-th-edit { margin-left:6px; cursor:pointer; opacity:.6; font-size:12px; }
.ap-tbl th .ap-th-edit:hover { opacity:1; }
.ap-tbl th.ap-th-manual { color:var(--accent); }
.ap-tbl td.ap-empty { color:var(--muted); }
.ap-tbl td.ap-bad { background:rgba(220,60,60,.12); color:#c0392b; font-weight:600; }
.ap-tbl tr.ap-row-bad td { background:rgba(220,60,60,.06); }
.ap-tbl td.ap-ok-cookie { color:#2e9e5e; }
.ap-remap-hint { font-size:12px; color:var(--muted); margin-bottom:10px; }
.ap-remap-sep { font-size:12px; margin-bottom:8px; }
.ap-remap-sep button { margin-left:4px; padding:2px 8px; font-size:12px; }
.ap-remap-sep button.active { background:var(--accent); color:#fff; border-color:var(--accent); }
.ap-remap-chips { display:flex; flex-wrap:wrap; gap:6px; max-height:300px; overflow:auto; padding:6px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); }
.ap-chip { border:1px solid var(--line); background:var(--surface); border-radius:6px; padding:4px 8px; font-family:ui-monospace,monospace; font-size:11px; cursor:pointer; max-width:380px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ap-chip:hover { border-color:var(--accent); }
.ap-chip.ap-chip-sel { background:var(--accent); color:#fff; border-color:var(--accent); }
.ap-chip .ap-chip-n { color:var(--muted); margin-right:4px; font-size:10px; }
.ap-chip.ap-chip-sel .ap-chip-n { color:#fff; opacity:.8; }
.ap-chip-special { border-style:dashed; }
.ap-remap-actions { margin-top:10px; display:flex; gap:8px; }
.ap-remap-rawlabel { font-size:11px; color:var(--muted); margin-bottom:4px; }
.ap-remap-raw { font-family:ui-monospace,monospace; font-size:11px; white-space:pre-wrap; word-break:break-all; max-height:120px; overflow:auto; padding:8px; border:1px solid var(--line); border-radius:8px; background:var(--surface-2); margin:0 0 10px; }
.ap-remap-raw mark { background:#ffe58a; color:#000; padding:0 2px; border-radius:3px; }
.ld-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:12px 16px; }
@media (max-width:760px){ .ld-grid2 { grid-template-columns:1fr; } }

/* ==========================================================================
   Комментарии — таск-менеджер (v160)
   ========================================================================== */
.badge-role-commenter { color: var(--st-paused); }
.danger-text { color: var(--danger) !important; }
.cm-dim { color: var(--muted); font-size: 12px; }
.cm-grow { flex: 1 1 auto; }
.cm-inline { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); cursor: pointer; }

.cm-bar-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.cm-bar-row input[type="search"] { flex: 1 1 220px; max-width: 320px; }
.cm-bar-row select { max-width: 240px; }
.cm-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cm-chip {
  border: 1px solid var(--line); background: var(--surface); color: var(--muted);
  border-radius: 999px; padding: 5px 12px; font-size: 12.5px; cursor: pointer;
}
.cm-chip b { color: var(--text); font-weight: 600; margin-left: 2px; }
.cm-chip:hover { border-color: var(--line-2); }
.cm-chip.active { border-color: var(--accent-a-line); background: var(--accent-a-bg2); color: var(--text); }

.cm-list { display: flex; flex-direction: column; gap: 8px; }
.cm-empty { padding: 28px 16px; text-align: center; color: var(--muted); border: 1px dashed var(--line); border-radius: var(--radius-lg); }
.cm-task {
  display: grid; grid-template-columns: minmax(0, 1fr) 130px 104px; gap: 14px; align-items: center;
  background: var(--surface); border: 1px solid var(--line); border-left: 3px solid var(--line-2);
  border-radius: var(--radius); padding: 12px 14px; cursor: pointer;
}
.cm-task:hover, .cm-task:focus { border-color: var(--line-2); outline: none; }
.cm-task-new  { border-left-color: var(--st-testing); }
.cm-task-work { border-left-color: var(--st-paused); }
.cm-task-done { border-left-color: var(--st-active); opacity: .78; }
.cm-task-main { min-width: 0; }
.cm-task-title { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-id { color: var(--muted); font-family: var(--mono); font-size: 12px; font-weight: 500; margin-right: 2px; }
.cm-price { font-family: var(--mono); font-size: 12px; color: var(--st-active); margin-left: 6px; }
.cm-task-sub { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 4px; font-size: 12px; color: var(--muted); }
.cm-url { font-family: var(--mono); font-size: 11.5px; overflow-wrap: anywhere; }
.cm-plat { font-size: 11px; padding: 1px 7px; border-radius: 999px; border: 1px solid var(--info-a-line, var(--line-2)); background: var(--info-a-bg); color: var(--st-testing); }
.cm-progress { display: flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; color: var(--muted); }
.cm-bar { flex: 1; height: 6px; border-radius: 999px; background: var(--surface-2); overflow: hidden; }
.cm-bar i { display: block; height: 100%; background: var(--st-active); border-radius: 999px; transition: width .25s; }
.cm-st { justify-self: end; font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; border: 1px solid; white-space: nowrap; }
.cm-st-new  { color: var(--st-testing); background: var(--info-a-bg); border-color: var(--info-a-line, var(--line-2)); }
.cm-st-work { color: var(--st-paused);  background: var(--warn-a-bg); border-color: var(--warn-a-line); }
.cm-st-done { color: var(--st-active);  background: var(--ok-a-bg);   border-color: var(--ok-a-line); }

/* модалки раздела: тело прокручивается, шапка и футер на месте */
.cm-modal { max-width: 820px; }
.cm-modal-xl { max-width: 1060px; }
.cm-modal-body { overflow-y: auto; min-height: 0; flex: 1 1 auto; padding-right: 2px; }
.cm-view-foot { flex-wrap: wrap; }
.cm-v-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.cm-v-top a.btn { text-decoration: none; }
.cm-v-url { margin: 8px 0 10px; font-size: 12px; color: var(--muted); overflow-wrap: anywhere; }
.cm-v-vals { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.cm-val { font-size: 12.5px; padding: 3px 9px; border-radius: 7px; background: var(--surface-2); border: 1px solid var(--line); }
.cm-val em { font-style: normal; color: var(--muted); }
.cm-v-note { font-size: 13px; padding: 9px 12px; border-radius: var(--radius); background: var(--warn-a-bg); border: 1px solid var(--warn-a-line); margin-bottom: 10px; white-space: pre-wrap; }
.cm-v-meta { font-size: 12.5px; color: var(--muted); margin-bottom: 8px; }
.cm-v-need { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12.5px; color: var(--muted); margin-bottom: 10px; }

.cm-g { display: inline-flex; align-items: center; gap: 3px; font-size: 11.5px; font-weight: 600; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--line-2); color: var(--muted); }
.cm-g-f { color: #ff8fc8; border-color: rgba(255, 143, 200, .4); background: rgba(255, 143, 200, .09); }
.cm-g-m { color: var(--st-testing); border-color: var(--info-a-line, rgba(98, 168, 255, .4)); background: var(--info-a-bg); }

.cm-items { display: flex; flex-direction: column; gap: 8px; }
.cm-item {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: start;
  padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2);
}
.cm-item.done { border-color: var(--ok-a-line); background: var(--ok-a-bg); }
.cm-item.done .cm-text { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--dim); }
.cm-check { display: flex; flex-direction: column; align-items: center; gap: 2px; cursor: pointer; padding-top: 2px; }
.cm-check input { width: 20px; height: 20px; accent-color: var(--st-active); cursor: pointer; }
.cm-check span { font-family: var(--mono); font-size: 11px; color: var(--dim); }
.cm-item-body { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.cm-item-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cm-text { font-size: 14px; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; user-select: text; }
.cm-proof { width: 100%; box-sizing: border-box; font-size: 12px; padding: 5px 8px; border-radius: 7px; border: 1px solid var(--line); background: var(--surface); color: var(--text); }
.cm-copy { align-self: start; }

/* форма задачи */
.cm-vals { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.cm-vals .field input { width: 100%; box-sizing: border-box; }
.cm-key { font-family: var(--mono); font-size: 10.5px; color: var(--dim); text-transform: none; letter-spacing: 0; }
#cm-task-form textarea { width: 100%; box-sizing: border-box; resize: vertical; }
.cm-prev-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 18px 0 8px; font-size: 13.5px; }
.cm-edit-items { display: flex; flex-direction: column; gap: 8px; }
.cm-edit-row {
  display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 8px; align-items: start;
  padding: 8px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--surface-2);
}
.cm-edit-row.cm-warn { border-color: var(--warn-a-line); }
.cm-edit-row textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 44px; font-size: 13.5px; line-height: 1.4; }
.cm-n { font-family: var(--mono); font-size: 11.5px; color: var(--dim); padding-top: 8px; text-align: right; }
.cm-e-side { display: flex; flex-direction: column; gap: 6px; align-items: stretch; }
.cm-e-side select { font-size: 12px; padding: 4px 6px; }
.cm-e-warn { grid-column: 2 / -1; font-size: 11.5px; color: var(--st-paused); }

/* шаблоны */
.cm-tpl-wrap { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; min-height: 0; flex: 1 1 auto; overflow: hidden; }
.cm-tpl-side { display: flex; flex-direction: column; gap: 10px; min-height: 0; overflow-y: auto; border-right: 1px solid var(--line); padding-right: 14px; }
.cm-tpl-list { display: flex; flex-direction: column; gap: 4px; }
.cm-tpl-item {
  display: flex; flex-direction: column; gap: 2px; text-align: left; cursor: pointer;
  padding: 8px 10px; border-radius: 8px; border: 1px solid transparent; background: none; color: var(--text);
}
.cm-tpl-item:hover { background: var(--surface-2); }
.cm-tpl-item.active { background: var(--accent-a-bg2); border-color: var(--accent-a-line); }
.cm-tpl-name { font-size: 13px; font-weight: 600; overflow-wrap: anywhere; }
.cm-tpl-main { display: flex; flex-direction: column; gap: 12px; min-height: 0; overflow-y: auto; padding-right: 4px; }
.cm-tpl-main .field input { width: 100%; box-sizing: border-box; }
.cm-tpl-ro { font-size: 12.5px; padding: 8px 12px; border-radius: var(--radius); background: var(--info-a-bg); border: 1px solid var(--info-a-line, var(--line-2)); }
.cm-labels-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cm-lbl {
  font-family: var(--mono); font-size: 12px; padding: 3px 8px; border-radius: 7px; cursor: pointer;
  border: 1px solid var(--accent-a-line); background: var(--accent-a-bg); color: var(--accent-hi);
}
.cm-lbl:hover { background: var(--accent-a-bg2); }
.cm-lbl-manage summary { cursor: pointer; font-size: 12.5px; color: var(--muted); }
.cm-lbl-manage[open] summary { margin-bottom: 8px; }
.cm-lbl-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 5px 0; border-bottom: 1px solid var(--line); font-size: 13px; }
.cm-lbl-row code { font-family: var(--mono); font-size: 12px; color: var(--accent-hi); min-width: 90px; }
.cm-lbl-title { flex: 1 1 auto; }
.cm-tpl-actions { display: flex; flex-wrap: wrap; gap: 8px; }

@media (max-width: 760px) {
  .cm-task { grid-template-columns: minmax(0, 1fr) auto; }
  .cm-task .cm-progress { grid-column: 1 / -1; grid-row: 2; }
  .cm-task-title { white-space: normal; }
  .cm-vals { grid-template-columns: 1fr; }
  .cm-tpl-wrap { grid-template-columns: 1fr; overflow-y: auto; }
  .cm-tpl-side { border-right: none; border-bottom: 1px solid var(--line); padding: 0 0 10px; max-height: 180px; }
  .cm-tpl-main { overflow: visible; }
  .cm-edit-row { grid-template-columns: minmax(0, 1fr); }
  .cm-n { display: none; }
  .cm-e-side { flex-direction: row; }
  .cm-e-warn { grid-column: 1; }
  .cm-bar-row input[type="search"] { max-width: none; }
  #modal-cm-view .modal, #modal-cm-task .modal, #modal-cm-tpls .modal { max-height: none; }
}

/* ---------- v161: ветка комментариев «как под постом» ---------- */
.cm-fb {
  --fb-bg: #ffffff; --fb-bubble: #f0f2f5; --fb-text: #050505; --fb-muted: #65676b; --fb-link: #0064d1;
  background: var(--fb-bg); color: var(--fb-text); border-radius: 12px; padding: 12px 16px 14px;
  font-family: -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; border: 1px solid var(--line);
}
.cm-fb-empty { color: var(--fb-muted); font-size: 14px; padding: 8px 0; }
.cm-fb-c { display: flex; gap: 8px; align-items: flex-start; padding: 6px 0; }
.cm-fb-c.cm-fb-reply { margin-left: 48px; }
.cm-fb .cm-av { width: 40px; height: 40px; font-size: 14px; }
.cm-fb-reply .cm-av { width: 32px; height: 32px; font-size: 12px; }
.cm-fb-body { min-width: 0; flex: 1 1 auto; }
.cm-fb-bubble { display: inline-block; max-width: 100%; background: var(--fb-bubble); border-radius: 18px; padding: 8px 12px; box-sizing: border-box; }
.cm-fb-name { font-size: 13px; font-weight: 600; line-height: 1.3; color: var(--fb-text); }
.cm-fb-text { font-size: 15px; line-height: 1.34; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--fb-text); user-select: text; }
.cm-fb-anon { color: var(--fb-muted); font-weight: 500; }
.cm-mention { color: var(--fb-link); font-weight: 600; }
.cm-fb-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; padding: 3px 0 0 12px; font-size: 12px; }
.cm-fb-act { font-size: 12px; font-weight: 700; color: var(--fb-muted); background: none; border: none; padding: 0; cursor: default; }
button.cm-fb-act { cursor: pointer; }
button.cm-fb-act:hover { text-decoration: underline; }
.cm-fb-done.on { color: #1a7f37; }
.cm-fb-meta { color: var(--fb-muted); font-size: 12px; }
.cm-fb-c.done .cm-fb-bubble { opacity: .55; }
.cm-fb .cm-proof { margin-top: 6px; max-width: 420px; background: #fff; color: var(--fb-text); border-color: #ccd0d5; }
.cm-v-hint { font-size: 12px; color: var(--muted); margin: 0 0 8px; }

/* аватар: фото, инициалы или серый силуэт */
.cm-av { flex: none; width: 36px; height: 36px; border-radius: 50%; object-fit: cover; display: inline-flex; align-items: center; justify-content: center; overflow: hidden; }
.cm-av-ini { background: hsl(var(--h, 210) 55% 86%); color: hsl(var(--h, 210) 50% 26%); font-weight: 600; font-size: 13px; font-family: inherit; }
.cm-av-none { background: #d8dadf; }
.cm-av-none svg { width: 72%; height: 72%; fill: #f0f2f5; margin-top: 18%; }

/* аккаунт в задаче */
.cm-acc-edit { margin-top: 8px; padding: 8px 10px; border-radius: 10px; background: #f7f8fa; border: 1px solid #e4e6eb; }
.cm-acc-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.cm-acc-row .cm-acc-name { flex: 1 1 160px; min-width: 0; font-size: 13px; padding: 5px 8px; border-radius: 7px; border: 1px solid #ccd0d5; background: #fff; color: #050505; }
.cm-acc-edit .cm-dim { color: #65676b; }

/* строка редактора: аватар слева, сверху имя / ответ / пол */
.cm-edit-row { grid-template-columns: 44px minmax(0, 1fr); }
.cm-edit-row.is-reply { margin-left: 28px; border-left: 3px solid var(--accent-a-line); }
.cm-er-av { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cm-av-btn { padding: 0; border: none; background: none; cursor: pointer; border-radius: 50%; line-height: 0; }
.cm-av-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cm-av-btn .cm-av { width: 40px; height: 40px; }
.cm-av-btn:not([disabled]):hover .cm-av { box-shadow: 0 0 0 2px var(--accent-a-line); }
.cm-av-clear { position: absolute; top: -4px; right: -4px; width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--surface); color: var(--muted); font-size: 10px; line-height: 1; cursor: pointer; padding: 0; }
.cm-er-main { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.cm-er-top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cm-er-top .cm-n { padding-top: 0; min-width: 26px; text-align: left; }
.cm-er-top .cm-e-author { flex: 1 1 150px; min-width: 0; font-size: 12.5px; padding: 4px 8px; }
.cm-er-top select { font-size: 12px; padding: 4px 6px; max-width: 220px; }
.cm-edit-row .cm-e-warn { grid-column: auto; }
#cm-t-preview, #cm-tpl-preview { margin-bottom: 4px; }

@media (max-width: 760px) {
  .cm-fb { padding: 10px 10px 12px; }
  .cm-fb-c.cm-fb-reply { margin-left: 36px; }
  .cm-edit-row { grid-template-columns: 44px minmax(0, 1fr); }
  .cm-edit-row.is-reply { margin-left: 12px; }
  .cm-er-top .cm-n { display: inline; }
}

/* ---------- v162: правка прямо в ветке ---------- */
.cm-ed-hint { font-size: 12px; color: var(--muted); margin: -2px 0 8px; }
.cm-fb-ed { position: relative; }
.cm-fb-ed .cm-fb-avbtn { position: relative; flex: none; }
.cm-fb-bubble-ed { min-width: 180px; }
.cm-fb-name-in {
  display: block; width: 100%; min-width: 120px; box-sizing: border-box; border: none; outline: none; background: transparent;
  padding: 0; margin: 0; font: 600 13px/1.3 inherit; font-family: inherit; color: var(--fb-text);
}
.cm-fb-name-in::placeholder { color: var(--fb-muted); font-weight: 500; }
.cm-ce { outline: none; min-height: 1.34em; cursor: text; }
.cm-ce:empty::before { content: attr(data-ph); color: var(--fb-muted); pointer-events: none; }
.cm-fb-bubble-ed:focus-within { box-shadow: 0 0 0 2px rgba(0, 100, 209, .35); }
.cm-fb-c.cm-warn .cm-fb-bubble { box-shadow: 0 0 0 2px rgba(231, 162, 25, .55); }
.cm-fb-c .cm-e-warn { padding-left: 12px; margin-top: 2px; color: #a8650a; }
.cm-chip { display: inline-block; padding: 0 6px; margin: 0 1px; border-radius: 6px; background: #e7f0fd; color: #0b57c2; font-size: 13px; font-weight: 600; line-height: 1.5; user-select: all; }
.cm-mention-empty { color: #8a8d91; font-style: italic; font-weight: 500; }
.cm-fb-act.cm-fb-del:hover { color: #c62828; }

/* поле «Написать комментарий…» и ответ */
.cm-fb-compose { display: flex; gap: 8px; align-items: flex-start; padding-top: 10px; margin-top: 6px; border-top: 1px solid #e4e6eb; }
.cm-fb-compose.is-reply { border-top: none; margin-top: 4px; padding-top: 4px; }
.cm-fb-compose .cm-av { width: 36px; height: 36px; }
.cm-fb-compose.is-reply .cm-av { width: 30px; height: 30px; }
.cm-fb-caret { position: absolute; right: -3px; bottom: -3px; width: 15px; height: 15px; border-radius: 50%; background: #fff; border: 1px solid #ccd0d5; color: #65676b; font-size: 9px; line-height: 13px; text-align: center; }
.cm-fb-cbox { flex: 1 1 auto; min-width: 0; background: var(--fb-bubble); border-radius: 18px; padding: 8px 12px 6px; }
.cm-fb-cbox:focus-within { box-shadow: 0 0 0 2px rgba(0, 100, 209, .35); }
.cm-fb-cin { font-size: 15px; line-height: 1.34; color: var(--fb-text); white-space: pre-wrap; overflow-wrap: anywhere; }
.cm-fb-ctools { display: flex; align-items: center; gap: 12px; margin-top: 6px; font-size: 12px; color: var(--fb-muted); }
.cm-fb-from b { color: var(--fb-text); font-weight: 600; }
.cm-fb-send { margin-left: auto; border: none; background: none; color: var(--fb-link); font-size: 20px; line-height: 1; cursor: pointer; padding: 0 2px; }
.cm-fb-send:hover { transform: scale(1.1); }

/* меню «от кого» */
.cm-acc-menu {
  position: absolute; z-index: 5; width: 250px; max-height: 340px; overflow-y: auto; outline: none;
  background: #fff; color: #050505; border: 1px solid #dadde1; border-radius: 10px; padding: 6px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .18);
}
.cm-acc-h { font-size: 12px; font-weight: 700; color: #65676b; padding: 4px 8px 6px; }
.cm-acc-opt { display: flex; align-items: center; gap: 10px; width: 100%; border: none; background: none; text-align: left; padding: 6px 8px; border-radius: 8px; cursor: pointer; color: #050505; font-size: 14px; }
.cm-acc-opt:hover { background: #f0f2f5; }
.cm-acc-opt .cm-av { width: 32px; height: 32px; font-size: 12px; }
.cm-acc-opt span:last-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cm-acc-plus { width: 32px; height: 32px; border-radius: 50%; background: #e4e6eb; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; flex: none; }
.cm-acc-sep { height: 1px; background: #e4e6eb; margin: 6px 4px; }
.cm-acc-hint { font-size: 11.5px; color: #65676b; padding: 4px 8px 2px; }

/* ---------- v163: глубина веток, фото в комментарии, пол при отправке ---------- */
.cm-fb-c { position: relative; }
.cm-fb-c.cm-fb-d1 { margin-left: 48px; }
.cm-fb-c.cm-fb-d2 { margin-left: 92px; }
.cm-fb-c.cm-fb-d3 { margin-left: 136px; }
.cm-fb-c.cm-fb-reply::before {               /* линия ветки, как в FB */
  content: ""; position: absolute; left: -28px; top: -6px; width: 22px; height: 26px;
  border-left: 2px solid #e4e6eb; border-bottom: 2px solid #e4e6eb; border-bottom-left-radius: 12px;
}
.cm-fb-reply .cm-av { width: 32px; height: 32px; font-size: 12px; }
.cm-fb-name-solo { padding: 2px 0 4px 2px; }
.cm-fb-img { position: relative; display: inline-block; margin-top: 4px; max-width: min(320px, 100%); }
.cm-fb-img img { display: block; max-width: 100%; max-height: 320px; border-radius: 14px; border: 1px solid #e4e6eb; }
.cm-fb-img-x, .cm-fb-cimg-x {
  position: absolute; top: 6px; right: 6px; width: 24px; height: 24px; border-radius: 50%; border: none; cursor: pointer;
  background: rgba(0, 0, 0, .55); color: #fff; font-size: 12px; line-height: 24px; padding: 0;
}
.cm-fb-donetag { font-size: 12px; font-weight: 700; color: #1a7f37; }
a.cm-fb-act { text-decoration: none; cursor: pointer; }
a.cm-fb-act:hover { text-decoration: underline; }
.cm-fb .cm-proof { display: block; width: 100%; max-width: 380px; box-sizing: border-box; margin: 6px 0 0 12px; padding: 6px 10px; font-size: 13px; border-radius: 16px; border: 1px solid #ccd0d5; background: #f0f2f5; color: #050505; }
.cm-fb .cm-proof.hidden { display: none; }
.cm-fb-cimg { position: relative; display: inline-block; margin-top: 6px; }
.cm-fb-cimg img { display: block; max-width: 160px; max-height: 120px; border-radius: 10px; border: 1px solid #dadde1; }
.cm-fb-cam { border: none; background: none; cursor: pointer; font-size: 16px; padding: 0 2px; line-height: 1; filter: grayscale(.2); }
.cm-fb-cam:hover { transform: scale(1.1); }
.cm-seg { display: inline-flex; border: 1px solid #ccd0d5; border-radius: 999px; overflow: hidden; background: #fff; }
.cm-seg-b { border: none; background: none; padding: 2px 9px; font-size: 12px; font-weight: 600; color: #65676b; cursor: pointer; }
.cm-seg-b + .cm-seg-b { border-left: 1px solid #ccd0d5; }
.cm-seg-b.on { background: #e7f0fd; color: #0b57c2; }
.cm-fb-ctools { flex-wrap: wrap; row-gap: 6px; }
#cm-view-thread { margin-top: 2px; }
@media (max-width: 760px) {
  .cm-fb-c.cm-fb-d1 { margin-left: 30px; }
  .cm-fb-c.cm-fb-d2 { margin-left: 52px; }
  .cm-fb-c.cm-fb-d3 { margin-left: 72px; }
  .cm-fb-c.cm-fb-reply::before { left: -18px; width: 14px; }
}

/* ==========================================================================
   v164: большие окна, лента «как окно публикации в Facebook»
   ========================================================================== */
.cm-backdrop { padding: 2.5vh 12px; align-items: flex-start; }
.modal.cm-big {
  max-width: 1280px; width: 96vw; height: 95vh; max-height: 95vh;
  padding: 16px 20px 16px; display: flex; flex-direction: column;
}
.cm-big .modal-head { margin-bottom: 12px; }
.cm-big .modal-foot { margin-top: 12px; }
.cm-big > form.cm-form-big { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; overflow: hidden; }

/* две колонки: слева данные задачи, справа лента */
.cm-split { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: minmax(300px, 380px) minmax(0, 1fr); gap: 20px; }
.cm-side { min-height: 0; overflow-y: auto; padding-right: 6px; display: flex; flex-direction: column; gap: 12px; }
.cm-side .form-grid { grid-template-columns: 1fr 1fr; }
.cm-side .cm-vals { grid-column: span 2; grid-template-columns: 1fr; }
.cm-main { min-height: 0; display: flex; flex-direction: column; }
.cm-main-bar { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; flex: 0 0 auto; }
.cm-main-fill { flex: 1 1 auto; min-height: 0; display: flex; }
#cm-view-thread { flex: 1 1 auto; min-height: 0; display: flex; margin: 0; }
.cm-step { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.cm-side .cm-v-top { gap: 6px; }
.cm-side .cm-v-url { margin: 2px 0 0; }

/* шаблоны: список | настройки | лента */
.cm-tpl3 { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 220px 300px minmax(0, 1fr); gap: 18px; }
.cm-tpl3 .cm-tpl-side { border-right: 1px solid var(--line); padding-right: 12px; min-height: 0; overflow-y: auto; }
.cm-tpl-set { min-height: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; padding-right: 4px; }
.cm-tpl-set .field input { width: 100%; box-sizing: border-box; }
.cm-tpl-meta { font-size: 13px; color: var(--muted); }
.cm-tpl-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 8px; }
.cm-labels-bar { flex-direction: column; align-items: flex-start; }
#cm-tpl-labels { display: flex; flex-wrap: wrap; gap: 6px; }

/* карточка ленты — как окно публикации FB: шапка, прокручиваемые комментарии, поле ввода прижато вниз */
.cm-fb {
  flex: 1 1 auto; min-height: 0; width: 100%; display: flex; flex-direction: column;
  padding: 0; border-radius: 10px; border: 1px solid #dadde1; overflow: hidden; position: relative;
  font-family: "Segoe UI Historic", "Segoe UI", Helvetica, Arial, sans-serif; background: #fff; color: #050505;
}
.cm-fb-ed { overflow: visible; }
.cm-fb-head { display: flex; align-items: center; gap: 8px; padding: 12px 16px; border-bottom: 1px solid #e4e6eb; flex: 0 0 auto; }
.cm-fb-title { font-size: 17px; font-weight: 700; color: #050505; }
.cm-fb-cnt { font-size: 13px; font-weight: 600; color: #65676b; background: #f0f2f5; border-radius: 999px; padding: 1px 8px; }
.cm-fb-cnt-ok { color: #1a7f37; background: #e6f4ea; }
.cm-fb-sort { font-size: 13px; font-weight: 600; color: #65676b; }
.cm-fb-list { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 16px 12px; }
.cm-fb-empty { color: #65676b; font-size: 15px; text-align: center; padding: 48px 16px; line-height: 1.5; }

/* комментарий: размеры как в FB */
.cm-fb-c { gap: 6px; padding: 4px 0; }
.cm-fb .cm-av { width: 32px; height: 32px; font-size: 12px; }
.cm-fb-reply .cm-av { width: 24px; height: 24px; font-size: 10px; }
.cm-fb-c.cm-fb-d1 { margin-left: 38px; }
.cm-fb-c.cm-fb-d2 { margin-left: 68px; }
.cm-fb-c.cm-fb-d3 { margin-left: 98px; }
.cm-fb-c.cm-fb-reply::before { left: -22px; top: -10px; width: 18px; height: 22px; border-color: #ced0d4; }
.cm-fb-bubble { border-radius: 18px; padding: 8px 12px; background: #f0f2f5; }
.cm-fb-name, .cm-fb-name-in { font-size: 13px; font-weight: 600; line-height: 16px; }
.cm-fb-text { font-size: 15px; line-height: 20px; }
.cm-fb-actions { gap: 2px 16px; padding: 4px 0 0 12px; }
.cm-fb-act { font-size: 12px; font-weight: 700; color: #65676b; }
.cm-fb-meta { font-size: 12px; color: #65676b; font-weight: 400; }

/* поле «Напишите комментарий…» прижато к низу карточки */
.cm-fb-compose[data-compose="main"] { flex: 0 0 auto; margin: 0; padding: 10px 16px 12px; border-top: 1px solid #e4e6eb; background: #fff; }
.cm-fb-compose .cm-av { width: 32px; height: 32px; }
.cm-fb-compose.is-reply .cm-av { width: 24px; height: 24px; }
.cm-fb-cbox { border-radius: 18px; padding: 8px 12px 6px; background: #f0f2f5; }
.cm-fb-cin { min-height: 20px; }
.cm-fb-ctools { gap: 10px; margin-top: 6px; }

@media (max-width: 900px) {
  .modal.cm-big { width: 100vw; height: 100vh; max-height: 100vh; border-radius: 0; padding: 12px; }
  .cm-backdrop { padding: 0; }
  .cm-split { grid-template-columns: 1fr; grid-template-rows: auto minmax(420px, 1fr); overflow-y: auto; }
  .cm-side { overflow: visible; max-height: none; }
  .cm-tpl3 { grid-template-columns: 1fr; overflow-y: auto; }
  .cm-tpl3 .cm-tpl-side { border-right: none; border-bottom: 1px solid var(--line); max-height: 160px; }
  .cm-tpl3 .cm-main { min-height: 480px; }
}

/* ---------- v164b: вид по образцу (имя над пузырём, пузырь во всю ширину, выбор аккаунта списком) ---------- */
.cm-fb-head { padding: 14px 18px; }
.cm-fb-title { font-size: 19px; font-weight: 700; }
.cm-fb-list { padding: 10px 18px 14px; }
.cm-fb-c { gap: 10px; padding: 8px 0 2px; }
.cm-fb .cm-av { width: 40px; height: 40px; font-size: 14px; }
.cm-fb-reply .cm-av { width: 40px; height: 40px; font-size: 14px; }
.cm-av-ini { background: hsl(var(--h, 8) 72% 68%); color: #fff; font-weight: 700; letter-spacing: .02em; }
.cm-fb-c.cm-fb-d1 { margin-left: 50px; }
.cm-fb-c.cm-fb-d2 { margin-left: 100px; }
.cm-fb-c.cm-fb-d3 { margin-left: 150px; }
.cm-fb-c.cm-fb-reply::before { display: none; }
.cm-fb-hdr { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px; margin: 2px 0 4px; }
.cm-fb-who { font-size: 15px; font-weight: 700; color: #050505; }
.cm-fb-hdr .cm-fb-meta { font-size: 13px; color: #65676b; }
.cm-fb-bubble, .cm-fb-bubble-ed { display: block; width: 100%; box-sizing: border-box; background: #f0f2f5; border-radius: 18px; padding: 10px 16px; min-width: 0; }
.cm-fb-text { font-size: 15px; line-height: 21px; }
.cm-mention { color: #1877f2; font-weight: 600; }
.cm-fb-actions { gap: 4px 22px; padding: 6px 0 2px 14px; }
.cm-fb-act { font-size: 13.5px; font-weight: 500; color: #65676b; }
.cm-fb-done.on { color: #1a7f37; font-weight: 600; }
.cm-fb-c.done .cm-fb-bubble { opacity: .6; }
.cm-fb-img { margin-top: 6px; }

/* поле ответа / редактирования под комментарием */
.cm-fb-compose-inline { display: block; margin: 8px 0 4px; padding: 0; border: none; }
.cm-fb-rin {
  background: #fff; border: 2px solid #1877f2; border-radius: 20px; padding: 10px 16px; min-height: 22px;
  font-size: 15px; line-height: 21px; color: #050505; white-space: pre-wrap; overflow-wrap: anywhere;
}
.cm-fb-rtools { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 10px; }
.cm-fb-rtools .cm-acc-sel { flex: 1 1 200px; }
.cm-fb-pill { border: none; border-radius: 999px; padding: 9px 20px; font-size: 14px; font-weight: 700; cursor: pointer; background: #e4e6eb; color: #050505; }
.cm-fb-pill:hover { filter: brightness(.96); }
.cm-fb-pill-blue { background: #1877f2; color: #fff; }

/* выбор аккаунта — «пилюля» со стрелкой */
.cm-acc-sel {
  min-width: 0; max-width: 100%; height: 40px; padding: 0 34px 0 16px; border-radius: 999px; border: 1px solid #ccd0d5;
  background: #fff; color: #050505; font-size: 14px; font-weight: 500; cursor: pointer;
}
.cm-fb-cam { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; border: none; background: none; cursor: pointer; padding: 0; }
.cm-fb-cam svg, .cm-fb-send svg { width: 22px; height: 22px; fill: none; stroke: #050505; stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.cm-fb-cam:hover { background: #f0f2f5; transform: none; }

/* нижнее поле «Комментировать как …» */
.cm-fb-compose[data-compose="main"] { display: flex; align-items: center; gap: 10px; padding: 12px 18px; }
.cm-fb-compose[data-compose="main"] .cm-av { width: 40px; height: 40px; }
.cm-fb-compose[data-compose="main"] .cm-fb-cbox { flex: 1 1 auto; min-width: 0; background: #fff; border: 1px solid #dadde1; border-radius: 22px; padding: 10px 16px; }
.cm-fb-compose[data-compose="main"] .cm-fb-cbox:focus-within { border-color: #1877f2; box-shadow: none; }
.cm-fb-compose[data-compose="main"] .cm-acc-sel { flex: 0 1 220px; }
.cm-fb-compose[data-compose="main"] .cm-fb-send { margin: 0; width: 40px; height: 40px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; }
.cm-fb-compose[data-compose="main"] .cm-fb-send svg { stroke: #1877f2; }
.cm-fb-compose[data-compose="main"] .cm-fb-send:hover { background: #e7f0fd; transform: none; }

/* окно «Мои аккаунты» */
.cm-accs-modal { max-width: 640px; }
.cm-accs-sub { margin: -6px 0 12px; }
.cm-accs-list { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; min-height: 0; flex: 1 1 auto; }
.cm-acc-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-2); }
.cm-acc-item .cm-av { width: 40px; height: 40px; }
.cm-acc-iname { flex: 1 1 auto; min-width: 0; }
.cm-acc-igender { width: 130px; }

@media (max-width: 900px) {
  .cm-fb-c.cm-fb-d1 { margin-left: 26px; }
  .cm-fb-c.cm-fb-d2 { margin-left: 52px; }
  .cm-fb-c.cm-fb-d3 { margin-left: 78px; }
  .cm-fb .cm-av, .cm-fb-reply .cm-av { width: 34px; height: 34px; font-size: 12px; }
  .cm-fb-compose[data-compose="main"] { flex-wrap: wrap; padding: 10px 12px; }
  .cm-fb-compose[data-compose="main"] .cm-fb-cbox { flex-basis: calc(100% - 50px); }
  .cm-fb-compose[data-compose="main"] .cm-acc-sel { flex: 1 1 auto; }
}
@media (max-width: 900px) {
  .cm-side { min-height: auto; }
  .cm-split { gap: 12px; }
  .cm-view-foot { gap: 6px; }
  .cm-view-foot .btn { padding: 7px 10px; font-size: 13px; }
}

/* v166: гео / язык комментариев */
.cm-geo-hint { font-size: 12px; color: var(--muted); margin-top: -6px; line-height: 1.4; }
#cm-tpl-geo, #cm-t-geo { width: 100%; }

/* v169: гео / язык — прямо в шапке ленты */
.cm-fb-head { flex-wrap: wrap; row-gap: 8px; }
.cm-fb-geo select {
  height: 34px; max-width: 280px; padding: 0 30px 0 12px; border-radius: 999px; border: 1px solid #ccd0d5;
  background: #f0f2f5; color: #050505; font-size: 13.5px; font-weight: 600; cursor: pointer;
}
.cm-fb-geo select:hover { background: #e4e6eb; }
.cm-fb-geo-ro, .cm-fb-geo-busy { font-size: 13.5px; font-weight: 600; color: #65676b; background: #f0f2f5; border-radius: 999px; padding: 7px 12px; }
.cm-fb-geo-busy { color: #1877f2; }
@media (max-width: 900px) { .cm-fb-geo select { max-width: 100%; } }

/* v170: импорт диалогов */
.cm-imp-box { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 1px dashed var(--accent-a-line); border-radius: 12px; background: var(--accent-a-bg); }

/* v171: скачать / загрузить ленту */
.cm-fb-io { height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid #ccd0d5; background: #fff; color: #050505; font-size: 13px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.cm-fb-io:hover { background: #f0f2f5; }

/* ---------- v175: запуски на дополнительный Keitaro ---------- */
.kt-pill { display:inline-block; padding:2px 8px; border-radius:999px; font-size:11px; font-weight:600; white-space:nowrap; }
.kt-pill.kt-main { color:var(--muted); border:1px solid var(--line); background:transparent; font-weight:500; }
.kt-pill.kt-alt { color:#fff; background:var(--bad-ink); box-shadow:0 0 0 2px rgba(var(--bad-rgb),.25); }
tr.row-alt-kt > td { background:rgba(var(--bad-rgb),.13) !important; }
tr.row-alt-kt:hover > td { background:rgba(var(--bad-rgb),.22) !important; }
tr.row-alt-kt > td:first-child { box-shadow:inset 4px 0 0 var(--bad-ink); }
.alt-kt-banner { grid-column:1 / -1; padding:10px 12px; border-radius:10px; background:rgba(var(--bad-rgb),.12); border:1px solid rgba(var(--bad-rgb),.55); color:inherit; font-size:13px; line-height:1.45; }
.alt-kt-banner code { background:rgba(var(--bad-rgb),.18); padding:1px 6px; border-radius:6px; }
#modal-launch.modal-alt-kt .modal { border-color:var(--bad-ink); box-shadow:0 0 0 3px rgba(var(--bad-rgb),.3), var(--shadow-pop); }
.seg-px { color:var(--bad-ink); font-weight:700; }
.perm-pixel { width:100%; min-width:140px; font-size:12px; padding:5px 8px; font-family:ui-monospace, Menlo, monospace; }

/* v177: ленд на доп. Keitaro */
#ld-keitaro-card.ld-alt-kt { border-color:var(--bad-ink); box-shadow:0 0 0 2px rgba(var(--bad-rgb),.25); }
#ld-keitaro-card.ld-alt-kt select { border-color:var(--bad-ink); }
.ld-alt-note { margin-top:6px; padding:6px 10px; border-radius:8px; background:rgba(var(--bad-rgb),.12); border:1px solid rgba(var(--bad-rgb),.5); font-size:12.5px; }

/* v178: проверка разделения Keitaro + код баера */
.dom-audit-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:8px 0 4px; }
.dom-audit-bar select { font-size:12.5px; padding:5px 8px; }
.dom-audit { margin:6px 0 14px; display:flex; flex-direction:column; gap:8px; }
.dom-audit-verdict { padding:8px 12px; border-radius:10px; font-weight:600; }
.dom-audit-verdict.ok { background:rgba(var(--ok-rgb),.15); border:1px solid rgba(var(--ok-rgb),.5); }
.dom-audit-verdict.bad { background:rgba(var(--bad-rgb),.12); border:1px solid rgba(var(--bad-rgb),.5); }
.dom-audit-card { padding:8px 12px; border:1px solid var(--line); border-radius:10px; font-size:13px; }
.dom-audit-card.bad { border-color:rgba(var(--bad-rgb),.6); }
.dom-audit-head { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:4px; }
.dom-audit-stats { color:var(--muted); margin-bottom:4px; }
.dom-audit-viol { margin-top:6px; }
.dom-audit-ex { margin:4px 0 0 10px; font-size:12px; color:var(--muted); max-height:180px; overflow:auto; }
.dom-audit-ex code { font-size:11.5px; }
.dom-audit-okline { color:var(--ok-ink); font-size:12.5px; }
.perm-altcode { width:90px; font-size:12px; padding:5px 8px; font-family:ui-monospace, Menlo, monospace; }

/* v179 */
.alt-kt-banner.alt-kt-quiet { background:var(--surface-2, rgba(127,127,127,.08)); border-color:var(--line); }
.dom-audit-out { margin-top:8px; padding-top:6px; border-top:1px dashed var(--line); }
.dom-audit-tbl { width:100%; border-collapse:collapse; font-size:12px; margin-top:4px; }
.dom-audit-tbl th, .dom-audit-tbl td { padding:3px 6px; border-bottom:1px solid var(--line); text-align:left; }
.dom-audit-tbl tr.warn td { background:rgba(var(--warn-rgb),.12); }

/* v180: кабинеты на двух Keitaro */
.cab-kt-badge { display:inline-block; margin-left:8px; padding:1px 7px; border-radius:999px; font-size:11px; color:var(--muted); border:1px solid var(--line); white-space:nowrap; }
.cab-kt-badge.cab-kt-both, .cab-miss-item.cab-kt-both { color:#fff; background:var(--bad-ink); border-color:var(--bad-ink); }

/* v181: FB-профили */
.fb-add-grid { display:grid; grid-template-columns: 1fr 220px; gap:10px; align-items:end; }
.fb-add-grid .fb-mt { grid-column:1 / -1; }
.fb-add-grid textarea { width:100%; font-family:ui-monospace,Menlo,monospace; font-size:12px; resize:vertical; }
.fb-add-grid #fb-add { grid-column:1 / -1; justify-self:start; }
.fb-list { display:flex; flex-direction:column; gap:10px; }
.fb-prof { border:1px solid var(--line); border-radius:10px; padding:10px 12px; }
.fb-prof-bad { border-color:rgba(var(--bad-rgb),.6); }
.fb-prof-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.fb-prof-act { display:flex; gap:4px; flex-wrap:wrap; }
.fb-tok { font-size:11px; padding:1px 7px; border-radius:999px; }
.fb-tok-ok { background:rgba(var(--ok-rgb),.15); color:var(--ok-ink); } .fb-tok-bad { color:var(--bad-ink); }
.fb-acc-tbl { width:100%; border-collapse:collapse; font-size:12.5px; margin-top:6px; }
.fb-acc-tbl th,.fb-acc-tbl td { padding:4px 8px; border-bottom:1px solid var(--line); text-align:left; white-space:nowrap; }
.fb-st { font-size:11px; padding:1px 7px; border-radius:999px; }
.fb-st-ok { background:rgba(var(--ok-rgb),.15); color:var(--ok-ink); } .fb-st-bad { background:rgba(var(--bad-rgb),.12); color:var(--bad-ink); } .fb-st-mid { background:rgba(var(--warn-rgb),.15); color:var(--warn-ink); }
.fb-proxy-row { display:flex; align-items:center; gap:8px; padding:3px 0; }
@media (max-width:640px){ .fb-add-grid { grid-template-columns:1fr; } .fb-acc-tbl { display:block; overflow-x:auto; } }

.fb-steps { display:flex; flex-direction:column; gap:4px; margin-top:6px; }
.fb-step { padding:6px 10px; border-radius:8px; font-size:12.5px; border:1px solid var(--line); }
.fb-step.ok { border-color:rgba(var(--ok-rgb),.5); } .fb-step.bad { border-color:rgba(var(--bad-rgb),.6); background:rgba(var(--bad-rgb),.08); }

/* v182: кампании FB */
.fb-camp-row > td { background:rgba(127,127,127,.06); padding:8px 10px 10px 24px !important; white-space:normal !important; }
.fb-camp-bar { display:flex; gap:4px; flex-wrap:wrap; align-items:center; margin-bottom:6px; }
.fb-camp-bar .btn.active { background:var(--accent, #7c5cff); color:#fff; border-color:transparent; }
.fb-camp-tbl { width:100%; border-collapse:collapse; font-size:12px; }
.fb-camp-tbl th,.fb-camp-tbl td { padding:3px 7px; border-bottom:1px solid var(--line); text-align:left; }

/* v185 */
.fb-tok-off{background:var(--surface-3);color:var(--muted)}

/* v186 — раздел Facebook: левое меню + контент */
.fb-layout { display:grid; grid-template-columns:200px 1fr; gap:16px; align-items:start; }
.fb-side { position:sticky; top:72px; display:flex; flex-direction:column; gap:4px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:8px; }
.fb-side-item { display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:transparent; border:1px solid transparent; color:var(--text); font:inherit; font-size:14px; padding:9px 12px; border-radius:8px; cursor:pointer; }
.fb-side-item:hover { background:var(--surface-2); }
.fb-side-item.active { background:var(--accent-a-bg2); border-color:var(--accent-a-line); color:var(--accent-hi); font-weight:600; }
.fb-side-n { margin-left:auto; font-size:11px; color:var(--muted); background:var(--surface-2); padding:1px 7px; border-radius:999px; }
.fb-side-item.active .fb-side-n { color:var(--accent-hi); }
.fb-side-foot { margin-top:8px; padding:8px 10px 4px; border-top:1px solid var(--line); font-size:11.5px; line-height:1.45; }
.fb-main { min-width:0; }
.fbv .fb-tools { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:10px 0; }
.fb-add-card { margin-bottom:10px; }
.fb-prof-row { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.fb-prof-main { display:flex; flex-direction:column; gap:4px; min-width:0; }
.fb-prof-title { font-size:14px; }
.fb-prof-badges { display:flex; gap:6px; flex-wrap:wrap; }
.fb-tok-neutral { background:var(--surface-2); color:var(--muted); }
.fb-link { background:none; border:none; padding:0; color:var(--accent-hi); cursor:pointer; font:inherit; font-size:inherit; }
.fb-link:hover { text-decoration:underline; }
.fb-warn { color:var(--warn-ink); margin-top:6px; }
.fb-acc-mini { margin-top:10px; font-size:12px; }
.fb-acc-mini th { color:var(--muted); font-weight:500; }
.fb-acc-all th { color:var(--muted); font-weight:500; position:sticky; top:0; background:var(--surface); }
.fb-acc-row.open td, .fb-card-row.open td { background:var(--accent-a-bg); }
.fb-cards-tbl td b { font-variant-numeric:tabular-nums; }
@media (max-width:900px){ .fb-layout { grid-template-columns:1fr; } .fb-side { position:static; flex-direction:row; flex-wrap:wrap; } .fb-side-foot { display:none; } }
.topbar-tabs .tab { white-space:nowrap; }

/* v188 — расход первым и выделенным, пиксели */
.fb-acc-tbl td.fb-col-today, .fb-camp-tbl td.fb-col-today { background:var(--accent-a-bg); font-weight:600; font-variant-numeric:tabular-nums; border-left:2px solid var(--accent-a-line); }
.fb-acc-tbl th.fb-col-today, .fb-camp-tbl th.fb-col-today { color:var(--accent-hi); border-left:2px solid var(--accent-a-line); }
.fb-px { display:inline-block; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; padding:0 6px; border-radius:6px; background:var(--surface-2); border:1px solid var(--line); margin:1px 2px 1px 0; }

/* v191 — панель кампаний в стиле Ads Manager */
.fbam { background:var(--surface); border:1px solid var(--line); border-radius:10px; margin:6px 0 8px; overflow:hidden; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif; }
.fbam-top { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:8px 10px; border-bottom:1px solid var(--line); flex-wrap:wrap; background:var(--surface-2); }
.fbam-tabs { display:flex; gap:6px; }
.fbam-tab { background:var(--surface); border:1px solid var(--line); color:var(--muted); font:inherit; font-size:13px; font-weight:600; padding:7px 14px; border-radius:8px; cursor:pointer; }
.fbam-tab.active { color:var(--fb-blue); border-color:var(--fb-blue); background:var(--surface); box-shadow:inset 0 -2px 0 var(--fb-blue); }
.fbam-date { display:flex; align-items:center; gap:8px; font-size:13px; }
.fbam-sel { font:inherit; font-size:13px; font-weight:600; padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); }
.fbam-scroll { overflow-x:auto; }
.fbam-tbl { width:100%; border-collapse:collapse; font-size:13px; min-width:1100px; }
.fbam-tbl th { text-align:left; font-weight:600; color:var(--text); padding:9px 10px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); background:var(--surface); white-space:nowrap; font-size:12.5px; }
.fbam-tbl td { padding:9px 10px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); vertical-align:top; white-space:nowrap; }
.fbam-tbl th:last-child, .fbam-tbl td:last-child { border-right:none; }
.fbam-tbl tbody tr:hover td { background:var(--surface-2); }
.fbam-tbl .fbam-r { text-align:right; }
.fbam-tbl .fbam-c { text-align:center; width:60px; }
.fbam-tbl .fbam-l { min-width:260px; white-space:normal; }
.fbam-name { color:var(--fb-blue); font-weight:600; }
.fbam-sub { font-size:11.5px; color:var(--muted); margin-top:1px; }
.fbam-id { font-size:11px; color:var(--dim); font-family:ui-monospace,Menlo,monospace; margin-top:2px; }
.fbam-num { font-weight:600; }
.fbam-off .fbam-name { color:var(--fb-blue); opacity:.85; }
.fbam-dot { display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; background:var(--dim); vertical-align:middle; }
.fbam-dot-on { background:var(--ok-ink); } .fbam-dot-mid { background:var(--warn-ink); } .fbam-dot-bad { background:var(--bad-ink); }
.fbam-toggle { display:inline-block; width:34px; height:18px; border-radius:999px; background:var(--toggle-off); position:relative; vertical-align:middle; cursor:not-allowed; }
.fbam-toggle span { position:absolute; top:2px; left:2px; width:14px; height:14px; border-radius:50%; background:#fff; transition:left .15s; }
.fbam-toggle.on { background:var(--fb-blue); } .fbam-toggle.on span { left:18px; }
.fbam-tbl tfoot td { background:var(--surface-2); border-top:2px solid var(--line); font-weight:500; }

/* v192 — фильтры/проваливание, превью креативов, карты */
.fbam-chips { display:flex; gap:6px; align-items:center; flex-wrap:wrap; padding:6px 10px; border-bottom:1px solid var(--line); font-size:12.5px; }
.fbam-chip { display:inline-flex; align-items:center; gap:6px; background:var(--accent-a-bg2); border:1px solid var(--accent-a-line); color:var(--text); padding:2px 8px; border-radius:999px; }
.fbam-chip button { background:none; border:none; color:var(--muted); cursor:pointer; font-size:12px; padding:0; }
.fbam-badge { display:inline-block; min-width:16px; padding:0 5px; border-radius:999px; background:var(--fb-blue); color:#fff; font-size:11px; text-align:center; }
.fbam-name[data-drill-c], .fbam-name[data-drill-a] { cursor:pointer; } .fbam-name[data-drill-c]:hover, .fbam-name[data-drill-a]:hover { text-decoration:underline; }
.fbam-selected td { background:var(--accent-a-bg) !important; }
.fbam-crcell { white-space:normal !important; min-width:260px; }
.fbam-cr { display:flex; gap:8px; align-items:flex-start; }
.fbam-cr img { width:64px; height:64px; object-fit:cover; border-radius:6px; border:1px solid var(--line); background:var(--surface-2); }
.fbam-cr-none { width:64px; height:64px; border-radius:6px; border:1px dashed var(--line); font-size:10px; color:var(--dim); display:flex; align-items:center; justify-content:center; }
.fbam-cr-txt { max-width:220px; font-size:12px; line-height:1.3; }
.fbam-cr-title { font-weight:600; } .fbam-cr-body { color:var(--muted); }
.fb-cards-foot td { border-top:2px solid var(--line); background:var(--surface-2); }

/* v193 — аватар, реджекты, уведомления */
.fb-avatar { width:48px; height:48px; border-radius:50%; object-fit:cover; flex:0 0 48px; border:2px solid var(--line); background:var(--surface-2); }
.fb-avatar-off { display:flex; align-items:center; justify-content:center; color:var(--muted); font-weight:700; font-size:18px; border-style:dashed; }
.fb-prof-bad .fb-avatar-off { color:var(--bad-ink); border-color:rgba(var(--bad-rgb),.6); }
.fb-prof-row { align-items:flex-start; } .fb-prof-row > .fb-prof-main { flex:1; }
.fbam-rej { color:var(--bad-ink); font-size:11.5px; margin-top:2px; white-space:normal; max-width:260px; }
.fb-ev { border:1px solid var(--line); border-radius:10px; padding:8px 12px; margin-bottom:8px; background:var(--surface); }
.fb-ev-ad_rejected { border-left:4px solid var(--bad-ink); } .fb-ev-ad_approved { border-left:4px solid var(--ok-ink); } .fb-ev-account_status { border-left:4px solid var(--warn-ink); } .fb-ev-token_dead { border-left:4px solid var(--bad-ink); } .fb-ev-card_changed { border-left:4px solid #8a8aff; }
.fb-ev-head { display:flex; align-items:center; gap:6px; flex-wrap:wrap; font-size:13px; }
.fb-ev-time { margin-left:auto; color:var(--muted); font-size:11.5px; }
.fb-ev-body { font-size:13px; margin-top:4px; line-height:1.4; }

/* v195 */
.fb-log-tbl td { white-space:normal; vertical-align:top; } .fb-log-verify td { background:var(--surface-2); }
#fb-log-filters .inline-input { font-size:12.5px; }
.fb-costs-tbl select { min-width:230px; }

/* v198 — состояние токена */
.fb-tok-warn { background:rgba(var(--warn-rgb),.18); color:var(--warn-ink); }
.fb-prof-warn { border-color:rgba(var(--warn-rgb),.7); }
.fb-prof-dead { background:rgba(var(--bad-rgb),.05); }
.fb-avatar-warn { color:var(--warn-ink); border-color:rgba(var(--warn-rgb),.8); }
.fb-dead-box { margin-top:8px; padding:8px 10px; border-radius:8px; background:rgba(var(--bad-rgb),.08); border:1px solid rgba(var(--bad-rgb),.35); color:var(--bad-ink); font-size:13px; }
.fb-dead-box .hint { color:var(--muted); margin-top:2px; }
.fb-dead-banner { padding:8px 12px; margin-bottom:10px; border-radius:8px; background:rgba(var(--bad-rgb),.1); border:1px solid rgba(var(--bad-rgb),.4); color:var(--bad-ink); font-weight:600; font-size:13px; }
.fb-side-n-bad { background:var(--bad-ink) !important; color:#fff !important; }
.ui-modal-msg { white-space:pre-line; }

/* ---- v201: редактирование FB-профиля, раздел «Прокси», ссылки ---- */
.fb-prof-click { cursor:pointer; border-radius:8px; }
.fb-prof-click:hover .fb-prof-link b { text-decoration:underline; }
.fb-prof-link { color:inherit; text-decoration:none; }
.fb-edit-head { display:flex; align-items:center; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.fb-edit-title { display:flex; align-items:center; gap:12px; flex:1; flex-wrap:wrap; min-width:0; }
.fb-edit-tools { margin-left:auto; display:flex; gap:6px; flex-wrap:wrap; }
.fb-edit-grid { display:grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap:12px; align-items:start; }
.fb-edit-card { padding:14px 16px; }
.fb-edit-card .fb-add-grid { grid-template-columns:1fr 1fr; }
.fb-edit-card textarea { width:100%; }
.fb-edit-card input[readonly] { opacity:.75; }
.fb-edit-sec { font-weight:600; font-size:13px; margin:14px 0 6px; padding-top:10px; border-top:1px solid var(--line); }
.fb-edit-sec:first-child { margin-top:0; padding-top:0; border-top:none; }
.fbe-chk { display:flex !important; align-items:center; gap:6px; margin:4px 0; }
.fbe-cookie-state { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.fbe-info-tbl { width:100%; border-collapse:collapse; font-size:13px; }
.fbe-info-tbl td { padding:4px 6px; border-bottom:1px solid var(--line); vertical-align:top; }
.fbe-info-tbl td:first-child { white-space:nowrap; width:1%; }
.fb-edit-actions { position:sticky; bottom:0; display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:10px 0; margin-top:10px; background:var(--bg); border-top:1px solid var(--line); z-index:2; }
.fb-proxy-tbl td { vertical-align:middle; }
.fb-proxy-tbl a { color:inherit; text-decoration:underline; text-decoration-style:dotted; }
@media (max-width:900px){ .fb-edit-grid { grid-template-columns:1fr; } }
@media (max-width:640px){ .fb-edit-card .fb-add-grid { grid-template-columns:1fr; } .fb-edit-tools { margin-left:0; } }
.fb-card-old { opacity:.6; font-style:italic; }
/* v204: учёт по картам */
.fb-card-attn { border:1px solid rgba(var(--bad-rgb),.35); background:rgba(var(--bad-rgb),.06); border-radius:10px; padding:10px 12px; margin:6px 0 10px; font-size:13px; line-height:1.5; }
.fb-card-attn > div { margin-top:4px; }
.fb-cards-scroll { overflow-x:auto; }
.fb-card-unk td { background:rgba(var(--bad-rgb),.05); }
.fb-card-detail { padding:6px 4px 10px; }
/* v205: Кабинеты 2.0 */
.reg-chips { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin:4px 0 8px; }
.reg-chip { border:1px solid var(--line-2); background:var(--surface); color:var(--text); border-radius:999px; padding:4px 10px; font-size:12px; cursor:pointer; }
.reg-chip.active { border-color:var(--accent); box-shadow:var(--ring); }
.reg-chip.hot { border-color:rgba(var(--bad-rgb),.55); background:rgba(var(--bad-rgb),.08); }
.reg-sum { margin-left:auto; }
.reg-scroll { overflow-x:auto; }
.reg-tbl td { vertical-align:top; }
.reg-row { cursor:pointer; }
.reg-row:hover td { background:var(--surface-2); }
.reg-lost td { background:rgba(var(--bad-rgb),.07); }
.reg-name a { color:inherit; font-weight:600; text-decoration:none; }
.reg-gone { text-decoration:line-through; opacity:.6; }
.reg-flag { display:inline-block; font-size:11px; border-radius:6px; padding:1px 6px; margin:1px 0; border:1px solid var(--line-2); white-space:nowrap; }
.reg-flag-debt_inactive, .reg-flag-card_mismatch, .reg-flag-no_card { border-color:rgba(var(--bad-rgb),.5); color:var(--bad-ink); }
.reg-flag-no_cap, .reg-flag-cap_near, .reg-flag-dead_token { border-color:rgba(var(--warn-rgb),.6); }
.reg-cmt { max-width:220px; overflow:hidden; text-overflow:ellipsis; }
.reg-head { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin-bottom:10px; }
.reg-title { font-size:17px; font-weight:600; }
.reg-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:start; margin-top:10px; }
.reg-card { padding:14px 16px; }
.reg-card .fb-add-grid { grid-template-columns:1fr 1fr; }
.reg-card textarea { width:100%; }
.reg-kings { display:flex; flex-wrap:wrap; gap:10px; }
.reg-card-row { display:flex; gap:6px; margin-bottom:4px; }
.reg-card-row input { flex:1; }
.reg-bars { display:flex; align-items:flex-end; gap:2px; height:64px; margin-top:10px; }
.reg-bar { flex:0 1 12px; display:flex; align-items:flex-end; height:100%; }
.reg-bar span { display:block; width:100%; background:var(--accent); border-radius:2px 2px 0 0; opacity:.75; }
.reg-tl td { vertical-align:top; font-size:13px; }
.reg-tl td:first-child { white-space:nowrap; width:1%; }
.reg-tl td:nth-child(2) { width:1%; }
@media (max-width:900px){ .reg-grid { grid-template-columns:1fr; } .reg-card .fb-add-grid { grid-template-columns:1fr; } }
/* v206 */
.reg-pfs { display:flex; flex-wrap:wrap; gap:4px; }
.reg-pf { display:inline-block; font-size:12px; border-radius:6px; padding:1px 7px; border:1px solid var(--line-2); white-space:nowrap; }
.reg-pf-now { background:rgba(var(--ok-rgb),.16); border-color:rgba(var(--ok-rgb),.6); color:var(--text); font-weight:600; }
.reg-pf-check { background:rgba(var(--warn-rgb),.14); border-color:rgba(var(--warn-rgb),.6); }
.reg-pf-was { background:transparent; color:var(--dim); border-color:var(--line); }
.reg-pf-removed { text-decoration:line-through; }
.reg-was-row td { opacity:.7; }
.fb-card-block { border-left:3px solid var(--bad-ink); padding-left:8px; }
.fb-card-block-row { margin-top:4px; color:var(--bad-ink); font-size:12px; font-weight:600; }
.fb-page-pic { width:32px; height:32px; border-radius:6px; object-fit:cover; }
.reg-flag-block_card, .reg-flag-card_unreg { border-color:rgba(var(--bad-rgb),.5); color:var(--bad-ink); }
.reg-bm-own { background:rgba(var(--accent-rgb),.14); border-color:rgba(var(--accent-rgb),.55); }
.reg-bm-acc { background:rgba(var(--info-rgb),.10); border-color:rgba(var(--info-rgb),.5); }
a.reg-pf { color:inherit; text-decoration:none; }
a.reg-pf:hover { text-decoration:underline; }
.reg-bm-foreign { background:rgba(var(--bad-rgb),.10); border-color:rgba(var(--bad-rgb),.6); color:var(--bad-ink) !important; font-weight:600; }
.reg-pf-person { border-style:dashed; }
.fb-recon-sum { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 8px; }
.fb-recon-why { max-width:340px; font-size:11px; line-height:1.35; }
.fb-recon-tbl td { vertical-align:top; }
/* v211: раздел Keitaro — ширина и раскладка */
.fb-main > .fbv { min-width:0; overflow-x:auto; }
.kt-scroll { overflow-x:auto; max-width:100%; }
.fb-acc-tbl td.wrap, .fb-acc-tbl th.wrap { white-space:normal; }
.kt-kpi { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:10px; margin-bottom:10px; }
.kt-kpi-card { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:10px 14px; }
.kt-kpi-t { font-size:12px; color:var(--muted); margin-bottom:6px; }
.kt-kpi-row { display:flex; flex-wrap:wrap; gap:6px 18px; }
.kt-kpi-row > div { display:flex; flex-direction:column; font-variant-numeric:tabular-nums; }
.kt-kpi-row b { font-size:16px; }
.kt-howto { margin:0 0 10px; }
.kt-howto > summary { cursor:pointer; font-size:13px; color:var(--muted); }
.kt-profiles { display:grid; grid-template-columns:repeat(auto-fit, minmax(420px, 1fr)); gap:10px; }
.kt-prof { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:12px 14px; display:flex; flex-direction:column; gap:8px; min-width:0; }
.kt-prof-off { opacity:.75; }
.kt-prof-head { display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; }
.kt-switch { display:flex; gap:6px; align-items:center; font-size:13px; cursor:pointer; }
.kt-prof-set { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.kt-prof-set .field select { width:100%; }
.kt-prof-set .field .hint { white-space:normal; font-size:11px; line-height:1.35; margin-top:3px; }
.kt-prof-last { white-space:normal; font-size:12px; line-height:1.4; overflow-wrap:anywhere; }
.kt-prof-act { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.kt-date { display:inline-flex; gap:4px; align-items:center; border:1px dashed var(--line-2); border-radius:8px; padding:2px 4px; }
.kt-date input { max-width:140px; padding:2px 6px; }
.kt-result { margin-top:12px; background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.kt-result-head { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.kt-result-head [data-kt-close] { margin-left:auto; }
.kt-chips { display:flex; gap:6px; flex-wrap:wrap; margin:8px 0; }
.kt-run-tbl td { vertical-align:top; }
.kt-run-tbl td.wrap { min-width:160px; max-width:280px; }
.kt-detail { min-width:220px; max-width:420px !important; font-size:11.5px; line-height:1.35; }
.fb-recon-reason { min-width:200px; max-width:340px; }
.fb-recon-rline { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.fb-recon-why { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; white-space:normal; }
@media (max-width:700px){ .kt-profiles { grid-template-columns:1fr; } .kt-prof-set { grid-template-columns:1fr; } }
/* v211: верхнее меню не растягивает страницу — вкладок много: при нехватке ширины меню уходит второй строкой и прокручивается */
.topbar-tabs { min-width:0; overflow-x:auto; scrollbar-width:thin; }
.tab { white-space:nowrap; flex:0 0 auto; }
.topbar-user { flex:0 0 auto; }
@media (max-width: 1600px) {
  .topbar { flex-wrap: wrap; height: auto; padding: 8px 20px 6px; row-gap: 6px; }
  .topbar-tabs { order: 3; width: 100%; max-width: 100%; }
}
html, body { max-width:100%; }
.fb-recon-act { min-width:140px; max-width:200px; }
.fb-recon-prof { max-width:150px; }
.fb-recon-tbl th { white-space:normal; }
.kt-autofix { background:rgba(var(--accent-rgb),.08); border:1px solid rgba(var(--accent-rgb),.35); border-radius:10px; padding:6px 10px; margin:0 0 10px; }
.kt-result-head [data-kt-send-now] { margin-left:auto; }
.kt-result-head [data-kt-send-now] + [data-kt-close] { margin-left:0; }

/* ===== v213: иконки ===== */
.ic { width:1.05em; height:1.05em; flex:none; display:inline-block; vertical-align:-0.17em; stroke:currentColor; }
.ic-ok { color:var(--st-active); }
.ic-danger { color:var(--danger); }
.ic-warn { color:var(--st-paused); }
.btn .ic { margin-right:2px; }
.btn-xs .ic { width:13px; height:13px; }
.fb-side-item .ic { width:16px; height:16px; color:var(--muted); margin-right:4px; vertical-align:-3px; }
.fb-side-item.active .ic { color:var(--accent); }
/* профиль: метрики и действия */
.fb-prof-stats { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.fb-stat { display:flex; flex-direction:column; gap:1px; padding:6px 10px; border:1px solid var(--line); border-radius:9px; background:var(--surface-2); min-width:92px; font:inherit; color:inherit; text-align:left; }
.fb-stat span { font-size:11px; color:var(--muted); }
.fb-stat b { font-size:15px; font-variant-numeric:tabular-nums; display:flex; align-items:center; gap:4px; }
.fb-stat b small { font-size:11px; font-weight:500; color:var(--muted); }
.fb-stat i { font-style:normal; font-size:11px; color:var(--muted); }
.fb-stat .fb-stat-sm { font-size:13px; font-weight:500; }
.fb-stat-btn { cursor:pointer; }
.fb-stat-btn:hover { border-color:var(--accent); }
.fb-stat-btn .ic { width:13px; height:13px; color:var(--muted); }
.fb-prof-act { display:flex; flex-wrap:wrap; gap:6px; align-items:center; justify-content:flex-end; }
.fb-act-icons { display:inline-flex; gap:2px; padding-left:6px; margin-left:2px; border-left:1px solid var(--line); }
.btn-ic { padding:4px 6px !important; min-width:28px; justify-content:center; }
.btn-ic .ic { margin:0; width:15px; height:15px; }
.btn-ic.danger:hover { color:var(--danger); border-color:var(--danger); }
/* сайдбар: статус планировщика */
.fb-side-foot { font-size:12px; line-height:1.45; }
.fb-sched-h { display:flex; align-items:center; gap:6px; font-weight:600; color:var(--text); margin-bottom:4px; flex-wrap:wrap; }
.fb-sched-act { display:flex; flex-direction:column; gap:4px; margin-top:6px; }
.fb-sched-act a { display:inline-flex; align-items:center; gap:4px; }
.fb-sched-info { display:inline-flex; align-items:center; gap:4px; color:var(--muted); cursor:help; }
/* кабинеты: расход, БМ, панель */
.fb-spend { display:flex; flex-direction:column; line-height:1.25; }
.fb-spend b { font-variant-numeric:tabular-nums; }
.fb-spend span { font-size:11px; font-weight:400; color:var(--muted); }
.bm-chips { gap:4px; flex-wrap:nowrap; }
.bm-chip { display:inline-flex !important; align-items:center; gap:4px; max-width:190px; }
.bm-chip .ic { width:13px; height:13px; color:var(--muted); }
.bm-chip .bm-name { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.bm-chip .bm-rel { font-size:10.5px; color:var(--muted); white-space:nowrap; }
.reg-bm-foreign .bm-rel, .reg-bm-foreign .ic { color:var(--danger) !important; }
.fb-tools-right { margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.seg { display:inline-flex; align-items:center; border:1px solid var(--line-2); border-radius:9px; overflow:hidden; background:var(--surface); }
.seg-label { font-size:12px; color:var(--muted); padding:0 8px; }
.seg-btn { background:transparent; border:none; border-left:1px solid var(--line); padding:5px 10px; font:inherit; font-size:12px; color:var(--text); cursor:pointer; }
.seg-btn:hover { background:var(--surface-2); }
.seg-btn:disabled { opacity:.6; }
/* карты: блок «требует внимания» */
.attn-box { border:1px solid var(--line); border-radius:12px; background:var(--surface); margin:6px 0 12px; overflow:hidden; }
.attn-h { font-size:12px; color:var(--muted); padding:8px 12px 4px; }
.attn { border-top:1px solid var(--line); }
.attn:first-of-type { border-top:none; }
.attn > summary { list-style:none; display:flex; align-items:center; gap:8px; padding:8px 12px; cursor:pointer; }
.attn > summary::-webkit-details-marker { display:none; }
.attn > summary > .ic:last-child { margin-left:6px; color:var(--muted); transition:transform .15s; }
.attn[open] > summary > .ic:last-child { transform:rotate(180deg); }
.attn-t { font-weight:600; }
.attn-m { margin-left:auto; font-variant-numeric:tabular-nums; color:var(--muted); }
.attn-danger > summary > .ic:first-child { color:var(--danger); }
.attn-danger .attn-m { color:var(--danger); font-weight:600; }
.attn-warn > summary > .ic:first-child { color:var(--st-paused); }
.attn-info > summary > .ic:first-child { color:var(--muted); }
.attn-b { padding:0 12px 10px 34px; font-size:13px; line-height:1.5; }
.attn-b p { margin:0 0 4px; }
.attn-b ul { margin:0; padding-left:16px; }
.attn-tags { display:flex; flex-wrap:wrap; gap:4px; }
.card-name { display:inline-flex; align-items:center; gap:5px; }
.card-name .ic { color:var(--muted); }
.card-reg { font-size:12px; margin-top:2px; display:flex; align-items:center; gap:4px; flex-wrap:wrap; }
.card-unreg { color:var(--danger); }
@media (prefers-reduced-motion: reduce) { .attn > summary > .ic:last-child { transition:none; } }
.kt-run-tbl .num, .kt-run-tbl th.num { text-align:right; font-variant-numeric:tabular-nums; }
.kt-grp td { background:var(--surface-2); padding-top:8px !important; padding-bottom:6px !important; white-space:normal; }
.kt-grp-m { margin-left:10px; font-size:12px; color:var(--muted); display:inline-flex; gap:6px; flex-wrap:wrap; align-items:center; }
.kt-ad { font-weight:500; }
/* уведомления: лента */
.ev-list { border:1px solid var(--line); border-radius:12px; background:var(--surface); overflow:hidden; }
.ev { border-top:1px solid var(--line); }
.ev:first-child { border-top:none; }
.ev > summary, .ev:not(details) { display:grid; grid-template-columns:86px 26px minmax(0,1fr) 18px; gap:8px; align-items:start; padding:9px 12px; }
.ev:not(details) { grid-template-columns:86px 26px minmax(0,1fr); }
.ev > summary { list-style:none; cursor:pointer; }
.ev > summary::-webkit-details-marker { display:none; }
.ev > summary > .ic:last-child { color:var(--muted); margin-top:3px; transition:transform .15s; }
.ev[open] > summary > .ic:last-child { transform:rotate(180deg); }
.ev-time { font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; line-height:1.35; }
.ev-ico { width:24px; height:24px; border-radius:7px; display:grid; place-items:center; background:var(--surface-2); color:var(--muted); }
.ev-ico .ic { width:14px; height:14px; }
.ev-danger { background:rgba(var(--bad-rgb),.12); color:var(--danger); }
.ev-ok { background:rgba(var(--ok-rgb),.14); color:var(--st-active); }
.ev-warn { background:rgba(var(--warn-rgb),.16); color:#c98a12; }
.ev-main { display:flex; flex-direction:column; gap:2px; min-width:0; }
.ev-title { font-size:13px; }
.ev-acc { margin-left:4px; }
.ev-body { font-size:13px; overflow-wrap:anywhere; }
.ev-reason { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; color:var(--muted); }
.ev-meta { font-size:11.5px; color:var(--muted); display:flex; align-items:center; gap:3px; flex-wrap:wrap; }
.ev-meta .ic { width:12px; height:12px; }
.ev-sub { padding:0 12px 10px 132px; font-size:12.5px; display:flex; flex-direction:column; gap:3px; }
.ev-cnt { display:inline-flex; align-items:center; gap:3px; margin-right:8px; font-variant-numeric:tabular-nums; }
@media (max-width:700px) { .ev > summary, .ev:not(details) { grid-template-columns:26px minmax(0,1fr) 18px; } .ev-time { grid-column:2; order:2; } .ev-sub { padding-left:44px; } }
.caps { display:flex; flex-wrap:wrap; gap:4px; }
.cap { display:inline-flex; align-items:center; gap:3px; font-size:11.5px; padding:1px 7px 1px 5px; border-radius:6px; border:1px solid var(--line); color:var(--dim); }
.cap .ic { width:12px; height:12px; }
.cap-on { color:var(--text); border-color:rgba(var(--ok-rgb),.5); background:rgba(var(--ok-rgb),.08); }
.cap-on .ic { color:var(--st-active); }
.fb-ev-today { margin-left:auto; display:flex; align-items:center; flex-wrap:wrap; }

/* v214 — Ads Manager: поиск и колонка Actions; реестр «Кабинеты 2.0» компактно */
.fbam-q { font:inherit; font-size:13px; padding:6px 10px; border:1px solid var(--line); border-radius:8px; background:var(--surface); color:var(--text); width:220px; }
.fbam-q:focus { outline:none; border-color:var(--fb-blue); box-shadow:0 0 0 2px rgba(var(--fb-rgb),.18); }
.fbam-tbl tr.hidden { display:none; }
.fbam-issues { display:flex; gap:6px; flex-wrap:wrap; }
.fbam-iss { display:inline-flex; align-items:center; gap:4px; font-size:12px; color:var(--st-paused); }
.fbam-iss-bad { color:var(--danger); }
.reg-tbl2 { font-size:13px; }
.reg-tbl2 thead th { position:sticky; top:0; z-index:2; background:var(--surface); font-size:12px; font-weight:600; color:var(--muted); white-space:nowrap; }
.reg-tbl2 td { padding-top:7px; padding-bottom:7px; }
.reg-tbl2 .fbam-r { text-align:right; }
.reg-c-name { min-width:180px; max-width:260px; }
.reg-id { font-size:11px; color:var(--dim); margin-top:2px; display:flex; flex-wrap:wrap; align-items:center; gap:0 2px; font-variant-numeric:tabular-nums; }
.reg-id .ic { width:11px; height:11px; color:var(--st-paused); margin-right:2px; }
.reg-sep { display:inline-block; width:3px; height:3px; border-radius:50%; background:var(--line-2); margin:0 6px; }
.reg-watch { display:flex; align-items:center; gap:4px; margin-top:4px; font-size:11.5px; font-weight:600; background:none !important; border:none !important; padding:0 !important; }
.reg-watch.fb-st-bad { color:var(--danger); } .reg-watch.fb-st-mid { color:var(--st-paused); }
.reg-c-where { max-width:280px; }
.reg-c-where .bm-chips { margin-top:4px; }
.reg-cardc { display:flex; align-items:center; gap:5px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.reg-bad { color:var(--danger); }
.reg-cap { min-width:96px; }
.reg-cap-n { white-space:nowrap; font-variant-numeric:tabular-nums; }
.reg-cap-bar { height:4px; border-radius:2px; background:var(--line); margin-top:4px; overflow:hidden; }
.reg-cap-bar span { display:block; height:100%; background:var(--st-active); }
.reg-cap-bar span.mid { background:var(--st-paused); } .reg-cap-bar span.bad { background:var(--danger); }
.reg-flags { display:flex; gap:3px; flex-wrap:wrap; }
.reg-fi { display:inline-flex; align-items:center; justify-content:center; width:24px; height:22px; border-radius:6px; border:1px solid var(--line-2); cursor:help; }
.reg-fi-danger { color:var(--danger); border-color:rgba(var(--bad-rgb),.45); background:rgba(var(--bad-rgb),.07); }
.reg-fi-warn { color:var(--st-paused); border-color:rgba(var(--warn-rgb),.5); background:rgba(var(--warn-rgb),.08); }
.reg-fi-muted { color:var(--muted); }
#reg-list.reg-scroll { max-height:calc(100vh - 230px); overflow:auto; border:1px solid var(--line); border-radius:10px; }
#reg-list .reg-tbl2 { margin:0; }
.reg-toolbar { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-bottom:6px; }
.reg-toolbar .reg-tools-r { margin-left:auto; display:flex; gap:6px; align-items:center; }
.fb-acc2 td { vertical-align:middle; }
.fb-acc2 .fbam-r { text-align:right; }
.fb-acc-name { min-width:170px; max-width:260px; }
.fb-acc-n { font-weight:600; }
.fb-acc2 .fb-link .ic { width:14px; height:14px; }
.fb-acc2 td.fb-acc-pf { max-width:190px; min-width:120px; white-space:normal; }
.fb-acc2 td.fb-acc-bm { max-width:240px; white-space:normal; }
.fb-acc2 td.fb-acc-card { max-width:170px; white-space:normal; }
.reg-tbl2 .hint { font-size:11.5px; }
.fb-acc2 td.fb-acc-bm .bm-chips { flex-wrap:wrap; }
.fb-acc2 td.fb-acc-bm .bm-chip { max-width:100%; }
.fb-acc2 .reg-id { flex-wrap:nowrap; white-space:nowrap; }
/* раскрытая панель кампаний не расширяет таблицу кабинетов — скроллится внутри себя */
.fb-camp-row > td > .fbam, .fb-camp-row .fbam { contain:inline-size; max-width:100%; }


/* ==========================================================================
   v215 — контрольный дизайн тёмной темы
   Принципы: 1) глубина = светлота слоя (bg → surface → surface-2 → surface-3), а не тени;
   2) ирис — только действие/фокус/выбор, не декор; 3) семантика (ok/warn/bad) — через токены,
   светлее в тёмной теме; 4) весь вторичный текст ≥ 4.5:1; 5) у всех полей ввода один вид.
   ========================================================================== */
/* поля: одна рамка для input/select/inline-input; фиолетовая — только в фокусе */
.inline-input { border-color: var(--line-2); }
.inline-input:focus { border-color: var(--accent); box-shadow: var(--ring); }
.grid td.editing .inline-input { border-color: var(--accent); }
:root:not([data-theme="light"]) input:not([type="checkbox"]):not([type="radio"]):not([type="color"]):not([type="file"]),
:root:not([data-theme="light"]) select, :root:not([data-theme="light"]) textarea { border-color: var(--line-2); background: var(--surface-2); }
:root:not([data-theme="light"]) input[type="checkbox"], :root:not([data-theme="light"]) input[type="radio"] { accent-color: var(--accent); }
/* поверхности: «блик» сверху даёт объём на чёрном */
:root:not([data-theme="light"]) .dict-card, :root:not([data-theme="light"]) .fb-side, :root:not([data-theme="light"]) .fbam,
:root:not([data-theme="light"]) .modal-card, :root:not([data-theme="light"]) .notif-panel { box-shadow: var(--raise); }
/* вкладки верхнего меню: активная — заметно светлее фона + тонкая рамка */
:root:not([data-theme="light"]) .tab.active { background: var(--surface-3); box-shadow: var(--raise), 0 0 0 1px var(--line-2); }
/* таблицы разделов лежат на карточке, а не прямо на фоне */
:root:not([data-theme="light"]) .fb-acc-tbl { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.fb-acc-tbl th { background: var(--surface-2); color: var(--muted); font-weight: 500; font-size: 12px; }
.fb-acc-tbl tr:last-child > td { border-bottom: none; }
.fb-acc-tbl tbody tr:hover > td, .fb-acc-row:hover > td { background: var(--hover-row); }
/* ключевая колонка (Расход): тихая подложка вместо фиолетовой плиты */
.fb-acc-tbl td.fb-col-today, .fb-camp-tbl td.fb-col-today { background: var(--col-hi); border-left: 1px solid var(--line-2); }
.fb-acc-tbl th.fb-col-today, .fb-camp-tbl th.fb-col-today { color: var(--text); border-left: 1px solid var(--line-2); background: var(--surface-2); }
/* статусы-пилюли: читаемые 11.5px, светлые «чернила» на 14% подложке */
.fb-st { font-size: 11.5px; font-weight: 500; padding: 1px 8px; border: 1px solid transparent; }
.fb-st-ok { background: rgba(var(--ok-rgb), .14); color: var(--ok-ink); border-color: rgba(var(--ok-rgb), .25); }
.fb-st-bad { background: rgba(var(--bad-rgb), .14); color: var(--bad-ink); border-color: rgba(var(--bad-rgb), .25); }
.fb-st-mid { background: rgba(var(--warn-rgb), .14); color: var(--warn-ink); border-color: rgba(var(--warn-rgb), .25); }
.reg-watch.fb-st-bad, .reg-watch.fb-st-mid { border: none; }
/* чипы профилей/БМ: приглушённая заливка, насыщенный цвет только у текста-маркера */
:root:not([data-theme="light"]) .reg-pf-now { background: rgba(var(--ok-rgb), .10); border-color: rgba(var(--ok-rgb), .35); }
:root:not([data-theme="light"]) .reg-bm-own { background: rgba(var(--accent-rgb), .10); border-color: rgba(var(--accent-rgb), .35); }
:root:not([data-theme="light"]) .reg-bm-acc { background: rgba(var(--info-rgb), .08); border-color: rgba(var(--info-rgb), .30); }
/* ссылки: без подчёркивания до наведения; кнопки-ссылки (CSV) — как кнопки */
a.btn, a.btn:hover, :root a.btn { text-decoration: none; color: var(--text); }
a.bm-chip, a.reg-pf { color: var(--text); text-decoration: none; }
.fb-pages-tbl a, .fb-acc-tbl a { text-decoration: none; } .fb-pages-tbl a:hover, .fb-acc-tbl a:hover { text-decoration: underline; }
/* боковое меню: активный пункт — светлый слой + ирисовая черта слева, без «неоновой» рамки */
:root:not([data-theme="light"]) .fb-side-item.active { background: var(--surface-3); border-color: transparent; color: var(--text); box-shadow: inset 2px 0 0 var(--accent); }
:root:not([data-theme="light"]) .fb-side-item.active .ic { color: var(--accent-hi); }
:root:not([data-theme="light"]) .fb-side-item.active .fb-side-n { color: var(--text); background: var(--line-2); }
/* Ads Manager в тёмной: свой синий, тёмные шапка/итоги */
:root:not([data-theme="light"]) .fbam-tbl th { background: var(--surface-2); color: var(--muted); }
:root:not([data-theme="light"]) .fbam-top { background: var(--surface); }
:root:not([data-theme="light"]) .fbam-tab.active { background: rgba(var(--fb-rgb), .10); }
.fbam-toggle span { background: #fff; }
:root:not([data-theme="light"]) .fbam-toggle:not(.on) span { background: #c9cdd6; }
/* тосты и ошибки */
:root:not([data-theme="light"]) .form-error { background: rgba(var(--bad-rgb), .08); border-color: rgba(var(--bad-rgb), .35); color: var(--bad-ink); }
/* иконка темы */
.theme-toggle .ic { width: 16px; height: 16px; }
#reg-list.reg-scroll { background: var(--surface); box-shadow: var(--raise); }
#reg-list .reg-tbl2 thead th { background: var(--surface-2); }

/* ==========================================================================
   v216 — Keitaro: «воздух» и иерархия. Один экран = три слоя: итог дней → настройки профиля → сверка.
   Объяснения — по клику/наведению, а не в каждой строке.
   ========================================================================== */
#fbv-costs { display:flex; flex-direction:column; gap:16px; }
#fbv-costs > .kt-result:not(.hidden) { margin:-4px 0 0; }
/* итог дней */
.kt-kpi { grid-template-columns:repeat(auto-fit, minmax(340px, 1fr)); gap:12px; margin:0; }
.kt-kpi-card { padding:14px 16px 12px; display:flex; flex-direction:column; gap:8px; box-shadow:var(--raise); }
.kt-kpi-h { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.kt-kpi-t { font-size:12.5px; color:var(--muted); margin:0; }
.kt-kpi-v { font-size:12.5px; font-weight:600; display:inline-flex; align-items:center; gap:4px; }
.kt-kpi-v.ok { color:var(--ok-ink); } .kt-kpi-v.bad { color:var(--bad-ink); } .kt-kpi-v.mid { color:var(--warn-ink); }
.kt-kpi-main { display:flex; align-items:baseline; gap:8px; }
.kt-kpi-main b { font-family:var(--display); font-size:26px; font-weight:600; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }
.kt-bar { display:flex; height:6px; border-radius:3px; overflow:hidden; background:var(--surface-3); }
.kt-bar span { display:block; height:100%; }
.kt-bar-s { background:var(--accent); } .kt-bar-o { background:var(--st-testing); opacity:.75; } .kt-bar-u { background:var(--bad-ink); }
.kt-leg { display:flex; flex-wrap:wrap; gap:4px 16px; font-size:12px; color:var(--muted); }
.kt-leg span { display:inline-flex; align-items:center; gap:6px; }
.kt-leg b { color:var(--text); font-weight:600; font-variant-numeric:tabular-nums; }
.kt-leg i { width:8px; height:8px; border-radius:2px; display:inline-block; }
.kt-autofix:not(.hidden) { display:flex; align-items:center; gap:6px; padding:8px 12px; border-radius:10px; background:var(--surface); border:1px solid var(--line); font-size:12.5px; }
/* профиль */
.kt-profiles { gap:12px; }
.kt-prof { padding:14px 16px; gap:12px; box-shadow:var(--raise); }
.kt-prof-id { display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; }
.kt-prof-id b { font-size:14.5px; }
.kt-prof-set { gap:12px; }
.kt-f { display:flex; flex-direction:column; gap:5px; min-width:0; }
.kt-f > span { font-size:12px; color:var(--muted); display:inline-flex; align-items:center; gap:4px; cursor:help; }
.kt-f > span .ic { width:12px; height:12px; color:var(--dim); }
.kt-f select { width:100%; }
.kt-prof-last { display:flex; align-items:flex-start; gap:6px; font-size:12px; color:var(--muted); white-space:normal; line-height:1.45; }
.kt-prof-last span { overflow-wrap:anywhere; }
.kt-prof-last .ic { margin-top:2px; }
.kt-def { color:var(--warn-ink, #8a5a00); }
.kt-prof-last b { color:var(--text); font-weight:500; }
.kt-prof-last .ic { flex:none; color:var(--dim); }
.kt-prof-act { gap:6px; padding-top:12px; border-top:1px solid var(--line); }
.kt-prof-act .btn .ic { margin-right:3px; }
.kt-act-sep { width:1px; height:20px; background:var(--line); margin:0 4px; }
.kt-date { display:inline-flex; gap:4px; align-items:center; border:none; padding:0; }
.kt-date input { width:140px; padding:4px 8px; }
.kt-switch { display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--muted); cursor:pointer; }
/* секции */
.kt-sec { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:14px 16px; box-shadow:var(--raise); }
.kt-sec-h { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.kt-sec h3 { margin:0; font-family:var(--display); font-size:15px; font-weight:600; }
.kt-sec-tools { margin-left:auto; display:flex; align-items:center; gap:10px; }
.kt-sec-tools select { width:auto; padding:4px 8px; }
.kt-chk { display:inline-flex; gap:6px; align-items:center; cursor:pointer; }
details.kt-sec > summary { cursor:pointer; display:flex; align-items:baseline; gap:10px; list-style:none; }
details.kt-sec > summary::-webkit-details-marker { display:none; }
details.kt-sec > summary::before { content:''; width:7px; height:7px; border-right:1.6px solid var(--muted); border-bottom:1.6px solid var(--muted); transform:rotate(-45deg); margin-right:2px; align-self:center; transition:transform var(--ease); }
details.kt-sec[open] > summary::before { transform:rotate(45deg); }
details.kt-sec[open] > summary { margin-bottom:12px; }
.kt-howto > summary { font-weight:600; font-size:14px; }
.kt-howto .hint { max-width:76ch; line-height:1.6 !important; }
/* сверка */
.fb-recon-sum { display:flex; flex-wrap:wrap; gap:6px; margin:0 0 12px; }
.fb-recon-sum .fb-st { display:inline-flex; align-items:center; gap:5px; padding:3px 10px; font-size:12px; }
:root:not([data-theme="light"]) .rc-tbl { border:none; background:transparent; }
.rc-tbl { font-size:13px; }
.rc-tbl th { font-size:12px; white-space:nowrap; padding:8px 10px; }
.rc-tbl th .ic { width:12px; height:12px; color:var(--dim); vertical-align:-2px; }
.rc-tbl td { padding:9px 10px; vertical-align:top; }
.rc-tbl .num { text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap; }
.rc-day td { background:var(--surface-2); border-top:12px solid var(--surface); padding-top:8px; padding-bottom:8px; font-size:12.5px; }
.rc-day:first-child td { border-top:none; }
.rc-day td:first-child { border-radius:8px 0 0 8px; } .rc-day td:last-child { border-radius:0 8px 8px 0; }
.rc-act { min-width:180px; }
.rc-n { font-weight:500; }
.rc-sub { font-size:11.5px; color:var(--muted); margin-top:2px; display:flex; gap:8px; justify-content:flex-end; white-space:nowrap; }
.rc-sub .ic { width:11px; height:11px; vertical-align:-1px; }
.rc-ok { color:var(--ok-ink); } .rc-warn { color:var(--warn-ink); }
.rc-ok .ic { width:12px; height:12px; vertical-align:-2px; }
.rc-st { white-space:nowrap; }
.rc-chip { display:inline-flex; align-items:center; gap:5px; font:inherit; font-size:12px; cursor:pointer; padding:3px 9px !important; }
.rc-chip .ic { width:12px; height:12px; }
.rc-chip:hover { filter:brightness(1.15); }
.rc-st .btn-ic { margin-left:4px; padding:3px 6px; vertical-align:middle; }
.rc-row.open > td { border-bottom-color:transparent; }
.rc-det td { padding:2px 10px 14px; }
.rc-why { max-width:78ch; font-size:12.5px; line-height:1.55; color:var(--text); padding:10px 12px; border-left:2px solid var(--line-2); background:var(--surface-2); border-radius:0 8px 8px 0; }
.rc-ads { display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:8px; font-size:12px; }
.rc-ad { padding:2px 8px; border-radius:6px; background:var(--surface-2); border:1px solid var(--line); }
.rc-meta { margin-top:6px; font-size:11.5px; }
.rc-more td { padding:4px 10px 6px; border-bottom:none; }
.rc-more .fb-link { color:var(--muted); font-size:12px; display:inline-flex; align-items:center; gap:4px; }
.rc-more .fb-link:hover { color:var(--text); }
@media (max-width:900px) { .kt-sec-tools { margin-left:0; } .kt-act-sep { display:none; } }
/* v216 — Уведомления: группы по дням, короткие причины, время без даты */
.ev-day { padding:10px 14px 6px; font-size:12px; font-weight:600; color:var(--muted); background:var(--surface-2); border-top:1px solid var(--line); position:sticky; top:0; z-index:1; }
.ev-day:first-child { border-top:none; }
.ev-day + .ev { border-top:none; }
.ev > summary, .ev:not(details) { grid-template-columns:52px 26px minmax(0,1fr) 18px; padding:11px 14px; gap:10px; }
.ev:not(details) { grid-template-columns:52px 26px minmax(0,1fr); }
.ev-main { gap:3px; }
.ev-why { color:var(--muted); }
.ev-body { line-height:1.45; }
.ev-meta { font-size:11.5px; color:var(--dim); display:flex; align-items:center; gap:4px; }
.ev-tg { display:inline-flex; color:var(--dim); } .ev-tg .ic { width:12px; height:12px; }
.ev-warn { color:var(--warn-ink); }
/* Фан-пейджи: права одной строкой */
.cap-all { font-weight:500; }
.cap-miss { color:var(--warn-ink); border-color:rgba(var(--warn-rgb),.35) !important; background:rgba(var(--warn-rgb),.08) !important; }
.fb-pages-tbl td { vertical-align:middle; padding-top:10px; padding-bottom:10px; }
/* Карты */
.fb-cards-note { display:flex; align-items:center; gap:6px; margin-bottom:8px; }
.fb-info { display:inline-flex; color:var(--dim); cursor:help; } .fb-info .ic { width:13px; height:13px; }
.fb-cards-tbl td { padding-top:9px; padding-bottom:9px; vertical-align:top; }
.card-reg { margin-top:3px; }
/* общий ритм таблиц разделов Facebook */
.fb-acc-tbl th, .fb-acc-tbl td { padding-left:10px; padding-right:10px; }
.fb-acc-all td, .fb-proxy-tbl td { padding-top:9px; padding-bottom:9px; }
.fbv > * + * { margin-top:12px; }

/* ==========================================================================
   v217 — Карта связки. Форма = тип: профиль — капсула с аватаром, БМ — шестигранник,
   кабинет — карточка с полосой статуса, карта — «банковская карта», прокси — плашка, фан-пейдж — капсула с флагом.
   Цвет = состояние. Линия: сплошная — владение/доступ сейчас, пунктир — членство/клиентский доступ, серая — была раньше, красная — риск.
   ========================================================================== */
#fbv-map { display:flex; flex-direction:column; gap:10px; }
.fb-map-tools { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.fb-map-q { width:280px; max-width:100%; }
.fb-map-zoom { margin-left:auto; display:inline-flex; gap:4px; }
.fb-map-layers { display:inline-flex; border:1px solid var(--line-2); border-radius:8px; overflow:hidden; }
.fb-map-layers .seg-b { background:transparent; border:none; color:var(--muted); font:inherit; font-size:12.5px; padding:5px 10px; cursor:pointer; }
.fb-map-layers .seg-b + .seg-b { border-left:1px solid var(--line-2); }
.fb-map-layers .seg-b.active { background:var(--surface-3); color:var(--text); }
.fb-map { position:relative; height:calc(100vh - 230px); min-height:520px; border:1px solid var(--line); border-radius:12px; overflow:hidden; box-shadow:var(--raise);
  background-color:var(--bg); background-image:radial-gradient(circle, var(--line) 1px, transparent 1.2px); background-size:22px 22px; }
#fbv-map.fb-map-full { position:fixed; inset:0; z-index:60; background:var(--bg); padding:12px; }
#fbv-map.fb-map-full .fb-map { height:calc(100vh - 70px); }
.fb-map-svg { width:100%; height:100%; display:block; cursor:grab; touch-action:none; user-select:none; }
.fb-map-svg:active { cursor:grabbing; }
.mc-h { font-size:12px; fill:var(--dim); font-weight:600; letter-spacing:.01em; }
/* линии */
.me { fill:none; stroke:var(--line-2); stroke-width:1.4; transition:opacity .15s, stroke .15s; }
.me-access { stroke:rgba(var(--accent-rgb), .55); }
.me-bm.rel-owned { stroke:rgba(var(--accent-rgb), .75); stroke-width:1.8; }
.me-bm.rel-client, .me-bm.rel-agency { stroke:rgba(var(--info-rgb), .6); stroke-dasharray:6 4; }
.me-member { stroke:rgba(var(--info-rgb), .5); stroke-dasharray:3 3; }
.me-pays { stroke:var(--line-2); }
.me-proxy, .me-page { stroke:var(--line-2); stroke-dasharray:2 4; }
.me-past { stroke:var(--dim) !important; stroke-dasharray:2 5 !important; opacity:.45; }
.me-risk { stroke:rgba(var(--bad-rgb), .8) !important; }
.me-on { stroke:var(--accent-hi) !important; stroke-width:2.4 !important; opacity:1 !important; }
.me-dim { opacity:.1; }
.me-hit { stroke:var(--bad-ink) !important; stroke-width:2.4 !important; opacity:1 !important; }
/* узлы */
.mn { cursor:pointer; transition:opacity .15s; }
.mn-box { fill:var(--surface-2); stroke:var(--line-2); stroke-width:1.2; }
.mn:hover .mn-box { stroke:var(--accent); }
.mn-t { font-size:12.5px; font-weight:600; fill:var(--text); }
.mn-s { font-size:10.5px; fill:var(--dim); font-variant-numeric:tabular-nums; }
.mn-m { font-size:12px; font-weight:600; fill:var(--text); font-variant-numeric:tabular-nums; }
.mn-st { font-size:10.5px; font-weight:600; }
.mn-ic { color:var(--muted); }
.mn-dim { opacity:.22; }
.mn-sel .mn-box { stroke:var(--accent); stroke-width:2.4; }
.mn-hit .mn-box { stroke:var(--bad-ink); stroke-width:2.4; fill:rgba(var(--bad-rgb), .1); }
.mn-profile .mn-box { fill:var(--surface); }
.mn-av { fill:rgba(var(--accent-rgb), .18); }
.mn-av-t { font-size:13px; font-weight:700; fill:var(--accent-hi); }
.mn-profile.st-dead .mn-av { fill:rgba(var(--bad-rgb), .2); } .mn-profile.st-dead .mn-av-t, .mn-profile.st-dead .mn-s { fill:var(--bad-ink); }
.mn-profile.st-removed .mn-box { stroke-dasharray:4 3; } .mn-profile.st-removed { opacity:.6; }
.mn-bm .mn-box { fill:rgba(var(--accent-rgb), .07); stroke:rgba(var(--accent-rgb), .45); }
.mn-bm .mn-ic { color:var(--accent-hi); }
.mn-bm.st-foreign .mn-box { fill:rgba(var(--bad-rgb), .08); stroke:rgba(var(--bad-rgb), .6); } .mn-bm.st-foreign .mn-ic, .mn-bm.st-foreign .mn-s { color:var(--bad-ink); fill:var(--bad-ink); }
.mn-act .mn-box { fill:var(--surface); }
.mn-stripe { fill:var(--dim); }
.mn-act.st-ok .mn-stripe { fill:var(--ok-ink); }
.mn-act.st-ban .mn-stripe { fill:var(--bad-ink); } .mn-act.st-ban .mn-st { fill:var(--bad-ink); } .mn-act.st-ban .mn-t { fill:var(--muted); }
.mn-act.st-warn .mn-stripe { fill:var(--warn-ink); } .mn-act.st-warn .mn-st { fill:var(--warn-ink); }
.mn-act.st-lost .mn-stripe { fill:var(--bad-ink); } .mn-act.st-lost .mn-box { stroke:rgba(var(--bad-rgb), .7); stroke-dasharray:5 3; } .mn-act.st-lost .mn-st { fill:var(--bad-ink); }
.mn-card .mn-box { fill:var(--surface-3); }
.mn-band { fill:rgba(255,255,255,.06); }
.mn-chip { fill:rgba(var(--warn-rgb), .55); }
.mn-badge { font-size:11px; font-weight:700; fill:var(--warn-ink); }
.mn-card.st-shared .mn-box { stroke:rgba(var(--warn-rgb), .55); }
.mn-proxy .mn-box { fill:var(--surface); stroke-dasharray:3 3; }
.mn-page .mn-box { fill:var(--surface); }
.mn-page.st-warn .mn-box { stroke:rgba(var(--warn-rgb), .6); }
/* легенда и панель */
.fb-map-legend { position:absolute; left:12px; bottom:10px; display:flex; flex-wrap:wrap; gap:4px 12px; align-items:center; font-size:11.5px; color:var(--muted); background:color-mix(in srgb, var(--surface) 88%, transparent); border:1px solid var(--line); border-radius:8px; padding:6px 10px; max-width:calc(100% - 24px); }
.fb-map-legend span { display:inline-flex; align-items:center; gap:5px; }
.lg { display:inline-block; width:22px; height:0; border-top:2px solid; }
.lg-own { border-color:rgba(var(--accent-rgb), .75); } .lg-acc { border-color:rgba(var(--info-rgb), .7); border-top-style:dashed; } .lg-past { border-color:var(--dim); border-top-style:dotted; } .lg-risk { border-color:var(--bad-ink); }
.lg-sep { width:1px; height:12px; background:var(--line-2); }
.lgn { display:inline-block; width:8px; height:8px; border-radius:2px; background:var(--dim); flex:none; }
.lgn.st-ok { background:var(--ok-ink); } .lgn.st-ban, .lgn.st-lost, .lgn.st-dead, .lgn.st-foreign { background:var(--bad-ink); } .lgn.st-warn, .lgn.st-shared { background:var(--warn-ink); }
.fb-map-side { position:absolute; top:12px; right:12px; bottom:12px; width:300px; background:var(--surface); border:1px solid var(--line-2); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:8px; overflow:auto; box-shadow:var(--shadow-pop); }
.mside-top { display:flex; justify-content:space-between; align-items:center; }
.mside-type { font-size:12px; color:var(--muted); }
.mside-name { font-size:15px; font-weight:600; overflow-wrap:anywhere; }
.mside-act { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0; }
.mside-imp { padding:10px 12px; border-radius:8px; font-size:12.5px; line-height:1.5; }
.mside-imp.bad { background:rgba(var(--bad-rgb), .1); border:1px solid rgba(var(--bad-rgb), .35); }
.mside-imp.ok { background:rgba(var(--ok-rgb), .1); border:1px solid rgba(var(--ok-rgb), .3); color:var(--ok-ink); }
.mside-kv { display:grid; grid-template-columns:auto 1fr; gap:4px 12px; font-size:12.5px; } .mside-kv span { color:var(--muted); }
.mside-h { font-size:12px; color:var(--muted); margin-top:8px; }
.mside-l { display:flex; flex-direction:column; gap:2px; }
.mside-i { display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:transparent; border:1px solid transparent; color:var(--text); font:inherit; font-size:12.5px; padding:5px 8px; border-radius:6px; cursor:pointer; }
.mside-i:hover { background:var(--surface-2); border-color:var(--line); }
.mside-i span { margin-left:auto; color:var(--muted); font-variant-numeric:tabular-nums; }
.fb-map-btn { background:none; border:none; padding:0 2px; color:var(--dim); cursor:pointer; vertical-align:-2px; }
.fb-map-btn:hover { color:var(--accent-hi); } .fb-map-btn .ic { width:13px; height:13px; }
@media (max-width:900px) { .fb-map-side { left:12px; width:auto; top:auto; max-height:55%; } .fb-map-zoom { margin-left:0; } }
.fb-map-hint { position:absolute; right:12px; bottom:12px; font-size:11px; pointer-events:none; }
.fb-map-side:not(.hidden) ~ .fb-map-hint { display:none; }
.fb-map-hint { top:10px; bottom:auto; }
.mn-badge-bg { fill:rgba(var(--warn-rgb), .16); stroke:rgba(var(--warn-rgb), .45); }
.fb-map-layers .seg-b:not(.active) { text-decoration:line-through; text-decoration-color:var(--dim); }
.fb-map-tools { row-gap:8px; }
.fb-map-legend .hint .ic { width:12px; height:12px; }
.fb-map-legend .hint { cursor:help; }
/* v219 — переход с FBTOOL: дата начала и сравнение */
.kt-since { display:flex; align-items:center; gap:6px; }
.kt-since input { width:160px; }
.cmp-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(320px, 1fr)); gap:10px; margin:10px 0; }
.cmp-card { border:1px solid var(--line); border-radius:10px; padding:12px 14px; background:var(--surface-2); display:flex; flex-direction:column; gap:8px; }
.cmp-card.ok { border-color:rgba(var(--ok-rgb), .4); } .cmp-card.bad { border-color:rgba(var(--bad-rgb), .45); }
.cmp-h { display:flex; justify-content:space-between; gap:8px; flex-wrap:wrap; align-items:baseline; }
.cmp-nums { display:flex; gap:22px; flex-wrap:wrap; }
.cmp-nums > div { display:flex; flex-direction:column; font-variant-numeric:tabular-nums; }
.cmp-nums b { font-size:17px; }
.cmp-verdict { display:flex; gap:6px; align-items:flex-start; font-size:12.5px; line-height:1.45; }
.cmp-card.ok .cmp-verdict { color:var(--ok-ink); } .cmp-card.bad .cmp-verdict { color:var(--bad-ink); }
.cmp-verdict .ic, .cmp-loose .ic, .cmp-skip .ic { flex:none; margin-top:2px; }
.cmp-loose, .cmp-skip { display:flex; gap:6px; font-size:12px; line-height:1.45; }
.cmp-tools { display:flex; gap:12px; align-items:center; margin:6px 0; }

/* v220 — AdsPower */
#apw-bar:empty { display:none; }
.apw-bar { display:flex; align-items:center; gap:12px; flex-wrap:wrap; padding:10px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface); box-shadow:var(--raise); margin-bottom:12px; }
.apw-dot { width:9px; height:9px; border-radius:50%; background:var(--dim); flex:none; }
.apw-on .apw-dot { background:var(--ok-ink); box-shadow:0 0 0 4px rgba(var(--ok-rgb), .15); }
.apw-warn .apw-dot { background:var(--warn-ink); box-shadow:0 0 0 4px rgba(var(--warn-rgb), .15); }
.apw-off .apw-dot { background:var(--dim); }
.apw-txt { display:flex; flex-direction:column; gap:2px; flex:1; min-width:240px; font-size:13px; }
.apw-txt .hint { font-size:12px; }
.apw-slot { display:inline-flex; align-items:center; gap:6px; }
.apw-slot:empty { display:none; }
button.apw-tok { cursor:pointer; border:none; font:inherit; font-size:11px; display:inline-flex; align-items:center; gap:4px; }
.apw-tok .ic { width:11px; height:11px; }
.apw-open { padding:2px 8px; } .apw-open .ic { width:12px; height:12px; margin-right:2px; }
.apw-relink { color:var(--dim); } .apw-relink .ic { width:12px; height:12px; }
.apw-modal { max-width:620px; }
.apw-steps { margin:6px 0 12px; padding-left:20px; display:flex; flex-direction:column; gap:10px; font-size:13.5px; line-height:1.5; }
.apw-cmd { display:flex; gap:8px; align-items:center; margin-top:8px; padding:8px 10px; background:var(--bg); border:1px solid var(--line-2); border-radius:8px; }
.apw-cmd code { flex:1; font-family:var(--mono); font-size:12px; overflow-wrap:anywhere; user-select:all; }
.apw-note { display:flex; gap:8px; line-height:1.5; font-size:12px; padding:10px 12px; background:var(--surface-2); border-radius:8px; }
.apw-note .ic { flex:none; margin-top:2px; }
.reg-pf-open { background:none; border:none; padding:0 0 0 4px; color:var(--ok-ink); cursor:pointer; vertical-align:-2px; } .reg-pf-open .ic { width:11px; height:11px; }
/* v223 — открыть через AdsPower */
.apw-only { display:none; }
body.apw-on .apw-only { display:inline-flex; }
body.apw-on a[data-apw-go] { cursor:pointer; }
.fb-map-btn.apw-only { color:var(--ok-ink); opacity:.75; } .fb-map-btn.apw-only:hover { opacity:1; }
.reg-where td:last-child { display:flex; gap:4px; align-items:center; }
/* v224 — выбор профиля для открытия, потерянные связи */
.apw-pop { position:absolute; z-index:80; width:300px; background:var(--surface); border:1px solid var(--line-2); border-radius:10px; box-shadow:var(--shadow-pop); padding:6px; display:flex; flex-direction:column; gap:2px; }
.apw-pop-h { font-size:11.5px; color:var(--muted); padding:4px 8px 6px; }
.apw-pop-i { display:flex; align-items:center; gap:8px; text-align:left; background:transparent; border:1px solid transparent; color:var(--text); font:inherit; font-size:13px; padding:7px 8px; border-radius:7px; cursor:pointer; }
.apw-pop-i:hover:not(:disabled) { background:var(--surface-2); border-color:var(--line); }
.apw-pop-i span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.apw-pop-i i { font-style:normal; font-size:11px; color:var(--dim); white-space:nowrap; }
.apw-pop-i.last { border-color:rgba(var(--accent-rgb), .4); }
.apw-pop-i.off { opacity:.55; cursor:not-allowed; }
.fbam-ads { background:none; border:none; padding:0 0 0 6px; color:var(--ok-ink); cursor:pointer; vertical-align:-2px; opacity:.7; } .fbam-ads:hover { opacity:1; } .fbam-ads .ic { width:12px; height:12px; }
.me-lost { stroke:var(--bad-ink) !important; stroke-dasharray:6 4 !important; stroke-width:1.8 !important; opacity:.9; }
.lg-lost { border-color:var(--bad-ink); border-top-style:dashed; }
/* v225 — сетапы на карте */
.mbox rect { fill:rgba(var(--accent-rgb), .025); stroke:var(--line); stroke-dasharray:4 4; }
.mbox text { font-size:12px; font-weight:600; fill:var(--muted); }
.apw-os { display:inline-flex; border:1px solid var(--line-2); border-radius:8px; overflow:hidden; margin-bottom:10px; }
.apw-os .seg-b { background:transparent; border:none; color:var(--muted); font:inherit; font-size:13px; padding:6px 16px; cursor:pointer; }
.apw-os .seg-b + .seg-b { border-left:1px solid var(--line-2); }
.apw-os .seg-b.active { background:var(--surface-3); color:var(--text); font-weight:600; }

/* v228: тип прокси и подсказка «другой тип работает» */
.px-type { display: inline-block; font: 600 10px/1 var(--font, inherit); letter-spacing: .02em; padding: 3px 5px; border-radius: 4px; margin-right: 4px; vertical-align: 1px; }
.px-type.px-http { background: rgba(var(--fb-blue-rgb, 24,119,242), .12); color: var(--fb-blue, #1877f2); }
.px-type.px-socks { background: rgba(var(--ok-rgb, 22,163,74), .14); color: var(--ok-ink, #15803d); }
.px-alt { margin-top: 4px; color: var(--text); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.apw-px-all { color: var(--warn-ink); }
#fb-proxy-src { display: block; margin-top: 3px; }
.fb-proxy-tbl [data-px-res] { display: block; white-space: normal; max-width: 280px; margin-top: 4px; line-height: 1.35; }
.fb-proxy-tbl [data-px-res]:empty { display: none; }

/* v231: карта как метка на кабинете */
.mn-cardchip rect { fill: var(--surface-3); stroke: var(--line-2); stroke-width: 1; }
.mn-cardchip.shared rect { fill: rgba(var(--warn-rgb), .14); stroke: rgba(var(--warn-rgb), .5); }
.mn-cardchip .cc-chip { fill: rgba(var(--warn-rgb), .6); stroke: none; }
.mn-cardt { font-size: 10.5px; font-weight: 600; fill: var(--dim); font-variant-numeric: tabular-nums; }
.mn-cardchip.shared .mn-cardt { fill: var(--warn-ink); }
.mn-cardx { font-size: 10px; font-weight: 700; fill: var(--warn-ink); }
.mn-aid { font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.mn-anm { font-size: 10.5px; }
.mn-act.card-hi .mn-cardchip rect { fill: rgba(var(--warn-rgb), .28); stroke: var(--warn-ink); }
.mn-act.card-hi .mn-box { stroke: var(--warn-ink); }

/* v231: обзор сетапов */
.fb-map-view { display:inline-flex; border:1px solid var(--line-2); border-radius:8px; overflow:hidden; }
.fb-map-view .seg-b { background:transparent; border:none; color:var(--muted); font:inherit; font-size:12.5px; padding:5px 12px; cursor:pointer; }
.fb-map-view .seg-b + .seg-b { border-left:1px solid var(--line-2); }
.fb-map-view .seg-b.active { background:var(--surface-3); color:var(--text); }
.mov-wrap { position:absolute; inset:0; overflow:auto; padding:16px; }
.mov-sum { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; font-size:13px; color:var(--muted); margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid var(--line); }
.mov-sum b { color:var(--text); } .mov-sum .ok { color:var(--ok-ink); } .mov-sum .bad { color:var(--bad-ink); }
.mov-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(290px, 1fr)); gap:14px; }
.mov-card { text-align:left; background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:14px; cursor:pointer; display:flex; flex-direction:column; gap:10px; transition:border-color .15s, transform .1s, box-shadow .15s; box-shadow:var(--raise); }
.mov-card:hover { border-color:var(--accent); transform:translateY(-2px); box-shadow:var(--shadow-pop); }
.mov-card.warn { border-color:rgba(var(--bad-rgb), .4); }
.mov-top { display:flex; justify-content:space-between; align-items:flex-start; gap:10px; }
.mov-profs { display:flex; flex-wrap:wrap; gap:5px; }
.mov-chip { display:inline-flex; align-items:center; gap:5px; font-size:12.5px; font-weight:600; color:var(--text); background:var(--surface-3); border-radius:7px; padding:3px 8px; }
.mov-spend { font-size:16px; font-weight:700; color:var(--text); white-space:nowrap; font-variant-numeric:tabular-nums; }
.mov-spend i { display:block; font-size:10px; font-weight:500; color:var(--muted); font-style:normal; text-align:right; }
.mov-bms { display:flex; flex-wrap:wrap; gap:6px; }
.mov-bm { display:inline-flex; align-items:center; gap:4px; font-size:11.5px; color:var(--accent-hi); background:rgba(var(--accent-rgb), .1); border:1px solid rgba(var(--accent-rgb), .3); border-radius:6px; padding:2px 7px; }
.mov-bm .mn-ic, .mov-bm use { width:12px; height:12px; }
.mov-bm.foreign { color:var(--bad-ink); background:rgba(var(--bad-rgb), .1); border-color:rgba(var(--bad-rgb), .35); }
.mov-stats { display:flex; gap:18px; padding-top:4px; }
.mov-n { font-size:19px; font-weight:700; color:var(--text); line-height:1.1; font-variant-numeric:tabular-nums; }
.mov-n i { display:block; font-size:10.5px; font-weight:500; color:var(--muted); font-style:normal; margin-top:1px; }
.mov-n.ok { color:var(--ok-ink); } .mov-n.bad { color:var(--bad-ink); }
.mov-open { display:flex; align-items:center; gap:6px; font-size:12px; color:var(--muted); border-top:1px solid var(--line); padding-top:9px; }
.mov-card:hover .mov-open { color:var(--accent); }


/* v231: рамки БМ вокруг кабинетов */
.maframe rect { fill: rgba(var(--accent-rgb), .04); stroke: rgba(var(--accent-rgb), .3); stroke-width: 1.2; stroke-dasharray: 2 4; }
.maframe-t { font-size: 11.5px; font-weight: 700; fill: var(--accent-hi); }
.maframe-s { font-size: 10.5px; fill: var(--muted); font-variant-numeric: tabular-nums; }
.maframe.foreign rect { fill: rgba(var(--bad-rgb), .05); stroke: rgba(var(--bad-rgb), .45); }
.maframe.foreign .maframe-t { fill: var(--bad-ink); }
.maframe.personal rect { stroke: var(--line-2); }
.maframe.personal .maframe-t { fill: var(--muted); }


/* v231b: профиль без токена */
.fb-dead-box.fb-notoken { background: rgba(var(--warn-rgb), .08); border-color: rgba(var(--warn-rgb), .35); }
.fb-prof-warn .fb-avatar-off { }

/* v232: последний день по профилям */
.kt-kpi-prof { grid-column: 1 / -1; background: var(--surface-2); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; }
.kt-kpi-prof-h { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; margin-bottom: 8px; }
.kt-kpi-prof tfoot td { border-top: 1px solid var(--line-2); padding-top: 8px; }
.kt-push-all { margin-left: auto; }
.tz-chip { font-variant-numeric: tabular-nums; }
.kt-act-st { display: inline-flex; align-items: center; gap: 4px; margin-left: 8px; }

/* v235: принято / ждём / не принято Keitaro */
.kt-bar-w { background:var(--warn-ink); opacity:.55; } .kt-bar-n { background:repeating-linear-gradient(135deg, var(--bad-ink) 0 3px, transparent 3px 6px); }
.rc-dest { display:flex; flex-wrap:wrap; align-items:center; gap:4px; margin-top:3px; font-size:11.5px; color:var(--muted); }
.rc-dest .ic { width:11px; height:11px; color:var(--dim); }
.rc-dest-full { display:grid; gap:4px; margin-top:6px; font-size:12.5px; }
.rc-dest-full .ic { width:12px; height:12px; vertical-align:-2px; }
.rc-diag { margin:2px 0 0 18px; font-size:12px; }
.fb-log-acc { font-size:11.5px; margin-top:3px; white-space:nowrap; } .fb-log-acc .ic { width:11px; height:11px; vertical-align:-1px; }
.fb-log-why { white-space:normal; min-width:220px; max-width:300px; margin-top:2px; }
.kt-prof-warn { display:flex; align-items:flex-start; gap:8px; padding:8px 10px; border-radius:8px; background:var(--bad-bg, rgba(220,60,60,.08)); color:var(--text); font-size:12.5px; line-height:1.45; }
.kt-prof-warn > .ic { flex:none; color:var(--bad-ink); margin-top:2px; } .kt-prof-warn span { flex:1; } .kt-prof-warn .btn { flex:none; }

/* v236: кабинет — ID главное, имя вторично */
.act-id { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--text); letter-spacing: .01em; white-space: nowrap; }
a .act-id, a.act-id { color: inherit; }
.act-sub { font-size: 12px; color: var(--muted); margin-top: 2px; overflow-wrap: anywhere; }
.act-nm-cell { color: var(--muted); }
.act-title-nm { font-weight: 400; color: var(--muted); font-size: .85em; margin-left: 6px; }
.mside-nm { font-style: normal; color: var(--muted); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* v239: сверка — строка кабинета + раскрытая цепочка */
.rc-tbl2 td { vertical-align: top; }
.rc-tbl2 .rc-row { cursor: pointer; }
.rc-tbl2 .rc-row:hover td { background: var(--surface-2); }
.rc-tbl2 .rc-act { display: flex; gap: 6px; align-items: flex-start; min-width: 230px; }
.rc-chev { color: var(--dim); padding-top: 2px; } .rc-chev .ic { width: 12px; height: 12px; }
.rc-why-c { min-width: 260px; max-width: 420px; }
.rc-why-s { font-size: 12px; color: var(--muted); margin-top: 4px; line-height: 1.4; }
.rc-det td { background: var(--surface-2); }
.rc-det-g { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px; padding: 6px 4px 10px; white-space: normal; }
.rc-det-g > div { min-width: 0; }
@media (max-width: 900px) { .rc-det-g { grid-template-columns: 1fr; } }
.rcl { display: grid; gap: 2px; font-size: 13px; }
.rcl-row { display: grid; grid-template-columns: 170px 70px minmax(0, 1fr); gap: 10px; align-items: baseline; padding: 3px 0; }
.rcl-l { color: var(--muted); } .rcl-v { text-align: right; font-variant-numeric: tabular-nums; font-weight: 500; } .rcl-n { font-size: 12px; color: var(--dim); white-space: normal; overflow-wrap: anywhere; line-height: 1.35; }
.rcl-top .rcl-l, .rcl-top .rcl-v { color: var(--text); font-weight: 600; }
.rcl-sum { border-top: 1px solid var(--line); padding-top: 5px; margin-top: 2px; }
.rcl-bad .rcl-l, .rcl-bad .rcl-v { color: var(--bad-ink); } .rcl-mid .rcl-l, .rcl-mid .rcl-v { color: var(--warn-ink); }
.rcd { width: 100%; border-collapse: collapse; font-size: 12.5px; margin-bottom: 8px; }
.rcd th { text-align: left; font-weight: 500; color: var(--dim); padding: 3px 8px 5px 0; border-bottom: 1px solid var(--line); }
.rcd td { padding: 4px 8px 4px 0; border-bottom: 1px solid var(--line); vertical-align: baseline; }
.rcd .num { text-align: right; font-variant-numeric: tabular-nums; }
.rcd .ic { width: 11px; height: 11px; vertical-align: -1px; }
.rc-det .rc-meta { margin: 6px 0; white-space: normal; overflow-wrap: anywhere; }
.rc-why-s { white-space: normal; }

/* v240: строка отправки и настройка способа */
#kt-act-st { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; }
#kt-act-st .ic { width: 13px; height: 13px; vertical-align: -2px; }
.kt-bulk-cfg { flex-basis: 100%; display: grid; gap: 10px; padding: 12px 14px; margin-top: 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); }
.kt-bulk-modes, .kt-bulk-profs { display: grid; gap: 6px; } .kt-bulk-profs { max-height: 220px; overflow: auto; }
.kt-bulk-act { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }

.kt-bulk-fast { display: block !important; padding-bottom: 8px; border-bottom: 1px solid var(--line); line-height: 1.5; }
.kt-bulk-fast input { vertical-align: -2px; margin-right: 4px; }

/* v241: журнал слётов токена, предупреждения о прокси, частая подкачка по баерам */
.ui-modal.ui-modal-wide { width:min(860px, calc(100vw - 32px)); max-width:none; max-height:calc(100vh - 64px); overflow:auto; }
.ui-modal-html { font-size:13px; line-height:1.45; margin:4px 0 12px; }
.fb-tok-btn { cursor:pointer; border:0; font-family:inherit; line-height:inherit; }
.fb-tok .ic { width:12px; height:12px; vertical-align:-2px; }
.tdj { border:1px solid var(--line); border-radius:8px; padding:10px 12px; margin-bottom:10px; }
.tdj-h { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.tdj-err { margin:4px 0; color:var(--bad-ink); overflow-wrap:anywhere; }
.tdj-hints { margin:6px 0 8px 18px; padding:0; }
.tdj-hints li { margin:2px 0; }
.tdj-t { border-collapse:collapse; margin:4px 0; }
.tdj-t td { padding:2px 10px 2px 0; vertical-align:top; }
.tdj details { margin-top:6px; }
.tdj-r { border-collapse:collapse; font-size:12px; margin-top:4px; width:100%; }
.tdj-r td { padding:2px 8px 2px 0; border-top:1px solid var(--line); vertical-align:top; }
.tdj-r .tdj-bad td { color:var(--bad-ink); }
.kt-fast-owners { display:flex; flex-wrap:wrap; gap:4px 14px; margin:2px 0 8px 22px; }

/* v242: раздел Keitaro — вкладки, блоки с названиями, таблица профилей-отправителей, меню действий, вкладка админа */
.kt-tabs { display:flex; gap:2px; border-bottom:1px solid var(--line); margin:0 0 14px; overflow-x:auto; scrollbar-width:none; }
.kt-tabs::-webkit-scrollbar { display:none; }
.kt-tab { background:none; border:0; border-bottom:2px solid transparent; color:var(--muted); font:inherit; font-size:13.5px; padding:9px 14px 8px; cursor:pointer; white-space:nowrap; margin-bottom:-1px; }
.kt-tab:hover { color:var(--text); }
.kt-tab.active { color:var(--text); border-bottom-color:var(--accent); font-weight:600; }
.kt-tab:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; border-radius:6px; }
.kt-pane { display:flex; flex-direction:column; gap:12px; }
.kt-pane.hidden { display:none; }
.kt-blk .kt-sec-h h3 { margin:0; font-size:15px; }
.kt-blk .kt-sec-h .kt-sec-tools { margin-left:auto; display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.kt-blk .kt-kpi { margin-bottom:10px; }
.kt-now { display:flex; flex-direction:column; gap:6px; font-size:13px; color:var(--muted); }
.kt-now b { color:var(--text); font-weight:500; }
.kt-now .ic { vertical-align:-2px; }
.kt-now-bad { color:var(--text); background:rgba(var(--bad-rgb), .08); border:1px solid rgba(var(--bad-rgb), .25); border-radius:8px; padding:7px 10px; }
.kt-now-bad .ic { color:var(--bad-ink); }
.kt-attn-ok { color:var(--muted); font-size:13px; padding:4px 0; }
.kt-attn-ok .ic { color:var(--ok-ink, #3ccf8e); vertical-align:-2px; }
.kt-attn-tbl td { vertical-align:top; }
.kt-attn-act { text-align:right; white-space:nowrap; }
.rc-day-bs td { opacity:.85; }
.kt-ptbl td { vertical-align:top; }
.kt-ptbl .kt-pname { min-width:220px; }
.kt-pchips { display:flex; flex-wrap:wrap; gap:4px; margin-top:4px; }
.kt-pdest { margin-top:3px; font-size:11.5px; }
.kt-plast { font-size:12px; color:var(--muted); line-height:1.45; min-width:260px; max-width:440px; }
.kt-plast b { color:var(--text); font-weight:500; }
.kt-plast .kt-prof-warn { margin-top:6px; }
.kt-pact { white-space:nowrap; text-align:right; }
.kt-prow-off td { opacity:.6; }
.kt-prow-off td.kt-pact { opacity:1; }
.kt-pnote { margin-top:8px; }
.kt-switch-sm { font-size:12.5px; white-space:nowrap; }
.kt-menu { position:absolute; z-index:9000; background:var(--surface); border:1px solid var(--line-2, var(--line)); border-radius:10px; box-shadow:var(--shadow-pop); padding:4px; min-width:280px; }
.kt-menu button { display:grid; grid-template-columns:18px 1fr; column-gap:8px; width:100%; text-align:left; background:none; border:0; color:var(--text); font:inherit; font-size:13px; padding:7px 10px; border-radius:7px; cursor:pointer; }
.kt-menu button .hint { grid-column:2; font-size:11.5px; }
.kt-menu button:hover, .kt-menu button:focus-visible { background:var(--surface-2); outline:none; }
.kt-pset-m { max-width:520px; display:flex; flex-direction:column; gap:12px; }
.kt-pset-m .ui-field { display:flex; flex-direction:column; gap:4px; }
.kt-pset-m .ui-field > span:first-child { font-size:12.5px; color:var(--muted); }
.kt-pset-m select, .kt-pset-m input[type=date] { width:100%; }
.kt-adm-tbl { border-collapse:collapse; font-size:13px; margin-bottom:8px; }
.kt-adm-tbl td { padding:4px 14px 4px 0; vertical-align:top; }
.kt-adm-tbl td.hint { white-space:nowrap; }
.kt-adm-note { margin-bottom:8px; line-height:1.5; }
.kt-adm-own { margin:6px 0 10px; }
.fb-sched-txt { margin-top:2px; }
.fb-sched-adm { display:inline-flex; gap:5px; align-items:center; margin-top:6px; font-size:12px; color:var(--accent); text-decoration:none; }
@media (max-width:700px) { .kt-blk .kt-sec-h .kt-sec-tools { margin-left:0; } .kt-plast { min-width:200px; } .kt-tab { padding:9px 10px 8px; } }
.kt-ptbl td.kt-plast, .kt-ptbl td.kt-pname, .kt-attn-tbl td { white-space:normal; }
.kt-ptbl td.kt-plast { min-width:240px; }
.kt-attn-tbl .rc-why-s { max-width:560px; }
.kt-attn-more { margin-top:6px; }
.kt-pset-m .ui-field .hint { text-transform:none; letter-spacing:normal; font-size:12px; font-weight:400; line-height:1.45; color:var(--muted); }
.kt-pane > .kt-sec, .kt-pane > .kt-result, .kt-pane > details { margin-top:0; margin-bottom:0; }
#fbv-costs { gap:0; } #fbv-costs > .kt-pane { margin-top:0; }

.fb-probe { margin-top:6px; font-size:12.5px; display:flex; flex-wrap:wrap; gap:4px 6px; align-items:center; }
.fb-probe .ic { vertical-align:-2px; }

/* v247: выбор кабинета и пикселя в форме запуска */
.l-cab-row { display:flex; gap:8px; align-items:center; }
.l-cab-row .l-cab-pick { flex:1 1 auto; min-width:0; }
.l-cab-row .l-cab-manual { flex:1 1 auto; min-width:0; }
.l-cab-info { display:flex; flex-wrap:wrap; gap:6px 16px; margin-top:6px; font-size:12.5px; padding:7px 10px; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; }
.lci-item { display:inline-flex; gap:5px; align-items:center; }
.lci-k { color:var(--muted); }
.lci-badge { padding:1px 7px; border-radius:20px; font-size:11.5px; font-weight:600; }
.lci-ok { background:rgba(var(--ok-rgb), .16); color:var(--ok-ink); }
.lci-mid { background:rgba(var(--warn-rgb), .16); color:var(--warn-ink); }
.lci-bad { background:rgba(var(--bad-rgb), .16); color:var(--bad-ink); }

/* v247: страницы таблицы запусков */
.lpager { display:flex; align-items:center; gap:16px; flex-wrap:wrap; padding:10px 2px 4px; margin-top:4px; font-size:13px; color:var(--muted); }
.lpager-info { min-width:120px; }
.lpager-nav { display:flex; align-items:center; gap:8px; margin-left:auto; }
.lpager-pages { color:var(--text); font-weight:500; min-width:92px; text-align:center; }
.lpager-size { display:inline-flex; align-items:center; gap:6px; }
.lpager-size select { width:auto; padding:3px 6px; }

/* v248: кнопка-меню выбора кабинета */
.l-cab-btn { display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:var(--surface-2); border:1px solid var(--line-2, var(--line)); border-radius:8px; padding:8px 10px; color:var(--text); font:inherit; cursor:pointer; min-height:38px; }
.l-cab-btn:hover { border-color:var(--accent); }
.l-cab-btn-txt { flex:1 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:13px; }
.l-cab-btn-chev { color:var(--muted); flex:none; }
.cabpick { position:absolute; z-index:10050; background:var(--surface); border:1px solid var(--line-2, var(--line)); border-radius:12px; box-shadow:var(--shadow-pop); max-height:min(680px, 82vh); display:flex; flex-direction:column; overflow:hidden; }
.cabpick-top { display:flex; gap:8px; align-items:center; padding:10px; border-bottom:1px solid var(--line); }
.cabpick-manual { flex:0 0 auto; white-space:nowrap; }
.cabpick-q { flex:1 1 auto; min-width:0; padding:7px 10px; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; color:var(--text); font:inherit; }
.cabpick-list { overflow:auto; }
.cabpick-row { display:grid; grid-template-columns:24px minmax(0,1fr) 104px auto; gap:12px; align-items:center; padding:10px 14px; border-bottom:1px solid var(--line); cursor:pointer; }
.cabpick-row:hover { background:var(--hover-row); }
.cabpick-row.sel { background:rgba(var(--accent-rgb, 138,138,255), .10); }
.cabpick-exp { background:none; border:0; color:var(--muted); font-size:13px; cursor:pointer; width:22px; height:22px; border-radius:6px; }
.cabpick-exp:hover { background:var(--surface-2); color:var(--text); }
.cabpick-main { min-width:0; }
.cabpick-l1 { display:flex; align-items:baseline; gap:8px; font-size:13.5px; min-width:0; white-space:nowrap; }
.cabpick-l1 .mono { flex:0 0 auto; }
.cabpick-st { display:flex; justify-content:flex-start; }
.cabpick-nm { color:var(--muted); overflow:hidden; text-overflow:ellipsis; min-width:0; }
.cabpick-l2 { font-size:12px; color:var(--muted); margin-top:3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cabpick-nums { display:grid; grid-template-columns:76px 70px 70px; gap:12px; font-size:12.5px; white-space:nowrap; text-align:right; }
.cabpick-nums .hint { display:block; font-size:10.5px; }
.cabpick-camps { grid-column:1 / -1; background:var(--surface-2); border-bottom:1px solid var(--line); }
.cpc-tbl { width:100%; border-collapse:collapse; font-size:12px; }
.cpc-tbl th { text-align:left; color:var(--muted); font-weight:500; padding:6px 12px; border-bottom:1px solid var(--line); position:sticky; top:0; background:var(--surface-2); }
.cpc-tbl td { padding:6px 12px; border-bottom:1px solid var(--line); }
.cpc-tbl td.num, .cpc-tbl th.num { text-align:right; }
.cpc-nm { max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cpc-offrow { opacity:.55; }
.cpc-del { padding:1px 7px; border-radius:20px; font-size:11px; font-weight:600; }
.cpc-del.on { background:rgba(var(--ok-rgb), .16); color:var(--ok-ink); }
.cpc-del.off { background:var(--surface); color:var(--muted); border:1px solid var(--line); }
.cpc-meta { padding:6px 12px; }
@media (max-width:700px){ .cabpick { width:calc(100vw - 24px) !important; left:12px !important; } .cabpick-row { grid-template-columns:22px minmax(0,1fr) auto; } .cabpick-st { grid-column:2; grid-row:2; } .cabpick-nums { grid-column:2 / -1; grid-template-columns:repeat(3, auto); justify-content:start; gap:14px; text-align:left; } }

/* v252: колонка «Пиксель» и выбор пикселя кабинета */
.cell-pix { white-space:nowrap; max-width:260px; overflow:hidden; text-overflow:ellipsis; }
.pix-pick { color:var(--accent, #8a8aff); font-size:12px; }
.pix-nm { color:var(--muted); font-size:12px; }
.pix-warn { color:#fbbf24; }
.pix-off { color:var(--muted); text-decoration:line-through; }
.pixpick-h { flex:1 1 auto; font-size:13px; color:var(--muted); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pixpick-h b { color:var(--text); }
.pixpick-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; border-bottom:1px solid var(--line); cursor:pointer; font-size:13px; }
.pixpick-row:hover { background:var(--hover-row); }
.pixpick-row.sel { background:rgba(var(--accent-rgb, 138,138,255), .10); }
.pixpick-row.off b { color:var(--muted); }
.pixpick-none { justify-content:flex-start; }

/* ==================== v255: разделы — панель слева ==================== */
:root { --sn-w: 216px; --sn-top: 58px; }
.sn-burger { flex:0 0 auto; width:36px; height:36px; display:inline-flex; flex-direction:column; justify-content:center; align-items:center; gap:4px;
  background:transparent; border:1px solid transparent; border-radius:9px; cursor:pointer; margin-left:-6px; margin-right:-8px; }
.sn-burger span { display:block; width:17px; height:2px; border-radius:2px; background:var(--muted); transition:background var(--ease); }
.sn-burger:hover { background:var(--surface-2); border-color:var(--line); }
.sn-burger:hover span { background:var(--text); }
.sn-burger:focus-visible { outline:none; box-shadow:var(--ring); }

.sidenav { position:fixed; z-index:19; top:var(--sn-top); left:0; bottom:0; width:var(--sn-w);
  display:flex; flex-direction:column; background:var(--topbar-bg); backdrop-filter:blur(14px);
  border-right:1px solid var(--line); overflow-y:auto; overscroll-behavior:contain;
  transition:transform .2s ease, visibility .2s; }
.sn-on .content { margin-left:var(--sn-w); transition:margin-left .2s ease; }
body.sn-collapsed .sidenav { transform:translateX(-100%); visibility:hidden; }
body.sn-collapsed .content { margin-left:0; }

.sn-nav { flex:1 0 auto; display:flex; flex-direction:column; padding:10px 8px 6px; gap:0; background:none; border:0; border-radius:0; max-width:none; overflow:visible; }
.sn-group { display:flex; flex-direction:column; gap:2px; }
.sn-nav .tab { display:flex; align-items:center; gap:8px; width:100%; text-align:left; white-space:nowrap;
  padding:8px 8px 8px 16px; font-size:13.5px; border-radius:9px; cursor:pointer; user-select:none; }
.sn-nav .tab::before { content:'⠿'; position:absolute; left:3px; top:50%; transform:translateY(-50%); font-size:11px; line-height:1;
  color:var(--muted); opacity:0; cursor:grab; transition:opacity var(--ease); }
.sn-nav .tab:hover::before { opacity:.55; }
.sn-nav .tab:hover { background:var(--hover-row); }
.sn-nav .tab.active { color:var(--text); background:var(--surface-2); box-shadow:inset 3px 0 0 var(--accent); }
.sn-nav .tab.sn-dragging { opacity:.45; background:var(--surface-2); }

/* «скрыть» / «вернуть» — появляется при наведении */
.sn-act { margin-left:auto; flex:0 0 auto; width:22px; height:22px; border-radius:6px; opacity:0; transition:opacity var(--ease), background var(--ease);
  background-color:transparent; position:relative; }
.sn-act::after { content:''; position:absolute; inset:4px; background-color:var(--muted);
  -webkit-mask:var(--sn-ico) center/contain no-repeat; mask:var(--sn-ico) center/contain no-repeat; }
.sn-main .sn-act { --sn-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E"); }
.sn-hidden .sn-act { --sn-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 14 4 9 9 4'/%3E%3Cpath d='M20 20v-7a4 4 0 0 0-4-4H4'/%3E%3C/svg%3E"); }
.sn-nav .tab:hover .sn-act, .sn-nav .tab:focus-visible .sn-act { opacity:1; }
.sn-act:hover { background:var(--surface); }
.sn-act:hover::after { background-color:var(--text); }

/* «Скрытые» — в самом низу */
.sn-hidden-head { margin-top:auto; display:flex; align-items:center; gap:6px; width:100%; padding:10px 8px 8px 10px; background:none; border:0;
  border-top:1px solid var(--line); border-radius:0; color:var(--muted); font-size:12.5px; cursor:pointer; text-align:left; }
.sn-hidden-head:hover { color:var(--text); }
.sn-hidden-head:focus-visible { outline:none; box-shadow:var(--ring); border-radius:8px; }
.sn-chev { width:12px; font-size:10px; }
.sn-count { margin-left:auto; min-width:20px; text-align:center; padding:1px 6px; border-radius:99px; background:var(--surface-2); border:1px solid var(--line); font-size:11px; }
.sn-hidden-head.empty .sn-count { display:none; }
.sn-hidden { display:none; padding-bottom:4px; }
.sn-hidden.open { display:flex; }
.sn-hidden .tab { color:var(--muted); font-size:13px; opacity:.85; }
.sidenav.sn-dnd .sn-hidden-head { color:var(--text); }
.sidenav.sn-dnd .sn-hidden { display:flex; min-height:38px; border:1px dashed var(--line-2, var(--line)); border-radius:9px; margin:2px 0 6px; padding:2px; }
.sn-hint { padding:8px 14px 14px; font-size:11.5px; line-height:1.4; color:var(--muted); opacity:.75; }

/* телефон: панель выезжает поверх страницы */
.sn-scrim { display:none; }
@media (max-width:900px) {
  .sn-on .content { margin-left:0; }
  .sidenav { width:min(280px, 86vw); transform:translateX(-100%); visibility:hidden; box-shadow:var(--shadow-pop); }
  body.sn-open .sidenav { transform:none; visibility:visible; }
  body.sn-open .sn-scrim { display:block; position:fixed; inset:var(--sn-top) 0 0 0; z-index:18; background:var(--overlay); }
  .sn-nav .tab .sn-act { opacity:.7; }
}
@media (prefers-reduced-motion: reduce) { .sidenav, .sn-on .content { transition:none; } }
:root[data-theme="light"] .sn-nav .tab.active { background:var(--surface-2); box-shadow:inset 3px 0 0 var(--accent); color:var(--accent-hi, var(--accent)); }
:root[data-theme="light"] .sn-hidden .tab { color:#7a7f8e; }
:root:not([data-theme="light"]) .sn-nav .tab.active { background:var(--surface-2); box-shadow:inset 3px 0 0 var(--accent); }

/* v261: архив схемы */
.mn.mn-arch { opacity:.45; }
.mn.mn-arch .mn-box { stroke-dasharray:5 4; }
.mn.mn-arch.mn-sel, .mn.mn-arch:hover { opacity:.85; }
.me.me-arch { stroke:var(--muted) !important; stroke-dasharray:3 5; opacity:.45; }
.mside-arch { margin:6px 0 2px; padding:6px 10px; border-radius:8px; background:var(--surface-2); border:1px dashed var(--line-2, var(--line)); color:var(--muted); font-size:12px; display:flex; align-items:center; gap:6px; }
.map-arch-n { color:var(--muted); }

/* v262: расход не тянется */
.feed-line { display:flex; align-items:center; gap:4px; margin-top:4px; font-size:11.5px; font-weight:600; white-space:nowrap; }
.feed-line .ic, .feed-line svg { width:13px; height:13px; flex:none; }
.feed-bad { color:var(--bad-ink); } .feed-mid { color:var(--warn-ink); } .feed-kt { color:var(--warn-ink); } .feed-idle { color:var(--dim); font-weight:500; }
.feed-ago { font-weight:400; color:var(--muted); }
.feed-box { display:flex; flex-direction:column; gap:4px; } .feed-box b { display:flex; align-items:center; gap:6px; }
.feed-box-kt { background:rgba(var(--warn-rgb),.08); border-color:rgba(var(--warn-rgb),.4); color:var(--warn-ink); }
.feed-banner { margin:0 0 10px; border-radius:10px; border:1px solid rgba(var(--bad-rgb),.4); background:rgba(var(--bad-rgb),.07); color:var(--bad-ink); overflow:hidden; }
.feed-banner.feed-banner-kt { border-color:rgba(var(--warn-rgb),.45); background:rgba(var(--warn-rgb),.07); color:var(--warn-ink); }
.feed-banner-h { width:100%; display:flex; align-items:center; gap:8px; padding:9px 12px; background:none; border:none; color:inherit; font:inherit; font-size:13px; cursor:pointer; text-align:left; }
.feed-banner-h > span:nth-child(2) { flex:1; }
.feed-banner-h svg { width:16px; height:16px; flex:none; }
.feed-tbl { width:100%; border-collapse:collapse; font-size:12.5px; color:var(--ink, inherit); }
.feed-tbl td { padding:6px 12px; border-top:1px solid rgba(var(--bad-rgb),.18); vertical-align:top; }
.feed-tbl td:last-child { width:1%; }
.feed-tbl .feed-bad, .feed-tbl .feed-mid, .feed-tbl .feed-kt { font-weight:600; }
.feed-hint { padding:8px 12px 10px; border-top:1px solid rgba(var(--bad-rgb),.18); }
.mn-act.mn-nofeed .mn-box { stroke:rgba(var(--warn-rgb), .85); stroke-width:1.6; stroke-dasharray:2 3; }
.mn-act.mn-nofeed .mn-stripe { fill:var(--warn-ink); }
.mn-act.mn-nofeed .mn-st { fill:var(--warn-ink); }
.mn-act.mn-nofeed.st-lost .mn-box { stroke:rgba(var(--bad-rgb), .7); stroke-dasharray:5 3; }
.mside-feed { margin:6px 0 2px; padding:7px 10px; border-radius:8px; background:rgba(var(--warn-rgb),.09); border:1px solid rgba(var(--warn-rgb),.4); color:var(--warn-ink); font-size:12px; }
.mside-feed svg { width:13px; height:13px; vertical-align:-2px; }
.lgn.lgn-nofeed { background:transparent !important; border:1.5px dashed var(--warn-ink); }
/* v263: «Что упадёт» — заметнее (раньше заливку перебивал .mn-act .mn-box) */
.mn.mn-hit .mn-box { stroke:var(--bad-ink); stroke-width:3; stroke-dasharray:none; fill:rgba(var(--bad-rgb), .16); }
.mn.mn-hit .mn-stripe { fill:var(--bad-ink); }
.mn.mn-hit { opacity:1 !important; }
.fbam-tbl th.fbam-mh { white-space:normal; min-width:76px; max-width:118px; line-height:1.25; vertical-align:middle; }

/* v264: поля в белой ленте комментариев — светлые и в тёмной теме (их перекрашивало общее правило тёмных полей) */
:root .cm-fb-geo select.cm-fb-geosel, :root select.cm-acc-sel.cm-acc-sel { background-color: #fff; color: #050505; border-color: #ccd0d5; color-scheme: light; }
:root .cm-fb-geo select.cm-fb-geosel { background-color: #f0f2f5; }
:root .cm-fb-geo select.cm-fb-geosel:hover { background-color: #e4e6eb; }
:root .cm-fb-geo select.cm-fb-geosel option, :root select.cm-acc-sel.cm-acc-sel option { background: #fff; color: #050505; }
