/*
 * Единый стиль СОЮЗа (владелец 08.09.2026): одна мышечная память на все разделы — главная, кабинеты,
 * страницы профессиональных союзов (зеркала), СоюзИнформ, каталоги, страницы партнёров и рейтинга.
 * Слой поверх существующих стилей: не ломает разметку, приводит к общему ритму карточки, кнопки, фишки,
 * заголовки и отступы. Акцент раздела задаётся переменной --soyuz-akcent (цвет союза), по умолчанию синий СОЮЗа.
 * Палитра союзов: строители/монолит/промальп #f97316, поставщики и производные #2563eb, спецтехника #eab308,
 * грузоперевозки #16a34a, СоюзИнформ #1d4ed8, знак СОЮЗа #e31b24.
 */
:root {
  --soyuz-akcent: #2e6bff;
  --soyuz-radius: 14px;
  --soyuz-radius-sm: 10px;
  --soyuz-gap: 12px;
  --soyuz-shadow: 0 4px 14px rgba(16, 24, 40, .06);
  --soyuz-line: rgba(127, 127, 127, .28);
  --soyuz-font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
}
body.mirror-feed--amber, body.mirror-feed--orange { --soyuz-akcent: #f97316; }
body.mirror-feed--yellow { --soyuz-akcent: #eab308; }
body.mirror-feed--green, body.mirror-feed--postav { --soyuz-akcent: #16a34a; }
body.soyuz-inform { --soyuz-akcent: #1d4ed8; }

/* ——— общий ритм карточек: лента союзов, кабинеты, каталоги ——— */
body.mirror-feed .card,
body.mirror-feed .feed > article,
.cabinet-sections-grid > *,
.union-cabinet-fold {
  border-radius: var(--soyuz-radius) !important;
  box-shadow: var(--soyuz-shadow);
}
body.mirror-feed .card { padding: 13px 15px; }
body.mirror-feed .feed { display: flex; flex-direction: column; gap: var(--soyuz-gap); }

/* ——— кнопки: одна форма во всех разделах ——— */
body.mirror-feed .btn-source,
body.mirror-feed .btn-orig,
body.mirror-feed #apply,
body.mirror-feed .mirror-site-type-btn,
.union-cabinet-fold__toggle {
  border-radius: 999px !important;
  font-weight: 600;
  min-height: 40px;
  transition: transform .12s ease, box-shadow .12s ease;
}
body.mirror-feed .btn-source:active,
body.mirror-feed #apply:active,
.union-cabinet-fold__toggle:active { transform: translateY(1px); }
body.mirror-feed #apply { background: var(--soyuz-akcent) !important; border-color: var(--soyuz-akcent) !important; }

/* ——— фильтры: единая полка сверху ——— */
body.mirror-feed .filters {
  display: flex; flex-wrap: wrap; gap: var(--soyuz-gap);
  padding: 12px 14px; border-radius: var(--soyuz-radius);
  border: 1px solid var(--soyuz-line); box-shadow: var(--soyuz-shadow);
  margin: 10px auto; max-width: 1180px;
}
body.mirror-feed .filter-pair { min-width: 150px; flex: 1 1 150px; }
body.mirror-feed .filter-pair label {
  font-size: 11px; letter-spacing: .06em; text-transform: uppercase; opacity: .7; font-weight: 600;
}
body.mirror-feed .filter-pair select,
body.mirror-feed .filter-pair input {
  border-radius: var(--soyuz-radius-sm) !important; min-height: 42px;
}

/* ——— шапка и заголовки ——— */
body.mirror-feed .top { padding: 14px 16px 12px; }
body.mirror-feed h1#site-title { font-size: clamp(19px, 3.2vw, 27px); letter-spacing: -.01em; line-height: 1.2; }
body.mirror-feed .sub { font-size: 12.5px; opacity: .8; }
body.mirror-feed .mirror-union-logo { border-radius: 50%; }

/* ——— СоюзИнформ: лента новостей читается как список статей ——— */
body.soyuz-inform .feed > * { border-left: 3px solid var(--soyuz-akcent); padding-left: 12px; }
body.soyuz-inform .card-title, body.soyuz-inform .feed h3 { font-size: 15.5px; line-height: 1.35; }

/* ——— кабинеты главной: тот же ритм, что у союзов ——— */
.cabinet-sections-grid { gap: var(--soyuz-gap) !important; }
.union-cabinet-fold { border: 1px solid var(--soyuz-line); }
.union-cabinet-fold__toggle { padding: 12px 14px; }
.union-cabinet-fold__title { font-size: 15px; }

/* ——— мелкое: одинаковые отступы у контейнеров ——— */
body.mirror-feed .feed, body.mirror-feed .filters, body.mirror-feed .top-bar { max-width: 1180px; margin-left: auto; margin-right: auto; }
@media (max-width: 720px) {
  body.mirror-feed .filters { padding: 10px; }
  body.mirror-feed .filter-pair { flex: 1 1 100%; }
}

/* ——— Тёмная тема: блоки, у которых был жёстко задан светлый фон (владелец 08.09: «текст засвечен») ———
   Проверка контраста на живом сайте нашла на главной 6 кнопок этапов работ (белый фон оставался в тёмной теме,
   серый текст, контраст 2.5) и значок микрофона (чёрный на тёмном, 1.1). Правило страхует такие места целиком. */
[data-theme="dark"] .workstage-btn,
[data-theme="dark"] .card.card--tone-blue,
[data-theme="dark"] .card.card--tone-green,
[data-theme="dark"] .card.card--tone-yellow,
[data-theme="dark"] .card.card--tone-orange,
[data-theme="dark"] .card.card--tone-red {
  background: #161f33 !important;
  color: #e8eefc !important;
  border-color: #263247 !important;
}
[data-theme="dark"] .workstage-btn:hover { background: #1d2841 !important; }
[data-theme="dark"] .card .card-title { color: #e8eefc !important; }
[data-theme="dark"] .search,
[data-theme="dark"] .search * { color: #e8eefc; }
/* Страховка: белый фон в тёмной теме всегда с тёмным текстом, а не со светлым */
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: #ffffff"] { color: #101828; }

/* ── Вход в форум ветки (ревизия 08.09) ─────────────────────────────────────
   Пустое зеркало форума больше не тупик: показывает, как попасть в закрытую
   группу через бота ветки. Инвайты закрытых групп на сайт не попадают. */
.forum-vhod { text-align: center; padding: 28px 18px; }
.forum-vhod__title { font-weight: 700; font-size: 17px; margin-bottom: 8px; color: var(--ink, #1f2937); }
.forum-vhod__text { font-size: 14px; line-height: 1.5; opacity: .85; max-width: 46ch; margin: 0 auto 16px; }
.forum-vhod__row { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.forum-vhod__btn {
  display: inline-block; padding: 10px 18px; border-radius: 10px; text-decoration: none;
  font-weight: 600; font-size: 14px; background: var(--accent, #2563eb); color: #fff;
  border: 1px solid transparent;
}
.forum-vhod__btn--tihaya { background: transparent; color: var(--accent, #2563eb); border-color: var(--accent, #2563eb); }
.forum-vhod__note { margin-top: 14px; font-size: 12.5px; opacity: .7; max-width: 48ch; margin-inline: auto; }
[data-theme="dark"] .forum-vhod__title { color: #e8eefc; }
