/* 021: компактная операторская на существующих цветах, шрифтах и компонентах. */
[hidden] { display: none !important; }

/* Состояния читаются без расшифровки значков; все прежние отборы остаются на месте. */
#staff-top .staff-strip { flex-basis: 100%; }
#staff-top .tally { min-height: 44px; padding-inline: var(--space-3); }
#staff-top .tally__label { font-size: var(--text-xs); font-weight: var(--weight-medium); white-space: nowrap; }
#staff-top .oc-feedsearch { min-height: 44px; }
#staff-top .oc-viewmode { margin-left: auto; }
#staff-top .oc-filters-btn { min-height: 44px; }
.oc-chipsbar { flex-wrap: wrap; }
.oc-fchip { max-width: 100%; overflow-wrap: anywhere; }
.oc-fchip button { min-width: 44px; min-height: 44px; }

/* Карточка не меняет сетку рабочего места и не сбрасывает прокрутку ленты/карты. */
.oc-order-overlay {
  position: fixed; inset: 0; z-index: var(--z-dialog); display: grid; place-items: center;
  padding: var(--space-4); background: var(--veil); overscroll-behavior: contain;
}
.oc-order-overlay .order-side {
  display: block; position: relative; inset: auto; height: auto; min-height: 0;
  width: min(100%, 760px); max-height: calc(100dvh - var(--space-4) * 2); overflow: auto;
  border-radius: var(--radius-lg); background: var(--panel); box-shadow: var(--shadow-3);
  overscroll-behavior: contain; scrollbar-gutter: stable;
}
.oc-order-overlay .order-card { min-height: 0; gap: var(--space-3); border: 0; }
.order-card__no { font-size: var(--title-xl); }
.order-card__summary { font-size: var(--text-sm); font-weight: var(--weight-medium); line-height: var(--leading-text); }
.order-card__head { position: relative; }
.order-card__close { min-width: 44px; min-height: 44px; }
.order-card .order-block { padding-top: var(--space-3); }
.order-card .order-details { display: block; }
.order-details > summary { min-height: 44px; cursor: pointer; align-content: center; color: var(--ink); }
.order-details > :not(summary) { margin-top: var(--space-2); }
.order-card__foot { box-shadow: 0 -5px 12px color-mix(in srgb, var(--ink) 6%, transparent); }
.order-card__foot .btn, .order-card__foot .icon-btn { min-height: 44px; }
.order-card__foot .order-reason { width: 100%; min-width: 0; }
.order-card__foot input { min-width: 0; }
.order-card :is(p, span, h2, h3) { overflow-wrap: anywhere; }
body.has-card { overflow: hidden; }
body.has-card .staff-top { display: grid; }

/* Тревоги не исчезают до раскрытия. Полный перечень и все команды — в одной секции. */
#feed .oc-attention-summary { display: block; border: 1px solid var(--err); border-radius: var(--radius-md); }
#feed .oc-attention-summary > summary {
  display: flex; flex-wrap: wrap; min-height: 44px; padding: var(--space-2) var(--space-3); cursor: pointer;
}
.oc-attention-summary > summary::after { content: '⌄'; margin-left: auto; color: var(--muted); }
.oc-attention-summary[open] > summary::after { content: '⌃'; }
.oc-attention-summary__hint { color: var(--muted); font-size: var(--text-xs); }
.oc-attention-summary .issues { padding-inline: var(--space-2); }
.oc-attention-summary .oc-hidden-alarm, .oc-attention-summary .oc-seen { padding-inline: var(--space-3); }
/* Р520: видимых тревог нет — тихие строки без красной рамки и без сворачивания; скрытые раскрываются одним нажатием. */
#feed .oc-attention-quiet { display: grid; gap: var(--space-1); }
#feed .oc-attention-quiet .issues { padding-inline: var(--space-2); }

/* Настройки и выбор 50 точек: ограниченная высота списка, поиск по реальным названиям/адресам. */
.oc-fdlg { width: min(860px, 100%); }
.oc-filter-view { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); margin-bottom: var(--space-4); }
.oc-filter-view label { display: grid; gap: var(--space-1); min-width: 0; }
.oc-filter-view select { width: 100%; min-width: 0; min-height: 44px; }
.oc-fdlg__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
.oc-filter-options { max-height: 224px; overflow: auto; overscroll-behavior: contain; }
.filter-row { min-height: 44px; }
.filter-row__label { display: grid; min-width: 0; overflow-wrap: anywhere; }
.filter-row__label small { font-size: var(--text-xs); font-weight: normal; }
.filters__group .input { width: 100%; min-width: 0; margin-block: var(--space-1); }
.oc-sees__menu { width: min(440px, calc(100vw - var(--space-4))); max-height: min(70dvh, 620px); overflow: auto; }
.oc-sees__menu > .input { width: 100%; margin-block: var(--space-2); }
.oc-sees__options { max-height: 300px; overflow: auto; }
.oc-sees__options .menu__item { min-height: 44px; }
.oc-sees__options .menu__label { display: grid; white-space: normal; overflow-wrap: anywhere; }
.smap__switch:has(select) { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; max-width: 420px; }
.smap__switch :is(input, select) { min-width: 0; width: 100%; min-height: 44px; background: var(--panel); }
.oc-map-tools { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.oc-zone-toggle { min-height: 44px; pointer-events: auto; }
.oc-zone-toggle[aria-pressed=false] { color: var(--muted); }

:is(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 2px solid var(--accent); outline-offset: 3px;
}
@media (max-width: 767px) {
  .oc-order-overlay { padding: 0; place-items: end stretch; }
  .oc-order-overlay .order-side { width: 100%; max-height: 96dvh; border-radius: var(--radius-xl) var(--radius-xl) 0 0; }
  .oc-order-overlay .order-card { padding: var(--space-4); }
  .oc-order-overlay .order-card__foot {
    margin: 0 calc(var(--space-4) * -1) calc(var(--space-4) * -1); padding: var(--space-3) var(--space-4);
    padding-bottom: max(var(--space-3), env(safe-area-inset-bottom));
  }
  #staff-top .tally { flex: none; }
  #staff-top .oc-viewmode { margin-left: 0; }
  .oc-viewmode .segments__item { min-height: 44px; }
  .oc-fdlg__grid, .oc-filter-view { grid-template-columns: minmax(0, 1fr); }
  .oc-filter-options { max-height: 176px; }
  .dialog__foot .btn { min-height: 44px; }
}
