/* Брендирование Django Admin (Jazzmin) под стиль ЛК «Сервис закупки запчастей».
   Подключается через JAZZMIN_SETTINGS['custom_css'].
   Шрифты подгружаются Jazzmin'ом через use_google_fonts_cdn — мы только переопределяем семейство. */

/* Общая типографика — Inter / Inter Tight как в ЛК */
body,
.app-sidebar,
.brand-link,
.nav-link,
.btn,
.form-control,
.card-title,
h1, h2, h3, h4, h5, h6 {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

h1, h2, h3, .brand-link, .card-title {
  font-family: 'Inter Tight', 'Inter', system-ui, sans-serif;
  font-weight: 600;
}

/* Скругления карточек ближе к ЛК */
.card,
.info-box,
.small-box,
.modal-content {
  border-radius: 12px;
  border: 0;
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 4px rgba(0, 0, 0, .04);
}

.card-header {
  border-radius: 12px 12px 0 0;
  border-bottom: 1px solid rgba(0, 0, 0, .06);
}

/* Бренд в шапке сайдбара — чтобы «Сервис закупки запчастей» помещался целиком */
.app-sidebar .brand-link {
  padding: .8rem 1rem !important;
  white-space: normal !important;
}
.app-sidebar .brand-link,
.sidebar-brand .brand-link {
  white-space: normal !important;
}
.app-sidebar .brand-link .brand-text,
.sidebar-brand .brand-text {
  font-size: 1.25rem !important;                  /* как fs-5 в ЛК */
  font-weight: 600 !important;
  letter-spacing: -0.01em;
  white-space: normal !important;
  line-height: 1.2 !important;
  display: inline-block;
  max-width: 100% !important;
  color: #fff !important;
}

/* Сайдбар: точные тона из ЛК (yp-sidebar-body / yp-sidebar nav-link)
   и ширина 20rem = 320px как в ЛК (#yp-sidebar).
   В AdminLTE 4 сайдбар sticky → занимает место в нормальном потоке,
   поэтому app-main НЕ нужен дополнительный margin-left. */
:root {
  --lte-sidebar-width: 20rem !important;
}

.app-sidebar,
.app-sidebar.bg-body-secondary {
  background-color: #292933 !important;
  width: 20rem !important;
}

.app-main,
.app-footer {
  margin-left: 0 !important;
}

.app-sidebar .brand-link,
.app-sidebar .sidebar-brand,
.sidebar-brand {
  background-color: #292933 !important;
  border-bottom: 1px solid rgba(255, 255, 255, .08);
  color: #fff !important;
}

/* Цвета пунктов меню — как в ЛК */
.app-sidebar .nav-sidebar .nav-link {
  color: #ACACAC !important;
  border-radius: 8px;
  margin: 2px 6px;
}

.app-sidebar .nav-sidebar > .nav-item > .nav-link:hover,
.app-sidebar .nav-sidebar > .nav-item > .nav-link.active,
.app-sidebar .nav-treeview > .nav-item > .nav-link.active {
  background-color: #1E1E27 !important;
  color: #fff !important;
}

/* Топ-навбар светлый — как контент-зона в ЛК (без отдельной тёмной полосы) */
nav.app-header,
nav.app-header.bg-body,
nav.app-header.navbar-dark {
  background-color: #fff !important;
  border-bottom: 1px solid #e9ecef !important;
}
nav.app-header .nav-link,
nav.app-header a {
  color: #252525 !important;
}
nav.app-header .nav-link:hover,
nav.app-header a:hover {
  color: #CA0717 !important;
}

/* Dropdown в навбаре (правая иконка пользователя) — тёмный текст на белом,
   единый стиль для всех пунктов: и ссылки «Изменить пароль» / «Профиль»,
   и form-button «Выйти», и кнопки переключения темы. */
nav.app-header .dropdown-menu {
  background-color: #fff;
  border: 1px solid #e9ecef;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
  padding: .25rem 0;
}
nav.app-header .dropdown-menu .dropdown-header {
  color: #969696;
  font-size: .8rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .03em;
  padding: .5rem 1rem;
}
nav.app-header .dropdown-menu .dropdown-item,
nav.app-header .dropdown-menu a,
nav.app-header .dropdown-menu button.dropdown-item {
  color: #252525 !important;
  background-color: transparent !important;
  border: 0 !important;
  width: 100%;
  text-align: left;
  padding: .5rem 1rem !important;
  font-size: .95rem;
}
nav.app-header .dropdown-menu .dropdown-item:hover,
nav.app-header .dropdown-menu .dropdown-item:focus,
nav.app-header .dropdown-menu a:hover,
nav.app-header .dropdown-menu button.dropdown-item:hover {
  background-color: #f4f5f8 !important;
  color: #CA0717 !important;
}
nav.app-header .dropdown-menu .dropdown-divider {
  border-top-color: #e9ecef;
  margin: .25rem 0;
}
/* «Профиль» с классом dropdown-footer выравниваем как обычный пункт +
   добавляем иконку (в jazzmin шаблоне для footer-айтема её нет — мы её
   подмешиваем CSS, чтобы было единообразно с «Изменить пароль» и «Выйти»). */
nav.app-header .dropdown-menu .dropdown-footer {
  text-align: left;
  font-size: .95rem;
  font-weight: 400;
  background-color: transparent !important;
}
nav.app-header .dropdown-menu .dropdown-footer::before {
  content: "\f007";  /* fa-user */
  font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
  font-weight: 900;
  display: inline-block;
  width: 1em;
  margin-right: .5rem;
  text-align: center;
}
/* Форма logout не должна добавлять отступы вокруг своей кнопки */
nav.app-header .dropdown-menu form#logout-form {
  margin: 0;
}

/* Кнопки — единый красный акцент как в ЛК (--yp-color-red) */
.btn-primary,
.btn-success,
.btn-danger {
  background-color: #CA0717 !important;
  border-color: #CA0717 !important;
  color: #fff !important;
}
.btn-primary:hover, .btn-primary:focus,
.btn-success:hover, .btn-success:focus,
.btn-danger:hover, .btn-danger:focus {
  background-color: #A60714 !important;
  border-color: #A60714 !important;
  color: #fff !important;
}
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger {
  color: #CA0717 !important;
  border-color: #CA0717 !important;
  background-color: transparent !important;
}
.btn-outline-primary:hover,
.btn-outline-success:hover,
.btn-outline-danger:hover {
  background-color: #CA0717 !important;
  border-color: #CA0717 !important;
  color: #fff !important;
}

/* Ссылки в таблицах и заголовках — тёмные с красным hover (как в ЛК) */
.app-content a,
table a,
.results a,
th a,
.field-id a,
.module a {
  color: #252525;
  text-decoration: none;
}
.app-content a:hover,
table a:hover,
.results a:hover,
th a:hover,
.module a:hover {
  color: #CA0717;
}

/* Отдельно — ссылки в шапке списка (sortable colonki) тоже тёмные */
.results thead a,
#changelist table thead a {
  color: #252525 !important;
}

/* Кнопка-ссылка «Изменить»/«Просмотреть» в дашборде — нейтральный outline */
.btn-info {
  background-color: #fff;
  border-color: #d2d6dc;
  color: #1f2937;
}
.btn-info:hover, .btn-info:focus {
  background-color: #f4f5f8;
  border-color: #c7ccd6;
  color: #1f2937;
}

/* Поля форм — компактные радиусы и более мягкие границы */
.form-control,
.form-select,
.select2-container--default .select2-selection {
  border-radius: 8px;
  border-color: #e0e3ea;
}

/* Django admin рендерит <input size="X"> исходя из max_length поля,
   из-за чего короткие поля становятся узкими и нечитабельными.
   Растягиваем все «v*Field» инпуты Django admin на всю ширину колонки. */
input.vTextField,
input.vURLField,
input.vEmailField,
input.vSlugField,
input.vForeignKeyRawIdAdminField,
textarea.vLargeTextField,
textarea {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  box-sizing: border-box;
}

/* Числовые/дата/время — компактные, разумный max-width */
input.vIntegerField,
input.vBigIntegerField,
input.vPositiveIntegerField,
input.vDateField,
input.vTimeField {
  width: auto !important;
  max-width: 16rem;
}

/* Select2 (FK/M2M) — занимает всю ширину колонки. Native <select> сам
   уже широкий, но select2 контейнер может ужиматься. */
.select2-container,
.related-widget-wrapper > .select2-container {
  width: 100% !important;
  max-width: 100% !important;
}

/* select2 по умолчанию обрезает длинный текст одной строкой с ellipsis.
   Разрешаем перенос как в выбранном значении (header), так и в опциях dropdown'а. */
.select2-container--default .select2-selection--single {
  height: auto !important;
  min-height: calc(2px + 2.25rem);
  padding: .25rem 0;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  white-space: normal !important;
  word-break: break-word;
  line-height: 1.4 !important;
  padding-right: 2rem;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  top: 0 !important;
}
/* Опции в открытом dropdown'е — тоже разрешаем wrap */
.select2-container .select2-results__option {
  white-space: normal !important;
  word-break: break-word;
  line-height: 1.4 !important;
}

/* Tabular inline (например «Запчасти» внутри «Закупки») — 6 столбцов,
   сжимаются до нечитабельного размера. Делаем горизонтальный скролл,
   а каждому полю — разумный min-width. */
.inline-group .tabular .module,
.inline-group.tabular {
  overflow-x: auto;
}
.inline-group .tabular table {
  min-width: 100%;
}
.inline-group .tabular input.vTextField,
.inline-group .tabular input.vIntegerField,
.inline-group .tabular input.vURLField {
  min-width: 9rem;
}
.inline-group .tabular .select2-container {
  min-width: 11rem !important;
}

/* Светло-серый фон страниц как `bg-ltgrey` в ЛК */
body.skin-default,
body {
  background-color: #f4f5f8;
}

/* Подвиньчик «Действия» в списках — ближе к стилю ЛК */
.action-counter {
  border-radius: 8px;
}

/* Заголовок модуля */
.content-header h1 {
  font-weight: 600;
  letter-spacing: -0.01em;
}

/* Хлебные крошки «Начало / Админпанель / …» — фирменный красный для ссылок,
   серый для текущей страницы */
.breadcrumb {
  background-color: transparent;
  padding: 0;
  margin-bottom: 0;
}
.breadcrumb .breadcrumb-item a {
  color: #CA0717;
  text-decoration: none;
}
.breadcrumb .breadcrumb-item a:hover {
  color: #A60714;
  text-decoration: underline;
}
.breadcrumb .breadcrumb-item.active {
  color: #969696;
}
.breadcrumb-item + .breadcrumb-item::before {
  color: #969696;
}

/* Прячем «Jazzmin Version X.Y.Z» в футере — это не наш бренд */
footer.app-footer .float-end,
footer.app-footer .float-right {
  display: none !important;
}

/* Футер — единая типографика для всей строки. Ссылка «devять it» —
   обычная inline-ссылка с подчёркиванием, без яркого красного выделения. */
footer.app-footer {
  font-size: .875rem;
  color: #6c757d;
  background-color: transparent;
  font-weight: 400;
}
footer.app-footer a {
  color: inherit;
  text-decoration: underline;
}
footer.app-footer a:hover {
  color: #252525;
}

/* На change-формах оставляем только основные действия:
   «Сохранить», «Удалить», «История».
   Прячем побочные «Сохранить и добавить другой объект» и
   «Сохранить и продолжить редактирование» — они захламляют интерфейс. */
input[name="_addanother"],
input[name="_continue"],
button[name="_addanother"],
button[name="_continue"] {
  display: none !important;
}

/* На FK-полях оставляем только глаз (просмотр связанной записи).
   Карандаш / плюс / крест убираем — админ не должен править словарные
   объекты «на лету», есть отдельный раздел «Справочники». */
.related-widget-wrapper-link.change-related,
.related-widget-wrapper-link.add-related,
.related-widget-wrapper-link.delete-related {
  display: none !important;
}

/* Скрываем стандартное «Пожалуйста, исправьте ошибку ниже» — у нас своё
   понятное сообщение в шаблоне change_form.html (с inline style, чтобы
   этот селектор его не цепанул). */
.alert.alert-danger:not([style]) {
  display: none !important;
}
