/* «Тарифы и цены» — баги тестирования 23-09, карточки #71011841 (пп. 1–7, 16) и
   #71011842 (пп. 14, 15, 17). Файл подключается после app.css и после
   bugs_1909_price.css; все правила ограничены страницей `.admin-pricing-page`,
   чтобы не менять чужие экраны. Светлая плашка стоимости (#71579908) отсюда
   снята волной W5 (#71720631): её облик — канон `.price-panel` в components.css. */

/* пп. 3, 6, 7: стрелки числовых полей накладывались на единицу измерения и на
   само значение. Приём тот же, что у панели фильтров выплат (app.css): спиннеры
   не несут полезной нагрузки — значение вводится с клавиатуры. */
.admin-pricing-page input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

.admin-pricing-page input[type="number"]::-webkit-inner-spin-button,
.admin-pricing-page input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* п. 16: поясняющие тексты блоков были зажаты 640px и в широкой карточке
   обрывались на середине строки. */
.admin-pricing-page .page-sub {
  max-width: none;
}

/* ── Табличная компоновка блоков (#71011842, пп. 14, 15, 17) ────────────────
   Разрозненные карточки с полями заменены таблицами платформы: значения и
   единицы читаются столбцом, а не вразнобой. Новых цветов нет — только токены. */

/* Числовая колонка: узкая, по правому краю, поле живёт внутри клетки. */
.admin-pricing-page .pt-table__num {
  width: 180px;
  text-align: right;
  white-space: nowrap;
}

/* Таблицы страницы прокручиваются в своей рамке: на 390px страница не едет
   вбок, как и у списков с `.table-scroll` внутри `[data-list-page-content]`. */
.admin-pricing-page .table-scroll {
  max-width: 100%;
  overflow-x: auto;
}

.admin-pricing-page .pt-table__num .bp-field {
  display: inline-flex;
  justify-content: flex-end;
}

/* Поле цены с единицей в клетке не сжимается: без прежнего .bp-field у
   .input-unit не было минимальной ширины — на 390 поле схлопывалось до 14 px
   (ревью лендинга/тарифов, b118). Таблица прокручивается своей обёрткой. */
.admin-pricing-page .pt-table__num .input-unit { min-width: 132px; }

/* Поле с единицей (`.input-unit`) в клетке — своя сетка «число | единица». */
.admin-pricing-page .pt-table__num .bp-field.input-unit {
  display: inline-grid;
}

/* Строка-подзаголовок внутри таблицы оборудования: это группа параметров, а не
   данные, поэтому фон взят как у шапки таблицы. */
.admin-pricing-page .pt-table__section td {
  background: var(--n50);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--n500);
}

/* Выпадающий список режима категории не растягивается на всю клетку: строка
   таблицы читается ровно, как соседние значения. */
.admin-pricing-page .pt-select {
  width: 100%;
  max-width: 320px;
}

/* Скрывающиеся разделы базовой стоимости. Механика — нативный `details`;
   стрелка та же, что у раскрывающихся блоков платформы (chat-section). */
.admin-pricing-page .pt-group {
  border: 1px solid var(--brl);
  border-radius: var(--r3);
  background: var(--sf);
}

.admin-pricing-page .pt-group + .pt-group {
  margin-top: 10px;
}

.admin-pricing-page .pt-group__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  cursor: pointer;
  list-style: none;
}

.admin-pricing-page .pt-group__head::-webkit-details-marker {
  display: none;
}

.admin-pricing-page .pt-group__icon {
  display: inline-flex;
  flex: none;
}

.admin-pricing-page .pt-group__label {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 700;
}

.admin-pricing-page .pt-group__count {
  flex: none;
  font-size: 12px;
  color: var(--n400);
}

.admin-pricing-page .pt-group__chevron {
  display: inline-flex;
  flex: none;
  color: var(--n400);
  transition: transform .15s ease;
}

.admin-pricing-page .pt-group[open] .pt-group__chevron {
  transform: rotate(180deg);
}

/* Таблица внутри раздела не рисует вторую рамку: рамку держит сам раздел. */
.admin-pricing-page .pt-group > .table-scroll > .table {
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

/* Правила цены под темой (`:root:not([data-theme="dark"])` / `:root[data-theme="dark"]`)
   сняты (W5/W11, #71720631): облик — канон `.price-panel` в components.css. */
/* Сворачиваемая карточка прайса (решение интегратора 08-10, #71011842 п.17):
   `section.card > details > summary.dash-panel__head`. Шапка кита — flex, а
   у summary не в `display: list-item` штатный маркер пропадает — рисуем
   шеврон рамкой справа (без глифа), закрытая карточка без нижнего отступа. */
.admin-pricing-page summary.dash-panel__head { cursor: pointer; list-style: none; border-radius: var(--r1); }
.admin-pricing-page summary.dash-panel__head::-webkit-details-marker { display: none; }
.admin-pricing-page summary.dash-panel__head:focus-visible { outline: none; box-shadow: var(--ring); }
.admin-pricing-page summary.dash-panel__head::after {
  content: ""; flex: 0 0 auto; width: 8px; height: 8px; margin-right: 4px;
  border-right: 2px solid var(--text-muted); border-bottom: 2px solid var(--text-muted);
  transform: rotate(45deg); transition: transform .15s ease;
}
.admin-pricing-page details:not([open]) > summary.dash-panel__head { margin-bottom: 0; }
.admin-pricing-page details:not([open]) > summary.dash-panel__head::after { transform: rotate(-45deg); }
/* Ошибка поля с единицей: рамку и кольцо фокуса несёт обёртка
   (`.input-unit:has(> .input-error)`, кит), а кольцо ошибки самого поля
   (`[aria-invalid]:focus`) внутри обёртки рисовалось второй рамкой.
   Временно: дефект кита (#71720978 D), после правки components.css снять. */
.admin-pricing-page .input-unit > .input-error:is(:focus, :focus-visible) { box-shadow: none; outline: none; }
