/* gc-frame.css - общий каркас страниц GeoCables (04.10.2026, концепт «одна трасса», файл Flow 1673).
   Опись показала: главный заголовок стоит на 22 разных вертикалях, имеет 16 размеров и 20 разных отступов от шапки.
   Каркас один для всех обычных страниц: колонка шириной до 1240 по центру окна, поля слева и справа равные.
     1) левый край у всех страниц общий;
     2) каталоги занимают всю колонку; узкие страницы для чтения держат свою ширину текста и стоят у того же левого края;
     2а) страницы с картой шире колонки: во всю ширину окна с небольшими равными полями;
     3) два вида главного заголовка: 30 px Inter для страниц данных, 32 px Lora для объектов с именем и статей;
     4) один отступ от строки «где я» до начала страницы.
   Ширина 1240 выбрана как середина: сцене события рядом с текстом хватает места (от 620 px она показывается полностью),
   а каталог не растягивается на весь широкий экран. Телефон не затронут (кроме размера заголовка).
   Подключается в конце шапки (_header.php), поэтому стоит позже стилей страниц.
   Карты во все окно (мониторинг, транзит, живая карта) сюда не входят. Новая обертка страницы = новая строка в списках ниже. */
/* 0. старые имена цветов (--color-*) на страницах «Контакты», «О проекте», «Конфиденциальность», «Данные», инцидентах:
   таких переменных в теме нет, страницы брали запасные темные цвета, и в светлой теме стоял темный блок с бледным текстом.
   Здесь старые имена привязаны к цветам темы. */
:root, body {
  --color-accent: var(--gc-accent);
  --color-border: var(--gc-border);
  --color-muted: var(--gc-text-secondary, var(--gc-text-muted));
  --color-surface: var(--gc-bg-card);
  --color-text: var(--gc-text);
}
/* 0а. светлая тема: цвета состояния, вписанные под темный фон (светло-оранжевый, голубой, светло-зеленый), на бежевом
   читались плохо (проверка 04.10.2026: контраст 1,6-1,8). В светлой теме они темнее. */
[data-theme="light"] .lv-mid .gr-what, [data-theme="light"] .lv-mid .ev-what,
[data-theme="light"] .ev-inc-ratio, [data-theme="light"] .ev-stat-val.amber, [data-theme="light"] .ev-inc-badge.spike { color: #b45309 !important; }
[data-theme="light"] .lv-major .gr-what, [data-theme="light"] .lv-major .ev-what { color: #c62828 !important; }
[data-theme="light"] .pulse-mode.calm, [data-theme="light"] .ev-inc-badge.resolved, [data-theme="light"] .ev-stat-val.green { color: #2e7d32 !important; }
[data-theme="light"] .pulse-mode.alert, [data-theme="light"] .ev-inc-badge.active, [data-theme="light"] .ev-stat-val.red { color: #c62828 !important; }
[data-theme="light"] .gc-blog-card__rtt, [data-theme="light"] .gc-blog-card__rtt strong,
[data-theme="light"] .gc-author-box__role { color: var(--gc-accent) !important; }
/* то же для главной, страницы события, задержек и мониторинга; цвета, вписанные прямо в разметку, ловятся по значению */
[data-theme="light"] .gc-lv-num.ok, [data-theme="light"] .gc-sp-tag-calm, [data-theme="light"] .gc-dg-tag,
[data-theme="light"] .live-ioda__status.normal, [data-theme="light"] [style*="color:#66bb6a"] { color: #2e7d32 !important; }
[data-theme="light"] .gc-lv-num.warn, [data-theme="light"] .hp-rc-tag--route,
[data-theme="light"] [style*="color:#eab308"], [data-theme="light"] [style*="color:#ffb74d"], [data-theme="light"] [style*="color:#ffa726"] { color: #b45309 !important; }
[data-theme="light"] .gc-lv-num.bad, [data-theme="light"] .live-ioda__status.degraded { color: #c62828 !important; }
[data-theme="light"] .hp-rc-tag--region { color: #7b1fa2 !important; }
[data-theme="light"] .hp-rc-tag--cable { color: #1565c0 !important; }
[data-theme="light"] .ev-tag[style*="color:#9e9e9e"] { color: #6b6257 !important; }
[data-theme="light"] [style*="color:#7dd3fc"] { color: var(--gc-accent) !important; }
[data-theme="light"] .map-mode-btn.active { color: #fff !important; }
/* темная тема: акцент светло-голубой, белая надпись на нем не читалась (контраст 1,7); надпись темная */
[data-theme="dark"] .gc-filter-btn.active, [data-theme="dark"] .gc-lz-chip.on, [data-theme="dark"] .art-cta-btn,
[data-theme="dark"] .ev-nav a.active { color: #0b1826 !important; }
[data-theme="dark"] .gc-blog-filters .gc-filter-btn.active { color: var(--gc-accent) !important; }  /* в блоге активная кнопка темная с голубой надписью */
/* белая надпись на голубой кнопке плохо читается в обеих темах */
button[style*="background:#4fc3f7"][style*="color:#fff"] { color: #04121f !important; }
[data-theme="light"] .gc-filter-btn.active { background: var(--gc-accent) !important; color: var(--gc-bg) !important; border-color: var(--gc-accent) !important; }
@media (min-width: 900px) {
  /* 1. общий левый край: начало колонки 1240 по центру окна, содержимое с отступом 24 */
  body > main.ev-wrap:not(.ev-has-map),
  body > main.ix-wrap,
  body > main.in-wrap,
  body > div.wrap,
  body > main.pulse-wrap,
  body > main.ds-wrap,
  body > div.wg-wrap,
  body > main.mth-wrap,
  body > main.about-wrap,
  body > main.chg-wrap,
  body > main.contact-wrap,
  body > main.privacy-wrap,
  body > main.art-wrap,
  body > main.gc-page-wrap > .gc-container {
    margin-left: max(0px, calc((100% - 1240px) / 2)) !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    box-sizing: border-box;
  }
  /* 2. широкие страницы: вся колонка 1240, поля слева и справа равные */
  body > div.gc-container,
  body > div.ev-page,
  body > main.out-wrap:not(.out-has-scene),
  body > main.dep-wrap,
  body > main.gc-page-wrap > .gc-page-hero,
  body > main.gc-page-wrap > .gc-blog-wrap {
    max-width: 1240px !important;
    margin-left: auto !important; margin-right: auto !important;
    padding-left: 24px !important; padding-right: 24px !important;
    box-sizing: border-box;
  }
  /* 2а. страницы с картой (событие и страна со сценой, карта кабелей): во всю ширину окна с небольшими равными полями.
     Решение владельца 04.10.2026: «карту надо сделать шире, с небольшими полями по краям, и все карты так».
     Заголовок и текст на этих страницах начинаются от того же края, что и карта. */
  body > main.ev-wrap.ev-has-map,
  body > main.out-wrap.out-has-scene,
  body > main > section.map-hero {
    max-width: 2200px !important;
    margin-left: auto !important; margin-right: auto !important;
    padding-left: 24px !important; padding-right: 24px !important;
    box-sizing: border-box;
  }
  /* 4. отступ от строки «где я» до начала страницы */
  body > main.ev-wrap,
  body > main.out-wrap,
  body > main.ix-wrap,
  body > main.in-wrap,
  body > div.ev-page,
  body > div.wrap,
  body > main.pulse-wrap,
  body > main.dep-wrap,
  body > main.ds-wrap,
  body > div.wg-wrap,
  body > main.mth-wrap,
  body > main.about-wrap,
  body > main.chg-wrap,
  body > main.contact-wrap,
  body > main.privacy-wrap,
  body > main.art-wrap,
  body > div.gc-container,
  body > main > section.map-hero {
    padding-top: 28px !important;
  }
  /* у страницы «Задержки» свой большой отступ внутри первого блока */
  body > main.art-wrap > .art-hero { padding-top: 0 !important; margin-top: 0 !important; }
}
/* 3. главный заголовок: два вида вместо шестнадцати размеров (текст заголовков не меняется) */
body main h1, body > div.wrap h1, body > div.ev-page h1, body > div.wg-wrap h1, body > div.gc-container h1 {
  font-size: 30px !important; line-height: 1.2 !important; font-weight: 600 !important; letter-spacing: 0 !important;
}
body > div.gc-container h1.gc-page-title, body h1.gc-page-title, body > main.mth-wrap h1 {
  font-size: 32px !important; line-height: 1.2 !important; font-weight: 500 !important;
}
@media (max-width: 640px) {
  body main h1, body > div.wrap h1, body > div.ev-page h1, body > div.wg-wrap h1, body > div.gc-container h1 { font-size: 24px !important; }
  body > div.gc-container h1.gc-page-title, body h1.gc-page-title, body > main.mth-wrap h1 { font-size: 26px !important; }
}
