/* ============================================================
   Плотный рабочий вид «по образцу 1С» — пилот «Сделки» (08.10.2026)
   Plans/feature_ui_dense_1c_2026-10-08/plan.md

   Решения владельца: на компьютере плотная раскладка (таблицы, одна строка
   команд, карточка как документ, плотное меню), скругления и фирменный синий
   --bdk-primary остаются; на телефоне — прежний iOS-вид.

   Правила этого файла:
   * весь плотный вид — только в @media (min-width: 992px); ниже 992 px вид
     прежний (раздел A — классы, которые раньше были инлайновыми стилями
     шаблона списка сделок и нужны телефону и планшету без изменений);
   * страницы пилота обёрнуты в .bdk-1c — стили страниц сидят под ним;
     левое меню — общее (.bdk-sidebar), оно плотное на всех страницах;
   * размеры текста — только токены шкалы из site.css. Вторичный текст 13 px
     даёт локальная подмена --bdk-fs-sm внутри .bdk-1c, сама шкала не тронута;
   * подключается последним в base.html, чтобы перекрывать site.css без !important.
   ============================================================ */


/* ---- A. Классы, нужные и телефону (раньше — inline-стили шаблона) --------- */
.bdk-dl-field { min-height: 44px; border-radius: var(--bdk-radius, 12px); }
.bdk-dl-filters-panel { border-radius: var(--bdk-radius, 12px); }
.bdk-dl-filters-pad { padding: 14px 16px; }
.bdk-dl-panel { border-radius: var(--bdk-radius, 12px); }
.bdk-dl-apply {
  min-height: 44px;
  padding: 0 16px;
  border-radius: var(--bdk-radius, 12px);
  background: var(--ios-accent);
  border-color: var(--ios-accent);
}
.bdk-dl-reset { min-height: 44px; padding: 0 14px; border-radius: var(--bdk-radius, 12px); }
.bdk-dl-empty { border-radius: 14px; background: var(--ios-bg-sheet); }

/* Щелчок по заголовку колонки: вне плотного вида заголовок выглядит как раньше. */
.bdk-1c-sort { color: inherit; text-decoration: none; }
.bdk-1c-sort-mark { margin-left: 2px; }

/* Кнопка «Меню» в верхней панели — только компьютер при скрытом меню (см. ниже). */
.bdk-sidebar-show { display: none; }


@media (min-width: 992px) {

  /* ================================================================
     B. Левое меню — плотное, общее для всех страниц
     ================================================================ */
  :root { --bdk-sidebar-w: 220px; }

  .bdk-sidebar-brand { padding: 6px 12px; min-height: 48px; gap: 8px; }
  .bdk-sidebar-brand-name { font-size: var(--bdk-fs); }
  .bdk-sidebar-nav { padding: 4px 8px 10px; }
  .bdk-sidebar-section { margin-bottom: 2px; }
  .bdk-sidebar-section-label { padding: 6px 2px 2px 8px; }

  .bdk-sidebar-link {
    min-height: 32px;
    padding: 4px 8px;
    gap: 8px;
    font-size: var(--bdk-fs);
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-sidebar-icon { font-size: var(--bdk-fs-lg); width: 18px; }
  .bdk-sidebar-text { line-height: 1.25; }
  .bdk-sidebar-children { padding: 0 0 2px; margin-left: 17px; }
  .bdk-sidebar-child { min-height: 32px; padding: 4px 8px 4px 14px; }
  .bdk-sidebar-collapse { min-height: 32px; padding: 6px 12px; }

  /* «Скрыть меню» убирает меню целиком; вернуть — кнопка «Меню» в верхней панели. */
  .bdk-sidebar {
    transition: transform var(--bdk-transition-slow), visibility 0s linear 0s;
  }
  body.bdk-sidebar-hidden .bdk-sidebar,
  html.bdk-sidebar-hidden-init .bdk-sidebar {
    transform: translateX(-100%);
    visibility: hidden;
    transition: transform var(--bdk-transition-slow), visibility 0s linear var(--bdk-transition-slow);
  }
  body.bdk-has-sidebar.bdk-sidebar-hidden .bdk-shell,
  html.bdk-sidebar-hidden-init body.bdk-has-sidebar .bdk-shell {
    margin-left: 0;
  }
  body.bdk-sidebar-hidden .bdk-sidebar-show,
  html.bdk-sidebar-hidden-init .bdk-sidebar-show {
    display: inline-flex;
  }
  .bdk-sidebar-show {
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 10px;
    flex-shrink: 0;
    border: 1px solid var(--bdk-border);
    border-radius: var(--bdk-radius-sm);
    background: var(--bdk-surface);
    color: var(--bdk-text);
    font-size: var(--bdk-fs);
    font-weight: 400;
    cursor: pointer;
  }
  .bdk-sidebar-show:hover { background: var(--bdk-bg); }
  .bdk-sidebar-show:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--bdk-primary-bg); }
  .bdk-sidebar-show .bi { font-size: var(--bdk-fs-lg); }

  /* Верхняя панель тоньше: 48 вместо 60 px. */
  .bdk-topbar { height: 48px; }
  .bdk-topbar-inner { gap: 12px; }
  .bdk-search-box input { height: 32px; border-radius: var(--bdk-radius-sm); }
  .bdk-has-sidebar .bdk-topbar-inner { padding: 0 20px; }


  /* ================================================================
     C. Страницы пилота (.bdk-1c): общие детали
     ================================================================ */
  .bdk-1c { --bdk-fs-sm: 13px; font-size: var(--bdk-fs); }

  /* html, body { overflow-x: hidden } (site.css, мобильная правка) делает body прокручиваемым
     контейнером, и position: sticky не работал ни у верхней панели, ни у шапки таблицы.
     На страницах пилота body «обрезает» вбок через clip — прокрутка остаётся у страницы. */
  body:has(.bdk-1c) { overflow-x: clip; overflow-y: visible; }
  .bdk-shell:has(.bdk-1c) .bdk-breadcrumbs { padding: 8px 20px 0; }
  .bdk-shell:has(.bdk-1c) .bdk-breadcrumbs-list { font-size: var(--bdk-fs-sm); }
  .bdk-has-sidebar .bdk-content:has(.bdk-1c) { padding: 10px 20px 88px; }

  /* Кнопка «Помощь» — компактный круг со знаком «?», не закрывает данные (подпись и
     подсказка остались в aria-label/title). Телефон не трогаем. */
  .bdk-fab-main { min-width: 40px; width: 40px; height: 40px; padding: 0; border-radius: 50%; }
  .bdk-fab-main-label { display: none; }
  .bdk-fab-launcher { right: 16px; bottom: 16px; }

  /* Заголовок: 20 px полужирный, под ним — одна командная строка. */
  .bdk-1c .bdk-page-header { margin-bottom: 10px; }
  .bdk-1c .bdk-page-header-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    margin-bottom: 0;
  }
  .bdk-1c .bdk-page-title h1 {
    font-size: var(--bdk-fs-title);
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0;
    margin: 0;
  }
  .bdk-1c .bdk-1c-cmdbar {
    align-items: center;
    gap: 6px;
    position: relative;
  }
  /* Главная (залитая) кнопка командной строки — первой слева. */
  .bdk-1c .bdk-1c-cmdbar > .btn-primary,
  .bdk-1c .bdk-1c-cmdbar > form:has(> .btn-primary) { order: -1; }

  /* Кнопки и поля — 32 px, скругление 8 px (диалоги не трогаем). */
  .bdk-1c .btn:not(.btn-link):not(.modal .btn) {
    min-height: 32px;
    height: 32px;
    padding: 0 12px;
    gap: 6px;
    font-size: var(--bdk-fs);
    line-height: 1;
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-1c :is(.form-control, .form-select):not(textarea):not(.modal *) {
    min-height: 32px;
    height: 32px;
    padding: 4px 10px;
    font-size: var(--bdk-fs);
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-1c .form-select:not(.modal *) { padding-right: 2rem; }

  /* Панели — тонкая граница вместо тени, скругление 12 px. */
  .bdk-1c .bdk-panel { border-radius: var(--bdk-radius); box-shadow: none; }
  .bdk-1c .bdk-panel-header { padding: 8px 14px; }
  .bdk-1c .bdk-panel-title { font-size: var(--bdk-fs); }
  .bdk-1c .bdk-panel-body.padded { padding: 10px 14px; }

  /* Меню «Ещё ▾» и меню строки. */
  .bdk-1c .bdk-dl-menu-btn {
    min-height: 32px;
    line-height: 32px;
    font-size: var(--bdk-fs);
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-1c .bdk-dl-menu-body { border-radius: var(--bdk-radius); min-width: 240px; }
  .bdk-1c .bdk-dl-menu-btn { white-space: nowrap; position: relative; }
  /* Индикатор загрузки в пункте меню не должен сдвигать подпись вправо. */
  .bdk-1c .bdk-dl-menu-btn .spinner-border { position: absolute; right: 10px; top: 9px; }
  .bdk-1c .bdk-dl-menu-toggle {
    width: 28px;
    height: 28px;
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-1c .bdk-1c-more-toggle,
  .bdk-1c .bdk-dc-menu > .bdk-dl-menu-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--bdk-border);
    background: var(--bdk-surface);
    color: var(--bdk-text);
    font-size: var(--bdk-fs);
    font-weight: 400;
  }
  .bdk-1c .bdk-1c-more-toggle:hover,
  .bdk-1c .bdk-dl-menu[open] > .bdk-1c-more-toggle,
  .bdk-1c .bdk-dc-menu > .bdk-dl-menu-toggle:hover,
  .bdk-1c .bdk-dc-menu[open] > .bdk-dl-menu-toggle {
    background: var(--bdk-bg);
    border-color: var(--bdk-border-strong);
    color: var(--bdk-text);
  }
  .bdk-1c .bdk-1c-more { position: relative; }
  .bdk-1c .bdk-1c-more > .bdk-dl-menu-body { top: calc(100% + 4px); left: 0; right: auto; }
  .bdk-1c .bdk-dc-menu { position: relative; }
  .bdk-1c .bdk-dc-menu > .bdk-dl-menu-body { top: calc(100% + 4px); left: 0; right: auto; }

  /* Метка стадии: одна и та же в списке и в карточке. */
  .bdk-1c .bdk-1c-stage {
    display: inline-block;
    padding: 3px 8px;
    border-radius: 6px;
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
    line-height: 1.3;
    white-space: nowrap;
    vertical-align: middle;
  }

  /* Числа: по правому краю, цифры одной ширины; минус красным (шаблон ставит .text-danger). */
  .bdk-1c .bdk-1c-num {
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
  }


  /* ================================================================
     D. Общие детали плотного вида (переиспользуются всеми экранами .bdk-1c)
        Памятка по классам — .claude/skills/bdk-ui-standards/reference/dense-1c.md
     ================================================================ */

  /* D1. Заголовок + пояснение в одну строку. */
  .bdk-1c .bdk-1c-headline {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 12px;
  }

  /* D2. Командная строка: поиск прижат вправо. */
  .bdk-1c .bdk-1c-search { margin-left: auto; align-items: center; gap: 6px; }
  .bdk-1c .bdk-1c-search input { width: 260px; }

  /* D3. Строка фильтров: поля по 32 px в один-два ряда. */
  .bdk-1c .bdk-1c-filters { margin-bottom: 8px !important; }
  .bdk-1c .bdk-1c-filters-pad { padding: 8px 12px; }
  .bdk-1c .bdk-1c-filters-body { margin-top: 0; }
  .bdk-1c .bdk-1c-filters-body > .row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 6px 10px;
    margin: 0;
  }
  .bdk-1c .bdk-1c-filters-body > .row > * {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
  }
  .bdk-1c .bdk-1c-filters-body .form-select { width: 140px; }
  .bdk-1c .bdk-1c-filters-body .form-label {
    margin: 0 0 2px;
    font-size: var(--bdk-fs-sm);
    line-height: 16px;
  }
  .bdk-1c .bdk-1c-flags { gap: 14px !important; align-items: center; }
  .bdk-1c .bdk-1c-flag { min-height: 32px; font-size: var(--bdk-fs); }
  .bdk-1c .bdk-1c-flag input { width: 16px; height: 16px; }
  .bdk-1c .bdk-1c-filter-actions { margin: 0 0 0 auto !important; }
  .bdk-1c .bdk-1c-apply,
  .bdk-1c .bdk-1c-reset { background-clip: padding-box; }
  .bdk-1c .bdk-1c-apply {
    background: var(--bdk-primary);
    border-color: var(--bdk-primary);
  }

  /* D4. Плотная таблица: строка 34 px, липкая шапка на светло-сером, тонкие линии. */
  .bdk-1c .bdk-1c-tablepanel {
    border: 1px solid var(--bdk-panel-border);
    container-type: inline-size;
  }
  .bdk-1c .bdk-1c-table {
    --bs-table-hover-bg: var(--bdk-primary-bg);
    --bs-table-hover-color: var(--bdk-text);
    font-size: var(--bdk-fs);
  }
  .bdk-1c .bdk-1c-table thead { background: transparent; border-bottom: 0; }
  .bdk-1c .bdk-1c-table thead th {
    position: sticky;
    top: 48px;
    z-index: 5;
    padding: 6px 10px;
    background: #f3f4f6;
    box-shadow: inset 0 -1px 0 var(--bdk-border);
    border-bottom: 0;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 500;
    line-height: 20px;
    text-transform: none;
    letter-spacing: 0;
    white-space: nowrap;
    overflow: visible;
  }
  .bdk-1c .bdk-1c-table .bdk-1c-th-menu { padding: 0; width: 44px; }
  .bdk-1c .bdk-1c-th-hint { display: none; }
  .bdk-1c .bdk-1c-th-hint--warn { display: inline; margin-left: 4px; font-weight: 400; }
  .bdk-1c .bdk-1c-sort:hover { color: var(--bdk-primary); }
  .bdk-1c .bdk-1c-sort-mark { color: var(--bdk-primary); font-size: var(--bdk-fs-xs); }
  /* Ячейка: по умолчанию длинный текст режется многоточием (полный — в title);
     --full и .bdk-1c-num — метки, даты, числа: не обрезаются никогда. */
  .bdk-1c .bdk-1c-table .bdk-1c-cell {
    height: 34px;
    padding: 0 10px;
    line-height: 20px;
  }
  .bdk-1c .bdk-1c-cell--full,
  .bdk-1c .bdk-1c-num { overflow: visible; text-overflow: clip; }
  .bdk-1c .bdk-1c-table .bdk-1c-cell-menu { padding: 0; text-align: center; }
  /* Кликабельная строка (data-row-href, поведение — static/js/bdk_dense.js). */
  .bdk-1c .bdk-1c-row { cursor: pointer; border-bottom: 1px solid var(--bdk-border); }
  .bdk-1c .bdk-1c-row:focus-within > td,
  .bdk-1c .bdk-1c-row--current > td {
    box-shadow: inset 0 0 0 9999px var(--bdk-primary-bg);
  }

  /* D5. Строка итога под таблицей. */
  .bdk-1c .bdk-1c-total {
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 6px 12px;
    border-top: 1px solid var(--bdk-border);
    border-radius: 0 0 var(--bdk-radius) var(--bdk-radius);
    background: #f3f4f6;
    font-size: var(--bdk-fs);
  }
  .bdk-1c .bdk-1c-total strong { font-variant-numeric: tabular-nums; }
  .bdk-1c .bdk-1c-total-hint { color: var(--bdk-text-muted); font-size: var(--bdk-fs-sm); }

  /* D6. Шапка-документ: поля в две колонки, подпись слева, значение справа. */
  .bdk-1c .bdk-1c-doctitle {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 10px;
  }
  .bdk-1c .bdk-1c-back { flex: 0 0 100%; margin: 0 !important; }
  .bdk-1c .bdk-1c-back a { text-decoration: none; }
  .bdk-1c .bdk-1c-back a:hover { color: var(--bdk-primary); }
  .bdk-1c .bdk-1c-back-sep { margin: 0 4px; color: var(--bdk-text-dim); }
  .bdk-1c .bdk-1c-doctitle h1 { overflow-wrap: anywhere; }
  .bdk-1c .bdk-1c-docheader {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 40px;
    max-width: none;
    padding: 4px 16px;
    margin-bottom: 12px;
    overflow: visible;
    scroll-snap-type: none;
    background: var(--bdk-surface);
    border: 1px solid var(--bdk-panel-border);
    border-radius: var(--bdk-radius);
  }
  .bdk-1c .bdk-1c-docfield {
    display: grid;
    grid-template-columns: 150px minmax(0, 1fr);
    column-gap: 12px;
    align-items: baseline;
    align-content: start;
    min-width: 0;
    max-width: none;
    min-height: 30px;
    padding: 5px 0;
    gap: 0 12px;
    background: none;
    box-shadow: none;
    border-radius: 0;
    border-bottom: 1px solid var(--bdk-border);
  }
  .bdk-1c .bdk-1c-docfield:nth-last-child(-n+2) { border-bottom: 0; }
  .bdk-1c .bdk-1c-doclabel {
    grid-column: 1;
    grid-row: 1;
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
    text-transform: none;
    color: var(--bdk-text-muted);
  }
  .bdk-1c .bdk-1c-docfield > :not(.bdk-1c-doclabel) { grid-column: 2; min-width: 0; }
  .bdk-1c .bdk-1c-docvalue { font-size: var(--bdk-fs); }
  .bdk-1c .bdk-1c-docsub { font-size: var(--bdk-fs-sm); }
  .bdk-1c .bdk-1c-docsub.mt-1 { margin-top: 0 !important; }
  .bdk-1c .bdk-1c-doccta {
    min-height: 24px;
    padding: 0 6px;
    margin: 0 4px 0 -6px;
    border: 0;
    border-radius: var(--bdk-radius-sm);
    background: none;
    font-size: var(--bdk-fs-sm);
  }
  .bdk-1c .bdk-1c-doccta:hover { background: var(--bdk-primary-bg); }

  /* D7. Вкладки документа — компактные, с подчёркиванием. */
  .bdk-1c .bdk-1c-tabs {
    gap: 0;
    padding: 0;
    margin-bottom: 12px;
    flex-wrap: nowrap;
    overflow-x: auto;
    background: none;
    border-radius: 0;
    border-bottom: 1px solid var(--bdk-border);
  }
  .bdk-1c .bdk-1c-tab {
    flex: 0 0 auto;
    min-height: 32px;
    padding: 0 14px;
    margin-bottom: -1px;
    border-radius: 0;
    border-bottom: 2px solid transparent;
    font-size: var(--bdk-fs);
    white-space: nowrap;
  }
  .bdk-1c .bdk-1c-tab:hover { color: var(--bdk-text); }
  .bdk-1c .bdk-1c-tab.active {
    background: none;
    box-shadow: none;
    color: var(--bdk-primary);
    border-bottom-color: var(--bdk-primary);
  }

  /* D8. Внутри документа: плотные списки «подпись — значение» и таблицы. */
  .bdk-1c-doc dl.row { row-gap: 0; }
  .bdk-1c-doc dl.row > * { padding-top: 3px; padding-bottom: 3px; margin-bottom: 0; }
  .bdk-1c-doc dl.row > dt { font-weight: 400; font-size: var(--bdk-fs-sm); }
  .bdk-1c-doc .table { font-size: var(--bdk-fs); }
  .bdk-1c-doc .table > :not(caption) > * > * { padding: 5px 10px; }
  .bdk-1c-doc .table > thead > tr > * {
    background: #f3f4f6;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
  }


  /* ================================================================
     E. Список сделок — только то, что относится к сделкам
     ================================================================ */
  .bdk-1c-deals .bdk-dl-sort-field { display: none; }
  /* Колонка «Воронка» — только когда таблице хватает места (меню скрыто / широкий экран);
     иначе воронка в подсказке метки стадии, а длинные названия остаются читаемыми. */
  .bdk-1c-deals .bdk-dl-col-pipeline,
  .bdk-1c-deals .bdk-dl-cell-pipeline { display: none; }
  @container (min-width: 1300px) {
    .bdk-1c-deals .bdk-dl-col-pipeline,
    .bdk-1c-deals .bdk-dl-cell-pipeline { display: table-cell; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-stage { width: 15.3%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-date { width: 6%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-name { width: 17.3%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-client { width: 10.2%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-object { width: 9%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-pipeline { width: 9.4%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-money { width: 7%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-amount { width: 10.3%; }
    .bdk-1c-deals .bdk-dl-panel .bdk-dl-table .bdk-dl-col-action { width: 14.8%; }
  }
  /* Доли ширины подобраны под 1440 px с меню (контент ≈ 1180 px): числа и даты
     помещаются целиком, длинные названия режутся многоточием с подсказкой.
     Даты, суммы, воронка и заголовки колонок не обрезаются никогда. Стадии отдана ширина
     под длинное название справочника («Знакомство с бизнесом (NDA)», 27 знаков), но стадии,
     перенесённые из Bitrix, длиннее («Передано во вторичный департамент») — поэтому метка
     стадии режется многоточием, а не наезжает на «Дату» (16.10.2026). Многоточие — у
     свободных текстов (название, клиент, объект, действие) и у стадии; полный текст в title.
     Сумме отдано место и под пометку «факт»: «12 000 000 ₽ факт» наезжал на «Следующее
     действие» (16.10.2026). */
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-stage { width: 20%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-date { width: 7.5%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-name { width: 14%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-client { width: 10.5%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-object { width: 10.5%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-pipeline { width: 9%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-money { width: 8.5%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-amount { width: 12%; }
  .bdk-1c-deals .bdk-dl-table .bdk-dl-col-action { width: 13%; }
  .bdk-1c-deals .bdk-dl-fact { font-size: var(--bdk-fs-xs); }
  /* Воронка видна колонкой (≥ 1400 px) или подсказкой над меткой стадии — второй строки в ячейке нет. */
  .bdk-1c-deals .bdk-dl-cell-stage .bdk-dl-sub { display: none; }
  /* Метка стадии и замок «из Bitrix» — в одну строку внутри ячейки: метка сжимается до
     многоточия, замок не сжимается. */
  .bdk-1c-deals .bdk-dl-cell-stage .bdk-dl-stage-line {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    max-width: 100%;
  }
  .bdk-1c-deals .bdk-dl-cell-stage .bdk-1c-stage {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .bdk-1c-deals .bdk-dl-cell-stage [data-bitrix-read-only] { flex: none; }


  /* ================================================================
     F. Карточка сделки — только то, что относится к сделкам
     ================================================================ */
  .bdk-1c-deal [data-deal-alarms] { margin-top: 0 !important; }
  .bdk-1c-deal .bdk-stage-hint { flex: 0 0 100%; margin-top: 0 !important; }
  .bdk-1c-deal .bdk-dc-actions { max-width: none; }

  /* Главная кнопка страницы — одна (в шапке); «Запланировать действие» в панели — контурная. */
  .bdk-1c-deal .na-panel .btn-primary {
    background: var(--bdk-surface);
    border-color: var(--bdk-border);
    color: var(--bdk-text);
  }
  .bdk-1c-deal .na-panel .btn-primary:hover,
  .bdk-1c-deal .na-panel .btn-primary:active {
    background: var(--bdk-bg) !important;
    border-color: var(--bdk-border-strong) !important;
    color: var(--bdk-text) !important;
  }
  .bdk-1c-deal .deal-overview-row { --bs-gutter-x: 16px; --bs-gutter-y: 12px; }
  .bdk-1c-deal .deal-tab-section + .deal-tab-section { margin-top: 12px; }
}


/* ============================================================
   G. Вкладки «Открытые» (решение владельца 08.10.2026, plan.md §1а)
   Полоска над хлебными крошками: значок типа + название + «×». Только компьютер
   (≥ 992 px); на телефоне и планшете полоски нет. Разметка — ui_prefs/_open_tabs.html.
   ============================================================ */
.bdk-open-tabs { display: none; }

@media (min-width: 992px) {
  .bdk-open-tabs {
    display: block;
    padding: 8px 10px 0;
    background: var(--bdk-bg);
    border-bottom: 1px solid var(--bdk-border);
  }
  .bdk-open-tabs-list {
    display: flex;
    align-items: stretch;
    gap: 0;
    height: 32px;
    margin: 0;
    padding: 0;
    list-style: none;
    overflow-x: auto;
    scrollbar-width: none;
  }
  .bdk-open-tabs-list::-webkit-scrollbar { display: none; }
  /* Вкладки сжимаются как в браузере, но не уже 120 px; 10 штук помещаются на 1220 px. */
  .bdk-open-tab {
    position: relative;
    display: flex;
    align-items: center;
    flex: 1 1 0;
    min-width: 118px;
    max-width: 220px;
    border: 1px solid transparent;
    border-bottom: 0;
    border-radius: var(--bdk-radius-sm) var(--bdk-radius-sm) 0 0;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
  }
  .bdk-open-tab:hover { background: var(--bdk-surface); border-color: var(--bdk-border); }
  .bdk-open-tab--current {
    background: #e8eff6;
    border-color: var(--bdk-border);
    color: var(--bdk-text);
    font-weight: 500;
  }
  .bdk-open-tab-link {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0 4px 0 10px;
    color: inherit;
    text-decoration: none;
  }
  .bdk-open-tab-link .bi { flex: 0 0 auto; font-size: var(--bdk-fs); }
  .bdk-open-tab-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .bdk-open-tab-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin: 0 4px 0 0;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: none;
    color: var(--bdk-text-muted);
    cursor: pointer;
  }
  .bdk-open-tab-close .bi { font-size: var(--bdk-fs-xs); }
  .bdk-open-tab-close:hover { background: rgba(0, 0, 0, 0.08); color: var(--bdk-text); }
  .bdk-open-tab-link:focus-visible,
  .bdk-open-tab-close:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--bdk-primary-bg); }
}

/* Полоска «Открытые» не печатается (альбомный A4 карточки, печатная страница QR-кода). */
@media print {
  .bdk-open-tabs { display: none !important; }
}


/* ============================================================
   H. Волна 2 — CRM-списки (клиенты, договоры, задачи, реестр звонков, рынок)
   Plans/feature_ui_dense_1c_2026-10-08/wave2_lists.md, «Группа 2».

   Только добавление: правила общих классов bdk-1c-* выше не менялись. Корень экрана —
   .bdk-1c.bdk-1c-crm.bdk-1c-<экран>; всё плотное — только от 992 px, ниже вид прежний.
   ============================================================ */

/* Невидимый чекбокс «Ещё фильтры ▾» (на телефоне и планшете он не нужен вообще). */
.bdk-1c-crm .bdk-1c-more-check {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  opacity: 0;
  pointer-events: none;
}

/* Обёртка имени и меток клиента: на телефоне и планшете «прозрачна» (карточка строится как раньше). */
.bdk-1c-contacts .bdk-1c-namebox { display: contents; }

/* Пояснение под заголовком, нужное только компьютеру: на телефоне и планшете скрыто целиком. */
@media (max-width: 991.98px) {
  .bdk-1c-crm .bdk-page-subtitle:has(> .bdk-1c-only-lg) { display: none; }
}

@media (min-width: 992px) {

  /* H1. Шапка на общем партиале {% page_header %}: заголовок и пояснение в одну строку,
     главная кнопка слева, поиск справа (то же, что .bdk-1c-headline / .bdk-1c-cmdbar). */
  .bdk-1c-crm [data-page-header] .bdk-page-title {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0 12px;
  }
  .bdk-1c-crm [data-page-header] .bdk-page-subtitle { margin: 0; }
  .bdk-1c-crm [data-page-header] .bdk-page-actions {
    align-items: center;
    gap: 6px;
    position: relative;
  }
  .bdk-1c-crm [data-page-header] .bdk-page-actions > .btn-primary { order: -1; }
  .bdk-1c-crm [data-page-header] .bdk-page-actions > .bdk-1c-search { order: 9; }
  /* Страницы на crm/_base.html лежат в .container — плотному виду нужна вся ширина. */
  .bdk-crm.container:has(> .bdk-1c) { max-width: none; padding: 0 !important; }

  /* H2. «Ещё фильтры ▾» на чекбоксе: редкие поля скрыты, пока не раскрыты (или применены). */
  .bdk-1c-crm .bdk-1c-morefilter { display: none; }
  .bdk-1c-crm .bdk-1c-more-check:checked ~ .bdk-1c-filters-body .bdk-1c-morefilter,
  .bdk-1c-crm .bdk-1c-more-check:checked ~ .bdk-1c-morefilter { display: block; }
  .bdk-1c-crm .bdk-1c-more-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 4px;
    color: var(--bdk-primary);
    font-size: var(--bdk-fs);
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
  }
  .bdk-1c-crm .bdk-1c-more-label .bi { font-size: var(--bdk-fs-xs); transition: transform var(--bdk-transition-slow); }
  .bdk-1c-crm .bdk-1c-more-check:checked ~ .bdk-1c-filters-body .bdk-1c-more-label .bi,
  .bdk-1c-crm .bdk-1c-more-check:checked ~ .bdk-1c-more-label .bi { transform: rotate(180deg); }
  .bdk-1c-crm .bdk-1c-more-check:focus-visible ~ .bdk-1c-filters-body .bdk-1c-more-label,
  .bdk-1c-crm .bdk-1c-more-check:focus-visible ~ .bdk-1c-more-label {
    outline: none;
    box-shadow: 0 0 0 3px var(--bdk-primary-bg);
    border-radius: var(--bdk-radius-sm);
  }

  /* H3. Ячейки CRM-таблиц: одна строка, длинное — многоточие (полный текст в title);
     метки, даты и числа (--full, -num) не обрезаются никогда. Ширины колонок — под экран. */
  .bdk-1c-crm .bdk-1c-table { table-layout: fixed; width: 100%; }
  .bdk-1c-crm .bdk-1c-table .bdk-1c-cell {
    white-space: nowrap;
    vertical-align: middle;
  }
  .bdk-1c-crm .bdk-1c-table .bdk-1c-cell:not(.bdk-1c-cell--full):not(.bdk-1c-num) {
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .bdk-1c-crm .bdk-1c-table .bdk-1c-cell-menu { overflow: visible; }
  .bdk-1c-crm .bdk-1c-table thead th { overflow: hidden; text-overflow: ellipsis; }
  .bdk-1c-crm .bdk-1c-table thead th.bdk-1c-th-menu { overflow: visible; }
  .bdk-1c-crm .bdk-1c-found { margin: 0 0 4px !important; }
  /* Рамка без overflow: иначе липкая шапка прилипает к панели, а не к верху окна. */
  .bdk-1c-crm .bdk-1c-tablepanel { overflow: visible; }

  /* H4. Клиенты */
  .bdk-1c-contacts .bdk-cl-col-name { width: 29%; }
  .bdk-1c-contacts .bdk-cl-col-phone { width: 175px; }
  .bdk-1c-contacts .bdk-cl-col-manager { width: 120px; }
  .bdk-1c-contacts .bdk-cl-col-deals { width: 80px; }
  .bdk-1c-contacts .bdk-cl-col-touch { width: 175px; }
  .bdk-1c-contacts .bdk-cl-col-task { width: auto; }
  .bdk-1c-contacts .bdk-cl-table .bdk-1c-th-menu { width: 44px; }
  .bdk-1c-contacts .bdk-cl-table .bdk-cl-th { padding: 6px 10px; }
  .bdk-1c-contacts .bdk-cl-table .bdk-cl-th-deals,
  .bdk-1c-contacts .bdk-cl-table .bdk-cl-cell-deals { text-align: center; }
  .bdk-1c-contacts .bdk-cl-table .bdk-cl-cell-name,
  .bdk-1c-contacts .bdk-cl-table .bdk-cl-cell-task { max-width: none; }
  .bdk-1c-contacts .bdk-1c-namebox { display: flex; align-items: center; gap: 8px; min-width: 0; }
  .bdk-1c-contacts .bdk-cl-name {
    flex: 0 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .bdk-1c-contacts .bdk-cl-badges { flex: 0 0 auto; flex-wrap: nowrap; margin-top: 0; }
  .bdk-1c-contacts .bdk-cl-badge-source { display: none; }
  @container (min-width: 1300px) {
    .bdk-1c-contacts .bdk-cl-badge-source { display: inline-block; max-width: 120px; }
  }
  .bdk-1c-contacts .bdk-cl-sub { display: inline; margin-left: 6px; }
  .bdk-1c-contacts .bdk-cl-cell-touch .bdk-cl-sub { display: none; }
  @container (min-width: 1300px) {
    .bdk-1c-contacts .bdk-cl-col-touch { width: 250px; }
    .bdk-1c-contacts .bdk-cl-cell-touch .bdk-cl-sub { display: inline; }
  }
  .bdk-1c-contacts .bdk-cl-task { display: inline-block; max-width: calc(100% - 110px); vertical-align: bottom; }
  .bdk-1c-contacts .bdk-cl-email { display: none; }
  .bdk-1c-contacts .bdk-cl-cell-phone .bdk-cl-dash { display: inline; }
  .bdk-1c-contacts .bdk-cl-menu-toggle { width: 28px; height: 28px; border-radius: var(--bdk-radius-sm); }
  .bdk-1c-contacts .bdk-cl-menu-body { right: 4px; top: 100%; }
  .bdk-1c-contacts .bdk-cl-menu-btn { min-height: 32px; line-height: 32px; font-size: var(--bdk-fs); border-radius: var(--bdk-radius-sm); }
  .bdk-1c-contacts .bdk-cl-menu-body .bdk-cl-menu-btn { white-space: nowrap; }
  .bdk-1c-contacts .bdk-cl-scope-hint { margin: 0 0 4px; }
}

/* H5. Договоры. Плитки-счётчики по статусам — раньше инлайн-стили шаблона; вид на телефоне тот же. */
.bdk-contract-stat {
  flex: 1 1 140px;
  min-width: 130px;
  padding: 12px 14px;
  background: var(--bdk-surface, #fff);
  border: 1px solid var(--ios-separator, rgba(60, 60, 67, 0.12));
  border-radius: var(--bdk-radius, 12px);
  color: inherit;
}
.bdk-contract-stat--on { background: #eaf3ff; }

@media (min-width: 992px) {
  /* Плитки на компьютере — компактные вкладки: «Подписан 12» в одну строку, подчёркнута текущая. */
  .bdk-1c-contracts .bdk-contract-stat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    min-width: 0;
    padding: 0 14px;
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
  }
  .bdk-1c-contracts .bdk-contract-stat > div { margin: 0; }
  .bdk-1c-contracts .bdk-contract-count-num { font-size: var(--bdk-fs); font-weight: 500; }
  .bdk-1c-contracts .bdk-contract-stat.active { border-bottom-color: var(--bdk-primary); color: var(--bdk-primary); }
  .bdk-1c-contracts .bdk-contract-stat:hover { color: var(--bdk-primary); }
  .bdk-1c-contracts .bdk-contract-filters {
    margin-bottom: 8px !important;
    gap: 6px 10px !important;
    background: var(--bdk-surface);
    border: 1px solid var(--bdk-panel-border);
    border-radius: var(--bdk-radius);
  }
  .bdk-1c-contracts .bdk-contract-filters .form-label { margin: 0 0 2px; font-size: var(--bdk-fs-sm); line-height: 16px; }
  .bdk-1c-contracts .bdk-contract-filters .form-select { width: 170px; }
  .bdk-1c-contracts .bdk-contract-panel { margin-bottom: 12px !important; overflow: visible; }
  .bdk-1c-contracts .bdk-contract-panel > .bdk-panel-body { padding: 0; }
  .bdk-1c-contracts .bdk-table-wrap { overflow: visible; }
  .bdk-1c-contracts .bdk-contract-pager { padding: 8px 12px; margin-top: 0 !important; border-top: 1px solid var(--bdk-border); }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-title { width: 22%; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-kind { width: 218px; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-deal { width: 20%; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-manager { width: 110px; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-status { width: 110px; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-pep { width: 80px; }
  .bdk-1c-contracts .bdk-1c-table .bdk-ct-col-date { width: 100px; }
  .bdk-1c-contracts .bdk-1c-table .badge { font-size: var(--bdk-fs-sm); font-weight: 400; }
}

/* H6. Реестр звонков. Ширины колонок и отступ панели фильтров — раньше инлайн-стили шаблона
   (width: 9rem… и p-3); значения на телефоне и планшете те же. */
.bdk-calls-filters { padding: 1rem; }
.bdk-calls-col-date { width: 9rem; }
.bdk-calls-col-kind { width: 8rem; }
.bdk-calls-col-client { min-width: 12rem; }
.bdk-calls-col-broker { min-width: 9rem; }
.bdk-calls-col-wait { width: 5rem; }
.bdk-calls-col-dur { width: 5rem; }
.bdk-calls-col-back { width: 9rem; }
.bdk-calls-col-topic { min-width: 14rem; }
.bdk-calls-col-rec { width: 13rem; }

@media (min-width: 992px) {
  .bdk-1c-calls .table-responsive.bdk-panel {
    overflow: visible;
    border: 1px solid var(--bdk-panel-border);
    container-type: inline-size;
  }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-date { width: 126px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-kind { width: 182px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-client { width: 13%; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-broker { width: 120px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-wait { width: 100px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-dur { width: 66px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-back { width: 168px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-topic { width: auto; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table .bdk-calls-col-rec { width: 140px; min-width: 0; }
  .bdk-1c-calls .bdk-1c-table thead th { padding: 6px 10px; }
  /* Тип и исход, клиент и номер, брокер и линия — в одну строку вместо двух. */
  .bdk-1c-calls .bdk-calls-kind > .small,
  .bdk-1c-calls .bdk-calls-client > .small,
  .bdk-1c-calls .bdk-calls-broker > .small { display: inline; margin: 0 0 0 6px !important; }
  .bdk-1c-calls .bdk-calls-kind .badge { vertical-align: middle; }
  /* Исход («Звонки на это направление запрещены»), подпись записи (до 42 знаков) и ФИО брокера
     режутся многоточием по общему правилу ячеек, полное — в подсказке: раньше ячейки были
     «необрезаемыми» и наезжали на соседние колонки (16.10.2026). */
  .bdk-1c-calls .bdk-calls-client > .small { display: none; }
  .bdk-1c-calls .bdk-calls-broker > .small { display: none; }
  @container (min-width: 1300px) {
    .bdk-1c-calls .bdk-calls-client > .small,
    .bdk-1c-calls .bdk-calls-broker > .small { display: inline; }
    .bdk-1c-calls .bdk-1c-table .bdk-calls-col-client { width: 22%; }
    .bdk-1c-calls .bdk-1c-table .bdk-calls-col-broker { width: 17%; }
  }
  .bdk-1c-calls .bdk-calls-client > .text-nowrap:not(.small) { display: inline; }
  .bdk-1c-calls .bdk-call-rec { display: block; height: 30px; width: 100%; }
  .bdk-1c-calls .bdk-1c-table .badge { font-size: var(--bdk-fs-sm); font-weight: 400; }
  .bdk-1c-calls .bdk-1c-filters-body .form-control[type=date] { width: 150px; }
  .bdk-1c-calls .bdk-1c-filters-body > .row { margin: 0; }
}

/* H7. Задачи. Срок одним блоком — вид на телефоне прежний (раньше значок и подпись были
   двумя элементами flex с тем же промежутком). */
.bdk-task-due { display: inline-flex; align-items: center; gap: 6px; }

@media (min-width: 992px) {
  .bdk-1c-tasks { --bdk-task-cols: 14px minmax(0, 2.2fr) minmax(0, 1.7fr) 190px 175px 92px 100px; }

  /* Счётчики «Просрочено / Сегодня / 7 дней» — компактные вкладки-фильтры в одну строку. */
  .bdk-1c-tasks .bdk-wb-summary { gap: 6px; margin-bottom: 8px; }
  .bdk-1c-tasks .bdk-wb-stat {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 0 14px;
    border-radius: var(--bdk-radius-sm);
    box-shadow: none;
    text-align: left;
  }
  .bdk-1c-tasks .bdk-wb-stat-label { order: -1; display: inline; margin: 0; font-size: var(--bdk-fs-sm); color: var(--bdk-text); }
  .bdk-1c-tasks .bdk-wb-stat-num { display: inline; font-size: var(--bdk-fs); font-weight: 500; letter-spacing: 0; }

  /* Фильтры: одна строка; поиск и «Найти» справа. */
  .bdk-1c-tasks .bdk-1c-taskfilters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 18px;
    margin-bottom: 8px;
    padding: 8px 12px;
    box-shadow: none;
  }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-row { margin: 0; align-items: center; gap: 8px; }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-label {
    flex: 0 0 auto;
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
  }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-row:has(.bdk-filter-search) { order: 8; margin-left: auto; }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-row:has(.bdk-filter-search) .bdk-filter-label { display: none; }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-search input { min-height: 32px; height: 32px; width: 260px; }
  .bdk-1c-tasks .bdk-1c-taskfilters .form-select { min-height: 32px; height: 32px; width: 200px; }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-reset-row { order: 9; margin: 0; }
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-chip { min-height: 28px; padding: 0 10px; font-size: var(--bdk-fs-sm); }

  /* Таблица-сетка: шапка колонок, строки-группы, строки задач. */
  .bdk-1c-tasks .bdk-panel-body { padding: 0; }
  .bdk-1c-tasks .bdk-task-colhead {
    grid-template-columns: var(--bdk-task-cols);
    gap: 0 10px;
    padding: 6px 12px;
    position: sticky;
    top: 48px;
    z-index: 5;
    background: #f3f4f6;
    box-shadow: inset 0 -1px 0 var(--bdk-border);
    border-radius: var(--bdk-radius) var(--bdk-radius) 0 0;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 500;
    line-height: 20px;
  }
  .bdk-1c-tasks .bdk-wb-group-head {
    padding: 4px 12px;
    min-height: 34px;
    background: var(--bdk-bg);
    border-bottom: 1px solid var(--bdk-border);
  }
  .bdk-1c-tasks .bdk-wb-group + .bdk-wb-group .bdk-wb-group-head { border-top: 1px solid var(--bdk-border); }
  .bdk-1c-tasks .bdk-wb-group-title {
    font-size: var(--bdk-fs);
    text-transform: none;
    letter-spacing: 0;
    color: var(--bdk-text);
  }
  .bdk-1c-tasks .bdk-wb-group-title.danger { color: var(--bdk-danger-text); }
  .bdk-1c-tasks .bdk-wb-empty { padding: 6px 12px; }
  .bdk-1c-tasks .bdk-task-item {
    display: grid;
    grid-template-columns: var(--bdk-task-cols);
    gap: 0 10px;
    align-items: center;
    position: relative;
    min-height: 34px;
    padding: 0 12px;
    font-size: var(--bdk-fs);
  }
  .bdk-1c-tasks .bdk-task-item:last-child { border-bottom: 1px solid var(--bdk-border); }
  .bdk-1c-tasks .bdk-wb-group:last-child .bdk-task-item:last-child { border-bottom: 0; }
  .bdk-1c-tasks .bdk-task-content,
  .bdk-1c-tasks .bdk-task-meta { display: contents; }
  .bdk-1c-tasks .bdk-priority-dot { grid-column: 1; grid-row: 1; }
  .bdk-1c-tasks .bdk-task-title-link { grid-column: 2; grid-row: 1; min-width: 0; display: block; }
  /* Вся строка — ссылка на карточку задачи; Ctrl+клик и средняя кнопка — новая вкладка. */
  .bdk-1c-tasks .bdk-task-title-link::after { content: ""; position: absolute; inset: 0; }
  .bdk-1c-tasks .bdk-task-title { display: block; margin: 0; font-size: var(--bdk-fs); }
  .bdk-1c-tasks .bdk-task-rels {
    grid-column: 3;
    grid-row: 1;
    position: relative;
    z-index: 1;
    min-width: 0;
    margin: 0;
    flex-wrap: nowrap;
    overflow: hidden;
    font-size: var(--bdk-fs);
  }
  .bdk-1c-tasks .bdk-task-rel { white-space: nowrap; overflow-wrap: normal; max-width: 60%; flex: 0 1 auto; }
  .bdk-1c-tasks .bdk-task-due { grid-column: 4; grid-row: 1; white-space: nowrap; font-size: var(--bdk-fs); color: var(--bdk-text); }
  .bdk-1c-tasks .bdk-task-sep { display: none; }
  /* Волна 4: «Последнее движение» — отдельная колонка между сроком и автором. */
  .bdk-1c-tasks .bdk-task-move {
    grid-column: 5;
    grid-row: 1;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    font-size: var(--bdk-fs-sm);
  }
  .bdk-1c-tasks .bdk-task-move-text { overflow: hidden; text-overflow: ellipsis; }
  .bdk-1c-tasks .bdk-task-author {
    grid-column: 6;
    grid-row: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--bdk-fs-sm);
    color: var(--bdk-text-muted);
  }
  .bdk-1c-tasks .bdk-task-actions {
    grid-column: 7;
    grid-row: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
    position: relative;
    z-index: 2;
  }
  .bdk-1c-tasks .bdk-task-action-btn { width: 28px; height: 28px; font-size: var(--bdk-fs); border-width: 1px; }
  /* Волна 4: строка быстрой задачи, переключатель «Мне поручено / Я поручил», процент вовремя. */
  .bdk-1c-tasks .bdk-quick-task { padding: 6px 12px; margin-bottom: 8px; }
  .bdk-1c-tasks .bdk-quick-task .bdk-quick-main,
  .bdk-1c-tasks .bdk-quick-task .bdk-quick-due { display: inline-flex; vertical-align: middle; margin-top: 0; }
  .bdk-1c-tasks .bdk-quick-task .bdk-quick-main { width: 420px; max-width: 100%; margin-right: 12px; }
  .bdk-1c-tasks .bdk-quick-task :is(.form-control, .btn) { height: 28px; min-height: 28px; padding-top: 2px; padding-bottom: 2px; font-size: var(--bdk-fs-btn); }
  .bdk-1c-tasks .bdk-quick-task .bdk-chip { min-height: 28px; padding: 0 10px; }
  .bdk-1c-tasks .bdk-wb-roles { margin-bottom: 6px; }
  .bdk-1c-tasks .bdk-wb-roles .bdk-chip { min-height: 28px; padding: 0 10px; }
  .bdk-1c-tasks .bdk-wb-roles .btn { height: 28px; min-height: 28px; padding-top: 2px; padding-bottom: 2px; font-size: var(--bdk-fs-btn); }
  .bdk-1c-tasks .bdk-wb-ontime { margin-bottom: 6px; }
}

/* H8. Рыночные объявления. Миниатюры и порядок полей фильтра — раньше инлайн-стили и порядок
   в разметке; вид на телефоне и планшете тот же. Площадь и комнаты стоят в разметке после
   «Ещё фильтры» (на компьютере их показывает раскрытая «Ещё»), поэтому порядок задан явно. */
.bdk-mk-thumb { width: 44px; height: 44px; object-fit: cover; border-radius: var(--bdk-radius, 12px); }
.bdk-mk-thumb--empty { background: rgba(60, 60, 67, 0.06); color: var(--ios-text-secondary, #8e8e93); }
.bdk-1c-market [data-dense-more="area"] { order: 1; }
.bdk-1c-market .bdk-mk-rooms { order: 2; }
.bdk-1c-market .bdk-filters-more { order: 3; }
.bdk-1c-market .bdk-mk-reset { order: 4; }
.bdk-mk-dup { background: var(--ios-accent-tint); color: var(--ios-accent); }

@media (min-width: 992px) {
  /* Панель фильтров: главный ряд — поиск, тип, сделка, район, цена; площадь, комнаты и
     остальное — под «Ещё фильтры ▾». */
  .bdk-1c-market .bdk-filter-bar { gap: 6px 10px; margin-bottom: 8px !important; box-shadow: none; }
  .bdk-1c-market .bdk-mk-search { order: -1; flex: 0 0 220px; width: 220px; }
  .bdk-1c-market .bdk-filter-bar > div[style*="min-width: 180px"] { min-width: 140px !important; }
  .bdk-1c-market .bdk-filter-search input { height: 32px; min-height: 32px; }
  .bdk-1c-market .bdk-range-pair .form-control { width: 90px; }
  .bdk-1c-market .bdk-range-label { font-size: var(--bdk-fs-sm); }
  .bdk-1c-market .bdk-filters-more { width: auto; }
  .bdk-1c-market .bdk-filters-more[open] { width: 100%; }
  .bdk-1c-market .bdk-filters-more > summary { min-height: 32px; padding: 0; font-size: var(--bdk-fs); }
  .bdk-1c-market .bdk-filters-more-body { padding-top: 4px; }
  .bdk-1c-market .bdk-filters-more-body .form-select { max-width: 240px; }
  .bdk-1c-market .bdk-1c-morefilter,
  .bdk-1c-market [data-dense-more] { display: none !important; }
  .bdk-1c-market .bdk-filters-more[open] ~ .bdk-1c-morefilter,
  .bdk-1c-market .bdk-filters-more[open] ~ [data-dense-more] { display: flex !important; }
  .bdk-1c-market .bdk-filters-more[open] ~ [data-dense-more="area"] { order: 4; }
  .bdk-1c-market .bdk-filters-more[open] ~ .bdk-mk-rooms { order: 5; }
  .bdk-1c-market .bdk-filters-more[open] ~ .bdk-mk-reset { order: 6; }
  .bdk-1c-market .bdk-chip { min-height: 28px; padding: 0 10px; border-radius: var(--bdk-radius-sm); }
  .bdk-1c-market .bdk-filters-more-body .form-check { min-height: 32px !important; }

  /* Список. Заголовок «Найдено» и чипы — компактнее. */
  .bdk-1c-market #bdk-list-zone > .text-bdk-muted { margin-bottom: 4px !important; }
  .bdk-1c-market #bdk-list-zone > .bdk-filter-chips-row:not(:has(*)) { display: none; }
  .bdk-1c-market .bdk-table-wrap { overflow: visible; }
  .bdk-1c-market .bdk-1c-table { table-layout: fixed; width: 100%; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell { white-space: nowrap; vertical-align: middle; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell:not(.bdk-1c-cell--full):not(.bdk-1c-num) { overflow: hidden; text-overflow: ellipsis; }
  .bdk-1c-market .bdk-1c-table thead th { overflow: hidden; text-overflow: ellipsis; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell > div { display: inline; margin: 0 0 0 6px !important; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell .mt-1 { margin: 0 !important; }
  .bdk-1c-market .bdk-mk-col-photo { width: 40px; }
  .bdk-1c-market .bdk-mk-col-date { width: 100px; }
  .bdk-1c-market .bdk-mk-col-text { width: auto; }
  .bdk-1c-market .bdk-mk-col-dup { width: 92px; }
  .bdk-1c-market .bdk-mk-col-type { width: 13%; }
  .bdk-1c-market .bdk-mk-col-district { width: 10%; }
  .bdk-1c-market .bdk-mk-col-area { width: 92px; }
  .bdk-1c-market .bdk-mk-col-price { width: 142px; }
  .bdk-1c-market .bdk-mk-col-contact { width: 14%; }
  .bdk-1c-market .bdk-mk-col-parse { width: 100px; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell > .bdk-mk-id { display: none; }
  @container (min-width: 1300px) {
    .bdk-1c-market .bdk-mk-col-date { width: 170px; }
    .bdk-1c-market .bdk-1c-table .bdk-1c-cell > .bdk-mk-id { display: inline; margin-left: 8px !important; }
    .bdk-1c-market .bdk-mk-col-type { width: 16%; }
    .bdk-1c-market .bdk-mk-col-contact { width: 17%; }
  }
  .bdk-1c-market .bdk-mk-thumb { width: 26px; height: 26px; border-radius: var(--bdk-radius-sm); }
  .bdk-1c-market .bdk-qv-hover { display: inline-flex; vertical-align: middle; }
  .bdk-1c-market .bdk-1c-table .badge { font-size: var(--bdk-fs-sm); font-weight: 400; }
  .bdk-1c-market .bdk-1c-table .bdk-1c-cell--full .badge { vertical-align: middle; }
}

/* ============================================================
   I. Волна 2 — группа 3: показы и подборки
   Plans/feature_ui_dense_1c_2026-10-08/wave2_lists.md, «Группа 3».

   Только добавление: общие bdk-1c-* и разделы выше не менялись. Всё плотное — только от 992 px,
   ниже вид прежний (карточки). Корень экрана — .bdk-1c.bdk-1c-crm.bdk-1c-<экран>.
   ============================================================ */

/* Подборки: таблица только на компьютере, на телефоне и планшете — прежние карточки. */
.bdk-1c-selections .bdk-sel-table-wrap { display: none; }

@media (min-width: 992px) {

  /* I1. Показы. Колонки: время · объект · клиент · сделка · [брокер] · статус · итог · действия. */
  .bdk-1c-showings { --bdk-sh-cols: 52px minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.1fr) 112px 88px 146px; }
  .bdk-1c-showings .bdk-sh-panel--sup { --bdk-sh-cols: 52px minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1.1fr) 112px 112px 88px 146px; }
  .bdk-1c-showings .bdk-sh-panel { padding: 0; }

  /* Переключатель «Все / Мои» в командной строке: сегмент 32 px. */
  .bdk-1c-showings .bdk-sh-scope--cmd { margin: 0; gap: 4px; }
  .bdk-1c-showings .bdk-sh-scope-btn {
    min-height: 32px;
    padding: 0 14px;
    border-radius: var(--bdk-radius-sm);
    font-size: var(--bdk-fs);
  }

  /* Шапка колонок: липкая, как у таблиц. */
  .bdk-1c-showings .bdk-sh-colhead {
    grid-template-columns: var(--bdk-sh-cols);
    gap: 0 10px;
    padding: 6px 12px;
    position: sticky;
    top: 48px;
    z-index: 5;
    background: #f3f4f6;
    box-shadow: inset 0 -1px 0 var(--bdk-border);
    border-radius: var(--bdk-radius) var(--bdk-radius) 0 0;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 500;
    line-height: 20px;
  }
  .bdk-1c-showings .bdk-sh-colhead > span { min-width: 0; white-space: nowrap; }

  /* Строки-группы: день («Сегодня, 08.10», «Пт, 10.10») и блок «Без итога». */
  .bdk-1c-showings .bdk-sh-group + .bdk-sh-group { margin-top: 0; }
  .bdk-1c-showings .bdk-sh-group--today > .bdk-sh-group-head,
  .bdk-1c-showings .bdk-sh-group--tomorrow > .bdk-sh-group-head,
  .bdk-1c-showings .bdk-sh-group--week > .bdk-sh-group-head { display: none; }
  .bdk-1c-showings .bdk-sh-dayhead,
  .bdk-1c-showings .bdk-sh-group--no_outcome > .bdk-sh-group-head {
    align-items: center;
    min-height: 34px;
    padding: 4px 12px;
    background: var(--bdk-bg);
    border-top: 1px solid var(--bdk-border);
    border-bottom: 1px solid var(--bdk-border);
    color: var(--bdk-text);
    font-size: var(--bdk-fs);
    font-weight: 500;
  }
  .bdk-1c-showings .bdk-sh-group:first-of-type > .bdk-sh-dayhead:first-child { border-top: 0; }
  .bdk-1c-showings .bdk-sh-group--no_outcome > .bdk-sh-group-head { display: flex; flex-wrap: nowrap; gap: 8px; }
  .bdk-1c-showings .bdk-sh-group--no_outcome .bdk-sh-group-title {
    font-size: var(--bdk-fs);
    color: var(--bdk-warning-text);
  }
  .bdk-1c-showings .bdk-sh-group-count { font-size: var(--bdk-fs-sm); }
  .bdk-1c-showings .bdk-sh-group-hint {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
    color: var(--bdk-text-muted);
  }

  /* «ещё N»: на компьютере раскрыто скриптом, ссылка не нужна. */
  .bdk-1c-showings .bdk-more.bdk-sh-more--expanded > summary { display: none; }

  /* Строка показа — сетка. */
  .bdk-1c-showings .bdk-sh-row {
    display: grid;
    grid-template-columns: var(--bdk-sh-cols);
    gap: 0 10px;
    align-items: center;
    min-height: 34px;
    padding: 0 12px;
    font-size: var(--bdk-fs);
    border-top: 0;
    border-bottom: 1px solid var(--bdk-border);
  }
  .bdk-1c-showings .bdk-sh-row[data-row-href] { cursor: pointer; }
  .bdk-1c-showings .bdk-sh-row:hover,
  .bdk-1c-showings .bdk-sh-row.bdk-1c-row--current { background: var(--bdk-primary-bg); }
  .bdk-1c-showings .bdk-sh-row > * { min-width: 0; }
  .bdk-1c-showings .bdk-sh-when { min-width: 0; font-size: var(--bdk-fs); font-variant-numeric: tabular-nums; white-space: nowrap; }
  .bdk-1c-showings .bdk-sh-when-date { display: none; }
  .bdk-1c-showings .bdk-sh-main,
  .bdk-1c-showings .bdk-sh-client,
  .bdk-1c-showings .bdk-sh-deal,
  .bdk-1c-showings .bdk-sh-broker {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .bdk-1c-showings .bdk-sh-main { display: block; }
  .bdk-1c-showings .bdk-sh-object { display: inline; font-size: var(--bdk-fs); font-weight: 400; }
  .bdk-1c-showings .bdk-sh-loc { margin-left: 4px; font-size: var(--bdk-fs-sm); color: var(--bdk-text-muted); }
  .bdk-1c-showings .bdk-sh-client a,
  .bdk-1c-showings .bdk-sh-deal a { color: var(--bdk-primary); text-decoration: none; }
  .bdk-1c-showings .bdk-sh-client a:hover,
  .bdk-1c-showings .bdk-sh-deal a:hover { text-decoration: underline; }
  .bdk-1c-showings .bdk-sh-broker { font-size: var(--bdk-fs); color: var(--bdk-text); }

  /* Метки статуса и итога не обрезаются. */
  .bdk-1c-showings .bdk-sh-status,
  .bdk-1c-showings .bdk-sh-outcome { white-space: nowrap; overflow: visible; }
  .bdk-1c-showings .bdk-sh-badge {
    display: inline-block;
    padding: 1px 8px;
    border: 1px solid var(--bdk-border);
    border-radius: var(--bdk-radius-sm);
    background: #fff;
    color: var(--bdk-text);
    font-size: var(--bdk-fs-sm);
    line-height: 18px;
    white-space: nowrap;
  }
  .bdk-1c-showings .bdk-sh-badge--plan { color: var(--bdk-primary); background: var(--bdk-primary-bg); border-color: transparent; }
  .bdk-1c-showings .bdk-sh-badge--warn { color: var(--bdk-warning-text); background: var(--bdk-warning-bg); border-color: transparent; }

  /* Действия: «Отметить итог» и значок «Открыть сделку» по 28 px. */
  .bdk-1c-showings .bdk-sh-actions { gap: 6px; justify-content: flex-end; }
  .bdk-1c-showings .bdk-sh-act {
    min-height: 28px;
    padding: 0 10px;
    border-radius: var(--bdk-radius-sm);
    font-size: var(--bdk-fs-sm);
  }
  .bdk-1c-showings .bdk-sh-act--deal { width: 28px; padding: 0; }
  .bdk-1c-showings .bdk-sh-act-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .bdk-1c-showings .bdk-1c-total { border-radius: 0 0 var(--bdk-radius) var(--bdk-radius); justify-content: flex-start; }
}

@media (min-width: 992px) {

  /* I2. Подборки. Колонки таблицы. */
  .bdk-1c-selections .bdk-sel-col-name { width: auto; }
  .bdk-1c-selections .bdk-sel-col-client { width: 26%; }
  .bdk-1c-selections .bdk-sel-col-count { width: 96px; }
  .bdk-1c-selections .bdk-sel-col-sent { width: 136px; }
  .bdk-1c-selections .bdk-sel-col-views { width: 100px; }
  .bdk-1c-selections .bdk-sel-col-link { width: 110px; }
  .bdk-1c-selections .bdk-sel-col-date { width: 108px; }
  .bdk-1c-selections .bdk-sel-table .bdk-1c-th-menu { width: 44px; }
  .bdk-1c-selections .bdk-sel-name { color: var(--bdk-primary); text-decoration: none; }
  .bdk-1c-selections .bdk-sel-name:hover { text-decoration: underline; }
  .bdk-1c-selections .bdk-sel-table .bdk-1c-cell-menu a { text-decoration: none; }

  /* Меню строки «⋯»: пункты — Открыть, Редактировать, ссылка клиенту, мессенджеры. */
  .bdk-1c-crm.bdk-1c-selections .bdk-1c-table .bdk-1c-cell.bdk-1c-cell-menu { position: relative; overflow: visible; }
  .bdk-1c-selections .bdk-sel-menu { position: static; }
  .bdk-1c-selections .bdk-sel-menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: var(--bdk-radius-sm);
    color: var(--bdk-text-muted);
    cursor: pointer;
    list-style: none;
    user-select: none;
  }
  .bdk-1c-selections .bdk-sel-menu-toggle::-webkit-details-marker { display: none; }
  .bdk-1c-selections .bdk-sel-menu-toggle::marker { content: ""; }
  .bdk-1c-selections .bdk-sel-menu-toggle:hover,
  .bdk-1c-selections .bdk-sel-menu[open] > .bdk-sel-menu-toggle { background: var(--bdk-primary-bg); color: var(--bdk-primary); }
  .bdk-1c-selections .bdk-sel-menu-toggle:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--bdk-primary-bg); }
  .bdk-1c-selections .bdk-sel-menu-body {
    position: absolute;
    right: 4px;
    top: 100%;
    z-index: 30;
    min-width: 260px;
    padding: 4px;
    background: var(--bdk-surface);
    border: 1px solid var(--bdk-border);
    border-radius: var(--bdk-radius);
    box-shadow: var(--bdk-shadow);
    text-align: left;
    white-space: nowrap;
  }
  .bdk-1c-selections .bdk-sel-menu-btn {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    min-height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: var(--bdk-radius-sm);
    background: none;
    color: var(--bdk-text);
    font-size: var(--bdk-fs);
    line-height: 32px;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
  }
  .bdk-1c-selections .bdk-sel-menu-btn:hover { background: var(--bdk-primary-bg); color: var(--bdk-primary); }
  .bdk-1c-selections .bdk-sel-menu-btn .bi { flex: 0 0 auto; color: var(--bdk-text-muted); }
  .bdk-1c-selections .bdk-sel-menu-note {
    display: block;
    padding: 6px 10px;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    white-space: normal;
  }
}

@media (min-width: 992px) {
  .bdk-1c-selections .bdk-1c-total { justify-content: flex-start; gap: 8px; }
}

/* Показы: в шапке рядом с заголовком лежит только переключатель «Все / Мои» для компьютера;
   на телефоне и планшете свой переключатель стоит под заголовком, пустой блок действий убираем. */
@media (max-width: 991.98px) {
  .bdk-1c-showings [data-page-header] .bdk-page-actions { display: none; }
}

/* ============================================================
   Волна 2 — лиды (08.10.2026)
   Plans/feature_ui_dense_1c_2026-10-08/wave2_lists.md, «Группа 3».

   Только добавление: правила общих классов bdk-1c-* и разделов выше не менялись.
   Корень — .bdk-1c.bdk-1c-crm.bdk-1c-leads; плотный вид — только от 992 px, ниже вид прежний
   (карточки, шапка и форма фильтров телефона остаются на своих классах d-lg-none).
   ============================================================ */

@media (min-width: 992px) {

  /* L1. Порядок на экране: фильтры → чипы → вкладки-статусы → таблица (вкладки в разметке стоят
     первыми — так их видит телефон). */
  .bdk-1c-leads-stack { display: flex; flex-direction: column; }
  .bdk-1c-leads-stack > * { order: 4; }
  .bdk-1c-leads-stack > .bdk-1c-filters { order: 1; }
  .bdk-1c-leads-stack > .bdk-filter-chips-row { order: 2; margin-bottom: 8px !important; }
  /* Фишки у строки поиска (волна 4): над панелью фильтров, а не под ней. */
  .bdk-1c-leads-stack > .bdk-filter-chips-row.bdk-1c-searchchips { order: 0; }
  .bdk-1c-leads-stack > .bdk-1c-leads-tabs { order: 3; margin-bottom: 0 !important; }
  .bdk-1c-leads .bdk-1c-leads-tabs .bdk-1c-tabs { margin-bottom: 8px; }
  /* Счётчик на вкладке — просто число, без «пилюли». */
  .bdk-1c-leads .bdk-1c-tab .bdk-lead-tab-count {
    margin-left: 4px;
    padding: 0;
    background: none;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
  }
  .bdk-1c-leads .bdk-1c-tab.active .bdk-lead-tab-count { color: var(--bdk-primary); }

  /* Поля фильтров: «Сортировка» с длинными подписями, «Тип» и «Источник» чуть шире обычных 140 px. */
  .bdk-1c-leads .bdk-1c-filters-body #ld-sort { width: 200px; }
  .bdk-1c-leads .bdk-1c-filters-body :is(#ld-type, #ld-source, #ld-pipeline, #ld-stage) { width: 160px; }

  /* L2. Ширины колонок: короткие метки не режем, комментарий забирает остаток. */
  /* 150 px: «Квалифицирован» (124 px с полями метки) не помещался в 112 px и наезжал на «Поступил» (16.10.2026). */
  .bdk-1c-leads .bdk-ld-col-status { width: 150px; }
  .bdk-1c-leads .bdk-ld-col-age { width: 138px; }
  .bdk-1c-leads .bdk-ld-col-name { width: 19%; }
  .bdk-1c-leads .bdk-ld-col-phone { width: 200px; }
  .bdk-1c-leads .bdk-ld-col-source { width: 11%; }
  .bdk-1c-leads .bdk-ld-col-stage { width: 128px; }
  .bdk-1c-leads .bdk-ld-col-owner { width: 132px; }
  .bdk-1c-leads .bdk-ld-col-comment { width: auto; }
  .bdk-1c-leads .bdk-1c-leads-table .bdk-1c-th-menu { width: 44px; }
  .bdk-1c-leads .bdk-1c-leads-table .badge { font-size: var(--bdk-fs-sm); font-weight: 400; vertical-align: middle; }
  /* Специфичность выше общего правила кнопок плотного вида (.bdk-1c .btn:not(...):not(...)),
     иначе оно держит 32 px. */
  .bdk-1c.bdk-1c-leads .bdk-1c-leads-table .btn.btn-claim-lead:not(.btn-link):not(.modal .btn) {
    height: 28px; min-height: 28px; padding: 0 10px; font-size: var(--bdk-fs-sm); line-height: 1;
  }
  .bdk-1c-leads .bdk-1c-claim-form { margin: 0; }
  /* Свободный лид (ничей) — тонкая синяя черта слева, как рамка карточки в списке телефона. */
  .bdk-1c-leads .bdk-1c-lead-tr--pool > td:first-child { box-shadow: inset 3px 0 0 var(--bdk-primary); }

  /* L3. Имя — ссылка на карточку. */
  .bdk-1c-leads .bdk-1c-lead-name { color: var(--bdk-text); font-weight: 500; text-decoration: none; }
  .bdk-1c-leads .bdk-1c-lead-name:hover { color: var(--bdk-primary); text-decoration: underline; }

  /* L4. Телефон — зелёная ссылка-звонок: щелчок = tel:, то же, что кнопка «Позвонить» в карточке. */
  .bdk-1c-leads .bdk-1c-phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 24px;
    padding: 0 8px;
    margin-left: -8px;
    border-radius: var(--bdk-radius-sm);
    color: var(--bdk-success-ink);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
    white-space: nowrap;
  }
  .bdk-1c-leads .bdk-1c-phone:hover,
  .bdk-1c-leads .bdk-1c-phone:focus-visible { background: var(--bdk-success-bg); color: var(--bdk-success-ink); outline: none; }
  .bdk-1c-leads .bdk-1c-phone-plain { color: var(--bdk-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }

  /* L4а. «▶» прослушать запись (№61): контурная кнопка 24 px рядом с телефоном; плеер - всплывающая
     панелька под ячейкой, чтобы строка не прыгала по высоте. */
  .bdk-1c.bdk-1c-leads .bdk-1c-leads-table .btn.bdk-1c-play:not(.btn-link):not(.modal .btn) {
    height: 24px; min-height: 24px; width: 24px; min-width: 24px; padding: 0;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: var(--bdk-fs-sm); line-height: 1; vertical-align: middle; margin-left: 2px;
  }
  .bdk-1c-leads .bdk-1c-play .bi { font-size: var(--bdk-fs); }
  .bdk-1c-leads .bdk-1c-cell-play { position: relative; overflow: visible; }
  .bdk-1c-leads .bdk-1c-cell-play:has(.bdk-1c-play-slot > *) { z-index: 6; }
  .bdk-1c-leads .bdk-1c-play-slot:empty { display: none; }
  .bdk-1c-leads .bdk-1c-play-slot {
    position: absolute; top: 100%; left: 0; z-index: 6;
    background: var(--bdk-surface, #fff); border: 1px solid var(--bdk-border);
    border-radius: var(--bdk-radius); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
    padding: 4px 6px;
  }
  .bdk-1c-leads .bdk-lead-player { display: flex; align-items: center; gap: 4px; }
  .bdk-1c-leads .bdk-lead-player audio { width: 300px; height: 32px; }
  .bdk-1c-leads .bdk-lead-player-close {
    width: 24px; height: 24px; padding: 0; border: 0; border-radius: var(--bdk-radius-sm);
    background: transparent; color: var(--bdk-text-muted); font-size: var(--bdk-fs-sm); cursor: pointer;
  }
  .bdk-1c-leads .bdk-lead-player-close:hover { background: var(--bdk-primary-bg); color: var(--bdk-primary); }

  /* L5. «Поступил»: возраст; ждёт первого ответа дольше нормы — красным с «!». */
  .bdk-1c-leads .bdk-1c-age { white-space: nowrap; }
  .bdk-1c-leads .bdk-1c-age-mark { display: none; margin-left: 3px; font-weight: 500; }
  .bdk-1c-leads .bdk-1c-age[data-late="late"] { color: #c1170b; font-weight: 500; }
  .bdk-1c-leads .bdk-1c-age[data-late="late"] .bdk-1c-age-mark { display: inline; }
  /* Сутки и старше без ответа (порог — LEAD_RESPONSE_STALE_MINUTES, views/leads.py): серый, 400, значок. */
  .bdk-1c-leads .bdk-1c-age-old { display: none; margin-left: 4px; color: var(--bdk-text-muted); font-weight: 400; }
  .bdk-1c-leads .bdk-1c-age[data-late="stale"] { color: var(--bdk-text-muted); font-weight: 400; }
  .bdk-1c-leads .bdk-1c-age[data-late="stale"] .bdk-1c-age-old { display: inline; }
  /* «Мой лид» — слово «Вы» обычным весом (раньше — полужирное имя). */
  .bdk-1c-leads .bdk-1c-owner-me { font-weight: 400; }
  .bdk-1c-leads .bdk-1c-age[data-late="warn"] { color: #8a5200; }
  .bdk-1c-leads .bdk-1c-stale { margin-left: 4px; font-size: var(--bdk-fs-sm); }
  /* 3–6 дней без касания — серые, красные только 7+ (решение владельца 10.10, план типографики §5 п. 5). */
  .bdk-1c-leads .bdk-1c-stale--warm { color: var(--bdk-text-muted); }
  .bdk-1c-leads .bdk-1c-stale--cold { color: #c1170b; }

  /* L6. Стадия воронки — спокойная серая метка. */
  .bdk-1c-leads .bdk-1c-lead-stage { background: #f3f4f6; color: var(--bdk-text); border: 1px solid var(--bdk-border); }

  /* L7. Меню строки «⋯»: плотное, раскрывается влево-вниз от последней колонки. */
  .bdk-1c-leads .bdk-lr-menu-toggle { width: 28px; height: 28px; border-radius: var(--bdk-radius-sm); font-size: var(--bdk-fs-lg); }
  .bdk-1c-leads .bdk-lr-menu-body { top: 100%; left: auto; right: 4px; min-width: 210px; border-radius: var(--bdk-radius); }
  .bdk-1c-leads .bdk-lr-menu-btn { min-height: 32px; line-height: 32px; font-size: var(--bdk-fs); border-radius: var(--bdk-radius-sm); white-space: nowrap; }
  /* Ячейка с открытым меню поднимается над соседними строками (иначе меню прячется под ними). */
  .bdk-1c-leads .bdk-1c-cell-menu:has(details[open]) { position: relative; z-index: 6; }
}

/* ============================================================
   Волна 3 — карточки (09.10.2026)
   Plans/feature_ui_dense_1c_2026-10-08/wave3_cards.md.

   Только добавление: правила общих классов bdk-1c-* и разделов выше не менялись.
   Корни — .bdk-1c.bdk-1c-lead (карточка лида) и .bdk-1c.bdk-1c-contact (карточка клиента);
   плотный вид — только от 992 px, ниже вид прежний (нижняя панель лида, меню «…» клиента,
   значки-кнопки клиента остаются на своих классах).
   ============================================================ */

@media (min-width: 992px) {

  /* C1. Лид: шапка — не карточка, а строка заголовка и командная строка под ней. */
  .bdk-1c-lead .lead-header.bdk-1c-leadhead {
    padding: 0;
    margin-bottom: 10px;
    background: none;
    box-shadow: none;
    border-radius: 0;
  }
  .bdk-1c-lead .bdk-1c-leadhead .lead-header-row {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .bdk-1c-lead .bdk-1c-leadhead .lead-header-main { flex: 0 0 auto; }
  .bdk-1c-lead .bdk-1c-leadhead .lead-name {
    font-size: var(--bdk-fs-title);
    font-weight: 500;
    line-height: 1.3;
    margin: 0;
  }
  .bdk-1c-lead .bdk-1c-alarms { margin-top: 4px; gap: 8px !important; }
  .bdk-1c-lead .bdk-1c-alarms:not(:has(.badge)) { display: none !important; }

  /* C2. Лид: командная строка. Кнопки .lead-qbtn — как кнопки плотного вида (28 px, контур, вес 400). */
  .bdk-1c-lead .bdk-lc-actions { flex-wrap: wrap; }
  .bdk-1c-lead .lead-qbtn {
    min-height: 28px;
    height: 28px;
    padding: 0 10px;
    font-size: var(--bdk-fs-btn);
    font-weight: 400;
    line-height: 1;
    border-radius: var(--bdk-radius-sm);
  }
  .bdk-1c-lead .lead-qbtn:not(.primary):not(.bdk-lc-wa) {
    background: var(--bdk-surface);
    border-color: var(--bdk-border);
    color: var(--bdk-text);
  }
  .bdk-1c-lead .lead-qbtn:not(.primary):not(.bdk-lc-wa):hover { background: var(--bdk-bg); border-color: var(--bdk-border-strong); }
  .bdk-1c-lead .lead-qbtn.primary { order: -1; }
  .bdk-1c-lead .lead-qbtn.bdk-lc-wa { width: 28px; padding: 0; }
  .bdk-1c-lead .bdk-lc-alert {
    margin-top: 8px;
    padding: 6px 12px;
    border-radius: var(--bdk-radius-sm);
    font-size: var(--bdk-fs);
  }

  /* C3. Лид и клиент: телефон шапки-документа — зелёная ссылка-звонок. */
  .bdk-1c-lead .bdk-1c-phone,
  .bdk-1c-contact .bdk-1c-phone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 24px;
    padding: 0 8px;
    margin-left: -8px;
    border-radius: var(--bdk-radius-sm);
    color: var(--bdk-success-ink);
    font-weight: 400;
    font-variant-numeric: tabular-nums;
    text-decoration: none;
    white-space: nowrap;
  }
  .bdk-1c-lead .bdk-1c-phone:hover,
  .bdk-1c-lead .bdk-1c-phone:focus-visible,
  .bdk-1c-contact .bdk-1c-phone:hover,
  .bdk-1c-contact .bdk-1c-phone:focus-visible { background: var(--bdk-success-bg); color: var(--bdk-success-ink); outline: none; }
  .bdk-1c-lead .bdk-1c-docvalue .bdk-lr-stage-dot { margin-right: 4px; }

  /* C4. Лид: блоки карточки — панели плотного вида (граница вместо тени). */
  .bdk-1c-lead .lead-fields {
    padding: 10px 14px;
    border: 1px solid var(--bdk-panel-border);
    border-radius: var(--bdk-radius);
    box-shadow: none;
  }
  .bdk-1c-lead .lead-fields.mb-3 { margin-bottom: 10px !important; }
  .bdk-1c-lead .lead-fields h2 {
    margin: 0 0 6px;
    font-size: var(--bdk-fs);
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--bdk-text);
  }
  .bdk-1c-lead .lead-dl { row-gap: 2px; }
  .bdk-1c-lead .lead-dl dt,
  .bdk-1c-lead .lead-dl dd { padding-top: 3px; padding-bottom: 3px; }

  /* C5. Клиент: общий партиал шапки — тот же вид, что у списков и сделки. */
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-title--back {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px 8px;
  }
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-back { width: 28px; height: 28px; font-size: var(--bdk-fs-lg); }
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-title h1 { overflow-wrap: anywhere; }
  /* Подпись под именем и метки ролей — в шапке-документе ниже (там же согласие ПДн). */
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-subtitle { display: none; }
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-actions {
    position: relative;
    align-items: center;
    gap: 6px;
  }
  /* Без видимого телефона главной на компьютере становится «Касание». */
  .bdk-1c-contact .bdk-1c-contacthead .btn.bdk-1c-promote:not(.modal .btn) {
    background: var(--bdk-primary);
    border-color: var(--bdk-primary);
    color: #fff;
  }
  .bdk-1c-contact .bdk-1c-contacthead .btn.bdk-1c-promote:not(.modal .btn):hover { background: var(--bdk-primary-hover); border-color: var(--bdk-primary-hover); }
  /* Меню «⋯» (общий партиал) на компьютере подписано «Ещё ▾». */
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-more-toggle:not(.modal .btn) { width: auto; padding: 0 12px; }
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-more-toggle > .bi { display: none; }
  .bdk-1c-contact .bdk-1c-contacthead .bdk-page-more-toggle::after { content: "Ещё ▾"; font-weight: 400; }

  /* C6. Клиент: вкладки — компактные; число на вкладке просто цифра, без «пилюли». */
  .bdk-1c-contact .bdk-1c-tabs { margin-top: 0; }
  .bdk-1c-contact .bdk-1c-tab { justify-content: flex-start; font-weight: 400; }
  .bdk-1c-contact .bdk-1c-tab.active { font-weight: 500; }
  .bdk-1c-contact .bdk-1c-tab .c360-badge,
  .bdk-1c-contact .bdk-1c-tab.active .c360-badge {
    margin-left: 2px;
    padding: 0;
    background: none;
    color: var(--bdk-text-muted);
    font-size: var(--bdk-fs-sm);
    font-weight: 400;
  }
  .bdk-1c-contact .bdk-1c-tab.active .c360-badge { color: var(--bdk-primary); }

  /* C7. Клиент: панели вкладок — граница вместо тени, плотные отступы. */
  .bdk-1c-contact .c360-panel {
    padding: 10px 14px;
    margin-bottom: 10px;
    border: 1px solid var(--bdk-panel-border);
    border-radius: var(--bdk-radius);
  }
  .bdk-1c-contact .c360-panel h2 { font-size: var(--bdk-fs); margin-bottom: 6px; }

  /* C8. Лид: длинный пункт «Карточка клиента: ФИО» переносится внутри меню, а не выходит за край
     (общее .bdk-1c .bdk-dl-menu-btn держит nowrap, а у меню лида max-width: 100%). Только меню лида. */
  .bdk-1c-lead .bdk-lc-menu .bdk-dl-menu-btn {
    white-space: normal;
    overflow-wrap: anywhere;
    height: auto;
    line-height: 1.35;
    padding-top: 6px;
    padding-bottom: 6px;
  }
}

/* ====================================================================
   Компактные кнопки и поля строк команд (решение владельца 10.10.2026).
   ЕДИНОЕ место высоты кнопок на компьютере (>= 992 px); телефон — iOS, не трогаем.
     обычная кнопка:      28 px, кегль 13, отступы 4 x 10, значок 14;
     мелкая (в таблицах): 24 px, кегль 12, отступы 2 x 8 — меньше нельзя;
     вес текста у ВСЕХ кнопок 400 (главную выделяет заливка, а не жирность);
     поля и списки в строках команд и фильтров — те же 28 px (формы редактирования не трогаем).
   !important — потому что выше по файлу и в object_lists.css высоты (32 px) заданы
   десятком более узких селекторов; этот блок их сводит к одному правилу.
   ==================================================================== */
@media (min-width: 992px) {
  .btn:not(.btn-lg):not(.btn-link):not(.btn-close):not(.rounded-circle),
  .bdk-1c .bdk-1c-more-toggle,
  .bdk-1c .bdk-dc-menu > .bdk-dl-menu-toggle,
  .bdk-1c-crm .bdk-1c-more-label,
  .bdk-1c-objects .bdk-filter-bar .bdk-chip,
  .bdk-1c-objects .bdk-nb-filter__trigger,
  .bdk-1c-showings .bdk-sh-scope-btn {
    height: 28px !important;
    min-height: 28px !important;
    padding: 4px 10px !important;
    font-size: var(--bdk-fs-btn) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    gap: 5px;
  }
  /* Кнопки-ссылки с тач-таргетом 44 px («Связать», «+ задача») — тоже 28 на компьютере. */
  .btn.bdk-touch-auto { min-height: 28px !important; height: 28px !important; padding: 4px 8px !important; font-size: var(--bdk-fs-btn) !important; font-weight: 400 !important; }
  .btn .bi, .bdk-1c .bdk-1c-more-toggle .bi, .bdk-1c-objects .bdk-filter-bar .bdk-chip .bi { font-size: var(--bdk-fs); }
  /* Сплит «Новый участок ▾» и «⋯» страницы: узкая квадратная часть той же высоты. */
  .bdk-1c-objects .bdk-page-actions .dropdown-toggle-split { min-width: 28px !important; padding: 0 6px !important; }
  .bdk-1c-objects .bdk-page-more-toggle { width: 28px !important; padding: 0 !important; justify-content: center; }
  .bdk-1c-objects .bdk-view-toggle { height: 28px; }
  .bdk-1c-objects .bdk-view-toggle a { height: 24px; }

  /* Мелкие кнопки в строках таблиц: «Взять», «⋯», круглые действия справа. */
  table .btn:not(.btn-lg):not(.btn-link):not(.btn-close):not(.rounded-circle),
  .bdk-1c.bdk-1c-leads .bdk-1c-leads-table .btn.btn-claim-lead:not(.btn-link):not(.modal .btn) {
    height: 24px !important;
    min-height: 24px !important;
    padding: 2px 8px !important;
    font-size: var(--bdk-fs-sm) !important;
    line-height: 1.2 !important;
  }
  table .btn .bi { font-size: var(--bdk-fs-sm); }
  .bdk-1c .bdk-dl-menu-toggle,
  .bdk-1c-leads .bdk-lr-menu-toggle,
  .bdk-1c-objects .bdk-1c-table .bdk-icon-btn,
  .bdk-1c-objects .bdk-1c-table .bdk-quick-view-btn {
    width: 24px !important;
    height: 24px !important;
    min-height: 24px !important;
  }
  .bdk-1c .bdk-1c-more-toggle, .bdk-1c .bdk-dc-menu > .bdk-dl-menu-toggle { width: auto !important; }

  /* Поля и списки в строках команд и панелях фильтров — 28 px. */
  .bdk-1c :is(.bdk-1c-cmdbar, .bdk-1c-search, .bdk-1c-filters-body, .bdk-filter-bar, .bdk-1c-taskfilters, .bdk-contract-filters)
    :is(.form-control, .form-select, input[type=search], input[type=text], input[type=date], input[type=number]):not(textarea) {
    height: 28px !important;
    min-height: 28px !important;
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    font-size: var(--bdk-fs-btn) !important;
  }
  .bdk-1c .bdk-1c-filters-body .bdk-1c-flag { min-height: 28px; font-size: var(--bdk-fs-btn); }
  .bdk-1c-objects .bdk-filter-search input,
  .bdk-1c-tasks .bdk-1c-taskfilters .bdk-filter-search input,
  .bdk-1c-tasks .bdk-1c-taskfilters .form-select,
  .bdk-1c-market .bdk-filter-search input { height: 28px !important; min-height: 28px !important; font-size: var(--bdk-fs-btn) !important; }
  .bdk-1c-objects .bdk-filter-bar .form-select { padding-right: 2rem; }
}

/* ================================================================
   Проход 2б «плотнее» (решение владельца 14.10.2026, «Да, плотнее»;
   Plans/feature_ui_typography_2026-10-10/pass2). Только компьютер:
   строки таблиц и списков 34 → 30 px, шапка таблицы 32 → 28, пункты
   меню 32 → 28 — на экран помещается на 1–2 строки больше. Телефон не
   трогаем: там зоны нажатия 44 px (sidebar.css, site.css).
   ================================================================ */
@media (min-width: 992px) {
  .bdk-1c .bdk-1c-table .bdk-1c-cell { height: 30px; }
  .bdk-1c .bdk-1c-table thead th { padding-top: 4px; padding-bottom: 4px; }
  .bdk-1c-tasks .bdk-task-item { min-height: 30px; }
  .bdk-1c-tasks .bdk-wb-group-head { min-height: 30px; padding-top: 3px; padding-bottom: 3px; }
  .bdk-1c-showings .bdk-sh-dayhead,
  .bdk-1c-showings .bdk-sh-group--no_outcome > .bdk-sh-group-head { min-height: 30px; padding-top: 3px; padding-bottom: 3px; }
  .bdk-1c-showings .bdk-sh-row { min-height: 30px; }

  /* Лиды: плашка «Дозвон до клиента» (139 px) вылезала из колонки «Стадия»
     (128 px) на «Ответственного» — было и до прохода 2б. Колонка шире за счёт
     «Телефона» (у номера запас ~40 px), поля плашки уже; совсем длинное
     название — многоточием, полное — в подсказке (title уже есть). */
  .bdk-1c-leads .bdk-ld-col-phone { width: 164px; }
  .bdk-1c-leads .bdk-ld-col-stage { width: 164px; }
  .bdk-1c-leads .bdk-1c-lead-stage { max-width: 100%; padding: 2px 6px; overflow: hidden; text-overflow: ellipsis; }
  /* Статус лида и глаз «Наблюдение» — в одну строку: статус сжимается до многоточия
     (полный — в подсказке ячейки), глаз не сжимается (16.10.2026). */
  .bdk-1c-leads .bdk-1c-lead-status-line { display: flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; }
  .bdk-1c-leads .bdk-1c-lead-status-line > .badge { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .bdk-1c-leads .bdk-1c-lead-status-line > [data-shadow-kind] { flex: none; }

  .bdk-sidebar-link { min-height: 28px; padding-top: 3px; padding-bottom: 3px; }
  .bdk-sidebar-child { min-height: 28px; padding-top: 3px; padding-bottom: 3px; }
  .bdk-sidebar-section-label { padding-top: 5px; padding-bottom: 1px; }
}


/* ============================================================
   Волна 4 — отчёты в одной рамке «параметры → Сформировать»
   (решение владельца 16.10.2026; Plans/feature_ui_dense_1c_2026-10-08/wave4_reports.md)

   Шаблон рамки — reports/_frame.html, корень — .bdk-1c.bdk-rf. Базовые правила
   (панель параметров, графики, печать) работают на любой ширине; плотные
   размеры — только от 992 px, ниже вид прежний. Размеры текста — токены шкалы,
   жирность не выше 500.
   ============================================================ */

.bdk-rf-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 8px 16px;
  padding: 10px 14px;
  margin-bottom: 8px;
  overflow: visible;
}
.bdk-rf-params {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 16px;
  flex: 1 1 auto;
  min-width: 0;
}
.bdk-rf-fields,
.bdk-rf-period,
.bdk-rf-dates {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px 12px;
}
.bdk-rf-field { display: flex; flex-direction: column; gap: 2px; margin: 0; }
.bdk-rf-label { color: var(--bdk-text-muted); font-size: var(--bdk-fs-sm); font-weight: 400; }
.bdk-rf-field .form-control,
.bdk-rf-field .form-select { min-width: 140px; }

/* Быстрые кнопки периода — переключатели: выбирают, но не применяют. */
.bdk-rf-presets { display: flex; flex-wrap: wrap; gap: 4px; }
.bdk-rf-preset-input {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  opacity: 0;
  pointer-events: none;
}
.bdk-rf-preset {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 4px 10px;
  border: 1px solid var(--bdk-border-strong);
  border-radius: var(--bdk-radius-sm, 8px);
  background: var(--bdk-surface);
  color: var(--bdk-text);
  font-size: var(--bdk-fs-sm);
  font-weight: 400;
  line-height: 1.2;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
}
.bdk-rf-preset:hover { border-color: var(--bdk-primary); }
.bdk-rf-preset-input:checked + .bdk-rf-preset {
  border-color: var(--bdk-primary);
  background: var(--bdk-primary-bg);
  color: var(--bdk-primary);
  font-weight: 500;
}
.bdk-rf-preset-input:focus-visible + .bdk-rf-preset {
  outline: 2px solid var(--bdk-primary);
  outline-offset: 1px;
}

/* Сохранить вариант / Мои варианты — выпадающие панели. */
.bdk-rf-variants { display: flex; flex-wrap: wrap; gap: 6px; }
.bdk-rf-pop { position: relative; }
.bdk-rf-pop > summary { list-style: none; cursor: pointer; }
.bdk-rf-pop > summary::-webkit-details-marker { display: none; }
.bdk-rf-pop-body {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  z-index: 30;
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 300px;
  max-width: calc(100vw - 32px);
  padding: 10px 12px;
  background: var(--bdk-surface);
  border: 1px solid var(--bdk-panel-border);
  border-radius: var(--bdk-radius);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.12);
}
.bdk-rf-pop-hint { margin: 0; font-size: var(--bdk-fs-sm); }
.bdk-rf-variant-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.bdk-rf-variant { display: flex; align-items: flex-start; justify-content: space-between; gap: 6px; flex-wrap: wrap; }
.bdk-rf-variant-open { flex: 1 1 auto; min-width: 0; padding: 4px 0; overflow-wrap: anywhere; }
.bdk-rf-variant-edit > summary { list-style: none; cursor: pointer; padding: 4px 6px; color: var(--bdk-text-muted); }
.bdk-rf-variant-edit > summary::-webkit-details-marker { display: none; }
.bdk-rf-variant-edit[open] { flex: 0 0 100%; }
.bdk-rf-variant-edit-body { display: flex; flex-direction: column; gap: 6px; padding: 4px 0 6px; }
.bdk-rf-variant-form { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.bdk-rf-variant-form .form-control { flex: 1 1 140px; min-width: 0; }
.bdk-rf-variant-empty { margin: 0; font-size: var(--bdk-fs-sm); }

/* Строка «Excel · Печать» над результатом. */
.bdk-rf-output { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin: 0 0 8px; }
.bdk-rf-print-params { display: none !important; }

/* Графики над таблицей. */
.bdk-rf-charts {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
.bdk-rf-chart { padding: 8px 12px; }
.bdk-rf-chart-title { margin: 0 0 4px; font-size: var(--bdk-fs); font-weight: 500; }

/* Результат: итоги и минусы. */
.bdk-rf-result .bdk-1c-table tfoot td {
  background: #f3f4f6;
  border-top: 1px solid var(--bdk-border-strong);
  font-weight: 500;
}
.bdk-rf-result .bdk-1c-table .bdk-neg,
.bdk-rf-result .bdk-1c-table .text-danger { color: var(--bdk-danger-text); }

@media (min-width: 992px) {
  .bdk-1c.bdk-rf .bdk-rf-panel { padding: 8px 12px; }
  .bdk-1c.bdk-rf .bdk-rf-submit { min-width: 120px; }
  .bdk-1c.bdk-rf .bdk-rf-preset { min-height: 30px; padding: 3px 9px; }
  .bdk-1c.bdk-rf .bdk-rf-output .btn { background: transparent; border-color: transparent; color: var(--bdk-text-muted); }
  .bdk-1c.bdk-rf .bdk-rf-output .btn:hover { color: var(--bdk-primary); background: var(--bdk-primary-bg); }
}

/* Печать: без меню и шапки сайта — заголовок, параметры строкой, график и таблица. */
@media print {
  .bdk-sidebar,
  .bdk-topbar,
  .bdk-breadcrumbs,
  .bdk-open-tabs,
  .bdk-report-switcher,
  .bdk-rf-panel,
  .bdk-rf-output,
  .bdk-rf .bdk-page-actions,
  .bdk-rf .alert,
  .bdk-bottom-nav,
  .bdk-fab-launcher,
  footer {
    display: none !important;
  }
  .bdk-has-sidebar .bdk-shell { margin-left: 0 !important; }
  .bdk-has-sidebar .bdk-content,
  .bdk-has-sidebar .bdk-content:has(.bdk-1c) { padding: 0 !important; }
  .bdk-rf .bdk-rf-print-params:not([hidden]) {
    display: block !important;
    margin: 0 0 8px;
    font-size: var(--bdk-fs-sm);
    color: var(--bdk-text-muted);
  }
  .bdk-rf .bdk-page-header { margin-bottom: 4px; }
  .bdk-rf .bdk-1c-table thead th { position: static !important; background: #f3f4f6 !important; }
  .bdk-rf .bdk-1c-table thead { display: table-header-group; }
  .bdk-rf .bdk-1c-table tr { page-break-inside: avoid; }
  .bdk-rf .bdk-panel { box-shadow: none !important; }
  .bdk-rf .bdk-chart-scroll { overflow: visible; }
  .bdk-rf .bdk-chart { min-width: 0; }
  .bdk-rf-result a { color: inherit !important; text-decoration: none !important; }
}
