  /* Строка канваса: по умолчанию без фона, серая при наведении, синяя при выборе */
[data-ui-surface="navigator"] .panel__item {
    height: var(--arhix-control-height);
    margin: var(--arhix-space-block) var(--arhix-space-inset) 0 var(--arhix-space-inset);
    border-radius: var(--arhix-radius-control);
    background: transparent;
    flex: none;
    display: flex;
    align-items: center;
    padding: 0 var(--arhix-space-gap);
    box-sizing: border-box;
    cursor: pointer;
    transition: background var(--arhix-motion-quick) ease;
  }
[data-ui-surface="navigator"] .panel__item:hover { background: var(--arhix-surface); }
[data-ui-surface="navigator"] .panel__item--current,
[data-ui-surface="navigator"] .panel__item--current:hover { background: var(--arhix-accent-tint); }

[data-ui-surface="navigator"] .item__icon,
[data-ui-surface="navigator"] .item__icon svg {
  display: block;
  width: var(--arhix-icon-size);
  height: var(--arhix-icon-size);
  flex: none;
}

[data-ui-surface="navigator"] .item__icon {
  color: var(--arhix-ink-muted);
}


  /* ВЫДЕЛЕНИЕ НЕСКОЛЬКИХ. Режим включается командой («Создать папку»), а не
     жестом по метке: метка отвечает за стадию и в выборе не участвует.

     ЗАКОН РЕЖИМА: режим гасит подсветку активного канваса и забирает синий
     себе. Цвет при этом не меняет смысла — он всегда означает «на это сейчас
     нацелено приложение»; просто в режиме нацелено на набранные строки.
     Отсюда же бесплатный сигнал о входе: синий срывается с активной строки,
     и панель заметно меняется до первого выбора. Наведение остаётся серым.
     Правило общее для любого будущего режима (удаление, перенос), а не
     частное поведение папок — иначе второй режим изобретёт свой цвет. */
[data-ui-surface="navigator"] .navigator__panel.is-selecting .panel__item--current { background: transparent; }
[data-ui-surface="navigator"] .navigator__panel.is-selecting .panel__item--current:hover { background: var(--arhix-surface); }
[data-ui-surface="navigator"] .navigator__panel.is-selecting .panel__item--picked,
[data-ui-surface="navigator"] .navigator__panel.is-selecting .panel__item--picked:hover { background: var(--arhix-accent-tint); }

  /* ЗАКОН РИТМА СТРОК — структурный, а не классовый. Раньше отступ соседней
     строки задавался классом, который проставляли руками. Строки переезжают
     скриптом (папка, расформирование, правка состава), классы за ними не
     ходят, и вышедшая из папки строка получала отступ первой в блоке.
     Теперь ритм задаёт соседство: подряд — 2, первая после папки — 8,
     первая в списке — 12 из базового правила. */
[data-ui-surface="navigator"] .panel__item + .panel__item { margin-top: var(--arhix-space-row); }
[data-ui-surface="navigator"] .panel__folder + .panel__item { margin-top: var(--arhix-space-gap); }
[data-ui-surface="navigator"] .folder__tab + .panel__folder + .panel__item { margin-top: var(--arhix-space-gap); }


  /* ЗАКОН ВЕДУЩЕЙ МЕТКИ: три стадии документа одним знаком 12×12 —
     пустой серый круг (черновик), чёрный круг с точкой (на согласовании),
     чёрный круг с чеком (готов). Работает одинаково в канвасах и таблицах:
     ведущая метка всегда стадия, точки справа всегда присутствие.
     Штрих у всей тройки эффективно 1.5, а не общие 1.25: знак мельче
     иконочной сетки 20 и при 1.25 читается как выцветший. */
[data-ui-surface="navigator"] .item__radio {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 1.5px solid var(--arhix-ink-faint);
    box-sizing: border-box;
    flex: none;
  }


  /* готов: заливка чернилами + канонический чек контрцветом.
     Метка канваса — свой закон штриха 1.5 (толще общего 1.25): знак мелкий,
     12 из сетки 14, при 1.25 он читается тоньше обводки соседних состояний.
     Штрих в маске 1.75 = эффективные 1.5 при рендере 12 из сетки 14 */
[data-ui-surface="navigator"] .item__radio--ready {
    border: none;
    background: var(--arhix-ink);
    display: flex;
    align-items: center;
    justify-content: center;
  }
[data-ui-surface="navigator"] .item__radio--ready::after {
    content: '';
    width: 12px;
    height: 12px;
    background: var(--arhix-surface-raised);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M 4.2 7.4 L 6.2 9.3 L 9.8 4.9' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M 4.2 7.4 L 6.2 9.3 L 9.8 4.9' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
  }
[data-ui-surface="navigator"] .item__radio--review {
    border: 1.5px solid var(--arhix-ink-active);
    display: flex;
    align-items: center;
    justify-content: center;
  }
[data-ui-surface="navigator"] .item__radio--review::after {
    content: '';
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--arhix-ink);
  }


  /* Имя строки. Обрезка многоточием — общий закон списков; поле 8 до бейджа
     держится и при длинном имени, и при коротком. */
[data-ui-surface="navigator"] .item__name {
    flex: 1 1 auto;
    min-width: 0;
    font-family: var(--arhix-font);
    font-weight: var(--arhix-font-weight-body);
    font-size: var(--arhix-font-size-body);
    color: var(--arhix-ink);
    line-height: 1;
    margin-left: var(--arhix-space-gap);
    padding-right: var(--arhix-space-gap);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }


  /* Не у каждого списка есть ведущая стадия. Имя, которое стоит первым,
     начинается от штатного внутреннего поля строки без лишнего зазора. */
[data-ui-surface="navigator"] .panel__item > .item__name:first-child { margin-left: 0; }
