/* ========================================
   COMMON.CSS - Глобальные стили проекта
   ======================================== */

/* Плавающий заголовок таблиц */
.table-sticky-header {
  position: sticky !important;
  top: 64px !important;
  z-index: 9999 !important;
  background-color: #e9ecef !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

.table-sticky-header th {
  position: static !important;
  background-color: #e9ecef !important;
  border-bottom: 1px solid #dee2e6 !important;
  vertical-align: top !important;
}

/* Убираем ограничения overflow для плавающих заголовков */
.table-responsive-sticky {
  overflow: visible !important;
}

/* Стили для иконок действий */
.action-icon {
  cursor: pointer;
  transition: all 0.2s ease-in-out;
}

.action-icon:hover {
  transform: scale(1.1);
  opacity: 0.8;
}

.action-icon.edit {
  color: #F9AA01;
}

.action-icon.delete {
  color: #dc3545;
}

.action-icon.view {
  color: #0d6efd;
}

/* Кнопки размера xs (меньше чем btn-sm) */
.btn-xs {
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  line-height: 1.2;
  border-radius: 0.25rem;
}

.btn-xs .ti {
  font-size: 0.75rem;
}

/* Общие стили для карточек */
.card-custom {
  border: 1px solid #e9ecef;
  border-radius: 0.375rem;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

/* Стили для форм */
.form-control-custom {
  border: 1px solid #ced4da;
  border-radius: 0.375rem;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-control-custom:focus {
  border-color: #86b7fe;
  outline: 0;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

/* Стили для кнопок */
.btn-custom {
  border-radius: 0.375rem;
  font-weight: 500;
  transition: all 0.15s ease-in-out;
}

/* Стили для таблиц */
.table-custom th {
  vertical-align: top !important;
  text-transform: none !important;
  font-weight: 600 !important;
  letter-spacing: -0.3px !important;
  color: #000000 !important;
  background-color: #e9ecef !important;
  padding: 0.5rem !important;
}

.table-custom td {
  vertical-align: middle !important;
  padding: 0.5rem !important;
}

/* Стили для модальных окон */
.modal-custom .modal-header {
  border-bottom: 1px solid #dee2e6;
  background-color: #f8f9fa;
}

.modal-custom .modal-footer {
  border-top: 1px solid #dee2e6;
  background-color: #f8f9fa;
}

/* Стили для уведомлений */
.alert-custom {
  border-radius: 0.375rem;
  border: none;
  box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
}

/* Стили для навигации */
.nav-custom .nav-link {
  color: #6c757d;
  transition: color 0.15s ease-in-out;
}

.nav-custom .nav-link:hover,
.nav-custom .nav-link.active {
  color: #0d6efd;
}

/* Стили для пагинации */
.pagination-custom .page-link {
  color: #0d6efd;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  margin: 0 0.125rem;
}

.pagination-custom .page-link:hover {
  color: #0a58ca;
  background-color: #e9ecef;
  border-color: #dee2e6;
}

.pagination-custom .page-item.active .page-link {
  background-color: #0d6efd;
  border-color: #0d6efd;
}

/* Стили для загрузки */
.loading-spinner {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border: 0.125rem solid #f3f3f3;
  border-top: 0.125rem solid #0d6efd;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* Стили для статусов */
.status-active {
  color: #198754;
  background-color: #d1e7dd;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.875rem;
}

.status-inactive {
  color: #dc3545;
  background-color: #f8d7da;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.875rem;
}

.status-pending {
  color: #fd7e14;
  background-color: #fff3cd;
  padding: 0.25rem 0.5rem;
  border-radius: 0.25rem;
  font-size: 0.875rem;
}

/* Адаптивные стили */
@media (max-width: 768px) {
  .table-custom th,
  .table-custom td {
    padding: 0.25rem !important;
    font-size: 0.875rem;
  }
  
  .btn-custom {
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
  }
}

/* Стили для печати */
@media print {
  .no-print {
    display: none !important;
  }
  
  .table-custom {
    border-collapse: collapse;
  }
  
  .table-custom th,
  .table-custom td {
    border: 1px solid #000;
  }
}

.icon-wrapper-24 {
    cursor: pointer;
    width: 24px;
    height: 24px;
    /* padding: 3px 1px 0 0; */
    text-align: center;
    vertical-align: middle;
    border: none;
    background-color: inherit;
}

.icon-wrapper-24:hover {
    border-radius: 5px;
    background-color: #FFF8DC;
}

.icon-wrapper-24-red:hover {
    border: 2px solid red;
}

.icon-wrapper-24-orange:hover {
    border: 2px solid #f1892c;
}

.icon-wrapper-24-blue:hover {
    border: 2px solid blue;
}

.icon-wrapper-24-black:hover {
    border: 2px solid black;
}

/* ========================================
   DATA TABLE STICKY - Общие стили для таблиц с плавающим заголовком
   ======================================== */

/* Убираем все ограничения overflow для плавающих заголовков */
.data-table-sticky-container {
  overflow: visible !important;
  position: relative;
}

.data-table-sticky-container .table-responsive {
  overflow-x: auto !important;
  overflow-y: visible !important;
  position: relative;
}

.data-table-sticky-container .dataTables_wrapper {
  overflow: visible !important;
  position: relative;
}


/* Dropdown меню должны быть выше sticky header таблицы */
.dropdown-menu {
  z-index: 10002 !important;
}

/* Горизонтальное меню навигации должно быть выше всех элементов контента, включая фильтры */
/* Используем более высокий z-index, чем у всех элементов контента */
.menu-horizontal .menu-sub,
.layout-navbar .menu-horizontal .menu-sub,
.layout-horizontal .menu-horizontal .menu-sub,
.menu-horizontal .menu-item.open .menu-sub {
  z-index: 10004 !important;
  position: absolute !important;
}

/* Navbar с горизонтальным меню должен быть выше контента */
.layout-horizontal .layout-navbar,
.layout-horizontal .layout-navbar .navbar-nav {
  position: relative;
  z-index: 10003 !important;
}

/* Меню должно быть выше карточек фильтров */
.menu-horizontal .menu-sub {
  z-index: 10004 !important;
}

/* КРИТИЧЕСКИ ВАЖНО: Кнопки над таблицами НЕ должны перекрывать выпадающее меню навигации */
/* Убираем z-index и все свойства, создающие stacking context, для всех элементов в первой строке card-body */
/* Применяем к карточкам с таблицами */
.card:has(.data-table-sticky-container) .card-body > .row:first-child,
.card:has(.data-table-sticky) .card-body > .row:first-child,
.card-body > .row:first-child,
.card-body > .row:first-child > *,
.card-body > .row:first-child .col-sm-4,
.card-body > .row:first-child .col-md-4,
.card-body > .row:first-child .col-sm-8,
.card-body > .row:first-child .col-md-8,
.card-body > .row:first-child .text-end,
.card-body > .row:first-child .d-flex,
.card-body > .row:first-child .btn-group,
.card-body > .row:first-child .btn,
.card-body > .row:first-child a.btn,
.card-body > .row:first-child button {
  position: static !important;
  z-index: auto !important;
  transform: none !important;
  opacity: 1 !important;
  filter: none !important;
  will-change: auto !important;
  isolation: auto !important;
}

/* Только для dropdown кнопки нужен position: relative для правильного позиционирования меню */
.card-body > .row:first-child .btn-group .dropdown-toggle {
  position: relative !important;
  z-index: auto !important;
}

/* Dropdown меню кнопок над таблицами должны быть выше, но не перекрывать навигацию */
.card-body > .row:first-child .dropdown-menu {
  z-index: 10002 !important;
}

/* Плавающий заголовок таблицы */
.data-table-sticky thead {
  position: sticky !important;
  top: 0 !important;
  /* z-index должен быть ниже меню (menu z-index обычно 9-1036), но выше контента */
  z-index: 100 !important;
  background-color: var(--bs-card-bg) !important;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
  margin-bottom: 0 !important;
}

/* Если навбар фиксированный, учитываем его высоту */
.layout-navbar-fixed .data-table-sticky thead,
body.layout-navbar-fixed .data-table-sticky thead {
  top: 64px !important;
}

/* Для горизонтального layout - учитываем высоту навбара + горизонтального меню при скролле */
/* Убираем специфичные правила для горизонтального layout - пусть используется базовое значение или JS */
.layout-horizontal .data-table-sticky thead {
  /* Значение будет устанавливаться через JavaScript динамически */
  top: 0 !important;
}

/* Для вертикального layout без фиксированного навбара */
.layout-content-navbar:not(.layout-navbar-fixed) .data-table-sticky thead {
  top: 0 !important;
}

/* Предотвращаем наезжание элементов при скролле */
/* Отключаем overflow только для карточек с таблицами */
/* НЕ создаем stacking context - убираем все свойства, которые его создают */
.card:has(.data-table-sticky-container),
.card:has(.data-table-sticky) {
  overflow: visible !important;
  position: static !important;
  z-index: auto !important;
  transform: none !important;
  opacity: 1 !important;
  filter: none !important;
  will-change: auto !important;
  isolation: auto !important;
}

.card-body:has(.data-table-sticky-container),
.card-body:has(.data-table-sticky) {
  overflow: visible !important;
  /* НЕ создаем stacking context - убираем все свойства, которые его создают */
  position: static !important;
  z-index: auto !important;
  transform: none !important;
  isolation: auto !important;
}

/* УДАЛЕНО: Это правило создавало stacking context и перекрывало выпадающее меню навигации */
/* Правило заменено на более специфичные правила выше, которые убирают z-index у всех элементов */
/* .card-body > .row:first-child {
  position: relative;
  z-index: 10001 !important;
  margin-bottom: 1rem;
} */

/* Контейнер для таблицы - чтобы не наезжал на другие элементы при скролле */
.data-table-sticky-container {
  isolation: isolate;
  position: relative;
  z-index: 1;
}

.data-table-sticky thead th {
  position: static !important;
  background-color: var(--bs-card-bg) !important;
  border: 1px solid var(--bs-border-color) !important;
  vertical-align: top !important;
  text-transform: none !important;
  font-weight: 600 !important;
  letter-spacing: -0.3px !important;
  color: var(--bs-body-color) !important;
  padding-left: 5px !important;
  padding-right: 5px !important;
}

.data-table-sticky tbody td {
  vertical-align: middle !important;
  padding-left: 5px !important;
  padding-right: 5px !important;
}

/* Дополнительная настройка для DataTables */
.data-table-sticky.dataTable thead th,
.data-table-sticky.dataTable tbody td {
  padding-left: 5px !important;
  padding-right: 5px !important;
}

/* Принудительное применение стилей */
.data-table-sticky.table th {
  vertical-align: top !important;
  text-transform: none !important;
  font-weight: 600 !important;
  padding-left: 5px !important;
  padding-right: 5px !important;
  letter-spacing: -0.3px !important;
  color: var(--bs-body-color) !important;
  background-color: var(--bs-card-bg) !important;
}

.data-table-sticky.table td {
  vertical-align: middle !important;
  padding-left: 5px !important;
  padding-right: 5px !important;
}

/* Границы для всех ячеек заголовка таблицы */
.data-table-sticky thead th {
  border: 1px solid var(--bs-border-color) !important;
}

/* Дополнительные границы для DataTables */
.data-table-sticky.dataTable thead th {
  border: 1px solid var(--bs-border-color) !important;
}

/* Принудительное применение границ */
.data-table-sticky.table thead th {
  border: 1px solid var(--bs-border-color) !important;
}

/* Границы для всех ячеек tbody */
.data-table-sticky tbody td {
  border: 1px solid var(--bs-border-color) !important;
}

/* Дополнительные границы для DataTables */
.data-table-sticky.dataTable tbody td {
  border: 1px solid var(--bs-border-color) !important;
}

/* Принудительное применение границ */
.data-table-sticky.table tbody td {
  border: 1px solid var(--bs-border-color) !important;
}

/* Стили для жирных границ */
/* Жирная верхняя граница для строки */
.data-table-sticky tbody tr.bold-border-top td,
.data-table-sticky tr.bold-border-top td {
  border-top: 2px solid #000000 !important;
}

/* Жирная нижняя граница для строки */
.data-table-sticky tbody tr.bold-border-bottom td,
.data-table-sticky tr.bold-border-bottom td {
  border-bottom: 2px solid #000000 !important;
}

/* Жирная верхняя граница для отдельной ячейки */
.data-table-sticky tbody td.bold-border-top,
.data-table-sticky td.bold-border-top {
  border-top: 2px solid #000000 !important;
}

/* Жирная нижняя граница для отдельной ячейки */
.data-table-sticky tbody td.bold-border-bottom,
.data-table-sticky td.bold-border-bottom {
  border-bottom: 2px solid #000000 !important;
}

/* Выдвижные панели должны быть поверх всех элементов */
.offcanvas {
  z-index: 10000 !important;
}

/* ========================================
   МОДАЛЬНЫЕ ОКНА - Стили для правильного отображения
   ======================================== */

/* Модальные окна должны быть поверх всех элементов */
.modal {
  z-index: 1055 !important;
}

.modal-backdrop {
  z-index: 1050 !important;
}

/* Дополнительная защита для модальных окон */
.modal.show {
  z-index: 1055 !important;
}

.modal.fade {
  z-index: 1055 !important;
}

/* Убеждаемся, что модальные окна отображаются поверх таблиц */
.modal-dialog {
  z-index: 1056 !important;
}

.modal-content {
  z-index: 1057 !important;
}

/* Стили для SweetAlert (если используется) */
.swal2-container {
  z-index: 99999 !important;
}

.swal2-backdrop {
  z-index: 99998 !important;
}

/* Принудительно скрываем дополнительные кнопки SweetAlert */
.swal2-actions .swal2-cancel,
.swal2-actions .swal2-deny,
.swal2-close {
  display: none !important;
}

/* ========================================
   МОДАЛЬНЫЕ ОКНА - Дополнительные стили для правильного отображения
   ======================================== */

/* Специфичные стили для модальных окон */
.modal {
  z-index: 99999 !important;
}

.modal-backdrop {
  z-index: 99998 !important;
}

.modal.show {
  z-index: 99999 !important;
}

.modal.fade {
  z-index: 99999 !important;
}

.modal-dialog {
  z-index: 100000 !important;
}

.modal-content {
  z-index: 100001 !important;
}

/* Убеждаемся, что модальное окно отображается поверх таблицы */
.modal[id$="-modal"] {
  z-index: 99999 !important;
}

.modal[id$="-modal"] .modal-dialog {
  z-index: 100000 !important;
}

.modal[id$="-modal"] .modal-content {
  z-index: 100001 !important;
}

/* Ограничиваем z-index таблицы - должен быть ниже меню */
.data-table-sticky thead {
  z-index: 100 !important;
}

.data-table-sticky thead th {
  z-index: 100 !important;
}

/* Принудительно скрываем таблицу при открытии модального окна */
body.modal-open .data-table-sticky thead {
  z-index: 1 !important;
}

body.modal-open .data-table-sticky thead th {
  z-index: 1 !important;
}

/* Дополнительные стили для принудительного отображения модального окна */
.modal[id$="-modal"] {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 99999 !important;
}

.modal[id$="-modal"] .modal-dialog {
  position: relative !important;
  z-index: 100000 !important;
}

.modal[id$="-modal"] .modal-content {
  position: relative !important;
  z-index: 100001 !important;
}

/* ========================================
   ОБЩИЕ СТИЛИ ДЛЯ ФОРМ И ФИЛЬТРОВ
   ======================================== */

/* Стили для форм фильтров */
.card-body .form-label {
  margin-bottom: 1px !important;
  font-size: 0.875rem !important;
}

.card-body .flex-shrink-0 {
  margin-bottom: 4px !important;
}

/* КРИТИЧЕСКИ ВАЖНО: Карточки фильтров НЕ должны создавать stacking context */
/* Это необходимо для правильного отображения выпадающего меню навигации */
.filters-card {
  position: static !important;
  z-index: 1 !important;
  transform: none !important;
  opacity: 1 !important;
  filter: none !important;
  will-change: auto !important;
  isolation: auto !important;
}

.filters-card .card-body {
  position: static !important;
  z-index: auto !important;
  transform: none !important;
  isolation: auto !important;
}

#filters-form,
form[id*="filters"] {
  position: static !important;
  z-index: auto !important;
  isolation: auto !important;
}

/* ========================================
   ОБЩИЕ СТИЛИ ДЛЯ ТАБЛИЦ
   ======================================== */

/* Убираем высокий z-index у заголовка таблицы для корректного отображения */
.data-table-sticky thead {
  z-index: 9999 !important;
}

/* Стили для чекбоксов в таблицах */
.dt-checkboxes-cell {
  text-align: center !important;
  vertical-align: middle !important;
}

.dt-checkboxes {
  margin: 0 !important;
}

/* Стили для иконок статусов */
.fa-circle-check {
  color: #63E6BE !important;
}

.fa-circle-xmark {
  color: #ff0033 !important;
}

/* ========================================
   ОБЩИЕ СТИЛИ ДЛЯ ПАГИНАЦИИ
   ======================================== */

.dataTables_paginate {
  margin-top: 0.5rem;
}

.pagination {
  margin-bottom: 0 !important;
}

/* ========================================
   ОБЩИЕ СТИЛИ ДЛЯ КНОПОК ДЕЙСТВИЙ
   ======================================== */

.btn-action {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.btn-action-sm {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ========================================
   ОБЩИЕ СТИЛИ ДЛЯ МОДАЛЬНЫХ ОКОН
   ======================================== */

/* Таблица без границ для модальных окон */
.modal .table-borderless {
  margin-bottom: 0;
}

.modal .table-borderless td {
  border: none !important;
  padding: 0.75rem 0.5rem;
  vertical-align: middle;
}

.modal .table-borderless .form-label {
  margin-bottom: 0;
  font-weight: 500;
  color: #6c757d;
}

.modal .table-borderless .form-control,
.modal .table-borderless .form-select {
  width: 100%;
}

/* Таблицы модальных окон с пропорциями столбцов */
.modal-table-30-70 td:first-child {
  width: 30% !important;
  background-color: #e9ecef !important;
}

.modal-table-30-70 td:last-child {
  width: 70% !important;
}

.modal-table-40-60 td:first-child {
  width: 40% !important;
  background-color: #e9ecef !important;
}

.modal-table-40-60 td:last-child {
  width: 60% !important;
}

/* Уменьшенная ширина модальных окон (только для модальных окон без специальных классов) */
.modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl):not(.modal-simple) {
  max-width: 400px !important;
  width: 90% !important;
}

/* Для очень маленьких экранов */
@media (max-width: 575.98px) {
  .modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl):not(.modal-simple) {
    max-width: 95% !important;
    margin: 0.5rem auto !important;
  }
}

/* ========================================
   FLATPICKR В МОДАЛЬНЫХ ОКНАХ
   ======================================== */

/* Календарь flatpickr в модальных окнах должен быть поверх всех элементов */
.flatpickr-calendar {
  z-index: 99999 !important;
}

/* Контейнер календаря в модальном окне */
.modal .modal-content {
  position: relative;
  overflow: visible;
}

/* Убираем overflow для модального тела, чтобы календарь был виден */
/* Также устанавливаем position: relative для правильного позиционирования btn-pinned */
.modal .modal-body {
  position: relative;
  overflow: visible;
}

/* Убираем горизонтальный скролл в модальных окнах */
.modal-dialog,
.modal-content,
.modal-body {
  overflow-x: hidden !important;
}

/* Переопределяем правило для modal-dialog-scrollable, которое сбрасывает transform для btn-close */
/* Простой крестик без фона и обводки - только иконка, неподвижный */
html body .modal .modal-header .btn-close:not(.btn-pinned),
html body .modal-dialog-scrollable .modal-header .btn-close:not(.btn-pinned),
#create-contract-modal .modal-header .btn-close:not(.btn-pinned),
#create-tariff-modal .modal-header .btn-close:not(.btn-pinned) {
  /* Убираем фон и обводку - делаем простой крестик */
  background-color: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 0.5rem !important;
  /* Используем стандартную Bootstrap иконку закрытия */
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") !important;
  background-size: 1em !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  opacity: 0.5 !important;
  transition: opacity 0.15s ease !important;
  transform: none !important;
  position: absolute !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
  width: 1em !important;
  height: 1em !important;
}

html body .modal .modal-header .btn-close:not(.btn-pinned):hover,
html body .modal .modal-header .btn-close:not(.btn-pinned):focus,
html body .modal .modal-header .btn-close:not(.btn-pinned):active,
html body .modal-dialog-scrollable .modal-header .btn-close:not(.btn-pinned):hover,
html body .modal-dialog-scrollable .modal-header .btn-close:not(.btn-pinned):focus,
#create-contract-modal .modal-header .btn-close:not(.btn-pinned):hover,
#create-contract-modal .modal-header .btn-close:not(.btn-pinned):focus,
#create-tariff-modal .modal-header .btn-close:not(.btn-pinned):hover,
#create-tariff-modal .modal-header .btn-close:not(.btn-pinned):focus {
  opacity: 0.75 !important;
  outline: none !important;
  transform: none !important;
}

/* Стили для красного крестика закрытия (btn-pinned) - применяется ко ВСЕМ модалкам */
/* Переопределяем стандартные стили Vuexy для btn-pinned с красным цветом */
/* Используем максимальную специфичность, чтобы переопределить vendor CSS, который загружается раньше */
/* Важно: btn-pinned уже имеет position: absolute; top: 0.75rem; right: 0.75rem; в vendor CSS */
/* Но для modal-simple нужно переопределить отрицательные значения top/right */
body .modal .modal-content .btn-close.btn-pinned,
body .modal.show .modal-content .btn-close.btn-pinned,
body .modal.fade.show .modal-content .btn-close.btn-pinned,
body .modal .modal-body .btn-close.btn-pinned,
.modal-simple .modal-content .btn-close.btn-pinned,
.modal-simple .modal-body .btn-close.btn-pinned,
#create-contract-modal .modal-content .btn-close.btn-pinned,
#create-contract-modal .modal-body .btn-close.btn-pinned {
  position: absolute !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
  left: auto !important;
  background-color: transparent !important;
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='18' viewBox='0 0 19 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 4.5L5 13.5' stroke='%23dc3545' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 4.5L14 13.5' stroke='%23dc3545' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
  background-size: 19px 18px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  border: none !important;
  box-shadow: none !important;
  opacity: 1 !important;
  transform: translate(0, 0) !important;
  width: 2rem !important;
  height: 2rem !important;
  padding: 0.44rem !important;
  margin: 0 !important;
  display: block !important;
  visibility: visible !important;
  z-index: 1055 !important;
}

body .modal .modal-content .btn-close.btn-pinned:hover,
body .modal .modal-content .btn-close.btn-pinned:focus,
body .modal.show .modal-content .btn-close.btn-pinned:hover,
body .modal .modal-body .btn-close.btn-pinned:hover,
body .modal .modal-body .btn-close.btn-pinned:focus,
.modal-simple .modal-content .btn-close.btn-pinned:hover,
.modal-simple .modal-body .btn-close.btn-pinned:hover,
#create-contract-modal .modal-content .btn-close.btn-pinned:hover,
#create-contract-modal .modal-body .btn-close.btn-pinned:hover {
  opacity: 0.75 !important;
  transform: translate(0, 0) !important;
  background-image: url("data:image/svg+xml,%3Csvg width='19' height='18' viewBox='0 0 19 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14 4.5L5 13.5' stroke='%23dc3545' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M5 4.5L14 13.5' stroke='%23dc3545' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
}

/* Для modal-simple переопределяем позиционирование (Vuexy ставит top: -2rem, right: -2rem, что скрывает кнопку) */
/* В Vuexy кнопка находится внутри modal-body, поэтому используем правильные селекторы */
/* Эти стили дублируют основное правило выше для большей специфичности */
.modal-simple .btn-close.btn-pinned,
.modal-simple .modal-body .btn-close.btn-pinned,
.modal-simple .modal-content .btn-close.btn-pinned,
#create-contract-modal.modal-simple .modal-body .btn-close.btn-pinned {
  transform: translate(0, 0) !important;
  box-shadow: none !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
  left: auto !important;
  position: absolute !important;
  z-index: 1055 !important;
}

/* Для modal-dialog-scrollable стандартный btn-close должен оставаться "на вылете" */
/* Стили для btn-pinned применяются только если класс btn-pinned явно указан */
.modal-dialog-scrollable .modal-content .btn-close.btn-pinned {
  transform: translate(0, 0) !important;
  box-shadow: none !important;
}


.modal-simple .modal-content .btn-close.btn-pinned:hover,
.modal-dialog-scrollable .modal-content .btn-close.btn-pinned:hover {
  transform: translate(0, 0) !important;
  top: 0.75rem !important;
  right: 0.75rem !important;
}

/* Для мобильных экранов (переопределяем медиа-запрос из Vuexy) */
@media (max-width: 767.98px) {
  .modal-simple .modal-content .btn-close.btn-pinned {
    top: 0.75rem !important;
    right: 0.75rem !important;
  }
}

/* Позиционирование календаря в модальном окне */
.modal .flatpickr-calendar {
  position: fixed !important;
}

/* Стиль кнопки удаления карты (как у кнопки закрытия модалки) */
.card-remove-btn {
  background: transparent !important;
  border: none !important;
  padding: 2px 4px !important;
  margin-left: 4px !important;
  cursor: pointer !important;
  opacity: 0.5 !important;
  transition: opacity 0.15s ease !important;
  color: currentColor !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.card-remove-btn:hover,
.card-remove-btn:focus {
  opacity: 0.75 !important;
  outline: none !important;
}