/* ============================================================
   FoxChat — тема «Эмбер» (редизайн 2026-08).

   Слой поверх theme.css: подключается ТОЛЬКО в index.html,
   последним. alerts-overlay.html и admin.html его не грузят —
   OBS-источники остаются в прежней теме.

   «Эмбер» — единственная тема кабинета: токены заданы безусловно
   и перекрывают и светлый, и тёмный блоки theme.css (селекторы
   ниже дают равную специфичность с самым сильным из них, а
   поздний файл выигрывает каскад). Переключатель темы скрыт.

   Характер: тёплый уголь + янтарь лисы. Шрифты Unbounded (дисплей),
   Onest (текст), JetBrains Mono (моно-подписи). Радиусы 2–4 px,
   пилюли — только у переключателей.
   ============================================================ */

:root[data-theme="light"],
:root:not([data-theme="light"]) {
  color-scheme: dark;

  --font-body: 'Onest', Inter, system-ui, sans-serif;
  --font-display: 'Unbounded', 'Arial Black', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Consolas, monospace;

  --veil: 239 230 214;
  --well-1: rgb(0 0 0 / .2);
  --well-2: rgb(0 0 0 / .3);
  --well-3: rgb(0 0 0 / .45);
  --shadow-k: 1;
  --shade: 0 0 0;

  --bg: #141517;
  --bg-subtle: #18191c;
  --surface: #1c1e21;
  --surface-2: #222428;
  --surface-3: #292c31;
  --surface-hover: #272a2f;
  --line: #303338;
  --line-strong: #4a4e56;
  --line-soft: rgb(var(--veil) / .06);

  --text: #f1f0ed;
  --text-2: #b7bbc3;
  --text-3: #999fa9;
  --muted: #b7bbc3;
  --faint: #999fa9;

  --primary: #ff6a2b;
  --primary-hover: #ff7f49;
  --primary-active: #e8571c;
  --accent: #ff6a2b;
  --cyan: #ffb454;
  --purple: #ff6a2b;

  --success: #8cc97e;
  --warning: #ffb454;
  --danger: #e5484d;
  --info: #5aa7ff;
  --green: #8cc97e;
  --amber: #ffb454;
  --blue: #5aa7ff;
  --pink: #e5484d;

  --primary-soft: #ffaf8a;
  --primary-softer: #ffc9ae;
  --cyan-soft: #ffd293;
  --success-soft: #b5e0a3;
  --warning-soft: #ffd293;
  --danger-soft: #f5a19c;
  --info-soft: #8fc7ff;

  --grad: linear-gradient(135deg, #ff6a2b, #ffb454);
  --grad-soft: linear-gradient(135deg, #ff6a2b2b, #ffb4541f);
  --ring: 0 0 0 3px #ff6a2b55;

  --radius-sm: 6px;
  --radius: 8px;
  --radius-lg: 12px;
  /* Кадр сцены OBS в превью — тёплый уголь вместо фиолетово-синего. */
  --scene: #1a140d;
  --shadow-1: 0 1px 2px #00000052, 0 10px 30px #00000038;
  --shadow-2: 0 24px 70px #00000075;
}

/* Переключатель темы больше не нужен — тема одна. */
.topbar-theme,
.user-menu-theme { display: none !important; }

/* ------- Типографика ------- */
html, body { font-family: var(--font-body); }

/* Дисплейный слой: заголовки страниц, hero, крупные метрики. */
.page-head h2,
.page-hero h2,
.fx-hero h1,
.hx-hero h1,
.hx-kpi b,
.stat-tile b {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: 0;
}
.page-head h2 { font-size: 20px; }
.hx-kpi b { font-size: 22px; }

/* Моно-подписи — фирменная деталь «Эмбера». */
.hx-eyebrow,
.eyebrow-mini {
  font-family: var(--font-mono);
  letter-spacing: .14em;
}
.eyebrow {
  color: var(--cyan-soft);
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: .16em;
}

/* Заголовки карточек — моно-каps, как на макете. */
.card h2,
.section-title {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}

/* ------- Навигация ------- */
.nav-group-title {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--text-3);
}
.nav-item { border-radius: 3px; color: #c8bca4; }
/* 19.09.2026: «некоторые иконки ужасны и не видны» — контур 1.7 px цветом text-3
   тонул в фоне. Обводка 2 px, светлее, чуть крупнее; в рейке — 20 px. */
.nav-item .line-icon { width: 17px; height: 17px; color: #b8a98e; stroke-width: 2; }
.nav-item:hover .line-icon { color: var(--text); }
.nav-item.is-active .line-icon { color: var(--primary); }
.nav-item .line-icon.is-fill { border-radius: 4px; }
.nav-group-title { color: #9a8a70; }
.nav-item.is-active {
  color: var(--text);
  background: rgb(255 106 43 / .09);
}
.nav-item.is-active::before {
  width: 2px;
  top: 6px;
  bottom: 6px;
  border-radius: 0;
}
/* 19.09.2026: «NEW как будто плохо выглядит» — янтарное по янтарному в 8.5 px
   мылилось. Плотная янтарная плашка с тёмным текстом читается чётко. */
.nav-tag { padding: 3px 6px 2px; border-radius: 2px; border-color: transparent; background: var(--warning); color: #16110b; font-family: var(--font-mono); font-size: 9.5px; font-weight: 700; letter-spacing: .1em; }
.nav-item.is-active .nav-tag { color: #16110b; }
.nav-badge.is-warn { box-shadow: 0 0 8px #ffb45466; }
.nav-badge.is-err { box-shadow: 0 0 8px #e5484d66; }

/* ------- Топбар ------- */
.topbar-rail {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--surface-2);
  color: var(--text-2);
  cursor: pointer;
  transition: border-color .18s var(--ease), color .18s var(--ease);
}
.topbar-rail:hover { border-color: var(--line-strong); color: var(--text); }
.topbar-rail svg { width: 16px; height: 16px; transform: rotate(90deg); transition: transform .18s ease; }
.nav-rail .topbar-rail svg { transform: rotate(-90deg); }
@media (max-width: 860px) { .topbar-rail { display: none; } }

/* Меню-рейка: сайдбар сворачивается до иконок (как на макетах кабинета). */
.dashboard-shell.nav-rail .app-layout { grid-template-columns: 64px minmax(0, 1fr); }
.dashboard-shell.nav-rail .app-nav { padding: 14px 8px 16px; gap: 10px; }
.dashboard-shell.nav-rail .nav-group-title,
.dashboard-shell.nav-rail .nav-item-label,
.dashboard-shell.nav-rail .nav-tag,
.dashboard-shell.nav-rail .nav-bot-chevron,
.dashboard-shell.nav-rail .bot-subnav,
.dashboard-shell.nav-rail .analytics-subnav,
.dashboard-shell.nav-rail .telegram-subnav,
.dashboard-shell.nav-rail .section-tab-subnav { display: none !important; }
.dashboard-shell.nav-rail .nav-item { justify-content: center; gap: 0; padding: 9px 0; }
.dashboard-shell.nav-rail .nav-item .line-icon { width: 20px; height: 20px; }
.dashboard-shell.nav-rail .nav-item .nav-badge { position: absolute; right: 9px; top: 7px; }
@media (max-width: 860px) {
  .dashboard-shell.nav-rail .app-layout { grid-template-columns: minmax(0, 1fr); }
}

.topbar-search { border-radius: 3px; }
.topbar-search kbd,
.palette-field kbd,
.palette-foot kbd { border-radius: 2px; }

/* ------- Кнопки: сплошной эмбер, тёмный текст ------- */
.button {
  background: var(--primary);
  color: #16110b;
  font-weight: 700;
  /* Канвас: контрол 34px, компактный шрифт, без «парящей» тени. */
  min-height: 34px;
  padding: 7px 14px;
  font-size: 12.5px;
  box-shadow: none;
}
.button:hover { background: var(--primary-hover); box-shadow: 0 6px 20px #ff6a2b38; }
.button:active { background: var(--primary-active); }
.button.secondary,
.button.ghost-button,
.button.danger { color: var(--text); font-weight: 650; }
.button.ghost-button { color: var(--text-2); }
.button.danger { color: var(--danger); }
.button.danger:hover { border-color: color-mix(in srgb, var(--danger) 60%, transparent); background: color-mix(in srgb, var(--danger) 8%, var(--bg)); }
.button.sm { border-radius: 2px; }
.icon-button { border-radius: 3px; }

/* ------- Поля и мелочь ------- */
.input, .select, .textarea { border-radius: 2px; }
.tag {
  border-radius: 2px;
  font-family: var(--font-mono);
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.status-chip { border-radius: 2px; }

/* Оси и подписи графиков — моно. */
.analytics-chart-grid text,
.analytics-chart-axis-label { font-family: var(--font-mono); }

/* ------- «Чат»: настройки слева, монитор превью справа (по языку макетов) ------- */
.theme-grid-wrap {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(380px, 46%);
  gap: 18px;
  align-items: start;
}
.theme-preview {
  position: sticky;
  top: calc(var(--header-h) + 18px);
  padding: 0;
  overflow: hidden;
}
.preview-top {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 11px 14px;
  border-bottom: 1px solid var(--line);
}
.preview-top i { width: 8px; height: 8px; border-radius: 50%; }
.preview-top i:nth-child(1) { background: var(--danger); }
.preview-top i:nth-child(2) { background: var(--warning); }
.preview-top i:nth-child(3) { background: var(--success); }
.preview-top span {
  flex: 1;
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-2);
}
.preview-top::after {
  content: "DEMO SOURCE";
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .14em;
  color: var(--primary);
}
.theme-preview iframe { display: block; width: 100%; height: 640px; border: 0; }
@media (max-width: 1100px) {
  .theme-grid-wrap { grid-template-columns: minmax(0, 1fr); }
  .theme-preview { position: static; }
}

/* ------- «Оверлей и ссылки»: моно-группы и чипы источников ------- */
.source-group-title {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--primary);
}
.source-group-head small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
/* Канвас: источники — плоские строки-линии внутри одной карточки. */
.source-rows { gap: 0; }
.source-row { border: 0; border-top: 1px solid var(--line); border-radius: 0; background: transparent; }
.source-row.is-open { background: var(--surface-2); }
.source-row-head { padding: 10px 18px 10px 14px; }
.source-ico { display: none; }
.source-row-copy b { display: flex; align-items: center; gap: 10px; font-size: 12.5px; }
.source-row-copy small { font-size: 11px; color: var(--text-3); }
.source-row .tag.live { background: rgba(255, 106, 43, .16); color: var(--primary); font-size: 8px; padding: 3px 6px; }
.source-row .tag.demo { background: rgba(239, 230, 214, .08); color: var(--text-2); font-size: 8px; padding: 3px 6px; }
.source-size {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .08em;
  border-radius: 2px;
  border: 1px solid var(--line-strong);
  background: transparent;
}
/* «Как добавить в OBS» — закрытая полоска-строка, как на канвасе. */
.obs-onboarding-card summary { padding: 12px 18px; }
.obs-onboarding-card summary b { font-size: 12.5px; }
.obs-onboarding-card summary small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}
.obs-onboarding li b { font-size: 13px; }

/* ------- «Что нового»: диалог версий по артборду ------- */
.release-meta b {
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0;
}
.release-card.is-current .release-meta b { color: var(--primary); }
.release-meta time {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.release-meta span {
  font-family: var(--font-mono);
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--primary-soft);
}
.release-changes li span {
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.release-timeline i { width: 2px; }
.release-current span,
.release-current small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.release-dialog-title .eyebrow-mini { color: var(--cyan-soft); }

/* ------- Общие компоненты остальных разделов ------- */
.preset-chip { border-radius: 3px; }
.preset-chip .preset-dot { border-radius: 2px; }
.hx-linkrow { border-radius: 3px; }
.copy-field code,
.link-box code { font-family: var(--font-mono); }
.setup-item b,
.section-tab-subnav .nav-item { font-size: 12.5px; }
.banner { border-radius: 4px; }
.integration-tile { border-radius: 4px; }
.status-chip {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}

/* ------- Эфир: монитор и тестовые события по макету «Эфир · пульт» ------- */
.hx-monitor-dots i:nth-child(1) { background: var(--danger); }
.hx-monitor-dots i:nth-child(2) { background: var(--warning); }
.hx-monitor-dots i:nth-child(3) { background: var(--success); }
.hx-monitor-title b {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-monitor-led {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--primary);
}
.hx-monitor-led i { background: var(--primary); box-shadow: 0 0 8px var(--primary); }
.hx-test-group summary b {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hx-test-group[open] summary b { color: var(--primary); }
.hx-test-group summary small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* ------- Главная: карточки по артборду «Кабинет · Главная» ------- */
.em-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: -4px 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--line);
}
.em-card-head span {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.em-card-head b {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}
.em-card-head b.is-live { color: var(--primary); }
.em-live-title { font-size: 16px; font-weight: 750; line-height: 1.35; }
.em-live-sub { margin-top: 4px; color: var(--text-3); font-size: 12.5px; }
.em-live-kpis { margin-top: 14px; }
.em-live-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.em-obslink-row { display: grid; gap: 5px; margin-bottom: 10px; }
.em-obslink-label {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.em-qa { display: flex; gap: 8px; flex-wrap: wrap; }
.em-recent-list { display: grid; }
.em-recent-row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  width: 100%;
  padding: 9px 2px;
  border: 0;
  border-top: 1px solid var(--line);
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 12.5px;
  text-align: left;
  cursor: pointer;
}
.em-recent-row:first-child { border-top: 0; }
.em-recent-row:hover span { color: var(--primary-soft); }
.em-recent-row time { font-family: var(--font-mono); font-size: 10px; color: var(--text-3); flex-shrink: 0; }
.em-recent-row span { flex: 1; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.em-recent-row b { font-family: var(--font-mono); font-size: 10px; font-weight: 500; color: var(--cyan); flex-shrink: 0; }

/* ------- Главная: двухколоночная компоновка по макету ------- */
.em-home-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.em-home-main { display: grid; gap: 18px; min-width: 0; }
.em-home-side { display: grid; gap: 18px; position: sticky; top: calc(var(--header-h) + 18px); }
.em-services-list { display: grid; }
.em-service-row { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-top: 1px solid var(--line); font-size: 12.5px; }
.em-service-row:first-child { border-top: 0; }
.em-service-row span { flex: 1; min-width: 0; }
.em-service-row b {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 55%;
}
.em-service-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--faint); }
.em-service-dot.is-ok { background: var(--success); box-shadow: 0 0 8px #8cc97e59; }
@media (max-width: 1100px) {
  .em-home-grid { grid-template-columns: minmax(0, 1fr); }
  .em-home-side { position: static; }
}

/* ------- Админка (admin.html грузит этот слой последним) ------- */
.a-kpi > strong { font-family: var(--font-display); font-weight: 700; letter-spacing: 0; }
/* Шапка страницы по макету — тонкая моно-строка, без крупного заголовка. */
.admin-page-head { margin-bottom: 10px; align-items: center; }
.admin-page-head h1 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--text-2);
}
.admin-page-head p,
.admin-page-kicker { display: none; }
.a-panel-head h2 {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
/* Статусы — точка + текст, без цветных подложек (по макету «Готовность»). */
.a-status,
.a-status.is-ok, .a-status.is-warn, .a-status.is-bad, .a-status.is-live,
.a-status.is-pending, .a-status.is-info, .a-status.is-off, .a-status.is-active {
  padding: 0;
  min-height: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font-weight: 600;
}
.a-status.is-live { color: var(--primary-soft); }
.a-dot.is-live { background: var(--primary); box-shadow: 0 0 0 3px rgba(255, 106, 43, .16); }
/* «Сейчас в эфире» — строки с разделителями вместо боксов. */
.a-live-row,
.a-live-row:hover { border: 0; border-top: 1px solid rgb(var(--veil) / .08); border-radius: 0; background: transparent; padding-left: 2px; padding-right: 2px; }
.a-live-row:first-child { border-top: 0; }
.a-live-pill { border-radius: 2px; }
/* Фильтры центра внимания — моно-квадраты. */
.a-attention-viewbar button {
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.a-attention-issue { border-radius: 3px; }
.admin-nav-item { border-radius: 3px; }
.admin-nav-item.is-active .a-icon { filter: none; }
.admin-side-brand small,
.admin-commandbar small,
.a-live-badge,
.a-id { font-family: var(--font-mono); letter-spacing: .08em; }
.admin-global-search { border-radius: 3px; }
.admin-global-search kbd { border-radius: 2px; }

/* ============================================================
   Канвас-финиш v2 (29.08): главная, топбар, меню, аналитика.
   По артбордам Main / Analytics свежей версии канваса.
   ============================================================ */

/* ------- Карточки: плоская панель канваса, чёткая линия ------- */
.hx-card {
  background: var(--surface);
  border-color: rgb(var(--veil) / .1);
  box-shadow: none;
}
.hx-card:hover { border-color: rgb(var(--veil) / .16); }
.em-card-head { border-bottom-color: rgb(var(--veil) / .1); }
.em-live-card.hx-card { gap: 10px; }

/* ------- Вторичные кнопки читаются (canvas .btn-s) ------- */
.button.secondary,
.button.ghost-button {
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: transparent;
  color: var(--text);
}
.button.secondary:hover,
.button.ghost-button:hover {
  border-color: rgb(var(--veil) / .34);
  background: rgb(var(--veil) / .04);
  color: var(--text);
}
.button.danger { border-color: rgb(229 72 77 / .4); background: transparent; }

/* ------- Топбар по канвасу: тихие иконки, квадратный аватар ------- */
.app-topbar .topbar-help,
.app-topbar .topbar-bell {
  border: 0;
  background: transparent;
  box-shadow: none;
  color: var(--text-2);
}
.app-topbar .topbar-help:hover,
.app-topbar .topbar-bell:hover { color: var(--text); background: transparent; }
.bell-badge {
  border-radius: 2px;
  background: var(--primary);
  color: #16110b;
  font-family: var(--font-mono);
}
.topbar-search {
  background: transparent;
  border: 1px solid var(--line);
  color: var(--text-3);
}
.topbar-search:hover { border-color: var(--line-strong); background: transparent; color: var(--text-2); }
.topbar-user-button {
  padding: 0;
  gap: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.topbar-user-button:hover { background: transparent; border: 0; }
.topbar-user-button > span:not(.avatar-ring),
.topbar-user-button > svg,
.topbar-user-button > .line-icon { display: none; }
.topbar-user-button .avatar-ring {
  width: 30px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 2px;
  background: var(--grad);
  overflow: hidden;
}
.topbar-user-button .avatar-ring img,
.topbar-user-button .avatar-ring .avatar-fallback {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 2px;
  object-fit: cover;
}

/* ------- Меню: группы-подразделы, свёрнутые по умолчанию ------- */
.dashboard-shell .nav-group-trigger { border-radius: 3px; }
.dashboard-shell .nav-group-trigger-copy b {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--text-3);
}
.dashboard-shell .nav-group.is-current .nav-group-trigger-copy b { color: var(--text-2); }

/* ------- Аналитика: герой-карточка по артборду ------- */
.hx-analytics .hx-an-hero {
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 4px;
  background: var(--surface);
  box-shadow: none;
}
.hx-analytics .hx-an-hero .hx-hero-bg,
.hx-analytics .hx-an-hero .hx-eyebrow { display: none; }
.hx-an-avatar { border-radius: 3px; }
.hx-analytics .hx-an-hero .hx-title { font-size: 23px; }
.hx-analytics .hx-kpi {
  background: var(--bg);
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 3px;
  box-shadow: none;
}
.hx-analytics .hx-kpi:hover { transform: none; border-color: rgb(var(--veil) / .16); }
.hx-analytics .hx-kpi b { font-size: 21px; }

/* ------- Аналитика: полоса «Эфир идёт прямо сейчас» ------- */
.hx-live-strip {
  display: block;
  padding: 0;
  border: 1px solid rgb(255 106 43 / .35);
  border-radius: 4px;
  background: linear-gradient(180deg, rgb(255 106 43 / .05), rgb(32 26 18 / 0)), var(--surface);
  box-shadow: none;
}
.hx-live-strip-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  padding: 13px 18px;
  border-bottom: 1px solid rgb(255 106 43 / .18);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--primary);
}
.hx-live-strip-head b { font-weight: 500; font-size: inherit; letter-spacing: inherit; }
.hx-live-strip-uptime { margin-left: auto; color: var(--cyan); font-size: 12px; letter-spacing: .1em; }
.hx-live-strip-stats {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  gap: 10px;
  padding: 14px 18px 16px;
}
.hx-live-stat {
  display: block;
  padding: 10px 12px;
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 3px;
  background: rgb(22 17 11 / .6);
  text-align: left;
}
.hx-live-stat strong {
  display: block;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  color: var(--text);
}
.hx-live-stat small {
  display: block;
  margin-top: 6px;
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}
@media (max-width: 1200px) {
  .hx-live-strip-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* ------- Аналитика: компактные шапки карточек (canvas .chead) ------- */
.hx-analytics .hx-card > .hx-card-head {
  margin: -20px -22px 0;
  padding: 12px 18px;
  border-bottom: 1px solid rgb(var(--veil) / .1);
  align-items: center;
}
.hx-analytics .hx-card-head .hx-card-ico { display: none; }
.hx-analytics .hx-card-head .eyebrow-mini { display: none; }
.hx-analytics .hx-card-head h2,
.hx-analytics .hx-card-head h3 {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-analytics .hx-card-head p { font-size: 11px; color: var(--text-3); }
.hx-analytics .hx-an-count {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-3);
  border: 0;
  background: transparent;
}
.hx-analytics .hx-an-count b { font-family: var(--font-mono); font-size: 11px; color: var(--cyan); }
.hx-calendar-best { color: var(--cyan); }

/* ------- Аналитика: чипы метрик — моно-квадраты ------- */
.hx-metric-chip {
  height: 28px;
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: transparent;
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-metric-chip.is-active {
  background: rgb(255 106 43 / .12);
  border-color: var(--primary);
  color: var(--primary);
  font-weight: 700;
}

/* ------- Аналитика: сетка «календарь + дни недели» ------- */
.em-cal-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 440px;
  gap: 18px;
  align-items: stretch;
}
@media (max-width: 1280px) { .em-cal-grid { grid-template-columns: minmax(0, 1fr); } }
.em-weekcard { align-content: start; }
.em-weekrows { display: grid; gap: 2px; align-content: center; flex: 1; }
.em-weekrow {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) 44px;
  align-items: center;
  gap: 12px;
  min-height: 36px;
}
.em-weekrow em {
  font-style: normal;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .12em;
  color: var(--text-3);
}
.em-weekbar {
  position: relative;
  height: 8px;
  border-radius: 2px;
  background: var(--surface-3);
  overflow: hidden;
}
.em-weekbar i {
  position: absolute;
  inset: 0 auto 0 0;
  border-radius: 2px;
  background: linear-gradient(90deg, #ff6a2b, #ffb454);
}
.em-weekrow b {
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  text-align: right;
  color: var(--text);
}
.em-week-foot {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* ------- Аналитика: период-бар ------- */
.hx-an-period-label {
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* ------- Аналитика: журнал стримов (canvas .jrow) ------- */
.tt-streams-table thead th {
  font-family: var(--font-mono);
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.tt-streams-table td { border-top: 1px solid rgb(var(--veil) / .1); }
.tt-streams-table tr.is-live td { background: rgb(255 106 43 / .05); }
.tt-streams-table tr.is-live td:first-child { border-left: 2px solid var(--primary); }
.tt-streams-table .live-label {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--primary);
}
.tt-col-metric b { font-family: var(--font-mono); font-size: 12px; }
.tt-col-when span { font-family: var(--font-mono); font-size: 11px; color: var(--text-2); }
.tt-col-game span {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-2);
}
.tt-bar { height: 3px; max-width: 56px; border-radius: 2px; background: var(--surface-3); }

/* ============================================================
   «Модераторы» — по артборду Moderators (29.08, реальный состав).
   ============================================================ */
.hx-mods .hx-card > .hx-card-head {
  margin: -20px -22px 0;
  padding: 12px 18px;
  border-bottom: 1px solid rgb(var(--veil) / .1);
  align-items: center;
}
.hx-mods .hx-card-head .hx-card-ico,
.hx-mods .hx-card-head .eyebrow-mini { display: none; }
.hx-mods .hx-card-head h2,
.hx-mods .hx-card-head h3 {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-mods .hx-card-head p { font-size: 11px; color: var(--text-3); }

/* Шаги мастера приглашения */
.hx-wstep {
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 3px;
  background: transparent;
  padding: 13px 15px;
}
.hx-wstep > header { display: flex; align-items: center; gap: 10px; }
.hx-wnum {
  width: 18px;
  height: 18px;
  border: 0;
  border-radius: 2px;
  background: var(--primary);
  color: #16110b;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.hx-wstep > header h3 {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text);
}
.hx-wstep > header p { margin: 2px 0 0; font-size: 11.5px; color: var(--text-3); }
.hx-wstep-body { margin-top: 11px; padding-left: 28px; }

/* Профили доступа и срок ссылки — плитки на угле */
.hx-preset-body,
.hx-expiry-opt > span {
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 3px;
  background: var(--bg);
  box-shadow: none;
}
.hx-preset input:checked + .hx-preset-body {
  border-color: var(--primary);
  background: rgb(255 106 43 / .07);
  box-shadow: none;
}
.hx-expiry-opt input:checked + span {
  border-color: rgb(var(--veil) / .2);
  background: var(--surface-3);
  box-shadow: none;
}
.hx-preset-body em {
  border-radius: 2px;
  background: rgb(255 106 43 / .16);
  color: var(--primary);
  font-family: var(--font-mono);
  font-style: normal;
  font-size: 7.5px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.hx-preset-body b { font-size: 13px; }
.hx-preset-body small,
.hx-expiry-opt small { color: var(--text-3); }

/* Точная настройка прав */
.hx-perm-editor { border: 1px solid rgb(var(--veil) / .1); border-radius: 3px; background: transparent; }
.hx-perm-editor summary { border-radius: 3px; }
.hx-perm-editor-title b {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text);
}
.hx-perm-editor-title small {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.hx-perm-count {
  border-radius: 2px;
  background: rgb(255 180 84 / .14);
  color: var(--cyan);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hx-perm { border-radius: 3px; }
.hx-perm-box { border-radius: 2px; }
.hx-perm input:checked ~ .hx-perm-box { background: var(--primary); border-color: var(--primary); color: #16110b; }

/* Подвал приглашения */
.hx-security b { font-size: 12px; }
.hx-security small { color: var(--text-3); }
.hx-security .line-icon { color: var(--success); }

/* Команда */
.hx-team-head { padding-bottom: 10px; border-bottom: 1px solid rgb(var(--veil) / .1); }
.hx-team-head .eyebrow-mini { display: none; }
.hx-team-head h2 {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-team-head p { font-size: 11.5px; color: var(--text-3); }
.hx-team-count {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
  border: 0;
  background: transparent;
}
.hx-team-count b { font-family: var(--font-mono); font-size: 12px; color: var(--cyan); }
.hx-member-avatar,
.hx-member-avatar img { border-radius: 2px; }
.hx-member-copy h3 { font-size: 13px; }
.hx-member-copy p {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .06em;
  color: var(--text-3);
}
.hx-role-seg { border: 1px solid rgb(var(--veil) / .2); border-radius: 2px; overflow: hidden; }
.hx-role-opt span {
  border-radius: 0;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hx-role-opt input:checked + span { background: var(--primary); color: #16110b; }
.hx-pending-ico { border-radius: 2px; color: var(--cyan); }

/* История */
.hx-history summary .hx-card-ico { display: none; }
.hx-history-copy b {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text);
}
.hx-history-copy small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* ============================================================
   Канвас 1-в-1 по всему кабинету и админке (29.08, вечер).
   ============================================================ */

/* -- Шапки карточек ВСЕГО кабинета — компактный chead канваса -- */
.dashboard-shell .hx-card > .hx-card-head {
  margin: -20px -22px 0;
  padding: 12px 18px;
  border-bottom: 1px solid rgb(var(--veil) / .1);
  align-items: center;
}
.dashboard-shell .hx-card-head .hx-card-ico,
.dashboard-shell .hx-card-head .eyebrow-mini { display: none; }
.dashboard-shell .hx-card-head h2,
.dashboard-shell .hx-card-head h3 {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.dashboard-shell .hx-card-head p { font-size: 11px; color: var(--text-3); }
/* Контент карточек не распирает сетку (длинные названия эфиров и ссылки). */
.hx-card > * { min-width: 0; }
.em-home-grid > * { min-width: 0; }

/* -- Герои разделов — плоская панель вместо ауроры -- */
.dashboard-shell .hx-hero {
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 4px;
  background: var(--surface);
  box-shadow: none;
  padding: 16px 18px;
}
.dashboard-shell .hx-hero-bg { display: none; }
.dashboard-shell .hx-hero .hx-title { font-size: 20px; }
.dashboard-shell .hx-hero .hx-lead { font-size: 12.5px; color: var(--text-2); }

/* -- Сайдбар по канвасу: бренд-плашка и профиль внизу -- */
.nav-brand img {
  width: 26px;
  height: 26px;
  box-sizing: border-box;
  padding: 3px;
  background: var(--primary);
  border-radius: 2px;
}
.nav-brand span {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.nav-brand small { display: none; }
.nav-profile {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  margin-top: 8px;
  padding: 12px 10px 4px;
  border: 0;
  border-top: 1px solid rgb(var(--veil) / .1);
  background: transparent;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.nav-profile-avatar {
  width: 30px;
  height: 30px;
  border-radius: 2px;
  background: var(--grad);
  overflow: hidden;
  flex-shrink: 0;
}
.nav-profile-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nav-profile-copy { min-width: 0; line-height: 1.25; }
.nav-profile-copy b { display: block; font-size: 12.5px; font-weight: 600; }
.nav-profile-copy small {
  display: block;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--text-3);
}
.nav-profile:hover .nav-profile-copy b { color: var(--primary-soft); }

/* -- Рейка: чистая колонка иконок (как рейка на артборде аналитики) -- */
.dashboard-shell.nav-rail .nav-group-trigger { display: none !important; }
.dashboard-shell.nav-rail .nav-group.is-collapsed > .nav-group-menu { display: block; }
.dashboard-shell.nav-rail .nav-group + .nav-group {
  border-top: 1px solid rgb(var(--veil) / .08);
  margin-top: 6px;
  padding-top: 6px;
}
.dashboard-shell.nav-rail .nav-brand { justify-content: center; }
.dashboard-shell.nav-rail .nav-brand span { display: none; }
.dashboard-shell.nav-rail .nav-profile { justify-content: center; padding: 10px 0 2px; }
.dashboard-shell.nav-rail .nav-profile-copy { display: none; }
.dashboard-shell.nav-rail .nav-item.is-active {
  background: rgb(255 106 43 / .14);
  border-radius: 3px;
}
.dashboard-shell.nav-rail .nav-item.is-active::before { display: none; }

/* -- Страница «Что нового» — таймлайн по артборду Versions -- */
.em-versions-intro {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 18px;
}
.em-versions-intro-copy { flex: 1; min-width: 0; }
.em-versions-intro-copy b { font-size: 13px; }
.em-versions-intro-copy p { margin: 2px 0 0; font-size: 11.5px; color: var(--text-3); }
.em-versions-tg {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
}
.em-versions-tg:hover { color: var(--primary-soft); }
/* Ссылка на канал @foxchatsru: иконка и ник без капса (18.09.2026). */
.em-versions-tg { display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.em-versions-tg .line-icon { width: 13px; height: 13px; flex: 0 0 auto; }
.em-versions-tg b { color: var(--text-2); font-weight: 600; text-transform: none; letter-spacing: .04em; }
.em-versions-tg:hover b { color: inherit; }
.release-dialog-footer { align-items: center; gap: 12px; flex-wrap: wrap; }
.release-dialog-channel { margin-right: auto; }
@media (max-width: 640px) {
  .em-versions-intro { flex-wrap: wrap; }
  .em-versions-intro-copy { flex-basis: 100%; }
}
.em-versions-list { display: grid; }
.em-release { display: flex; gap: 18px; }
.em-release-side { width: 120px; flex-shrink: 0; text-align: right; }
.em-release-side b {
  display: block;
  font-family: var(--font-display);
  font-size: 17px;
  font-weight: 700;
}
.em-release.is-current .em-release-side b { color: var(--primary); }
.em-release-side time {
  display: block;
  margin-top: 3px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.em-release-side span {
  display: block;
  margin-top: 5px;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--primary);
}
.em-release-spine {
  position: relative;
  width: 2px;
  flex-shrink: 0;
  border-radius: 1px;
  background: rgb(var(--veil) / .1);
}
.em-release.is-current .em-release-spine { background: var(--primary); }
.em-release-spine i {
  position: absolute;
  left: 50%;
  top: 6px;
  transform: translateX(-50%);
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--surface-3);
  border: 2px solid rgb(var(--veil) / .2);
}
.em-release.is-current .em-release-spine i { background: var(--primary); border-color: var(--primary); }
.em-release-card {
  flex: 1;
  min-width: 0;
  margin-bottom: 18px;
  border: 1px solid rgb(var(--veil) / .1);
  border-radius: 4px;
  background: var(--surface);
  padding: 13px 18px 14px;
}
.em-release.is-current .em-release-card { border-color: rgb(255 106 43 / .35); }
.em-release-card h3 { margin: 0; font-size: 14px; font-weight: 700; }
.em-release-sum { margin: 4px 0 0; font-size: 12px; color: var(--text-2); line-height: 1.5; }
.em-release-rows { display: grid; gap: 8px; margin-top: 10px; }
.em-release-row { display: flex; gap: 10px; align-items: baseline; }
.em-release-row-text { flex: 1; min-width: 0; font-size: 12.5px; color: var(--text-2); line-height: 1.5; }
.em-release-row-text b { color: var(--text); font-weight: 600; }
.em-vtag {
  display: inline-flex;
  align-items: center;
  height: 20px;
  padding: 0 8px;
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 8px;
  letter-spacing: .12em;
  flex-shrink: 0;
}
.em-vtag.is-new { background: rgb(255 106 43 / .1); color: var(--primary); border: 1px solid rgb(255 106 43 / .27); }
.em-vtag.is-improved { background: rgb(255 180 84 / .1); color: var(--cyan); border: 1px solid rgb(255 180 84 / .27); }
.em-vtag.is-fixed { background: rgb(140 201 126 / .1); color: var(--success); border: 1px solid rgb(140 201 126 / .27); }
@media (max-width: 760px) {
  .em-release { flex-direction: column; gap: 8px; }
  .em-release-side { width: auto; text-align: left; display: flex; gap: 10px; align-items: baseline; }
  .em-release-spine { display: none; }
}

/* ============================================================
   Админка: компоненты по артбордам (theme-ember грузится последним).
   ============================================================ */

/* -- KPI: подпись сверху, число Unbounded, примечание снизу -- */
.a-kpi {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  align-content: start;
  padding: 14px 16px;
  border-radius: 4px;
}
.a-kpi .a-kpi-ico { display: none; }
.a-kpi > span {
  order: 1;
  margin: 0 0 8px;
  font-family: var(--font-mono);
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.a-kpi > strong {
  order: 2;
  margin: 0;
  font-size: 22px;
  line-height: 1;
}
.a-kpi > small { order: 3; margin: 6px 0 0; font-size: 11px; color: var(--text-3); }
.a-kpi.a-kpi-sm > strong { font-size: 20px; }

/* -- Тулбар, поиск и чипы-фильтры — моно-квадраты -- */
.a-search { border-radius: 2px; }
.a-search input::placeholder {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.a-toolbar-note {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.a-chip {
  height: 26px;
  padding: 0 11px;
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.a-chip svg { display: none; }
.a-chip:hover { border-color: rgb(var(--veil) / .34); color: var(--text); }
.a-chip.is-active {
  background: var(--primary);
  border-color: var(--primary);
  color: #16110b;
  font-weight: 700;
}
.a-select, .a-filter-control select { border-radius: 2px; }
.a-button { border-radius: 2px; }

/* -- Лента событий: линии по артборду -- */
.a-ev-panel { padding: 0 0 6px; }
.a-ev-day {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 12px 16px 8px;
}
.a-ev-day span {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.a-ev-day i { flex: 1; height: 1px; background: rgb(var(--veil) / .1); }
.a-ev-list { display: block; padding: 0; }
.a-ev-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0;
  padding: 8px 16px;
  border: 0;
  border-top: 1px solid rgb(var(--veil) / .08);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.a-ev-row:hover { background: rgb(var(--veil) / .03); }
.a-ev-time {
  width: 38px;
  flex-shrink: 0;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--text-3);
}
.a-ev-ch {
  width: 92px;
  flex-shrink: 0;
  padding: 0;
  border: 0;
  background: transparent;
  text-align: left;
  font-family: var(--font-mono);
  font-size: 9.5px;
  color: var(--text-3);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}
.a-ev-ch:hover { color: var(--primary-soft); }
.a-ev-text {
  flex: 1;
  min-width: 0;
  font-size: 12px;
  color: var(--text-2);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.a-ev-text b { color: var(--text); font-weight: 600; }
.a-ev-quote { color: var(--text-3); }
.a-ev-side { display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0; }
.a-ev-amount { font-family: var(--font-mono); font-size: 11px; font-weight: 700; color: var(--cyan); }
.a-ev-rendered { color: var(--text-3); }
.a-ev-rendered svg { width: 13px; height: 13px; }
/* 18.09.2026: вкладка «События» у стримера держит внутри панели шапку, подсказку и
   фильтры, а .a-ev-panel выше обнуляет отступы ради общей ленты — всё липло к рамке,
   кнопка «Обновить» сидела в углу. Отступы возвращаем только вкладке (is-detail). */
.a-ev-panel.is-detail { padding-top: 14px; }
.a-ev-panel.is-detail > .a-panel-head,
.a-ev-panel.is-detail > .a-hint,
.a-ev-panel.is-detail > .a-ev-filters { padding-inline: 16px; }
.a-ev-panel.is-detail > .a-panel-head { margin-bottom: 8px; }
.a-ev-panel.is-detail > .a-hint { margin: 0 0 12px; }
.a-ev-panel.is-detail > .a-ev-filters { margin: 0 0 4px; }
/* Пустая лента — спокойная строка с отступом от рамки, а не жирный белый абзац впритык. */
.a-ev-panel > .admin-empty { margin: 12px 16px 10px; padding: 22px 18px; }
.a-ev-panel > .admin-empty > strong { font-size: 12.5px; font-weight: 500; color: var(--text-2); }

/* -- Таблица стримеров: разделители вместо коробок -- */
.a-tr-head span {
  font-family: var(--font-mono);
  font-size: 8.5px;
  font-weight: 500;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.a-streamer-row {
  border: 0;
  border-top: 1px solid rgb(var(--veil) / .08);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.a-streamer-row:hover { background: rgb(var(--veil) / .03); }
.a-cell-person img { border-radius: 2px; }
.a-cell-num strong { font-family: var(--font-mono); font-size: 12px; }
.a-cell-num small { font-size: 10.5px; color: var(--text-3); }
/* Колонка донатов — янтарём, как на артборде. */
.a-streamer-row > span:nth-child(5) strong { color: var(--cyan); }
.a-live-pill { font-family: var(--font-mono); font-size: 9px; letter-spacing: .08em; }

/* ============================================================
   Пакет правок 29.08 (вечер-3): футер, единый профиль, рейка,
   тулбар админки, полоски журнала, монтаж звука.
   ============================================================ */

/* -- Кнопки кабинета: единый радиус канваса -- */
.dashboard-shell .button { border-radius: 2px; }

/* -- «Последние эфиры»: длительность не переносится и не режется -- */
.em-recent-row b { white-space: nowrap; }

/* -- Меню: без «крутилки»-шеврона у групп (заголовок кликается сам) -- */
.dashboard-shell .nav-group-trigger-chevron { display: none !important; }

/* -- Рейка: бренд и профиль строго по центру -- */
.dashboard-shell.nav-rail .nav-brand { justify-content: center; padding: 12px 0 10px; }
.dashboard-shell.nav-rail .nav-brand img { margin: 0; }
.dashboard-shell.nav-rail .nav-profile-wrap { padding: 0; }
.dashboard-shell.nav-rail .nav-profile { justify-content: center; padding: 10px 0 4px; }

/* -- Профиль-меню в сайдбаре (единственный профиль кабинета) -- */
.nav-profile-wrap { position: relative; margin-top: 8px; }
.nav-profile-wrap .nav-profile { margin-top: 0; }
.nav-profile-wrap .user-menu {
  position: absolute;
  left: 8px;
  right: 8px;
  bottom: calc(100% + 8px);
  top: auto;
  width: auto;
  min-width: 0;
  border: 1px solid rgb(var(--veil) / .14);
  border-radius: 3px;
  background: var(--surface);
  box-shadow: 0 18px 50px rgb(0 0 0 / .5);
  padding: 6px;
  z-index: 30;
}
.nav-profile-wrap .user-menu-item,
.nav-profile-wrap .user-menu [role="menuitem"] {
  border-radius: 2px;
  font-size: 12.5px;
}
.dashboard-shell.nav-rail .nav-profile-wrap .user-menu { left: 6px; right: auto; min-width: 220px; }

/* -- Футер кабинета: версия слева, компактно -- */
.dashboard-footer .footer-author { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.dashboard-footer .footer-version {
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: transparent;
  padding: 5px 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-2);
}
.dashboard-footer .footer-version:hover { border-color: var(--primary); color: var(--primary-soft); }
.dashboard-footer .footer-version span { display: none; }
.dashboard-footer .footer-version b { font-weight: 700; }

/* -- Админка · Стримеры: тулбар в одну систему -- */
.a-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.a-search {
  flex: 1 1 260px;
  min-width: 220px;
  height: 32px;
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: var(--bg);
}
.a-select,
.a-filter-control select,
.a-sort-direction {
  height: 28px;
  padding: 0 9px;
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: var(--bg);
  color: var(--text-2);
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .06em;
  text-transform: uppercase;
  box-shadow: none;
}
.a-select:focus-visible,
.a-filter-control select:focus-visible { outline: 1px solid var(--primary); outline-offset: 0; }
.a-filter-control { display: inline-flex; align-items: center; gap: 7px; }
.a-filter-control > span {
  font-family: var(--font-mono);
  font-size: 9px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.a-button.ghost.sm {
  height: 28px;
  border: 1px solid rgb(var(--veil) / .2);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
  font-family: var(--font-mono);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.a-button.ghost.sm:hover { border-color: rgb(var(--veil) / .34); color: var(--text); }

/* -- Журнал стримов: полоски в тёплой шкале, ровная геометрия -- */
.tt-bar { border-radius: 2px; }
.tt-bar::after { border-radius: 2px; }
.tt-bar.is-duration { color: var(--primary); }
.tt-bar.is-avg { color: var(--cyan); }
.tt-bar.is-peak { color: var(--cyan-soft); }
.tt-bar.is-followers { color: var(--success); }

/* -- Управление эфиром: колонки не слипаются -- */
.hx-stream-grid { gap: 18px; }

/* -- Монтаж уведомления: звуковая дорожка видна на угле -- */
.audio-waveform { opacity: .9; }
.audio-waveform i { background: linear-gradient(180deg, #ffd293, #ff6a2b); border-radius: 1px; }
/* Клип в базе заливался непрозрачным var(--bg) и полностью прятал волну.
   Здесь он — полупрозрачная янтарная плёнка: волна читается и под клипом. */
.audio-clip {
  border-radius: 3px;
  background: linear-gradient(90deg, rgba(255, 180, 84, .18), rgba(255, 106, 43, .22));
  box-shadow: inset 0 0 0 1px rgba(255, 180, 84, .12);
}

/* Разделы-виджеты в ветке «Виджеты» — ссылки, но выглядят как вкладки. */
a.analytics-rail-item { text-decoration: none; }

/* «История доступа» — одна строка по канвасу: иконка · заголовок · мета · шеврон. */
.hx-history summary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 18px;
  cursor: pointer;
  list-style: none;
}
.hx-history summary::-webkit-details-marker { display: none; }
.hx-history .hx-card-ico { width: 15px; height: 15px; color: var(--text-2); background: none; border: 0; padding: 0; }
.hx-history .hx-card-ico .line-icon { width: 15px; height: 15px; }
.hx-history-copy { display: flex; align-items: baseline; gap: 12px; min-width: 0; flex: 1; }
.hx-history-copy b {
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text);
  white-space: nowrap;
}
.hx-history-copy small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.hx-history-chevron { margin-left: auto; color: var(--text-3); }
.hx-history-chevron .line-icon { width: 14px; height: 14px; transition: transform .18s ease; }
.hx-history[open] .hx-history-chevron .line-icon { transform: rotate(180deg); }

/* -- Модераторы по канвасу: карточки в колонку, права — моно-чипы -- */
.hx-members { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.hx-member-head { grid-template-columns: 32px minmax(0, 1fr) auto; }
.hx-member-avatar { width: 32px; height: 32px; border-radius: 2px; overflow: hidden; }
.hx-member-avatar img { width: 100%; height: 100%; object-fit: cover; }
.hx-member-perms { display: flex; align-items: flex-start; gap: 12px; }
.hx-member-perms-label {
  flex: 0 0 150px;
  padding-top: 6px;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.hx-perms { display: flex; flex-wrap: wrap; gap: 6px; }
.hx-perm-chip { position: relative; display: inline-flex; }
.hx-perm-chip input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.hx-perm-chip > span {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-2);
  transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.hx-perm-chip:hover > span { border-color: var(--text-3); }
.hx-perm-chip input:checked + span { background: var(--primary); border-color: var(--primary); color: #16110b; font-weight: 700; }
.hx-perm-chip input:focus-visible + span { box-shadow: var(--ring); }
.hx-perm-chip.is-locked { opacity: .55; }
.hx-perm-chip.is-locked input { cursor: not-allowed; }
/* Роль — сегмент-переключатель, как .seg на канвасе. */
.hx-role-seg { display: inline-flex; border: 1px solid var(--line-strong); border-radius: 2px; overflow: hidden; background: transparent; padding: 0; gap: 0; }
.hx-role-opt { position: relative; }
.hx-role-opt input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.hx-role-opt span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 13px;
  border: 0;
  border-right: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-2);
}
.hx-role-opt:last-child span { border-right: 0; }
.hx-role-opt input:checked + span { background: var(--primary); color: #16110b; font-weight: 700; }
.hx-role-opt .line-icon { display: none; }

/* -- Студия алертов по канвасу: включённость — эмбер, зелёного нет -- */
/* Табы инспектора: тёплый светлый текст вместо тусклого — читаемость. */
.alert-inspector-nav button { color: #c8bca4; font-size: 10.5px; }
.alert-inspector-nav button .line-icon { color: #9a8a70; }
.alert-inspector-nav button:hover,
.alert-inspector-nav button:hover .line-icon,
.alert-inspector-nav button.is-active .line-icon { color: currentColor; }
.alerts-studio .alert-event-card-head em.on {
  border-color: rgba(255, 106, 43, .4);
  color: var(--primary);
  background: rgba(255, 106, 43, .12);
}
.alert-asset-ext {
  border-color: rgba(255, 180, 84, .4);
  background: rgba(255, 180, 84, .12);
  color: #ffb454;
  border-radius: 2px;
}
.alert-group-head small.is-on { color: #ffb454; }
.alert-group-head small.is-on::before {
  background: var(--primary);
  box-shadow: 0 0 8px rgba(255, 106, 43, .8);
}
.alert-rail-item.is-enabled .alert-rail-dot {
  background: var(--primary);
  box-shadow: 0 0 8px rgba(255, 106, 43, .6);
}

/* -- Центр бота по канвасу: шапка с «назад», верхние табы функций -- */
.em-bot-head { margin-bottom: 4px; }
.em-bot-title-row { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.em-bot-back {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
  cursor: pointer;
}
.em-bot-back .line-icon { width: 15px; height: 15px; transform: rotate(90deg); }
.em-bot-back:hover { color: var(--text); border-color: var(--text-3); }
.em-bot-title {
  margin: 0;
  font-family: var(--font-display);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: .01em;
}
.em-bot-beta {
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  padding: 3px 8px;
  border: 1px solid rgba(255, 106, 43, .5);
  border-radius: 2px;
  color: var(--primary);
}
/* Два уровня навигации бота (канвас): группы подчёркиванием, под-табы —
   пилюли активной группы. Верхний ряд не растёт с новыми функциями. */
.em-bot-groups { display: flex; border-bottom: 1px solid var(--line); }
.em-bot-gtab {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 15px;
  margin-bottom: -1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--text-2);
  font-size: 13px;
  font-weight: 550;
  cursor: pointer;
  white-space: nowrap;
}
.em-bot-gtab:hover { color: var(--text); }
.em-bot-gtab.is-on { color: var(--primary); border-bottom-color: var(--primary); font-weight: 650; }
.em-bot-tabs { display: flex; align-items: center; gap: 6px; padding: 12px 0 0; flex-wrap: wrap; }
.em-bot-tabs .bot-subnav { display: contents; }
.em-bot-tabs [data-bot-rail] { display: contents; }
.em-bot-tabs .bot-rail-group { display: contents; }
.em-bot-tabs .bot-rail-group-title { display: none; }
.em-bot-tabs .bot-rail-item {
  display: inline-flex;
  width: auto;
  min-height: 0;
  align-items: center;
  justify-content: flex-start;
  gap: 7px;
  height: 28px;
  padding: 0 12px;
  margin: 0;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  background: transparent;
  box-shadow: none;
  color: var(--text-2);
  font-size: 12px;
  font-weight: 550;
  cursor: pointer;
  white-space: nowrap;
}
.em-bot-tabs .bot-rail-item .line-icon,
.em-bot-tabs .bot-rail-item svg { display: none; }
.em-bot-tabs .bot-rail-item:hover { color: var(--text); border-color: var(--text-3); background: transparent; }
.em-bot-tabs .bot-rail-item.is-active { background: rgba(255, 106, 43, .12); border-color: var(--primary); color: var(--primary); font-weight: 650; }
.em-bot-tabs .bot-rail-item:disabled { opacity: .4; cursor: not-allowed; }
.em-bot-tabs .bot-rail-dot { display: none; }
/* Показываем только под-табы активной группы. */
.em-bot-tabs[data-bot-group="1"] .bot-rail-group:not(:nth-of-type(1)),
.em-bot-tabs[data-bot-group="2"] .bot-rail-group:not(:nth-of-type(2)),
.em-bot-tabs[data-bot-group="3"] .bot-rail-group:not(:nth-of-type(3)),
.em-bot-tabs[data-bot-group="4"] .bot-rail-group:not(:nth-of-type(4)) { display: none; }
.em-bot-tabs .em-welcome-tab { display: none; }
.em-bot-tabs[data-bot-group="4"] .em-welcome-tab { display: inline-flex; }
/* Хаб-каталог «Обзор → Каталог» (канвас): плитки функций по группам,
   справа — состояние и последние действия. */
.bot-hub { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: 16px; align-items: start; }
@media (max-width: 1100px) { .bot-hub { grid-template-columns: minmax(0, 1fr); } }
.bot-hub-group-title {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--primary);
  margin: 14px 0 10px;
}
.bot-hub-main .bot-hub-group-title:first-child { margin-top: 0; }
.bot-hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1400px) { .bot-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.bot-hub-grid .bot-overview-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 13px 15px;
  border-radius: 4px;
}
.bot-hub-grid .bot-overview-card-head { display: flex; align-items: center; gap: 9px; }
.bot-hub-grid .bot-overview-card-head h3 { margin: 0; font-size: 13px; font-weight: 700; }
.bot-hub-grid .bot-overview-card-icon {
  width: auto;
  height: auto;
  background: none;
  border: 0;
  color: var(--text-2);
}
.bot-hub-grid .bot-overview-card-icon .line-icon,
.bot-hub-grid .bot-overview-card-icon svg { width: 14px; height: 14px; }
.bot-hub-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--text-3); opacity: .5; margin-left: auto; flex: 0 0 auto; }
.bot-overview-card.is-on .bot-hub-dot { background: var(--success); opacity: 1; }
.bot-hub-grid .bot-overview-switch { margin-left: auto; }
.bot-hub-grid .bot-overview-card-stat {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
/* Плитка целиком кликабельна: кнопка растянута и невидима. */
.bot-hub-grid .bot-overview-card-open {
  position: absolute;
  inset: 0;
  opacity: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.bot-hub-grid .bot-overview-switch { position: relative; z-index: 1; }
.bot-hub-grid .bot-overview-card:hover { border-color: var(--line-strong); }
.bot-hub-slot {
  display: grid;
  place-items: center;
  min-height: 64px;
  border: 1px dashed var(--line-strong);
  border-radius: 4px;
}
.bot-hub-slot span {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.bot-hub-side { display: flex; flex-direction: column; gap: 14px; }
.bot-hub-status { padding: 13px 16px; display: flex; flex-direction: column; gap: 9px; }
.bot-hub-status-row { display: flex; justify-content: space-between; gap: 12px; font-size: 12.5px; }
.bot-hub-status-row span { color: var(--text-2); }
.bot-hub-status-row b.is-ok { color: var(--success); }
.bot-hub-status-row b.is-warn { color: #e8a13c; }

/* Редактор команды/таймера по канвасу: крошка, нумерованные шаги,
   «Проверка» — карточкой справа. */
.em-bot-crumb {
  display: block;
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 2px;
}
.bot-command-editor-section-head > span {
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 2px;
  background: rgba(255, 106, 43, .14);
  color: var(--primary);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 700;
  flex: 0 0 auto;
}
@media (min-width: 1240px) {
  .bot-command-editor-page .bot-game-editor-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 400px;
    gap: 14px;
    align-items: start;
  }
  .bot-command-editor-page .bot-game-editor-body > [aria-labelledby="command-preview-title"] {
    grid-column: 2;
    grid-row: 1 / span 3;
    position: sticky;
    top: calc(var(--header-h, 56px) + 14px);
  }
}

/* Строки команд по канвасу: моно-триггер янтарём, компактные меты. */
.bot-command-row-item .bot-command-title code {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  color: #ffb454;
  background: transparent;
  border: 0;
  padding: 0;
}
.bot-command-row-item .bot-command-main p { font-size: 12px; color: var(--text-3); }
.bot-command-roles span {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
}
.bot-command-uses strong { font-family: var(--font-mono); font-size: 12px; }
.bot-command-uses small {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* -- Герои фича-страниц бота: чип-иконки под размер -- */
.hx-bot .page-hero-tags span svg { width: 14px; height: 14px; }

/* -- Автомодерация по канвасу: режим — три карточки, актив эмбером -- */
.bot-automod-mode-picker {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  border: 0;
  margin: 0;
  padding: 0;
}
.bot-automod-mode-picker legend { margin-bottom: 8px; }
.bot-automod-mode-picker label {
  position: relative;
  display: block;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--surface);
  padding: 11px 13px;
  cursor: pointer;
  transition: border-color .15s ease, background .15s ease;
}
.bot-automod-mode-picker label:hover { border-color: var(--line-strong); }
.bot-automod-mode-picker input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.bot-automod-mode-picker span { display: block; }
.bot-automod-mode-picker strong { display: block; font-size: 13px; color: var(--text-2); }
.bot-automod-mode-picker small { display: block; margin-top: 2px; font-size: 11px; color: var(--text-3); line-height: 1.4; }
.bot-automod-mode-picker label:has(input:checked) {
  border-color: var(--primary);
  background: rgba(255, 106, 43, .08);
}
.bot-automod-mode-picker label:has(input:checked) strong { color: var(--primary); }
/* Режим «Защищает чат» — эмбер, не зелень (канвас). */
#bot-panel-automod .status-chip.is-ok {
  border-color: rgba(255, 106, 43, .4);
  background: rgba(255, 106, 43, .1);
  color: var(--primary);
}
#bot-panel-automod .status-chip.is-ok i { background: var(--primary); }

/* -- Тумблеры: включён — чистый эмбер, никакой зелени -- */
.switch-row input:checked + i {
  border-color: rgba(255, 106, 43, .55);
  background: var(--primary);
}
.hx-bot .switch-row input:checked + i,
.hx-bot .bot-feature-switch input:checked + i { box-shadow: 0 0 12px rgba(255, 106, 43, .4); }

/* -- Галочки wx-check выглядят как тумблеры (канвас) -- */
.wx-check input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 34px;
  height: 19px;
  border: 1px solid var(--line-strong);
  border-radius: 11px;
  background: var(--surface-2);
  position: relative;
  flex: 0 0 auto;
  margin: 0;
  cursor: pointer;
  transition: background .15s ease, border-color .15s ease;
}
.wx-check input[type="checkbox"]::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--text-3);
  transition: transform .15s ease, background .15s ease;
}
.wx-check input[type="checkbox"]:checked {
  background: rgba(255, 106, 43, .25);
  border-color: var(--primary);
}
.wx-check input[type="checkbox"]:checked::after {
  transform: translateX(15px);
  background: var(--primary);
}

/* -- Таймеры: строки списка по канвасу — компакт и моно-меты -- */
.bot-announcement-row .status-chip { display: none; }
.bot-announcement-type-chip {
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: 3px 7px;
}
.bot-announcement-type-chip i { display: none; }
.bot-announcement-count {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}
.bot-announcement-row-copy small {
  font-family: var(--font-mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* -- Кривые углы: липкие футеры/шапки не вылезают из карточек -- */
.bot-feature-card,
.bot-automod-settings,
.bot-automod-settings-card,
.bot-announcement-list-card,
.bot-timer-quick,
.bot-command-card { overflow: hidden; }
.bot-automod-card-actions,
.bot-feature-save-bar,
.hx-bot .bot-feature-card > .bot-feature-save-bar,
.hx-bot .bot-feature-card > .bot-automod-card-actions { border-radius: 0 0 4px 4px; }

/* «Как это видит чат» (канвас): событие + сообщение Fox_Chats. */
.bot-chat-preview { display: flex; flex-direction: column; gap: 8px; }
.bot-chat-preview > .field-label { margin-bottom: 0; }
.bot-chat-preview-event {
  border: 1px solid var(--line);
  border-left: 2px solid var(--primary);
  border-radius: 3px;
  background: var(--bg);
  padding: 9px 12px;
}
.bot-chat-preview-event span {
  display: block;
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--primary);
}
.bot-chat-preview-event b { display: block; font-size: 12.5px; margin-top: 3px; }
.bot-chat-preview-viewer {
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--bg);
  padding: 9px 12px;
}
.bot-chat-preview-viewer b { font-size: 12.5px; color: #5fbfc9; }
.bot-chat-preview-viewer p { margin: 4px 0 0; font-size: 12.5px; }
.bot-chat-preview-msg {
  border: 1px solid var(--line);
  border-left: 2px solid var(--primary);
  border-radius: 3px;
  background: rgba(28, 20, 12, .9);
  padding: 9px 12px;
}
.bot-chat-preview-head { display: flex; align-items: center; gap: 8px; }
.bot-chat-preview-mark {
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 2px;
  background: var(--primary);
  color: #16110b;
}
.bot-chat-preview-head b { font-size: 12.5px; color: #ff9a5e; }
.bot-chat-preview-head span {
  font-family: var(--font-mono);
  font-size: 8.5px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-3);
}
.bot-chat-preview-msg p { margin: 5px 0 0; font-size: 12.5px; line-height: 1.5; overflow-wrap: anywhere; }

/* Таймеры: список слева, постоянная форма «Новый таймер» справа (канвас). */
.bot-timers-layout { display: grid; grid-template-columns: minmax(0, 1fr) 440px; gap: 16px; align-items: start; }
@media (max-width: 1240px) { .bot-timers-layout { grid-template-columns: minmax(0, 1fr); } }
.bot-timers-main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.bot-timer-quick { position: sticky; top: calc(var(--header-h, 56px) + 14px); }
.bot-timer-quick-head {
  padding: 13px 18px;
  border-bottom: 1px solid var(--line);
  font-family: var(--font-mono);
  font-size: 10.5px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-2);
}
.bot-timer-quick form { display: flex; flex-direction: column; gap: 12px; padding: 14px 18px; }
.bot-timer-quick-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.bot-timer-quick-mode { border: 0; margin: 0; padding: 0; }
.bot-timer-quick-mode legend { padding: 0; margin-bottom: 6px; }
.bot-timer-quick-mode label { position: relative; display: inline-flex; margin-right: 6px; }
.bot-timer-quick-mode input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.bot-timer-quick-mode span {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-2);
}
.bot-timer-quick-mode input:checked + span { background: var(--primary); border-color: var(--primary); color: #16110b; font-weight: 700; }
.bot-timer-quick .button { align-self: flex-start; }

/* Смена функции — мягкий подъём страницы. */
.bot-center-page { animation: em-bot-page-in .24s ease both; }
@keyframes em-bot-page-in { from { opacity: 0; transform: translateY(8px); } }
/* Внутренняя вертикальная рейка не нужна: навигация — табы сверху. */
.bot-center-layout.is-shell-nav { display: block; }

/* -- Интеграции по канвасу: полоска, компактные карточки, моно-кнопки -- */
.em-int-strip { display: flex; align-items: baseline; gap: 12px; padding: 13px 18px; }
.em-int-strip-label {
  font-family: var(--font-mono, 'JetBrains Mono', Consolas, monospace);
  font-size: 9px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--primary);
  white-space: nowrap;
}
.em-int-strip-text { font-size: 12px; color: var(--text-2); }
.em-int-strip-text b { color: #e8a13c; font-weight: 600; }
.em-int-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@media (max-width: 1100px) { .em-int-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .em-int-grid { grid-template-columns: minmax(0, 1fr); } }
.integration-tile { display: flex; flex-direction: column; gap: 10px; padding: 16px; }
.em-int-head { display: flex; align-items: center; gap: 11px; min-width: 0; }
.em-int-head .integration-logo {
  width: 36px;
  height: 36px;
  border-radius: 3px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  font-size: 15px;
  font-weight: 800;
  color: #fffdf6;
  background: var(--surface-2);
  overflow: hidden;
}
.em-int-head .integration-logo img { width: 100%; height: 100%; object-fit: cover; }
.em-int-id { flex: 1; min-width: 0; }
.em-int-id b { display: block; font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.em-int-status {
  display: block;
  margin-top: 2px;
  font-family: var(--font-mono, 'JetBrains Mono', Consolas, monospace);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--text-3);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.em-int-status.is-ok { color: var(--success); }
.em-int-status.is-warn { color: #e8a13c; }
.em-int-status.is-info { color: var(--text-2); }
.em-int-toggle {
  width: 30px;
  height: 17px;
  border-radius: 10px;
  flex: 0 0 auto;
  position: relative;
  background: var(--surface-2);
  border: 1px solid var(--line-strong);
}
.em-int-toggle i {
  position: absolute;
  top: 2px;
  left: 2px;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  background: var(--text-3);
}
.em-int-toggle.is-on { background: rgba(255, 106, 43, .25); border-color: var(--primary); }
.em-int-toggle.is-on i { left: auto; right: 2px; background: var(--primary); }
.integration-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
/* Кнопки карточек — моно-капс как .abtn канваса. */
.integration-actions .button {
  min-height: 26px;
  padding: 0 11px;
  border: 1px solid var(--line-strong);
  border-radius: 2px;
  background: transparent;
  color: var(--text-2);
  font-family: var(--font-mono, 'JetBrains Mono', Consolas, monospace);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  box-shadow: none;
}
.integration-actions .button:hover { color: var(--text); border-color: var(--text-3); background: transparent; box-shadow: none; }
.integration-actions .button:not(.secondary):not(.ghost-button):not(.danger) { color: var(--primary); border-color: rgba(255, 106, 43, .5); }
.integration-actions .button.danger { color: #c96a64; border-color: rgba(229, 72, 77, .35); }
.integration-actions .button.danger:hover { color: var(--danger); border-color: rgba(229, 72, 77, .6); background: transparent; }

/* -- Плашка «В эфире» в топбаре — капсула как чип эфира в аналитике (.an-live) -- */
.status-chip.is-live.topbar-live {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 30px;
  padding: 0 12px 0 11px;
  border: 1px solid rgba(255, 106, 43, .35);
  border-radius: 999px;
  background: rgba(255, 106, 43, .08);
  color: #ffb18f;
  font-family: var(--font-body, 'Onest', system-ui, sans-serif);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color .15s ease, border-color .15s ease;
}
a.status-chip.is-live.topbar-live:hover { background: rgba(255, 106, 43, .14); border-color: rgba(255, 106, 43, .55); }
a.status-chip.is-live.topbar-live:focus-visible { outline: 2px solid #ff6a2b; outline-offset: 2px; }
.status-chip.is-live.topbar-live i {
  flex: none;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ff6a2b;
  box-shadow: 0 0 0 3px rgba(255, 106, 43, .2);
  animation: em-live-pulse 2.2s ease-in-out infinite;
}
@keyframes em-live-pulse { 50% { box-shadow: 0 0 0 5px rgba(255, 106, 43, .06); } }
.status-chip.is-live.topbar-live [data-topbar-live-clock] {
  font-family: var(--font-mono, 'JetBrains Mono', Consolas, monospace);
  font-size: 12.5px;
  font-weight: 700;
  color: #edf0f5;
  font-variant-numeric: tabular-nums;
}
@media (prefers-reduced-motion: reduce) { .status-chip.is-live.topbar-live i { animation: none; } }
/* Узкий экран: капсула не влезает рядом с поиском/справкой/колокольчиком — остаётся круглая кнопка с точкой.
   Текст «В эфире · 01:42:13» не удаляется (font-size:0) — его по-прежнему читает экранный диктор. */
@media (max-width: 520px) {
  .status-chip.is-live.topbar-live { width: 30px; padding: 0; gap: 0; justify-content: center; font-size: 0; }
  .status-chip.is-live.topbar-live [data-topbar-live-clock] { font-size: 0; }
}

/* -- Превью картинки расписания: клик — полноразмерный просмотр -- */
.sched-card-preview { cursor: zoom-in; }
.fx-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 32px;
  background: rgba(10, 7, 4, .9);
  backdrop-filter: blur(6px);
  cursor: zoom-out;
  animation: fx-lb-in .18s ease;
}
.fx-lightbox img {
  max-width: min(92vw, 780px);
  max-height: 92vh;
  border-radius: 4px;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .65);
}
@keyframes fx-lb-in { from { opacity: 0; } }

/* ============================================================
   Пакет правок 29.08 (ночь-4): меню профиля, рейка, ветки,
   последние эфиры, журнал, селекты.
   ============================================================ */

/* -- Ветки (Виджеты/Аналитика/Чат/Звуки/Telegram) видно, что раскрываются:
      тонкий шеврон справа, при раскрытии переворачивается. -- */
.nav-bot-chevron {
  display: inline-flex;
  margin-left: auto;
  color: var(--text-3);
  opacity: .7;
  transition: transform .18s ease, color .15s ease, opacity .15s ease;
}
.nav-bot-chevron .line-icon { width: 13px; height: 13px; }
.nav-item:hover .nav-bot-chevron { color: var(--text-2); opacity: 1; }
.nav-item[aria-expanded="true"] .nav-bot-chevron { transform: rotate(180deg); color: var(--primary); opacity: 1; }

/* -- Селекты: тёмные опции вместо системной синевы -- */
select option {
  background-color: #201a12;
  color: #efe6d4;
}
select option:checked { background-color: #2a2216; color: #ffb454; }

/* -- Меню профиля: подвал с версией и Telegram автора -- */
.user-menu-foot {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 6px;
  padding: 9px 10px 4px;
  border-top: 1px solid rgb(var(--veil) / .1);
}
.user-menu-foot a {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--text-3);
  text-decoration: none;
}
.user-menu-foot a:hover { color: var(--primary-soft); }

/* -- Рейка: лого и иконки в одну ровную колонну -- */
.dashboard-shell.nav-rail .nav-brand {
  display: grid;
  place-items: center;
  width: 100%;
  margin: 0;
  padding: 12px 0 10px;
}
.dashboard-shell.nav-rail .nav-brand img { margin: 0; }
.dashboard-shell.nav-rail .nav-group-items { display: grid; gap: 4px; justify-items: center; }
.dashboard-shell.nav-rail .nav-bot-branch,
.dashboard-shell.nav-rail .nav-analytics-branch,
.dashboard-shell.nav-rail .nav-telegram-branch,
.dashboard-shell.nav-rail .nav-tab-branch {
  display: flex;
  justify-content: center;
  width: 100%;
}
.dashboard-shell.nav-rail .nav-item {
  width: 40px;
  height: 38px;
  margin: 0 auto;
  padding: 0;
  display: grid;
  place-items: center;
  gap: 0;
  border-radius: 3px;
}
.dashboard-shell.nav-rail .nav-item .line-icon { width: 18px; height: 18px; margin: 0; }
.dashboard-shell.nav-rail .nav-item.is-active { background: rgb(255 106 43 / .14); }
.dashboard-shell.nav-rail .nav-item .nav-badge { right: 5px; top: 5px; }

/* -- «Последние эфиры»: жёсткая сетка, ничего не вылезает -- */
.em-recent-row {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: baseline;
  column-gap: 10px;
}
.em-recent-row span {
  display: block;
  min-width: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.em-recent-row b { white-space: nowrap; }

/* -- Журнал стримов: чистая моно-дата без круглой кнопки -- */
.tt-play { display: none !important; }
/* Двойная линия под шапкой читалась как пустой кривой ряд: у первой строки
   верхняя граница не нужна — разделитель уже даёт низ шапки. */
.tt-streams-table thead th { border-bottom: 1px solid rgb(var(--veil) / .1); padding-bottom: 9px; }
.tt-streams-table tbody tr:first-child td { border-top: 0; }
.tt-streams-table td { padding-top: 12px; padding-bottom: 12px; vertical-align: middle; }
/* Мини-бар — плотно под цифрой, один размер во всех колонках. */
.tt-col-metric b { display: block; margin-bottom: 5px; }
.tt-col-metric .tt-bar { display: block; width: 56px; height: 3px; margin: 0; }

/* -- Меню 18.09.2026: под названием группы — одна строка о том, что внутри -- */
.nav-group-hint { display: none; }
@media (min-width: 861px) {
  .dashboard-shell .nav-group-hint {
    display: block;
    margin-top: 2px;
    font-family: var(--font-body);
    font-size: 11.5px;
    font-style: normal;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.3;
    text-transform: none;
    white-space: normal;
    color: var(--text-3);
  }
  .dashboard-shell .nav-group-trigger:has(.nav-group-hint) { align-items: flex-start; }
  .dashboard-shell.nav-rail .nav-group-hint { display: none; }
}
/* Группа без заголовка («Главная», «Соцсети») — только строки. */
.dashboard-shell .nav-group-plain > .nav-group-menu { display: grid; }

/* -- Кнопки копирования: подтверждение «Скопировано» — зелёная кнопка с галочкой (flashCopied в app.js) -- */
:is(.icon-button, .button).is-copied {
  background: color-mix(in srgb, var(--success, #3fb97e) 16%, transparent) !important;
  border-color: color-mix(in srgb, var(--success, #3fb97e) 55%, transparent) !important;
  color: var(--success-soft, #8fe0b4) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--success, #3fb97e) 14%, transparent) !important;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
  animation: fc-copied-pop .28s ease-out;
}
:is(.icon-button, .button).is-copied svg { color: currentColor; stroke: currentColor; }
@keyframes fc-copied-pop { 0% { transform: scale(.96); } 60% { transform: scale(1.03); } 100% { transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { :is(.icon-button, .button).is-copied { animation: none; } }
