/* manager.orders.table.css
   Единый визуальный стиль для таблиц списка заказов в менеджерке.

   Цель файла:
   - собрать в одном месте всё, что относится к виду таблицы "как в manager_layout";
   - использовать на разных страницах (manager tabs, поиск, внешние списки типа geocell_orders).

   Важно:
   - Стили максимально scoped через `.page-manager #managerContent` (чтобы не трогать другие разделы),
     но при этом есть общий fallback для таблиц вне manager_layout.
*/

/* =========================
   Base table (fallback)
   ========================= */
.production_table.manager-orders-table {    
  width: 100%;
  min-width: 320px;
  table-layout: fixed;
  font-size: 12px;
  margin: 0;
  /* «Карточные» строки как в manager_table: скругления видны только когда
     между строками есть фон страницы (а не общий фон таблицы). */
  border-collapse: separate;
  border-spacing: 0 8px;

  /* перебиваем глобальный `table { background: #fff; }`, чтобы зазоры между
     строками были цветом страницы, а не белым прямоугольником */
  background: transparent;
}

.production_table.manager-orders-table th,
.production_table.manager-orders-table td {
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Важно: правки веса шрифта (жирность) делаем ТОЛЬКО для страницы geocell_orders,
   чтобы не влиять на manager_layout и другие таблицы с таким же классом. */
.geocell-orders .production_table.manager-orders-table th {
  font-weight: 600;
}

.geocell-orders .production_table.manager-orders-table td {
  font-weight: 400;
}

.geocell-orders .production_table.manager-orders-table td strong {
  font-weight: 700;
}

/* geocell_orders: в колонках «Наименование» и «Толщина, мм» делаем текст легче и крупнее.
   Важно: увеличиваем только первый `<strong>` в ячейке (основной заголовок),
   чтобы badge'и ниже не становились гигантскими. */
.geocell-orders .production_table.manager-orders-table tbody td:nth-child(3) > strong,
.geocell-orders .production_table.manager-orders-table tbody td:nth-child(4) > strong {
  font-weight: 200;
  font-size: 24px;
  line-height: 1.1;
}

/* Толщина теперь обёрнута в `.gc-thickness-line`, поэтому правило выше (через `> strong`)
   на 4-ю колонку больше не срабатывает. Возвращаем крупный размер ТОЛЬКО числу толщины,
   а не бейджу перфорации. */
.geocell-orders .production_table.manager-orders-table tbody td:nth-child(4) .gc-thickness-line > strong {
  font-weight: 200;
  font-size: 24px;
  line-height: 1.1;
}

.geocell-orders .gc-product-img {
  display: block;
  width: 34px;
  height: 34px;
  object-fit: contain;
  opacity: .92;
}

/* чтобы увеличенная иконка не распирала колонку */
.geocell-orders .production_table.manager-orders-table th:nth-child(1),
.geocell-orders .production_table.manager-orders-table td:nth-child(1) {
  padding-left: 4px;
  padding-right: 4px;
}

@media (max-width: 760px) {
  .geocell-orders .gc-product-img {
    width: 28px;
    height: 28px;
  }
}

.geocell-orders .gc-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 4px;
}

.geocell-orders .gc-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.25;
  font-weight: 600;
  background: rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: rgba(0, 0, 0, 0.72);
  white-space: nowrap;
}

.geocell-orders .gc-badge--days {
  background: rgba(10, 132, 255, 0.10);
  border-color: rgba(10, 132, 255, 0.18);
  color: rgba(10, 132, 255, 0.92);
}

.geocell-orders .gc-badge b {
  font-weight: 700;
  color: rgba(0, 0, 0, 0.85);
}

.geocell-orders .gc-dates {
  font-size: 11px;
  line-height: 1.2;
}

.geocell-orders .gc-dates__row {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}

.geocell-orders .gc-dates__row + .gc-dates__row {
  margin-top: 4px;
}

.geocell-orders .gc-dates__label {
  color: rgba(0, 0, 0, 0.55);
  white-space: nowrap;
}

.geocell-orders .gc-dates__value {
  color: rgba(0, 0, 0, 0.72);
  white-space: nowrap;
}

.production_table.manager-orders-table th {
  white-space: nowrap;
}

/* Глобальный стиль задаёт `table thead { background: #e9e9e9; }`.
   Для manager-orders-table шапка должна быть без серой плашки. */
.production_table.manager-orders-table thead {
  background: transparent !important;
}

.production_table.manager-orders-table th {
  background: transparent !important;
}

/*
   Важно: таблица `manager-orders-table` используется не только внутри manager_layout.
   Поэтому базовые «manager-like» стили (без границ, компактные паддинги)
   задаём и вне `.page-manager`.
*/
.production_table.manager-orders-table th,
.production_table.manager-orders-table td {
  padding: 6px 8px;
  border: none;
  vertical-align: middle;
}

/* "Карточные" строки: белый фон у ячеек + рамки только по контуру строки,
   скругления на первой/последней ячейке. */
.production_table.manager-orders-table tbody td {
  background: #fff;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

.production_table.manager-orders-table tbody td:first-child {
  border-left: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 12px 0 0 12px;
  overflow: hidden;
  background-clip: padding-box;
}

.production_table.manager-orders-table tbody td:last-child {
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 0 12px 12px 0;
  overflow: hidden;
  background-clip: padding-box;
}

/* Перебиваем глобальные hover-эффекты `.production_table` (transform/box-shadow) */
.production_table.manager-orders-table tbody tr:hover,
.production_table.manager-orders-table tbody tr:hover td {
  transform: none !important;
  box-shadow: none !important;
}

/* =========================
   geocell_orders helpers (outside manager layout)
   ========================= */
.geocell-orders__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 6px 0 10px;
}

/* =========================
   production helpers (outside manager layout)
   ========================= */
/* production: раньше layout делил страницу 50/50 (таблица/график).
   Верхнюю таблицу убрали, поэтому для верхнего блока делаем одну колонку,
   чтобы не оставалась «пустая» половина сетки. */
.pv-scope .production-view.production_layout {
  grid-template-columns: 1fr;
  align-items: start;
}

/* Grid-элементы по умолчанию имеют `min-width: auto` и могут не ужиматься,
   что ломает ожидания по ширине колонок и скроллу. */
.pv-scope .production-view .production_table-container,
.pv-scope .production-view .production_chart-container {
  min-width: 0;
}

/* Для production часто много текста/инпутов — авто-раскладка ок,
   НО для таблиц pv-table нам нужна фиксированная раскладка, чтобы
   колонка Product Name реально забирала остаток ширины. */
.pv-scope .production-view .production_table.manager-orders-table:not(.pv-table) {
  table-layout: auto;
}

.pv-scope .production-view .production_table.manager-orders-table th {
  font-weight: 600;
}

.pv-scope .production-view .production_table.manager-orders-table td {
  font-weight: 400;
}

.pv-scope .production-view .production_table.manager-orders-table th,
.pv-scope .production-view .production_table.manager-orders-table td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-overflow: clip;
}

.pv-scope .production-view .pv-sub {
  font-size: 11px;
  color: #666;
  line-height: 1.25;
}

.pv-scope .production-view .pv-prod-imgwrap {
  position: relative;
  width: 35px;
  height: 35px;
}

.pv-scope .production-view .pv-prod-img {
  width: 35px;
  height: 35px;
  vertical-align: middle;
  object-fit: contain;
  display: block;
}

.pv-scope .production-view .pv-order-id {
  font-size: 11px;
  margin: 0;
  font-weight: 650;
}

.pv-scope .production-view .pv-density-cell {
  font-size: 16px;
  font-weight: 400;
}

.pv-scope .production-view .pv-density-sub {
  margin: 0;
  font-size: 11px;
  font-weight: 650;
  color: rgba(0, 0, 0, 0.60);
}

.pv-scope .production-view .pv-cell-center {
  text-align: center;
}

.pv-scope .production-view .pv-overdue {
  color: rgba(220, 2, 2, 0.92);
  font-weight: 650;
}

.pv-scope .production-view .pv-overdue__ico {
  display: inline-block;
  vertical-align: middle;
}

.pv-scope .production-view .pv-line-cell {
  font-size: 16px;
  font-weight: 650;
}

.pv-scope .production-view .pv-line-cell__label {
  font-size: 10px;
  font-weight: 650;
  color: rgba(0, 0, 0, 0.55);
  margin-left: 4px;
}

.pv-scope .gnr-modal__title {
  margin: 0;
  font-weight: 650;
  font-size: 14px;
}

.pv-scope .gnr-section {
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  padding-top: 10px;
  margin-top: 12px;
}

.pv-scope .gnr-section__title {
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 6px;
  color: rgba(17, 24, 39, 0.92);
}

/* production: NEW badge + плановая позиция (раньше были inline styles в production.php) */
.pv-scope .production-view .new-order-badge-overlay {
  position: absolute;
  top: -6px;
  right: -6px;
  background-color: crimson;
  color: #fff;
  font-size: 9px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 6px;
  z-index: 2;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.16);
  pointer-events: none;
}

.pv-scope .production-view .pos_input {
  border: none;
  padding: 0;
  margin: 0;
}

/* production: gnr-modal (edit modal) styles (moved from inline <style> in production.php)
   Важно: блокировка скролла делается классом на body.
   Используем уникальный префикс `pv-`, т.к. этот CSS подключается глобально через top_menu.php. */
body.pv-no-scroll {
  position: fixed;
  width: 100%;
  overflow: hidden;
}

.pv-scope .gnr-modal__overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
  z-index: 9998;
}

.pv-scope .gnr-modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 340px;
  max-width: 560px;
  width: calc(100% - 32px);
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, .25);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.pv-scope .gnr-modal__header {
  cursor: move;
  user-select: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: rgba(248, 250, 252, 0.92);
  color: rgba(17, 24, 39, 0.92);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.pv-scope .gnr-modal__titles {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.pv-scope .gnr-modal__subtitle {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.62);
  line-height: 1.3;
  white-space: normal;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  max-width: min(72vw, 420px);
}

.pv-scope .gnr-modal__body {
  padding: 14px;
}

.pv-scope .gnr-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 12px;
}

.pv-scope .gnr-field {
  display: grid;
  gap: 6px;
  margin-bottom: 10px;
  font-size: 14px;
}

.pv-scope #modalForm {
  /* Убираем глобальные стили form из style.css внутри модалки */
  background: transparent;
  padding: 0;
  margin: 0;
  border: 0;
  border-radius: 0;
}

.pv-scope .pv-modal-hint {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.55);
  line-height: 1.25;
}

.pv-scope .gnr-field input,
.pv-scope .gnr-field select {
  border: 1px solid #d1d5db;
  border-radius: 12px;
  padding: 9px 10px;
  font-size: 14px;
  outline: none;
}

.pv-scope .gnr-field input:focus,
.pv-scope .gnr-field select:focus {
  border-color: #6b7280;
  box-shadow: 0 0 0 3px rgba(107, 114, 128, .15);
}

.pv-scope .gnr-btn {
  appearance: none;
  border: none;
  border-radius: 12px;
  padding: 9px 14px;
  background: #1f2937;
  color: #fff;
  cursor: pointer;
  font-weight: 650;
  margin-top: 0;
}

.pv-scope .gnr-btn:hover {
  filter: brightness(.95);
}

.pv-scope .gnr-btn--ghost {
  background: #f3f4f6;
  color: #111827;
  border: 1px solid #d1d5db;
}

.pv-scope .gnr-btn--ghost:hover {
  background: #e5e7eb;
}

.pv-scope .gnr-modal__close {
  background: transparent;
  border: none;
  color: rgba(17, 24, 39, 0.92);
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 8px;
  margin: 0;
}

.pv-scope [hidden],
.pv-scope .gnr-modal[hidden],
.pv-scope .gnr-modal__overlay[hidden] {
  display: none !important;
}

/* production: компактные action-кнопки внутри таблицы (иначе глобальные стили button
   могут распирать колонку и провоцировать горизонтальный скролл). */
.pv-scope .production-view .production_table.manager-orders-table .open-modal-btn {
  margin-top: 0;
  padding: 6px 10px;
  font-size: 12px;
  line-height: 1.1;
  border-radius: 10px;
  background: rgba(10, 132, 255, 0.92);
  box-shadow: none;
  white-space: nowrap;
}

.pv-scope .production-view .production_table.manager-orders-table .open-modal-btn:hover {
  background: #005fa3;
}

/* production: ширины колонок — "Product Name" максимально широкая */
.pv-scope .production-view table.pv-table {
  /* фиксируем раскладку, чтобы действительно «продавить» широкую колонку Product Name */
  table-layout: fixed;
}

/* Важно: `.production-view .production_table.manager-orders-table` (3 класса)
   по специфичности перебивает `.production-view table.pv-table` (2 класса).
   Поэтому дублируем table-layout для pv-table с более специфичным селектором. */
.pv-scope .production-view .production_table.manager-orders-table.pv-table {
  table-layout: fixed;
}

/* pv-table--top: верхняя таблица на production сейчас удалена.
   Правила оставлены на случай возврата, но не используются (в разметке нет pv-table--top). */
.pv-scope .production-view table.pv-table--top {
  min-width: 1100px;
}

.pv-scope .production-view table.pv-table--group {
  /* Пользователь не хочет горизонтальный скролл у нижней (group) таблицы.
     Убираем искусственное расширение таблицы — она должна помещаться в контейнер. */
  min-width: 100%;
}

/* GROUP table: Product Name (3-я колонка) должна быть реально широкой.
   Ставим ей явную большую долю ширины, чтобы визуально доминировала,
   а второстепенные колонки остаются компактными. */
.pv-scope .production-view table.pv-table--group th:nth-child(3),
.pv-scope .production-view table.pv-table--group td:nth-child(3) {
  /* Product Name: делаем заметно уже (примерно «в 2 раза» по сравнению с прежними 60%),
     чтобы остальные колонки не уезжали в горизонтальный скролл. */
  width: 28%;
  min-width: 0;
  /* меньше «рваных» переносов (не делим слова как `anywhere`,
     но при необходимости разрешаем переносить длинные токены) */
  overflow-wrap: break-word;
  word-break: normal;
}

/* GROUP table: задаём доли ширины для всех колонок, чтобы таблица стабильно
   помещалась по ширине и не провоцировала горизонтальный скролл. */
.pv-scope .production-view table.pv-table--group th:nth-child(1),
.pv-scope .production-view table.pv-table--group td:nth-child(1) { width: 6%; }

.pv-scope .production-view table.pv-table--group th:nth-child(2),
.pv-scope .production-view table.pv-table--group td:nth-child(2) { width: 12%; }

/* 3-я колонка (Product Name) задаётся выше */

.pv-scope .production-view table.pv-table--group th:nth-child(4),
.pv-scope .production-view table.pv-table--group td:nth-child(4) { width: 8%; }

.pv-scope .production-view table.pv-table--group th:nth-child(5),
.pv-scope .production-view table.pv-table--group td:nth-child(5) { width: 12%; }

.pv-scope .production-view table.pv-table--group th:nth-child(6),
.pv-scope .production-view table.pv-table--group td:nth-child(6) { width: 10%; }

.pv-scope .production-view table.pv-table--group th:nth-child(7),
.pv-scope .production-view table.pv-table--group td:nth-child(7) { width: 8%; }

.pv-scope .production-view table.pv-table--group th:nth-child(8),
.pv-scope .production-view table.pv-table--group td:nth-child(8) { width: 8%; }

.pv-scope .production-view table.pv-table--group th:nth-child(9),
.pv-scope .production-view table.pv-table--group td:nth-child(9) { width: 6%; }

/* Убираем горизонтальный скролл именно у контейнера нижней group-таблицы.
   Если таблица вдруг на 1-2px шире из-за округлений — скролл не появится. */
.pv-scope .production-view .production_table-container.pv-table-container {
  overflow-x: hidden;
}

/* На узких экранах фиксированная раскладка может приводить к переполнению.
   Переключаемся на auto, чтобы браузер мог перераспределить ширины и убрать скролл. */
@media (max-width: 900px) {
  /* Перебиваем более специфичный `table-layout: fixed` для pv-table.
     На узких экранах даём браузеру свободу перераспределять ширины без горизонтального скролла. */
  .pv-scope .production-view .production_table.manager-orders-table.pv-table--group {
    table-layout: auto;
  }
}

/* production: современный KPI-блок (6 карточек) — переопределяем legacy стили из style.css
   только внутри production-view. */
.pv-scope .production-view .production_chart-container {
  /* legacy в style.css: фиксированная высота 400px + центрирование.
     Для KPI это выглядит «пусто» и съедает вертикаль. */
  height: auto;
  padding: 6px 2px;
  display: block;
}

/* =========================
   production: header/hero + day group head (modern, no borders)
   ========================= */
.pv-scope .pv-hero {
  margin: 0 0 10px;
  padding: 10px 14px;
  background: transparent;
}

.pv-scope .pv-hero__form {
  margin-top: 0;
  border: none;
  background: transparent;
  padding: 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.pv-scope .pv-hero__titleWrap {
  min-width: 0;
}

.pv-scope .pv-hero__title {
  margin: 0;
  font-size: 28px;
  line-height: 1.15;
  letter-spacing: -0.02em;
  font-weight: 650;
  color: rgba(17, 24, 39, 0.94);
}

.pv-scope .pv-hero__subtitle {
  margin-top: 4px;
  font-size: 13px;
  color: rgba(0, 0, 0, 0.58);
}

.pv-scope .pv-hero__controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}

.pv-scope .pv-hero__label {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.58);
}

.pv-scope .pv-hero__select {
  height: 34px;
  padding: 6px 10px;
  border-radius: 12px;
  border: none;
  background: rgba(255, 255, 255, 0.92);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
  font-size: 13px;
  outline: none;
  width: auto;
  min-width: 220px;
  max-width: 320px;
}

.pv-scope .pv-hero__select:focus {
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.18), 0 10px 24px rgba(15, 23, 42, 0.06);
}

.pv-scope .pv-hero__divider {
  height: 2px;
  margin-top: 10px;
  background: rgba(10, 132, 255, 0.22);
}

.pv-scope .pv-line-title {
  margin: 0 14px 8px;
  font-size: 13px;
  font-weight: 650;
  color: rgba(10, 132, 255, 0.88);
  text-align: right;
}

.pv-scope .production-view .pv-day-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin: 10px 0 14px;
  padding: 10px 12px;
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

/* production: когда по дню всё готово — в заголовке оставляем только дату
   (без KPI/статусов). Визуально делаем более компактно, «как строка». */
.pv-scope .production-view .pv-day-head.pv-day-head--ready {
  padding: 8px 12px;
  background: transparent;
  box-shadow: none;
}

.pv-scope .production-view .pv-day-head__main {
  min-width: 0;
}

.pv-scope .production-view .pv-day-head__date {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: rgba(17, 24, 39, 0.92);
}

.pv-scope .production-view .pv-day-head__status {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(0, 0, 0, 0.62);
  overflow-wrap: anywhere;
}

.pv-scope .production-view .pv-day-head__kpis {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 12px;
  align-items: start;
  min-width: 320px;
}

.pv-scope .production-view .pv-capacity__label {
  font-size: 12px;
  color: rgba(0, 0, 0, 0.70);
}

.pv-scope .production-view .pv-capacity__label strong {
  font-weight: 800;
  color: rgba(17, 24, 39, 0.92);
  font-variant-numeric: tabular-nums;
}

.pv-scope .production-view .pv-capacity__pct {
  color: rgba(0, 0, 0, 0.50);
  margin-left: 6px;
  font-variant-numeric: tabular-nums;
}

.pv-scope .production-view .pv-capacity__bar {
  margin-top: 6px;
  height: 8px;
  border-radius: 999px;
  background: rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.pv-scope .production-view .pv-capacity--kg .pv-capacity__fill {
  height: 100%;
  border-radius: 999px;
  background: rgba(52, 199, 89, 0.92);
}

.pv-scope .production-view .pv-capacity--m2 .pv-capacity__fill {
  height: 100%;
  border-radius: 999px;
  background: rgba(10, 132, 255, 0.92);
}

@media (max-width: 860px) {
  .pv-scope .production-view .pv-day-head {
    flex-direction: column;
  }
  .pv-scope .production-view .pv-day-head__kpis {
    min-width: 0;
    width: 100%;
  }
}

.pv-scope .production-view .production-stats-row {
  padding: 0;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 12px;
}

@media (max-width: 1100px) {
  .pv-scope .production-view .production-stats-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .pv-scope .production-view .production-stats-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.pv-scope .production-view .production-stat {
  text-align: left;
  padding: 12px 14px;
  border-radius: 14px;
  /* Без «рамок»: убираем border, оставляем лёгкую глубину через shadow */
  background: rgba(255, 255, 255, 0.86);
  border: none;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.07);
  transition: box-shadow 160ms ease;
}

.pv-scope .production-view .production-stat:hover {
  /* без scale (по запросу «современно») — только лёгкий акцент */
  transform: none;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.10);
}

/* production: таблица без рамок (оставляем «карточность» за счёт отступов и фона) */
.pv-scope .production-view .production_table.manager-orders-table tbody td {
  border-top: none;
  border-bottom: none;
}

.pv-scope .production-view .production_table.manager-orders-table tbody td:first-child {
  border-left: none;
}

.pv-scope .production-view .production_table.manager-orders-table tbody td:last-child {
  border-right: none;
}

.pv-scope .production-view .production-stat .stat-value {
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: rgba(17, 24, 39, 0.92);
  font-variant-numeric: tabular-nums;
}

.pv-scope .production-view .production-stat .stat-label {
  margin-top: 4px;
  font-size: 12px;
  line-height: 1.25;
  color: rgba(0, 0, 0, 0.55);
}

.pv-scope .production-view .pv-kpi-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

/* geocell_orders: при зуме проблема не столько в ширине экрана,
   сколько в фиксированных ширинах/фиксированном layout.
   Поэтому даём таблице авто-раскладку и разрешаем переносы всегда. */
.geocell-orders .production_table.manager-orders-table {
  table-layout: auto;
}

.geocell-orders .production_table.manager-orders-table thead th {
  width: auto !important; /* перебиваем inline widths из шаблона */
}

.geocell-orders .production_table.manager-orders-table th,
.geocell-orders .production_table.manager-orders-table td {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  text-overflow: clip;
}

.geocell-orders__hint {
  font-size: 12px;
  color: #666;
  white-space: nowrap;
}

.geocell-orders .gc-group-row td {
  background: #e9e9e9;
  font-weight: 600;
  color: #333;
  padding-top: 7px;
  padding-bottom: 7px;

  /* группирующая строка не должна выглядеть как "карточка" */
  border: none !important;
  border-radius: 0 !important;
}

.geocell-orders .gc-plan-date {
  height: 26px;
  padding: 2px 6px;
  border: 1px solid #ddd;
  border-radius: 4px;
  background: #fff;
  font-size: 12px;
  box-sizing: border-box;
  min-width: 0;
  flex: 1 1 130px;
  max-width: 100%;
}

.geocell-orders .gc-plan-date.saving {
  opacity: .55;
  pointer-events: none;
}

.geocell-orders .gc-detail-link {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #007acc;
  border-radius: 6px;
  background: #007acc;
  font-size: 12px;
  line-height: 1.2;
  white-space: nowrap;
  color: #fff;
}

/* В ячейке действий разрешаем перенос внутри кнопки, иначе при зуме она «распирает» колонку */
.geocell-orders .gc-actions .gc-detail-link {
  white-space: normal;
  max-width: 100%;
  text-align: center;
  box-sizing: border-box;
}

/* Кнопки вида "link" (например, "Калькулятор") должны выглядеть как `.gc-detail-link`,
   но у `<button>` есть глобальные стили (синий фон/белый текст/отступ сверху).
   Здесь сбрасываем только для geocell_orders. */
.geocell-orders button.gc-detail-link {
  /* сбрасываем глобальные button-стили, но визуальные параметры берём из `.gc-detail-link` */
  color: inherit;
  font-weight: 200;
  margin-top: 0;
  box-shadow: none;
  border-color: inherit;
  background: inherit;
}

.geocell-orders .gc-detail-link:hover {
  background: #005fa3;
  text-decoration: none;
}

.geocell-orders .gc-sub {
  font-size: 11px;
  color: #666;
  line-height: 1.25;
}

/* geocell_orders: строка толщины (число) + бейдж перфорации (P/НЕТ)
   Нужна, чтобы надёжно выровнять бейдж по вертикали относительно числа. */
.geocell-orders .gc-thickness-line {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  white-space: nowrap;
}

/* geocell_orders: badge перфорации (буква P рядом с толщиной)
   По требованию: буква P в 2 раза меньше толщины (толщина = 24px → P ≈ 12px). */
.geocell-orders .gc-thick-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  height: 18px;
  padding: 0 8px;
  border-radius: 999px;
  border: 1px solid rgba(10, 132, 255, 0.18);
  background: rgba(10, 132, 255, 0.10);
  color: rgba(10, 132, 255, 0.92);
  font-size: 12px;
  line-height: 1;
  font-weight: 800;
  white-space: nowrap;
}

.geocell-orders .gc-thick-badge--no {
  border-color: rgba(0, 0, 0, 0.10);
  background: rgba(0, 0, 0, 0.04);
  color: rgba(0, 0, 0, 0.55);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
}

.geocell-orders .gc-cell-center {
  text-align: center;
}

.geocell-orders .gc-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.geocell-orders .gc-calc-btn {
  /* делаем кнопку визуально как ссылка .gc-detail-link */
  font-family: inherit;
  text-decoration: none;
}

.geocell-orders .gc-calc-btn:hover {
  /* hover управляется через `.gc-detail-link:hover` */
  text-decoration: none;
}

.geocell-orders .gc-calc-btn {
  appearance: none;
  cursor: pointer;
}

.geocell-orders .gc-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
}

.geocell-orders .gc-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(2px);
}

.geocell-orders .gc-modal__dialog {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: min(520px, calc(100% - 32px));
  background: #fff;
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 26px 80px rgba(0,0,0,.28);
}

.geocell-orders .gc-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  background: #fafafa;
  border-bottom: 1px solid rgba(0,0,0,0.08);
}

.geocell-orders .gc-modal__meta {
  padding: 10px 14px 0;
}

.geocell-orders .gc-modal__metaRow {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 10px;
  align-items: start;
  margin-bottom: 6px;
}

.geocell-orders .gc-meta-label {
  font-size: 11px;
  color: rgba(0,0,0,0.55);
  white-space: nowrap;
}

.geocell-orders .gc-meta-value {
  font-size: 12px;
  color: rgba(0,0,0,0.78);
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.geocell-orders .gc-modal__title {
  font-weight: 700;
  font-size: 14px;
}

.geocell-orders .gc-modal__close {
  appearance: none;
  border: none;
  background: transparent;
  cursor: pointer;
  font-size: 18px;
  line-height: 1;
  padding: 4px 8px;
  border-radius: 8px;
  margin: 0;
}

.geocell-orders .gc-modal__close:hover {
  background: rgba(0,0,0,0.06);
}

.geocell-orders .gc-modal__body {
  padding: 14px;
}

.geocell-orders .gc-modal__grid {
  display: grid;
  /* 3 поля в одну строку слишком узко — раскладываем в 2 строки */
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.geocell-orders .gc-calc-out {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(0,0,0,0.08);
}

.geocell-orders .gc-calc-out__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 12px;
}

@media (max-width: 520px) {
  .geocell-orders .gc-calc-out__grid {
    grid-template-columns: 1fr;
  }
}

.geocell-orders .gc-calc-out__item {
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(0,0,0,0.02);
  border-radius: 12px;
  padding: 10px 12px;
}

.geocell-orders .gc-calc-out__label {
  font-size: 11px;
  color: rgba(0,0,0,0.55);
  margin-bottom: 4px;
}

.geocell-orders .gc-calc-out__value {
  font-size: 13px;
  font-weight: 700;
  color: rgba(0,0,0,0.82);
}

@media (max-width: 520px) {
  .geocell-orders .gc-modal__grid {
    grid-template-columns: 1fr;
  }
}

/* =========================
   Reusable block: Eurofura (ef-*)
   ========================= */

.ef-card{
  margin: 0 0 12px;
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(250,250,250,1));
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 14px;
  padding: 12px 12px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  overflow: hidden;
}

.ef-head{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 10px;
}

.ef-head__icon{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(10, 132, 255, 0.12);
  color: rgba(10, 132, 255, 0.92);
  border: 1px solid rgba(10, 132, 255, 0.18);
  flex: 0 0 auto;
}
.ef-head__icon svg{ width: 18px; height: 18px; }

.ef-head__titles{ min-width: 0; }

.ef-head__actions{
  margin-left: auto;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
}

.ef-preset{
  display: grid;
  gap: 4px;
  justify-items: end;
  font-size: 12px;
}

.ef-preset__label{
  font-size: 10px;
  color: rgba(0,0,0,.55);
}

.ef-preset__select{
  height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,0.92);
  padding: 4px 10px;
  font-size: 12px;
  outline: none;
  max-width: 220px;
}

.ef-preset__select:focus{
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.14);
  border-color: rgba(10, 132, 255, 0.55);
}

/* Inline select inside subtitle (looks like text link) */
.ef-subselectWrap{
  display: inline-flex;
  align-items: center;
  padding: 1px 6px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(255,255,255,0.72);
}

.ef-subselectWrap:hover{
  background: rgba(10, 132, 255, 0.06);
  border-color: rgba(10, 132, 255, 0.22);
}

.ef-subselect{
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  border: 0;
  background: transparent;
  padding: 0 10px 0 0; /* space for arrow (keep tight) */
  margin: 0;
  font: inherit;
  font-weight: 700;
  color: rgba(0,0,0,.72);
  cursor: pointer;
  line-height: inherit;
  border-radius: 8px;
}

.ef-subselect:focus{
  outline: none;
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.14);
}

.ef-subselect{
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(0,0,0,.55) 50%),
    linear-gradient(135deg, rgba(0,0,0,.55) 50%, transparent 50%);
  background-position:
    calc(100% - 7px) 50%,
    calc(100% - 3px) 50%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}

@media (max-width: 520px){
  .ef-subselect{ max-width: 100%; }
}

.ef-subselectWrap:focus-within{
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.14);
  border-color: rgba(10, 132, 255, 0.55);
}

.ef-head__title{
  font-size: 13px;
  font-weight: 800;
  color: rgba(0,0,0,.82);
  line-height: 1.2;
}

.ef-head__sub{
  margin-top: 3px;
  font-size: 11px;
  color: rgba(0,0,0,.56);
  line-height: 1.25;
}

.ef-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

@media (max-width: 980px){
  .ef-grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px){
  .ef-grid{ grid-template-columns: 1fr; }
}

.ef-item{
  background: rgba(255,255,255,0.92);
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 12px;
  padding: 10px 10px;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: auto auto;
  gap: 4px 10px;
  align-items: start;
  min-width: 0;
}

.ef-item__label{
  grid-column: 1 / 2;
  font-size: 11px;
  color: rgba(0,0,0,.56);
  line-height: 1.2;
}

.ef-item__value{
  grid-column: 1 / 2;
  font-size: 16px;
  font-weight: 800;
  color: rgba(0,0,0,.80);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}

.ef-item__sub{
  grid-column: 1 / 3;
  margin-top: 2px;
  font-size: 10px;
  color: rgba(0,0,0,.50);
  line-height: 1.25;
}

.ef-item__icon{
  grid-column: 2 / 3;
  grid-row: 1 / span 2;
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.04);
  color: rgba(0,0,0,.55);
  flex: 0 0 auto;
}
.ef-item__icon svg{ width: 16px; height: 16px; }

.ef-item__meta{
  display: inline-block;
  margin-left: 6px;
  font-size: 10px;
  color: rgba(0,0,0,.48);
}

.ef-empty{
  display:flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px dashed rgba(0,0,0,.18);
  background: rgba(255,149,0,0.06);
  color: rgba(0,0,0,.72);
  font-size: 12px;
  line-height: 1.35;
}

.ef-empty__icon{
  width: 28px;
  height: 28px;
  border-radius: 10px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,149,0,0.12);
  border: 1px solid rgba(255,149,0,0.22);
  color: rgba(255,149,0,0.95);
  flex: 0 0 auto;
}

.ef-empty__icon svg{ width: 16px; height: 16px; }

.ef-note{
  margin-top: 10px;
  font-size: 12px;
  line-height: 1.35;
  color: rgba(0,0,0,.70);
}

/* =========================
   geocell_orders detail page (.geocell-view)
   (ранее было inline <style> в src/views/geocell_order_detail.php)
   ========================= */

/* Uses color variables from .geocell-view if present */
.geocell-view .geocell-editor { margin-top:24px; }

.geocell-view .json-table{
  width:64%;
  border-spacing:0;
  border-collapse:separate;
  background:var(--bg,#fff);
  border-radius:12px;
  overflow:hidden;
  box-shadow:0 1px 3px rgba(0,0,0,.08);
}

@media (max-width: 980px){
  .geocell-view .json-table{ width: 100%; }
}

.geocell-view .json-table th,
.geocell-view .json-table td{padding:10px 12px;font-size:14px;border:none}
.geocell-view .json-table thead th{background:var(--soft,#f5f5f7);color:var(--muted,#6e6e73);font-weight:600;letter-spacing:.02em;text-align:left}
.geocell-view .json-row{transition:background .15s ease}
.geocell-view .json-row:hover td{background:rgba(0,0,0,.03)}
.geocell-view .json-key{font-family:Menlo,Monaco,Consolas,monospace;color:var(--ink,#1d1d1f)}
.geocell-view .json-key .hint{color:#b9b9b9;margin-right:6px}
.geocell-view .json-badge{display:inline-block;font-size:12px;color:var(--muted,#6e6e73);background:var(--soft,#f5f5f7);padding:2px 8px;border-radius:999px}
.geocell-view .json-value{font-family:Menlo,Monaco,Consolas,monospace;color:#222;background:#f4f7ff;border-radius:6px;padding:4px 8px}
.geocell-view .json-input{width:96%;padding:7px 10px;font-size:14px;border-radius:8px;border:1px solid #e5e7eb;background:#fff}
.geocell-view .json-input:focus{outline:2px solid var(--brand,#0071e3);border-color:transparent;background:#fff}
.geocell-view .btn-primary{background:var(--brand,#0071e3);color:#fff;border:none;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:14px}
.geocell-view .btn-primary:hover{background:#005bb5}
.geocell-view .btn-muted{background:#6e6e73;color:#fff;border:none;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:14px}
.geocell-view .btn-muted[disabled]{opacity:.5;cursor:not-allowed}

/* Ready tab helpers */
.geocell-view .gc-ready-summary{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 12px 0 14px;
}
@media (max-width: 860px){
  .geocell-view .gc-ready-summary{ grid-template-columns: 1fr; }
}

.geocell-view .gc-ready-card{
  background: #fff;
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 12px;
  padding: 10px 12px;
}

.geocell-view .gc-ready-label{ font-size: 11px; color: rgba(0,0,0,.55); margin-bottom: 4px; }
.geocell-view .gc-ready-value{ font-size: 16px; font-weight: 700; color: rgba(0,0,0,.80); }
.geocell-view .gc-ready-sub{ font-size: 11px; color: rgba(0,0,0,.55); margin-top: 3px; }
.geocell-view .gc-ready-progress{ margin-top: 8px; }

/* Pallet table: icons + barcode */
.geocell-view .gc-pallet-th,
.geocell-view .gc-pallet-td{
  text-align: center;
}

.geocell-view .gc-pallet-icon{
  width: 18px;
  height: 18px;
  color: rgba(0,0,0,.55);
  display: inline-block;
  vertical-align: middle;
}

.geocell-view .gc-barcode{
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  align-items: flex-start;
  max-width: 100%;
}

.geocell-view .gc-barcode svg{
  display: block;
  width: 88px;
  height: 18px;
  color: rgba(0,0,0,.68);
}

.geocell-view .gc-barcode__text{
  font-size: 10px;
  color: rgba(0,0,0,.55);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

/* On zoom / narrow screens: hide heavy barcode graphic, keep #id text */
@media (max-width: 920px){
  .geocell-view .gc-barcode svg{ display:none; }
}

.geocell-orders .gc-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
}

.geocell-orders .gc-field__label {
  /* делаем как badge/chip, чтобы поля cellSize/cellCount/laces читались как контролы */
  display: inline-flex;
  align-self: flex-start;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.2;
  font-weight: 700;
  letter-spacing: 0.02em;
  background: rgba(10, 132, 255, 0.10);
  border: 1px solid rgba(10, 132, 255, 0.18);
  color: rgba(10, 132, 255, 0.92);

  /* не даём длинным русским подписям залезать на соседние колонки */
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}

.geocell-orders .gc-field input {
  height: 34px;
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 10px;
  padding: 6px 10px;
  font-size: 14px;
  box-sizing: border-box;
  background: #fff;
  font-variant-numeric: tabular-nums;
}

.geocell-orders .gc-field input:focus {
  outline: none;
  border-color: rgba(10, 132, 255, 0.55);
  box-shadow: 0 0 0 3px rgba(10, 132, 255, 0.14);
}

.geocell-orders .gc-modal__error {
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid rgba(220, 2, 2, 0.22);
  background: rgba(220, 2, 2, 0.08);
  color: #8b0000;
  font-size: 12px;
}

.geocell-orders .gc-modal__footer {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 14px;
  border-top: 1px solid rgba(0,0,0,0.08);
  background: #fff;
}

.geocell-orders .gc-btn {
  appearance: none;
  border: 1px solid rgba(0,0,0,0.12);
  background: rgba(0,0,0,0.03);
  color: rgba(0,0,0,0.8);
  padding: 8px 12px;
  border-radius: 10px;
  font-size: 13px;
  cursor: pointer;
  margin: 0;
}

.geocell-orders .gc-btn--primary {
  background: rgba(10, 132, 255, 0.92);
  border-color: rgba(10, 132, 255, 0.92);
  color: #fff;
}

.geocell-orders .gc-btn--primary:disabled {
  opacity: 0.6;
  cursor: default;
}

.geocell-orders .gc-btn--ghost:hover,
.geocell-orders .gc-btn:hover {
  filter: brightness(0.98);
}

/* =========================
   Manager layout (primary)
   ========================= */
.page-manager #managerContent .production_table.manager-orders-table {
  width: 100%;
  min-width: 320px;
  table-layout: fixed;
  font-size: 12px;
  margin: 0;

  /* те же "карточные" строки и прозрачный фон внутри manager_layout */
  border-collapse: separate;
  border-spacing: 0 8px;
  background: transparent;
}

.page-manager #managerContent .production_table.manager-orders-table th,
.page-manager #managerContent .production_table.manager-orders-table td {
  padding: 6px 8px;
  border: none;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Чтобы строки таблицы в менеджерке не "подпрыгивали" от глобальных hover-эффектов */
.page-manager #managerContent .production_table.manager-orders-table tbody tr:hover,
.page-manager #managerContent .production_table.manager-orders-table tbody tr:hover td {
  transform: none !important;
  box-shadow: none !important;
}

/* =========================
   Badges / chips used by manager_table_rows.php
   ========================= */
.page-manager #managerContent .mo-badges {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  max-width: 100%;
}

.page-manager #managerContent .mo-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 700;
  border: 1px solid rgba(0,0,0,0.06);
  background: rgba(0,0,0,0.06);
  color: rgba(0,0,0,0.78);
  white-space: nowrap;
}

.page-manager #managerContent .mo-badge--success { background: rgba(19,168,95,0.12); color: #0d7a44; }
.page-manager #managerContent .mo-badge--warn    { background: rgba(255,149,0,0.14); color: #8a4b00; }
.page-manager #managerContent .mo-badge--danger  { background: rgba(220,2,2,0.10);  color: #b30000; }
.page-manager #managerContent .mo-badge--neutral { background: rgba(0,0,0,0.06);    color: #374151; }

.page-manager #managerContent .mo-badge--amount {
  font-variant-numeric: tabular-nums;
}

.page-manager #managerContent .mo-type-badges {
  display: inline-flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-top: 2px;
}

.page-manager #managerContent .mo-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  line-height: 1.4;
  font-weight: 700;
  border: 1px solid rgba(0,0,0,0.06);
  background: rgba(0,0,0,0.04);
  color: rgba(0,0,0,0.72);
  white-space: nowrap;
}

.page-manager #managerContent .mo-chip--customer { background: rgba(10,132,255,0.10); color: rgba(10,132,255,0.92); border-color: rgba(10,132,255,0.18); }
.page-manager #managerContent .mo-chip--reseller { background: rgba(52,199,89,0.12); color: #1f7a1f; border-color: rgba(52,199,89,0.18); }
.page-manager #managerContent .mo-chip--neutral  { background: rgba(0,0,0,0.06); color: rgba(0,0,0,0.72); }
.page-manager #managerContent .mo-chip--new      { background: rgba(255,149,0,0.14); color: #8a4b00; border-color: rgba(255,149,0,0.22); }

/* =========================
   Tweaks: payment cell + manager avatar sizes
   ========================= */

/* Колонка «Оплата»: уменьшаем визуальный размер бейджей примерно на 30%.
   Важно: делаем через scoped селектор, чтобы не влиять на другие места,
   где используется `.mo-badge` (если появятся). */
/* Меняем gap только у бейджей оплаты (а не у любых `.mo-badges` в таблице) */
.page-manager #managerContent .production_table.manager-orders-table td .mo-pay-badges {
  gap: 4px;
}

.page-manager #managerContent .production_table.manager-orders-table td .mo-pay-badges .mo-badge {
  font-size: 8px;
  padding: 1px 6px;
  line-height: 1.25;
}

/* Аватар менеджера в колонке «Менеджер»: делаем в 2 раза меньше (24px -> 12px). */
.page-manager #managerContent .production_table.manager-orders-table .mo-manager-avatar {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  vertical-align: middle;
  margin-right: 6px;
  object-fit: cover;
  display: inline-block;
}

.page-manager #managerContent .mo-priority-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  padding: 1px 7px;
  border-radius: 999px;
  font-size: 10px;
  line-height: 1.4;
  font-weight: 800;
  letter-spacing: 0.02em;
  background: rgba(220, 2, 2, 0.10);
  border: 1px solid rgba(220, 2, 2, 0.18);
  color: rgba(220, 2, 2, 0.95);
  white-space: nowrap;
}

/* Просрочка ожидания звонка — маленький красный индикатор возле статуса */
.page-manager #managerContent .mo-attn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  background: rgba(220,2,2,0.10);
  border: 1px solid rgba(220,2,2,0.18);
  color: rgba(220,2,2,0.95);
}

/* Mobile meta block inside client cell (manager_table_rows.php) */
.page-manager #managerContent .mo-mobile-meta {
  display: none;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.2;
  color: rgba(0,0,0,0.56);
}

@media (max-width: 760px) {
  /* На мобилке прячем «второстепенные» колонки и выводим мету внутри клиента */
  .page-manager #managerContent .production_table.manager-orders-table th:nth-child(5),
  .page-manager #managerContent .production_table.manager-orders-table td:nth-child(5),
  .page-manager #managerContent .production_table.manager-orders-table th:nth-child(6),
  .page-manager #managerContent .production_table.manager-orders-table td:nth-child(6),
  .page-manager #managerContent .production_table.manager-orders-table th:nth-child(7),
  .page-manager #managerContent .production_table.manager-orders-table td:nth-child(7),
  .page-manager #managerContent .production_table.manager-orders-table th:nth-child(8),
  .page-manager #managerContent .production_table.manager-orders-table td:nth-child(8) {
    display: none;
  }

  .page-manager #managerContent .mo-mobile-meta {
    display: block;
  }
}

/* При сильном масштабировании/на узких экранах лучше переносить текст,
   чем резать его троеточием. */
@media (max-width: 900px) {
  .production_table.manager-orders-table th,
  .production_table.manager-orders-table td {
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
    text-overflow: clip;
  }

  /* geocell_orders: на узких экранах/при зуме таблица не должна «упираться»
     в фиксированные ширины колонок, кнопки и прогресс-бар.
     Даём браузеру авто-раскладку и разрешаем экшенам переноситься. */
  .geocell-orders .production_table.manager-orders-table {
    table-layout: auto;
  }

  .geocell-orders .production_table.manager-orders-table thead th {
    width: auto !important;
  }

  .geocell-orders .gc-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .geocell-orders .gc-detail-link {
    width: 100%;
    text-align: center;
    white-space: normal;
  }

  .geocell-orders .gc-plan-date {
    width: 100%;
    min-width: 0;
  }

  .geocell-orders .progress-container {
    min-width: 0;
  }
}

/* =========================
   Buh table: manager-like appearance
   ========================= */
.page-manager #managerContent .buh-orders-table-container {
  position: relative;
}

.page-manager #managerContent .buh-orders-table-wrap {
  max-width: 100%;
  margin: 0;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-orders-table__row {
  cursor: pointer;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-status-icons {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-client-cell {
  height: 50px;
  padding-top: 0;
  padding-bottom: 0;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-client-main {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-client-title {
  display: flex;
  align-items: center;
  gap: 6px;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-client-title strong {
  font-size: 13px;
  position: relative;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-client-subtitle {
  font-size: 11px;
  color: #666;
}

.page-manager #managerContent .production_table.manager-orders-table.buh-orders-table .buh-date-cell strong {
  font-weight: 700;
}
