:root,
.sidebar {
  --bs-primary: #075D94;            /* sRGB(7,93,148) */
  --bs-primary-rgb: 7, 93, 148;

  /* Ссылки */
  --bs-link-color: #075D94;
  --bs-link-hover-color: #064f7e;

  /* Ссылки в навигации */
  --bs-nav-link-color: #075D94;
  --bs-nav-link-hover-color: #064f7e;

  /* Активный пункт nav-pills */
  --bs-nav-pills-link-active-bg: #075D94;
  --bs-nav-pills-link-active-color: #fff;

  /* базовые ширины основного сайдбара */
  --main-sidebar-width: 260px;
  --main-sidebar-collapsed-width: 80px;

  --second-sidebar-header-offset: 75px;
}

/* Сайдбар: базовая раскладка */
.sidebar {
  width: 260px;
  min-height: 100vh;          /* на всю высоту окна */
  position: sticky;
  top: 0;                      /* прилипает под шапкой, так как шапка выше в DOM */
  display: flex;
  flex-direction: column;
  padding-top: 11px; /* отступ сверху для логотипа и стрелки */
}

/* Зафиксировать ширину основного сайдбара вне зависимости от содержимого раздела "Шаблоны" */
#sidebar.sidebar {
  width: var(--main-sidebar-width) !important;
  flex: 0 0 var(--main-sidebar-width) !important; /* не даём сжиматься */
}

/* Кнопка сворачивания всегда поверх второго сайдбара */
#sidebar {
  position: relative;
  z-index: 1031; /* выше второго сайдбара */
}

.sidebar .sidebar-header .icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  color: var(--bs-nav-link-color, var(--bs-primary, #075D94));
  border-radius: .375rem;
}

.sidebar .sidebar-header .icon-btn:hover {
  background-color: rgba(var(--bs-primary-rgb, 7,93,148), .08);
  color: var(--bs-primary, #075D94);
}

#sidebar .sidebar-header .icon-btn {
  position: relative;
  z-index: 1032; /* ещё на слой выше, чтобы иконка была кликабельна */
}

.sidebar-header .sidebar-logo {
  transform: translateY(-3px); /* приподнять логотип на 3px */
}

.sidebar-header .sidebar-logo-collapsed {
  display: none;
  transform: translateY(-3px);
}

/* при сворачивании показываем иконку и скрываем основной логотип */
.sidebar.is-collapsed .sidebar-logo {
  display: none;
}
.sidebar.is-collapsed .sidebar-logo-collapsed {
  display: inline-block;
}

.sidebar-header .sidebar-logo,
.sidebar-header .sidebar-logo-collapsed {
  height: 25px;      /* уменьшенный размер логотипов */
  width: auto;       /* сохраняем пропорции */
}

.sidebar .brand-name {
  font-weight: 600;
  color: inherit;
}

/* Базовая кнопка: без рамки/фона */
.sidebar .sidebar-header .icon-btn {
  border: 1px solid transparent;
  background-color: transparent;
}

/* Состояние: сайдбар свернут (стрелка смотрит вправо) */
.sidebar.is-collapsed .sidebar-header .icon-btn {
  background-color: #fff;                  /* белый фон */
  border-color: var(--bs-border-color);    /* как у границы сайдбара */
  border-width: 1px;                       /* такая же толщина */
  border-style: solid;
}

/* Не менять фон при наведении в свернутом состоянии */
.sidebar.is-collapsed .sidebar-header .icon-btn:hover {
  background-color: #fff;
  border-color: var(--bs-border-color);
}

.sidebar.is-collapsed {
  width: 80px; /* было 72px */
  flex: 0 0 80px; /* чтобы flex-раскладка учитывала новую ширину */
}

/* Ширина в свернутом состоянии также фиксирована */
#sidebar.is-collapsed {
  width: var(--main-sidebar-collapsed-width) !important;
  flex: 0 0 var(--main-sidebar-collapsed-width) !important;
}

.sidebar.is-collapsed .brand-name,
.sidebar.is-collapsed .link-text {
  display: none !important;
}

.sidebar .nav .nav-link {
  border-radius: .5rem;
  padding: .5rem .75rem;
  display: flex;
  align-items: center;
  gap: .5rem;
}

.sidebar .nav .nav-link i {
  font-size: 1.1rem;
}

/* Активный пункт меню — используем ваш основной цвет */
.sidebar .nav .nav-link.active {
  background-color: #075D94 !important;
  color: #fff !important;
  border-color: #075D94 !important;
}

/* Состояние наведения для неактивных */
.sidebar .nav .nav-link:not(.active):hover {
  background-color: rgba(var(--bs-primary-rgb, 7,93,148), .08);
  color: var(--bs-primary, #075D94);
}

/* Низ: профиль — немного приглушить по умолчанию */
.sidebar .mt-auto a {
  color: inherit;
  opacity: .9;
}
.sidebar .mt-auto a:hover {
  opacity: 1;
}

/* Свернутый сайдбар */
.sidebar.is-collapsed {
  width: 72px; /* ширина под иконки */
}

.sidebar.is-collapsed .brand-name,
.sidebar.is-collapsed .link-text {
  display: none !important; /* скрываем текст */
}

.sidebar.is-collapsed .sidebar-header {
  justify-content: center;
}

.sidebar.is-collapsed .nav .nav-link {
  justify-content: center;   /* центрируем иконки */
  padding-left: .5rem;
  padding-right: .5rem;
}

.sidebar.is-collapsed .nav .nav-link i {
  margin: 0; /* убираем отступы у иконок */
}

/* Поворот стрелки при сворачивании */
.rotate-180 {
  transform: rotate(180deg);
  transition: transform .15s ease-in-out;
}

.sidebar .sidebar-header [data-chevron] {
  transition: transform .15s ease-in-out;
}

/* Явные цвета для пунктов меню (увеличенная специфичность + !important) */
.sidebar .nav.nav-pills .nav-link,
.nav.nav-pills .nav-link,
.nav .nav-link {
  color: var(--bs-nav-link-color) !important;
}

.sidebar .nav.nav-pills .nav-link:hover,
.sidebar .nav.nav-pills .nav-link:focus,
.nav .nav-link:hover,
.nav .nav-link:focus {
  color: var(--bs-nav-link-hover-color) !important;
}

.sidebar .nav.nav-pills .nav-link.active,
.sidebar .nav.nav-pills .show > .nav-link,
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--bs-nav-pills-link-active-bg) !important;
  color: var(--bs-nav-pills-link-active-color) !important;
  border-color: var(--bs-nav-pills-link-active-bg) !important;
}

/* Фон активного пункта меню (перекрытия) */
.sidebar .nav.nav-pills .nav-link.active,
.sidebar .nav.nav-pills .show > .nav-link,
.nav.nav-pills .nav-link.active,
.nav.nav-pills .show > .nav-link,
.nav .nav-link.active {
  background-color: #075D94 !important;
  color: #fff !important;
  border-color: #075D94 !important;
}

.sidebar .nav .nav-link.active[class*="bg-"],
.nav .nav-link.active[class*="bg-"],
.nav-pills .nav-link.active[class*="bg-"] {
  background-color: #075D94 !important;
  color: #fff !important;
  border-color: #075D94 !important;
}

/* Основной сайдбар: фон пунктов без боковых отступов и без скруглений */
#sidebar .nav {
  padding-left: 0 !important;   /* убираем px-2 от <ul> */
  padding-right: 0 !important;
  gap: 0 !important;            /* игнорируем gap-2, чтобы фон не «рвался» */
}

#sidebar .nav .nav-item {
  width: 100%;
}

#sidebar .nav .nav-link {
  display: block;
  width: 100%;
  border-radius: 0 !important;  /* без скруглений */
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 1rem;           /* текстовые отступы */
  padding-right: 1rem;
}

/* Активный пункт — без скруглений, фон на всю ширину */
#sidebar .nav-pills .nav-link.active,
#sidebar .nav-pills .show > .nav-link {
  border-radius: 0 !important;
}

/* Hover — фон на всю ширину и без скруглений */
#sidebar .nav .nav-link:hover,
#sidebar .nav .nav-link:focus {
  border-radius: 0 !important;
}












/* Обёртка для секции "Шаблоны", чтобы второй сайдбар шёл от самого верха до низа экрана,
   без зазоров, несмотря на внутренние отступы у <main> */
.templates-full {
  margin-top: -1.5rem;   /* компенсирует py-4 у <main> (1.5rem сверху) */
  margin-bottom: -1.5rem;/* компенсирует py-4 у <main> (1.5rem снизу) */
  margin-left: -1rem;    /* компенсирует px-3 у <main> слева (1rem) */
}

/* Растягиваем область "Шаблоны" на всю высоту/ширину, компенсируя отступы у <main> (py-4 px-3) */
.templates-bleed {
  margin-top: -1.5rem !important;   /* компенсирует py-4 сверху */
  margin-bottom: -1.5rem !important;/* компенсирует py-4 снизу */
  margin-left: -1rem !important;    /* компенсирует px-3 слева */
}

.second-sidebar .second-sidebar-header-spacer {
  height: var(--second-sidebar-header-offset);
}

.second-sidebar {
  width: 250px;               /* было 220px: шире на 30px */
  background-color: #fcfcfd;  /* чуть светлее */
  min-height: 100vh;          /* на всю высоту окна */
  position: sticky;           /* прилипает к верху при скролле */
  top: 0;                     /* от верхнего края страницы */
  margin: 0;
  padding: 0;
  border-right: 1px solid var(--bs-border-color); /* сплошная серая граница справа */
}

/* Второй уровень сайдбара: без внешних отступов, светлее контента, темнее главного сайдбара */
body .second-sidebar {
  width: 320px !important;                 /* шире на 30px */
  flex: 0 0 320px !important;
  background-color: #f0f2f4 !important;    /* светлее, чем фон контента (#f8f9fa), но чуть темнее белого */
  min-height: 100vh !important;            /* во всю высоту окна */
  position: sticky !important;             /* прилипает к верху */
  top: 0 !important;
  z-index: 1029 !important; /* ниже основного сайдбара и кнопки */
  margin: 0 !important;                    /* без внешних отступов слева/сверху/снизу */
  padding: 0 !important;                   /* без внутренних отступов */
  border-right: 1px solid #cfd4da !important; /* явная серая граница */
  box-sizing: border-box !important;
}

/* Сброс возможных унаследованных рамок, кроме правой, чтобы линия не пропадала */
body .second-sidebar.border-end {
  border: none !important;
  border-right: 1px solid #cfd4da !important;
}

/* На всякий случай уберём у списка потенциальные внешние отступы */
body .second-sidebar .nav {
  margin: 0 !important;
}

/* Контейнер рядом не должен перекрывать границу */
body .second-sidebar + .flex-grow-1 {
  background: transparent;
}

/* Для второго уровня: фон без отступов, но у текста — внутренние поля слева/справа */
.second-sidebar .list-group {
  padding-left: 0 !important;
  padding-right: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.second-sidebar .list-group-item {
  padding-left: 1rem !important;  /* отступ текста слева */
  padding-right: 1rem !important; /* отступ текста справа */
}

/* Активный пункт — "secondary" стиль */
.second-sidebar .list-group-item.active,
.second-sidebar .list-group-item.active:hover,
.second-sidebar .list-group-item.active:focus {
  background-color: var(--bs-secondary-bg-subtle, #e9ecef) !important;
  color: var(--bs-emphasis-color, #212529) !important;
  border-color: var(--bs-secondary-border-subtle, #cbd2d9) !important;
  box-shadow: none !important;
}

/* Базовый вид элементов + плавный hover */
.second-sidebar .list-group-item {
  background-color: transparent;
  border-color: var(--bs-border-color, #cbd2d9);
  padding-left: 1rem !important;
  padding-right: 1rem !important;
}

.second-sidebar .list-group-item.list-group-item-action {
  cursor: pointer;
  transition: background-color .12s ease-in-out, color .12s ease-in-out;
}

/* Возвращаем затемнение при наведении для неактивных пунктов */
.second-sidebar .list-group-item.list-group-item-action:not(.active):hover,
.second-sidebar .list-group-item.list-group-item-action:not(.active):focus {
  background-color: rgba(var(--bs-primary-rgb, 7,93,148), .08) !important; /* светло-голубой как у основного меню */
  color: var(--bs-primary, #075D94) !important;
}

.second-sidebar .list-group-item {
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  padding-top: calc(.5rem + 1px) !important;    /* было .5rem — увеличили на ~1px */
  padding-bottom: calc(.5rem + 1px) !important; /* суммарно +2px к высоте элемента */
}

.second-sidebar .list-group-item {
  background-color: transparent;
  border-color: var(--bs-border-color, #dee2e6);
  padding-left: 1rem !important;
  padding-right: 1rem !important;
  /* Синий текст по умолчанию */
  color: var(--bs-primary, #075D94) !important;
}

.second-sidebar .list-group-item.list-group-item-action {
  cursor: pointer;
  transition: background-color .12s ease-in-out, color .12s ease-in-out;
}

/* Активный пункт — светло-синий, чуть темнее hover */
.second-sidebar .list-group-item.active,
.second-sidebar .list-group-item.active:hover,
.second-sidebar .list-group-item.active:focus {
  background-color: rgba(var(--bs-primary-rgb, 7,93,148), .16) !important; /* темнее hover (.08) */
  color: var(--bs-primary, #075D94) !important;                               /* синий текст */
  border-color: rgba(var(--bs-primary-rgb, 7,93,148), .24) !important;        /* мягкая граница в тон */
  box-shadow: none !important;
}




.templates-bleed {
  margin-top: -1.5rem !important;   /* компенсирует py-4 сверху */
  margin-bottom: -1.5rem !important;/* компенсирует py-4 снизу */
  margin-left: -1rem !important;    /* компенсирует px-3 слева */
}

/* Горизонтальный «пролив» контента (убрать боковые отступы контейнера) */
.content-bleed-x {
  margin-left: -1rem !important;
  margin-right: -1rem !important;
}

/* Фиксированная высота верхней панели раздела */
.section-header {
  min-height: 76px;                /* обеспечиваем нужную высоту */
  height: auto;                     /* не фиксируем, чтобы содержимое не вылезало */
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-bottom: 18px;              /* отступ снизу от панели */
}

.section-header .nav.nav-underline {
  padding-left: 20px !important; /* левый отступ 20px для меню вкладок, 33px*/
}

/* Исправление для .nav-underline внутри панели "Шаблоны" */
.section-header .nav.nav-underline .nav-link {
  background: transparent !important;                       /* убираем фон */
  color: var(--bs-primary, #075D94) !important;             /* синий текст */
  border-bottom: 2px solid transparent;                     /* базовая линия */
  padding-bottom: .5rem;                                     /* чуть больше места под линию */
}

.section-header .nav.nav-underline .nav-link:hover,
.section-header .nav.nav-underline .nav-link:focus {
  color: var(--bs-nav-link-hover-color, #064f7e) !important; /* ховер-цвет как в главном меню */
  background: transparent !important;
}

.section-header .nav.nav-underline .nav-link.active,
.section-header .nav.nav-underline .show > .nav-link {
  background: transparent !important;                        /* перекрываем глобальное правило .nav .nav-link.active */
  color: var(--bs-primary, #075D94) !important;
  border-bottom-color: var(--bs-primary, #075D94) !important; /* подчёркивание для активной */
}





.table-section-header {
  background-color: #ffffff;           /* единый фон для заголовков таблиц */
  border-bottom: 0px solid #e9ecef;    /* тонкая линия снизу */
  padding: 8px 0px;                   /* вертикальные отступы и базовый горизонтальный */
}

.table-section-header .table-section-title {
  margin: 0;                           /* убираем стандартные отступы заголовка */
  display: flex;
  align-items: center;
  padding-left: 5px;                  /* [+] единый увеличенный отступ слева */
  font-weight: 600;                    /* чуть более заметный заголовок */
  font-size: 1.3rem;
}

/* Чекбоксы в секции "Политика": точные отступы по 2px слева и справа */
#policy-pane .form-check {
  padding-left: 0 !important;            /* убрать стандартный отступ 1.5em у контейнера */
}
#policy-pane .form-check-input {
  margin-left: 3px !important;           /* задать ровно +2px слева */
  margin-right: 3px !important;          /* и +2px справа */
}



/* Цвета check-box */
.form-check-input:checked {
  background-color: var(--bs-primary, #075D94) !important;
  border-color: var(--bs-primary, #075D94) !important;
}

.form-check-input:indeterminate {
  background-color: var(--bs-primary, #075D94) !important;
  border-color: var(--bs-primary, #075D94) !important;
}

.form-check-input:focus {
  border-color: var(--bs-primary, #075D94);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 7,93,148), .25);
}

/* убираем потемнение при активном нажатии */
.form-check-input:active {
  filter: none;
}



/* Отступ сверху для панели действий под таблицей "Продукты" */
.products-actions-row {
  margin-top: 30px !important;
}
/* Слойность для кнопок панели под таблицей "Продукты" */
#policy-pane #products-actions .btn-group {
  isolation: isolate;            /* создаём новый stacking context */
}
#policy-pane #products-actions .btn {
  position: relative;            /* кнопки становятся позиционированными */
  z-index: 1;                    /* базовый слой для всех */
}
#policy-pane #products-actions #products-actions-edit {
  z-index: 2;                    /* [+] "Изменить" поверх "Удалить" */
}
/* Панель под таблицей "Продукты": светло‑красный фон у неактивной кнопки "Удалить" */
#policy-pane #products-actions #products-actions-delete:not(:hover):not(:focus):not(.active):not(:disabled) {
  /* используем переменную Bootstrap danger-rgb, делаем полупрозрачный фон */
  background-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.08);
  color: var(--bs-danger);
  border-color: var(--bs-danger);
}
/* Для disabled — ещё мягче */
#policy-pane #products-actions #products-actions-delete:disabled {
  background-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.06);
  color: var(--bs-danger);
  border-color: var(--bs-danger);
}
/* Более светлый фон для выбранных строк (чекбокс включен) в #policy-pane */
#policy-pane tr.table-active > th,
#policy-pane tr.table-active > td {
  background-color: rgba(0, 0, 0, 0.03) !important; /* светлее стандартного ~0.075 */
}
/* Слегка более светлый фон для активных строк (чекбокс включён) в таблицах "Политики" */
#policy-pane .table {
  --bs-table-active-bg: rgba(0, 0, 0, 0.03);     /* было ~0.075 у Bootstrap, делаем светлее */
  --bs-table-active-color: inherit;              /* цвет текста не меняем */
}







/* Кнопка .btn-primary — все состояния */
.btn-primary {
  --bs-btn-color: #fff;
  --bs-btn-bg: #075D94;
  --bs-btn-border-color: #075D94;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #064f7e;        /* немного темнее для наведения */
  --bs-btn-hover-border-color: #064a76;
  --bs-btn-focus-shadow-rgb: 7, 93, 148;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #05466d;       /* ещё чуть темнее для active */
  --bs-btn-active-border-color: #054166;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: #075D94;
  --bs-btn-disabled-border-color: #075D94;
}


/* Обводочная кнопка .btn-outline-primary */
.btn-outline-primary {
  --bs-btn-color: #075D94;
  --bs-btn-border-color: #075D94;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #075D94;
  --bs-btn-hover-border-color: #075D94;
  --bs-btn-focus-shadow-rgb: 7, 93, 148;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #064f7e;
  --bs-btn-active-border-color: #064a76;
  --bs-btn-disabled-color: #075D94;
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: #075D94;
}

/* Отступ сверху для хедера */
.site-header {
  margin-top: 5px;
}



/* Палитра для «пустого» уведомления в разделе «Шаблоны» — теплее и чуть мягче */
section#templates .alert.alert-info {
  background-color: #eaf6ff; /* теплый голубовато-синий (больше зелёного) */
  border-color: #c2def3;     /* граница теплее и контрастнее фона */
  color: #0b4d78;            /* тёплый сине‑зелёный текст, без «фиолетового» оттенка */
}

section#templates .alert.alert-info .alert-link {
  color: #0a3f62;            /* темнее и теплее для ссылки */
  text-decoration: underline;
}

section#templates .alert.alert-info .alert-link:hover,
section#templates .alert.alert-info .alert-link:focus {
  color: #083754;
}

/* Если внутри alert попадётся .text-muted — делаем её согласованной по оттенку */
section#templates .alert.alert-info .text-muted {
  color: #0b4d78 !important;
}



/* Универсальный класс для инлайновых SVG-иконок в строке текста */
.icon-inline {
  height: 1em;           /* по высоте текущего шрифта/строки */
  width: auto;           /* сохраняем пропорции */
  vertical-align: -0.125em; /* лёгкая подстройка по базовой линии, как у Bootstrap Icons */
  display: inline-block;
  fill: currentColor;    /* наследуем цвет текста */
}

/* На случай, если в SVG нет fill на path — подхватим цвет через currentColor */
.icon-inline path,
.icon-inline use,
.icon-inline g {
  fill: currentColor;
}












/* СТИЛЬ КНОПОК ПАНЕЛИ РАЗДЕЛА ЗАПРОСЫ */

/* Отступ сверху для кнопки "Добавить запрос" и панели действий */
.requests-actions-row {
  margin-top: 15px !important;
}

/* Всегда синий кант для up/down/edit */
#requests-actions [data-panel-action="up"].btn,
#requests-actions [data-panel-action="down"].btn,
#requests-actions [data-panel-action="edit"].btn {
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-focus-border-color: var(--bs-primary);
}
#requests-actions [data-panel-action="up"].btn:hover,
#requests-actions [data-panel-action="down"].btn:hover,
#requests-actions [data-panel-action="edit"].btn:hover,
#requests-actions [data-panel-action="up"].btn:focus,
#requests-actions [data-panel-action="down"].btn:focus,
#requests-actions [data-panel-action="edit"].btn:focus,
#requests-actions [data-panel-action="up"].btn:active,
#requests-actions [data-panel-action="down"].btn:active,
#requests-actions [data-panel-action="edit"].btn:active {
  background-color: var(--bs-primary);
  color: #fff;
}

/* Всегда красный кант для Delete */
#requests-actions #requests-actions-delete.btn {
  border-color: var(--bs-danger) !important;
  color: var(--bs-danger);
  --bs-btn-border-color: var(--bs-danger);
  --bs-btn-hover-border-color: var(--bs-danger);
  --bs-btn-active-border-color: var(--bs-danger);
  --bs-btn-focus-border-color: var(--bs-danger);
}
#requests-actions #requests-actions-delete.btn:hover,
#requests-actions #requests-actions-delete.btn:focus,
#requests-actions #requests-actions-delete.btn:active {
  background-color: var(--bs-danger);
  color: #fff;
}

/* Светло-красный фон у "Удалить", когда она не активна и не в ховере */
#requests-pane #requests-actions #requests-actions-delete:not(:hover):not(:focus):not(.active):not(:disabled) {
  background-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.08);
  color: var(--bs-danger);
  border-color: var(--bs-danger);
}
/* Для disabled — ещё мягче */
#requests-pane #requests-actions #requests-actions-delete:disabled {
  background-color: rgba(var(--bs-danger-rgb, 220, 53, 69), 0.06);
  color: var(--bs-danger);
  border-color: var(--bs-danger);
}

/* Слойность: "Изменить" над "Удалить" */
#requests-pane #requests-actions .btn-group { isolation: isolate; }
#requests-pane #requests-actions .btn { position: relative; z-index: 1; }
#requests-pane #requests-actions #requests-actions-edit { z-index: 2; }

/* Мягче активные строки в таблице «Запросы» */
#requests-pane tr.table-active > th,
#requests-pane tr.table-active > td {
  background-color: rgba(0, 0, 0, 0.03) !important;
}
#requests-pane .table {
  --bs-table-active-bg: rgba(0, 0, 0, 0.03);
  --bs-table-active-color: inherit;
}

/* Чекбоксы в шапке и строках — одинаковый отступ слева */
#requests-pane .table thead .form-check,
#requests-pane .table tbody .form-check {
  margin-left: 5px !important;
}

/* Фикс-ширина колонок "Код" и "№" */
#requests-pane .table th.col-code,
#requests-pane .table td.col-code {
  width: 40px; max-width: 40px; white-space: nowrap;
}
#requests-pane .table th.col-num,
#requests-pane .table td.col-num {
  width: 30px; max-width: 30px; white-space: nowrap;
}

#requests-pane .table td:nth-child(4) { /* 4-й столбец – "Краткое наименование" */
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

/* В модалке все поля — со светло-серыми бордерами Bootstrap */
#requests-modal .form-control {
  border-color: var(--bs-border-color, #ced4da) !important;
}
/* На всякий случай — отдельно тип number */
#requests-modal input[type="number"] {
  border-color: var(--bs-border-color, #ced4da) !important;
}

/* Бóльший отступ слева у подсказки «Пока здесь пусто.» в разделе Запросы */
#requests-pane .requests-empty-hint {
  padding-left: 41px !important;
}

/* Лоадер поверх #requests-pane */
#requests-pane-wrap { min-height: 140px; } /* чтобы лоадер не схлопывался */
.loading-overlay{
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.6);
  z-index: 10;
}

/* Лоадер поверх #templates-pane */
#templates-pane-wrap { min-height: 140px; }
/* .loading-overlay уже есть — переиспользуем */



/* Выравниваем размеры кнопок действий под таблицами */
.products-actions-row .btn.btn-sm {
    font-size: .875rem;      /* как у .btn-sm */
    padding: .25rem .5rem;   /* как у .btn-sm */
    line-height: 1.5;
}








/* =========================
   REG TABLE (Регистрация проекта)
   ========================= */

/* 0) Сброс ширин у <col>, кроме 1-й и 2-й */
#projects-pane table.reg-table col { width: auto !important; }
#projects-pane table.reg-table col.checkbox    { width: 36px !important; }  /* 1: чекбокс */
#projects-pane table.reg-table col:nth-child(2){ width: 90px !important; }  /* 2: номер */

/* 1) Таблица заполняет контейнер */
#projects-pane table.reg-table{
  table-layout: auto !important;
  width: 100%;
  max-width: 100%;
  --bs-table-cell-padding-y: .5rem;  /* для расчётов в шапке */
  --reg-first-col-pr: .8rem;         /* правый padding 1-го столбца */
}
#projects-pane table.reg-table.table-sm { --bs-table-cell-padding-y: .25rem; }

/* 2) Заголовки: переносы разрешены, прижаты к НИЗУ,
      с небольшим «воздухом» снизу */
#projects-pane table.reg-table thead th{
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  vertical-align: bottom !important;
  line-height: 1.2;
  padding-top: var(--bs-table-cell-padding-y) !important;
  padding-bottom: calc(var(--bs-table-cell-padding-y) + 3px) !important; /* базово */
}
#projects-pane table.reg-table thead th.col-agreement-number {
  white-space: nowrap !important;
}

/* ↑ Поднять текст всех заголовков на 1px, КРОМЕ первого столбца (мастер-чекбокс) */
#projects-pane table.reg-table thead th:not(:first-child){
  padding-bottom: calc(var(--bs-table-cell-padding-y) + 2px) !important;
}

/* 3) Тело таблицы: всегда одна строка, с многоточием */
#projects-pane table.reg-table tbody th,
#projects-pane table.reg-table tbody td{
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* 4) Жёстко фиксируем 1-ю и 2-ю колонки */
#projects-pane table.reg-table th:nth-child(1),
#projects-pane table.reg-table td:nth-child(1){
  width: 36px !important;
  min-width: 36px !important;
  max-width: 36px !important;
  box-sizing: border-box;
}
#projects-pane table.reg-table col.project-number,
#projects-pane table.reg-table th.col-project-number,
#projects-pane table.reg-table td.col-project-number {
  width: 70px !important;
  min-width: 70px !important;
  max-width: 70px !important;
}
#projects-pane table.reg-table col.project-id,
#projects-pane table.reg-table th:nth-child(6),
#projects-pane table.reg-table td:nth-child(6) {
    min-width: 100px !important;
}
#projects-pane table.reg-table tbody td.project-id-cell {
  color: #a1a9b1 !important; /* или используйте text-muted */
}

/* 5) Минимумы по остальным */
#projects-pane table.reg-table th:nth-child(3),  #projects-pane table.reg-table td:nth-child(3){   min-width: 70px  !important; max-width: 70px !important; }   /* Группа */
#projects-pane table.reg-table th:nth-child(4),  #projects-pane table.reg-table td:nth-child(4){   min-width: 160px !important; } /* Вид соглашения */
#projects-pane table.reg-table th:nth-child(5),  #projects-pane table.reg-table td:nth-child(5){   min-width: 140px !important; } /* № соглашения */
#projects-pane table.reg-table th:nth-child(7),  #projects-pane table.reg-table td:nth-child(7){   min-width: 50px  !important; } /* Тип */
#projects-pane table.reg-table th:nth-child(8),  #projects-pane table.reg-table td:nth-child(8){   min-width: 220px !important; } /* Название */
#projects-pane table.reg-table th:nth-child(9),  #projects-pane table.reg-table td:nth-child(9){   min-width: 120px !important; } /* Статус */
#projects-pane table.reg-table th:nth-child(10), #projects-pane table.reg-table td:nth-child(10){  min-width: 80px  !important; } /* Начало контр. */
#projects-pane table.reg-table th:nth-child(11), #projects-pane table.reg-table td:nth-child(11){  min-width: 80px  !important; } /* Оконч. контр. */
#projects-pane table.reg-table th:nth-child(12), #projects-pane table.reg-table td:nth-child(12){  min-width: 80px  !important; } /* Оконч., расчет */
#projects-pane table.reg-table th:nth-child(13), #projects-pane table.reg-table td:nth-child(13){  min-width: 80px  !important; } /* Исх. данные */
#projects-pane table.reg-table th:nth-child(14), #projects-pane table.reg-table td:nth-child(14){  min-width: 80px  !important; } /* Этап 1, недель */
#projects-pane table.reg-table th:nth-child(15), #projects-pane table.reg-table td:nth-child(15){  min-width: 80px  !important; } /* Этап 1, оконч. */
#projects-pane table.reg-table th:nth-child(16), #projects-pane table.reg-table td:nth-child(16){  min-width: 80px  !important; } /* Этап 2, недель */
#projects-pane table.reg-table th:nth-child(17), #projects-pane table.reg-table td:nth-child(17){  min-width: 80px  !important; } /* Этап 2, оконч. */
#projects-pane table.reg-table th:nth-child(18), #projects-pane table.reg-table td:nth-child(18){  min-width: 80px  !important; } /* Этап 3, недель  */
#projects-pane table.reg-table th:nth-child(19), #projects-pane table.reg-table td:nth-child(19){  min-width: 70px  !important; } /* Срок, недель  */
#projects-pane table.reg-table th:nth-child(20), #projects-pane table.reg-table td:nth-child(20){  min-width: 90px  !important; } /* Дедлайн  */
#projects-pane table.reg-table th:nth-child(21), #projects-pane table.reg-table td:nth-child(21){  min-width: 50px  !important; } /* Год */
#projects-pane table.reg-table th:nth-child(22), #projects-pane table.reg-table td:nth-child(22){  min-width: 160px !important; } /* Заказчик */
#projects-pane table.reg-table th:nth-child(23), #projects-pane table.reg-table td:nth-child(23){  min-width: 120px !important; } /* Рег. номер */
#projects-pane table.reg-table th:nth-child(24), #projects-pane table.reg-table td:nth-child(24){  min-width: 150px !important; } /* Руководитель */
#projects-pane table.reg-table th:nth-child(25), #projects-pane table.reg-table td:nth-child(25){  min-width: 190px !important; } /* Предмет договора */

/* 6) Единый padding по краям 1-го столбца (и в шапке, и в теле) */
#projects-pane table.reg-table > thead tr > :first-child,
#projects-pane table.reg-table > tbody tr > :first-child{
  padding-left: .4rem;
  padding-right: var(--reg-first-col-pr);
}

/* 7) Чекбоксы в теле — по правому краю */
#projects-pane table.reg-table tbody td:nth-child(1){
  vertical-align: middle !important;
}
#projects-pane table.reg-table tbody td:nth-child(1) .form-check{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important; /* → */
  width: 100%;
  height: 100%;
  margin: 0 !important;
  padding: 0 !important;
}
#projects-pane table.reg-table tbody td:nth-child(1) .form-check-input{
  margin: 0 !important;
  position: static !important;
  transform: none !important;
}

/* 8) Мастер-чекбокс: правый край и низ — как у строк (не меняем) */
#projects-pane table.reg-table thead th:nth-child(1){
  position: relative !important;
}
#projects-pane table.reg-table thead th:nth-child(1) .form-check{
  position: absolute !important;
  right: var(--reg-first-col-pr) !important;                 /* выравнивание по правому краю */
  bottom: calc(var(--bs-table-cell-padding-y) + 3px) !important; /* у низа, как было */
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  margin: 0 !important;
  padding: 0 !important;
  height: auto !important;
  width: auto !important;
}
#projects-pane table.reg-table thead th:nth-child(1) .form-check-input{
  margin: 0 !important;
  position: static !important;
  transform: none !important;
}

/* Мастер-чекбокс в шапке: опустить на 1px */
#projects-pane table.reg-table thead th:nth-child(1) .form-check{
  bottom: calc(var(--bs-table-cell-padding-y) + 0px) !important; /* было + 3px */
}

/* Модальное окно регистрации проекта */
#projects-modal .modal-body.modal-body-scroll {
  max-height: calc(100vh - 170px); /* подстрой верхний отступ при необходимости */
  overflow-y: auto;
  padding-right: 1rem; /* чтобы скролл не перекрывал содержимое */
}










/* ==== Work Volume table (Объем работ) ==== */
.work-table { table-layout: fixed; } /* точно соблюдает ширины колонок */
.work-table col.col-checkbox { width: 30px  !important; }
.work-table col.col-project  { width: 100px !important; } /* Номер проекта, 4444RU-0 */
.work-table col.col-type     { width: 50px  !important; } /* Тип (short_name) */
.work-table col.col-name     { width: 220px !important; } /* Название */
.work-table col.col-active   { width: 350px !important; } /* Наименование актива */

/* Fallback на случай, если colgroup переопределяется */
.work-table th:nth-child(2),
.work-table td:nth-child(2) { width: 110px !important; }
.work-table th:nth-child(3),
.work-table td:nth-child(3) { width: 120px !important; }
.work-table th:nth-child(4),
.work-table td:nth-child(4) { width: 280px !important; }

/* Чтобы текст не рвал ширину, аккуратно подрезаем */
.work-table td:nth-child(2),
.work-table td:nth-child(3),
.work-table td:nth-child(4) {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 992px) {
  .work-table col.col-name { width: 220px !important; }
  .work-table th:nth-child(4),
  .work-table td:nth-child(4) { width: 220px !important; }
}

/* Наименование актива — обрезаем лишний текст троеточием */
.work-table td:nth-child(5),
.legal-table td:nth-child(5),
.performers-table td:nth-child(5) {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 0; /* ширина задаётся colgroup'ом */
}



/* ==== Legal Entities table (Юридические лица) ==== */
.legal-table { table-layout: fixed; }
.legal-table col.col-checkbox { width: 30px  !important; }
.legal-table col.col-project  { width: 100px !important; }
.legal-table col.col-type     { width: 50px  !important; }
.legal-table col.col-name     { width: 220px !important; }
.legal-table col.col-active   { width: 350px !important; } /* Наименование актива */

.legal-table th:first-child,
.legal-table td:first-child { width: 30px !important; min-width: 30px !important; max-width: 30px !important; padding-left: .4rem; padding-right: .4rem; }
.legal-table th:nth-child(2),
.legal-table td:nth-child(2) { width: 100px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.legal-table th:nth-child(3),
.legal-table td:nth-child(3) { width: 50px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.legal-table th:nth-child(4),
.legal-table td:nth-child(4) { width: 220px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* Fallback на случай, если colgroup переопределяется */
.work-table th:nth-child(2),
.work-table td:nth-child(2) { width: 110px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.work-table th:nth-child(3),
.work-table td:nth-child(3) { width: 120px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.work-table th:nth-child(4),
.work-table td:nth-child(4) { width: 220px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }





/* ==== Performers table ==== */
.performers-table { table-layout: fixed; }

.performers-table col.col-checkbox { width: 30px  !important; }
.performers-table col.col-number   { width: 100px !important; } /* 4444RU-0 */
.performers-table col.col-type     { width: 50px  !important; } /* Тип */
.performers-table col.col-name     { width: 220px !important; } /* Название */
.performers-table col.col-active   { width: 350px !important; } /* Наименование актива */


.performers-table th:nth-child(2),
.performers-table td:nth-child(2) { width: 110px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.performers-table th:nth-child(3),
.performers-table td:nth-child(3) { width: 120px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.performers-table th:nth-child(4),
.performers-table td:nth-child(4) { width: 280px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 992px) {
  .performers-table col.col-name { width: 220px !important; }
  .performers-table th:nth-child(4),
  .performers-table td:nth-child(4) { width: 220px !important; }
}

/* +0px слева у колонки с чекбоксами во всех 3 таблицах раздела "Проекты" */
#projects-pane table.table > thead tr > :first-child,
#projects-pane table.table > tbody tr > :first-child,

#performers-pane table.table > thead tr > :first-child,
#performers-pane table.table > tbody tr > :first-child {
  padding-left: calc(var(--bs-table-cell-padding-x, .4rem) + 0px);
}

/* На всякий случай убираем внешние отступы у .form-check внутри первой колонки */
#projects-pane table.table > thead tr > :first-child .form-check,
#projects-pane table.table > tbody tr > :first-child .form-check,
#performers-pane table.table > thead tr > :first-child .form-check,
#performers-pane table.table > tbody tr > :first-child .form-check {
  margin-left: 0;
}