/* Стиль «Тактическая телеметрия» (industrial brutalism, тёмный терминал) поверх style.css и design.css.
   Все правила под html.brutal: кнопка «◧» в шапке возвращает прежний вид (выбор хранится в браузере).
   Цвета данных (статусы, тревоги, карта, графики) не трогаем — это смысловая кодировка, а не декор. */
html.brutal {
  --bg: #0a0b0d; --panel: #0e1013; --panel2: #13161a; --line: #2b2f35; --line-strong: #454b54;
  --surface-hover: #1a1e24; --track: #1a1d22;
  --text: #eaeaea; --dim: #8e949c; --accent: #e61919; --accent-strong: #ff2a2a;
  --glass: #0c0e11;
  --shadow: none;
  --r-sm: 0; --r-md: 0; --r-lg: 0;
  --grot: "Arial Black", "Segoe UI Black", "Segoe UI Variable Display", "Segoe UI", system-ui, sans-serif;
}

/* прямые углы везде, кроме индикаторов-точек и крутилки загрузки */
html.brutal *:not(.dot):not(.spin):not(.sw.ped):not(.sw.pednear) { border-radius: 0 !important; }
html.brutal *, html.brutal *::before { box-shadow: none; }
html.brutal .maptools, html.brutal .legend, html.brutal .storybar, html.brutal .modal {
  -webkit-backdrop-filter: none; backdrop-filter: none;
}

/* скан-линии поверх всего экрана: едва заметная «развёртка» */
html.brutal body::before {
  content: ""; position: fixed; inset: 0; pointer-events: none; z-index: var(--z-toast);
  background: repeating-linear-gradient(0deg, transparent 0, transparent 2px, rgba(0, 0, 0, 0.16) 2px, rgba(0, 0, 0, 0.16) 3px);
  mix-blend-mode: multiply;
}

/* микротипографика: метки, кнопки, вкладки — моноширинные, заглавные, с разрядкой */
html.brutal .lbl, html.brutal .tbl th, html.brutal .tabbar button, html.brutal .chip, html.brutal .maptools label,
html.brutal .maptools button, html.brutal .controls button, html.brutal .top button, html.brutal .top .btn,
html.brutal .legend, html.brutal .stlegend, html.brutal .flag, html.brutal .summary, html.brutal .storybar .stnum,
html.brutal .storybar .sttime, html.brutal .storybar button, html.brutal .kl, html.brutal .badge, html.brutal .csvbar button,
html.brutal .sumhead label, html.brutal .sumhead button, html.brutal .sumhead .btn, html.brutal .bhead button {
  font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.07em; font-weight: 500;
}
html.brutal .lbl, html.brutal .tbl th, html.brutal .legend, html.brutal .stlegend, html.brutal .flag { font-size: 11px; }
html.brutal .top button, html.brutal .top .btn, html.brutal .maptools button, html.brutal .maptools label { font-size: 11.5px; }
html.brutal .summary { font-size: 11.5px; color: var(--text); }
html.brutal .summary::before { content: "// "; color: var(--accent); }

/* макротипографика: тяжёлый гротеск, плотная разрядка */
html.brutal .brand { font-family: var(--grot); font-weight: 900; text-transform: uppercase; letter-spacing: -0.02em; font-size: 15px; }
html.brutal .brand::before { content: "[ "; color: var(--accent); font-family: var(--mono); font-weight: 400; }
html.brutal .brand::after { content: " ]"; color: var(--accent); font-family: var(--mono); font-weight: 400; }
html.brutal .brand .logo { display: none; }
html.brutal .status .row.big .val, html.brutal .scorebig, html.brutal .bcs, html.brutal .clock {
  font-family: var(--grot); font-weight: 900; letter-spacing: -0.03em;
}
html.brutal .status .row.big .val { font-size: 20px; }
html.brutal .scorebig { font-size: 46px; line-height: 0.95; }
html.brutal .storybar .sttitle { font-family: var(--grot); font-weight: 900; text-transform: uppercase; letter-spacing: -0.01em; }

/* поверхности: сплошные отсеки с видимыми рамками вместо стекла и теней */
html.brutal .top { background: var(--bg); box-shadow: none; border-bottom: 2px solid var(--line-strong); }
html.brutal .bottom { box-shadow: none; border-top: 2px solid var(--line-strong); background: var(--bg); }
html.brutal .side { background: var(--bg); border-left: 2px solid var(--line-strong); }
html.brutal .panel { border-bottom: 1px solid var(--line-strong); }
html.brutal .maptools, html.brutal .legend { background: var(--glass); border: 1px solid var(--line-strong); }
html.brutal .storybar { background: var(--glass); border: 1px solid var(--line-strong); border-top: 3px solid var(--accent); }
html.brutal .modal { background: rgba(5, 6, 8, 0.8); }
html.brutal .modal .card, html.brutal .batchform { border: 1px solid var(--line-strong); }
html.brutal .modal .card { border-top: 3px solid var(--accent); }
html.brutal .toast { border-width: 1px 1px 1px 4px; }
html.brutal .summary-panel { background: var(--bg); }

/* кнопки: плоские плашки, основное действие — красное */
html.brutal button, html.brutal .btn, html.brutal select, html.brutal input[type=number], html.brutal input[type=search] {
  background: var(--panel); border: 1px solid var(--line-strong);
}
html.brutal button:hover:not(:disabled), html.brutal .btn:hover { background: var(--surface-hover); border-color: var(--text); }
html.brutal button.primary, html.brutal .controls .play, html.brutal button.active, html.brutal button.active:hover:not(:disabled) {
  background: var(--accent); border-color: var(--accent); color: #fff;
}
html.brutal button.primary:hover:not(:disabled), html.brutal .controls .play:hover { background: var(--accent-strong); border-color: var(--accent-strong); }
html.brutal :focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }

/* вкладки: активная в скобках, с красной чертой снизу */
html.brutal .tabbar { border-bottom: 1px solid var(--line-strong); gap: 0; }
html.brutal .tabbar button { border: 1px solid transparent; border-bottom: 0; }
html.brutal .tabbar button.active, html.brutal .tabbar button.active:hover:not(:disabled) {
  background: var(--panel2); color: var(--text); border-color: var(--line-strong); box-shadow: inset 0 -2px 0 var(--accent);
}
html.brutal .tabbar button.active::before { content: "["; color: var(--accent); margin-right: 3px; }
html.brutal .tabbar button.active::after { content: "]"; color: var(--accent); margin-left: 3px; }
html.brutal .tabcount { background: var(--line-strong); }
html.brutal .tabcount.crit { background: var(--accent); }

/* таблицы: сетка отсеков, текущая строка — красная метка */
html.brutal .tbl th { border-bottom: 1px solid var(--line-strong); background: var(--bg); }
html.brutal .tbl td, html.brutal table.kv td { border-bottom: 1px solid var(--line); }
html.brutal .tbl tr.now td { background: rgba(230, 25, 25, 0.1); }
html.brutal .tbl tr.now td:first-child { box-shadow: inset 3px 0 0 var(--accent); }
html.brutal .tbl tr.fatal td, html.brutal .tbl tr.badrow td { background: rgba(230, 25, 25, 0.18); }

/* чипы и плашки состояния: прямоугольные рамки */
html.brutal .chip { background: transparent; border-color: var(--line-strong); }
html.brutal .stbadge { font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.06em; font-size: 12px; }
html.brutal .alarm { font-family: var(--mono); text-transform: uppercase; letter-spacing: 0.04em; font-size: 11px; }

/* полосы и индикаторы */
html.brutal .bar .bt, html.brutal .progress { background: var(--track); border: 1px solid var(--line); }
html.brutal body::after { background: var(--accent); background-size: 30% 100%; background-repeat: no-repeat;
  background-image: linear-gradient(90deg, var(--accent), var(--accent)); height: 3px; }
html.brutal .spin { border-color: var(--accent); border-right-color: transparent; }

/* полосы прокрутки — прямоугольные */
html.brutal ::-webkit-scrollbar-thumb { background: var(--line-strong); border: 0; }
html.brutal * { scrollbar-color: var(--line-strong) var(--bg); }

@media (prefers-reduced-motion: reduce) { html.brutal body::before { display: none; } }

/* плотность на 1280×720: шапка и панель инструментов карты в одну строку */
html.brutal .top { gap: 10px; }
html.brutal .top button, html.brutal .top .btn { letter-spacing: 0.03em; font-size: 11px; padding: 5px 8px; }
html.brutal #runSelect { max-width: 290px; }
html.brutal #cmpSelect { max-width: 140px; }
html.brutal .maptools { gap: 8px; }
html.brutal .maptools button, html.brutal .maptools label { letter-spacing: 0.03em; font-size: 11px; }
@media (max-width: 1400px) {
  html.brutal .maptools label { letter-spacing: 0.01em; }
  html.brutal #runSelect { max-width: 240px; }
}
