/* Минимизация интерфейса (2026-10-18, владелец: «минимизация, адаптация отображения под роль, объединение пунктов,
   приоритезация каналов в настройках»). Подключается из index.html после styles.css; описание — docs/NEXT_UI_GUIDE.md §2.5. */

/* инженерный вид (app.js engView): без него — ни «Эфира», ни «3D-графика», ни сырых отсчётов */
body:not(.eng) .eng-only { display: none !important; }
body:not(.eng) .h-lower { grid-template-columns: minmax(0, 1fr); }

/* вошёл — тема и язык в кабинете; угловые переключатели остаются на входе и публичных страницах */
body.authed .th-pill, body.authed .lg-pill { display: none !important; }

/* навигация: «Тревоги» со счётчиком объектов с тревогами (вместо пилюли и часов в шапке) */
#navSeg button { display: inline-flex; align-items: center; gap: 7px; }
.nav-n { min-width: 19px; height: 19px; padding: 0 6px; border-radius: 999px; display: inline-grid; place-items: center; font-size: 11px; font-weight: 700; line-height: 1; color: #fff; background: var(--serious); }
.nav-n.low { background: var(--warn); }
.nav-n[hidden] { display: none; }
@media (max-width: 760px) {
  .topnav { flex-wrap: wrap; row-gap: 10px; }
  .topnav .brand { order: 0; }
  .topnav .nav-right { order: 1; width: auto; margin-inline-start: auto; flex-wrap: nowrap; }
  #navSeg { order: 2; width: 100%; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; padding-bottom: 2px; }
  #navSeg::-webkit-scrollbar { display: none; }
  #navSeg button { flex: none; padding-inline: 12px; }
}

/* «Объекты»: переключатель вида (карточки, матрица, карта) в шапке каждого из трёх видов */
.panel-head { flex-wrap: wrap; gap: 12px; }
.panel-act { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-inline-start: auto; }
.panel-act:empty { display: none; }
.fview-seg button { display: inline-flex; align-items: center; gap: 6px; }
@media (max-width: 420px) { .fview-seg button span { display: none; } .fview-seg button { padding-inline: 10px; } }

/* объекты без датчиков — строкой пилюль после карточек */
.fempty { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 10px 0 4px; padding: 10px 12px; border: 1px dashed var(--hair); border-radius: 14px; }
#matrix > .fempty { grid-column: 1 / -1; margin: 2px 0 0; }
.fempty-l { font-size: 12px; color: var(--fg-2); margin-inline-end: 4px; white-space: nowrap; }
.fempty-l b { color: var(--fg); font-weight: 600; }
.fchip { display: inline-flex; align-items: center; gap: 7px; max-width: 220px; height: 30px; padding: 0 10px 0 3px; border-radius: 999px; border: 1px solid var(--hair); background: var(--card-2); color: var(--fg-2); font: inherit; font-size: 13px; cursor: pointer; }
.fchip:hover { color: var(--fg); background: var(--hover); }
.fchip img, .fchip-m { width: 24px; height: 24px; border-radius: 50%; object-fit: cover; flex: none; }
.fchip-m { display: inline-grid; place-items: center; background: var(--card-3); font-size: 11px; font-weight: 600; }
.fchip > span:not(.fchip-m) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fchip .sev { flex: none; }

/* шапка объекта: «Настройки» и меню «⋯» (AI, маршрут, экспорт, экраны) */
details.obj-more { position: relative; }
details.obj-more > summary { list-style: none; }
details.obj-more > summary::-webkit-details-marker { display: none; }
.obj-top .obj-more-s { width: 38px; padding: 0; justify-content: center; border-radius: 999px; }
details.obj-more[open] > .obj-more-s { color: var(--fg); background: var(--hover); }
.obj-more-s .sb-ico { display: inline-flex; }
details.obj-more .menu { position: absolute; inset-inline-end: 0; top: calc(100% + 6px); z-index: 30; min-width: 230px; background: var(--card); border: 1px solid var(--hair); border-radius: 12px; padding: 6px; display: flex; flex-direction: column; gap: 2px; box-shadow: 0 10px 30px rgba(0,0,0,0.35); }
details.obj-more .mi { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 38px; padding: 8px 10px; border: 0; border-radius: 8px; background: none; color: var(--fg); font: inherit; font-size: 14px; text-align: start; cursor: pointer; }
details.obj-more .mi:hover, details.obj-more .mi:focus-visible { background: var(--card-2); }
details.obj-more .mi .sb-ico { display: inline-flex; color: var(--fg-2); }
details.obj-more .mi > svg { color: var(--fg-2); flex: none; }
details.obj-more .mi .sb-n { margin-inline-start: auto; }
#objMoreMenu #screensBtn > span[data-i18n] { display: inline !important; }
#objMoreMenu #screensBtn { padding-inline: 10px; }

/* прогноз «порог через N» — плашкой в живой строке */
.chip.fc-chip { cursor: default; color: var(--fg-2); background: rgba(255,107,0,0.08); border-color: rgba(255,107,0,0.28); }
.chip.fc-chip b { color: var(--fg); font-weight: 600; }
.fc-ar { color: var(--accent); font-weight: 700; }

/* главная: состояние ведёт к «Требует внимания» */
.h-state.link { cursor: pointer; }
.h-state.link:hover { filter: brightness(1.08); }
.h-state .h-state-go { opacity: 0.7; }

/* кабинет: «Отображение» — тема, язык, инженерный вид */
.acc-prefs { display: flex; flex-direction: column; gap: 4px; }
.acc-pref { display: flex; align-items: center; gap: 12px; padding: 8px 12px; border-radius: 12px; color: var(--fg); font: inherit; font-weight: 500; text-align: start; }
.acc-pref-l { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-pref-l b { font-weight: 500; }
.acc-pref-l small { font-size: 12px; font-weight: 400; color: var(--fg-2); }
.acc-theme { display: inline-flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--card-2); }
.acc-theme button { width: 32px; height: 28px; border: 0; border-radius: 999px; background: none; color: var(--fg-2); display: inline-grid; place-items: center; cursor: pointer; }
.acc-theme button[aria-pressed="true"] { background: var(--accent-soft); color: var(--accent); }
.acc-lang { max-width: 150px; min-height: 32px; height: 32px; }
.acc-switch { width: 100%; border: 0; background: none; cursor: pointer; }
.acc-switch:hover { background: var(--hover); }
.acc-sw { flex: none; width: 38px; height: 22px; border-radius: 999px; background: var(--hair-2); position: relative; transition: background 0.2s; }
.acc-sw i { position: absolute; top: 3px; inset-inline-start: 3px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: inset-inline-start 0.2s; }
.acc-switch[aria-pressed="true"] .acc-sw { background: var(--accent); }
.acc-switch[aria-pressed="true"] .acc-sw i { inset-inline-start: 19px; }

/* настройки объекта: каналы без подходящих датчиков свёрнуты; «Удалить объект» — отдельно от «Назад» и «Сохранить» */
.osm-more-ch { display: inline-flex; align-items: center; gap: 8px; margin: 12px 0 4px; padding: 8px 12px; border: 1px dashed var(--hair); border-radius: 10px; background: none; color: var(--fg-2); font: inherit; font-size: 13px; cursor: pointer; }
.osm-more-ch:hover { color: var(--fg); background: var(--hover); }
.osm-more-ch + .channel-grid { margin-top: 8px; }
.osm-danger { display: flex; justify-content: flex-start; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--hair); }
.osm-danger .osm-btn { flex: 0 0 auto; width: auto; }

/* тревоги: «ниже нормы» синим, как везде; «Кому ушло» — значком с подсказкой */
/* css/alerts.css подгружается позже этого файла — правила ниже с запасом специфичности */
.al-rows .al-row.low .al-ic { background: var(--warn-soft); color: var(--warn); }
.al-rows .al-row.low .al-n { background: var(--warn-soft); color: var(--warn); }
.al-rows .al-ntf-btn > span { display: none; }
.al-rows .al-ntf-btn { padding-inline: 9px; }

/* устройства: проблемы в шапке группы, «Показать все N» */
.inv-probs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.inv-prob { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--fg-2); padding: 2px 8px; border-radius: 999px; background: var(--card-2); }
.inv-prob b { color: var(--fg); }
.inv-prob.amber { color: var(--amber, #f59e0b); }
.inv-more { display: block; width: 100%; margin-top: 8px; padding: 9px; border: 1px dashed var(--hair); border-radius: 10px; background: none; color: var(--fg-2); font: inherit; font-size: 13px; cursor: pointer; }
.inv-more:hover { color: var(--fg); background: var(--hover); }
