/* Тёмная схема для системных элементов: без неё Chrome рисует невыбранные
 * чекбоксы, радиокнопки, выпадающие списки и полосы прокрутки светлыми — на
 * тёмной панели они выбивались белыми пятнами. Раньше это стояло только на
 * одной странице из семнадцати.
 */
:root { color-scheme: dark; }

/* Единый вид элементов управления для всех страниц панели.
 *
 * Каждая страница — самостоятельный HTML со своим <style>, и элементы
 * разъехались: где-то системные чекбоксы, где-то таблетки-переключатели,
 * поля и списки с разными рамками и высотой. Этот файл подключается
 * последним и приводит их к одному виду, не трогая раскладку страниц.
 */

/* ── Лента навигации ──────────────────────────────────────────────
   На 11 страницах у неё не было переноса, и при узком окне она вылезала
   за пределы экрана, добавляя горизонтальную прокрутку всей странице. */
header nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-left: 8px;
  min-width: 0;
}
header nav a { white-space: nowrap; }

/* ── Группы страниц ───────────────────────────────────────────────
   Восемнадцать пунктов в одну ленту не помещались и переносились на
   вторую строку. Группы открываются по наведению и по клику (клик нужен
   на сенсорных экранах, где наведения нет). */
.navgrp { position: relative; }
.navgrp-btn {
  background: none; border: 1px solid transparent; color: var(--muted, #8b949e);
  font-family: inherit; font-size: 13px; font-weight: 500;
  padding: 6px 12px; border-radius: 6px; cursor: pointer;
  display: flex; align-items: center; gap: 6px; white-space: nowrap;
}
.navgrp-btn:hover { background: var(--surface2, #1c2128); color: var(--text, #e6edf3); }
.navgrp.active > .navgrp-btn { background: rgba(200,168,75,.15); color: var(--gold, #c8a84b); }
.navgrp-caret { font-size: 9px; opacity: .7; }
.navgrp-menu {
  position: absolute; top: calc(100% + 4px); left: 0; z-index: 60;
  display: none; flex-direction: column; min-width: 190px; padding: 5px;
  background: var(--surface, #161b22); border: 1px solid var(--border, #30363d);
  border-radius: 8px; box-shadow: 0 10px 26px rgba(0,0,0,.45);
}
.navgrp:hover > .navgrp-menu,
.navgrp.open > .navgrp-menu { display: flex; }
.navgrp-menu a {
  padding: 7px 10px; border-radius: 6px; font-size: 13px;
  color: var(--muted, #8b949e); text-decoration: none;
}
.navgrp-menu a:hover { background: var(--surface2, #1c2128); color: var(--text, #e6edf3); }
.navgrp-menu a.active { background: rgba(200,168,75,.15); color: var(--gold, #c8a84b); }

/* На узком экране лента едет вбок сплошным списком, и всплывающие меню там
   только мешают — раскрываем группы сразу, заголовком-разделителем. */
@media (max-width: 900px) {
  .navgrp { position: static; }
  .navgrp-btn { width: 100%; justify-content: space-between; cursor: default; }
  .navgrp-caret { display: none; }
  .navgrp-menu { position: static; display: flex; border: 0; box-shadow: none;
    background: none; padding: 0 0 6px 10px; min-width: 0; }
}

/* ── Поля ввода и списки ───────────────────────────────────────── */
input[type=text], input[type=search], input[type=number], input[type=password],
select, textarea {
  background: var(--surface, #161b22);
  color: var(--text, #e6edf3);
  border: 1px solid var(--border, #30363d);
  border-radius: 6px;
  padding: 5px 9px;
  font-family: inherit;
  font-size: 12.5px;
  line-height: 1.4;
  transition: border-color .12s, box-shadow .12s;
}
select { cursor: pointer; }
input[type=text]:hover, input[type=search]:hover, input[type=number]:hover,
select:hover, textarea:hover { border-color: var(--gold-dim, #a8893a); }
input[type=text]:focus, input[type=search]:focus, input[type=number]:focus,
input[type=password]:focus, select:focus, textarea:focus {
  outline: none;
  border-color: var(--gold, #c8a84b);
  box-shadow: 0 0 0 2px rgba(200, 168, 75, .15);
}
input::placeholder, textarea::placeholder { color: var(--muted, #8b949e); opacity: .8; }
input:disabled, select:disabled, textarea:disabled { opacity: .5; cursor: not-allowed; }

/* ── Чекбоксы ──────────────────────────────────────────────────── */
input[type=checkbox], input[type=radio] {
  accent-color: var(--gold, #c8a84b);
  width: 15px;
  height: 15px;
  cursor: pointer;
  vertical-align: -2px;
}
input[type=checkbox]:disabled, input[type=radio]:disabled { cursor: not-allowed; opacity: .5; }

/* ── Выбор файла ───────────────────────────────────────────────── */
input[type=file] {
  color: var(--muted, #8b949e);
  font-family: inherit;
  font-size: 12px;
  max-width: 100%;
}
input[type=file]::file-selector-button {
  background: none;
  border: 1px solid var(--border, #30363d);
  color: var(--muted, #8b949e);
  font-family: inherit;
  font-size: 12px;
  padding: 4px 12px;
  margin-right: 10px;
  border-radius: 6px;
  cursor: pointer;
  transition: border-color .12s, color .12s;
}
input[type=file]::file-selector-button:hover {
  border-color: var(--gold-dim, #a8893a);
  color: var(--gold, #c8a84b);
}

/* ── Поля с иконкой поиска ─────────────────────────────────────────
   У них слева лежит лупа, под которую страницы оставляют отступ
   padding-left:32px. Общее правило выше его перебивало, и иконка
   наезжала на текст — возвращаем место. */
.search-wrap input, .role-search input, .sw input {
  padding-left: 32px;
}

/* ── Полоса «открыт завершённый сезон» ─────────────────────────────
   Висит под шапкой на всех страницах: в закрытом сезоне панель ничего не
   пишет, и об этом надо помнить, а не выяснять по пропавшим отчётам. */
.season-warn {
  order: 99; flex-basis: 100%;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin-top: 6px; padding: 7px 12px; border-radius: 7px;
  background: rgba(210,153,34,.14); border: 1px solid rgba(210,153,34,.45);
  color: var(--yellow, #d29922); font-size: 12.5px;
}
.season-warn-btn {
  background: none; border: 1px solid rgba(210,153,34,.6); color: var(--yellow, #d29922);
  font-family: inherit; font-size: 12px; padding: 4px 10px; border-radius: 6px; cursor: pointer;
}
.season-warn-btn:hover { background: rgba(210,153,34,.2); }
