/* Скрываем текстовые предупреждения */
.timezonewarning {
    display: none !important;
}

/*
  ---- CRM: горизонтальный скролл только для инлайнов ----
  На маленьких экранах TabularInline (особенно "Платежи") может быть шире viewport,
  из-за чего появляется горизонтальный скролл у всей страницы.
  Решение: делаем скролл-контейнером сам инлайн (его обёртку `.tabular`),
  а таблицу допускаем шире контейнера.
*/
.inline-group,
.inline-group .inline-related {
    max-width: 100%;
    box-sizing: border-box;
}

.inline-group {
    margin: 0 !important;
}

.inline-group + .inline-group {
    margin-top: 15px !important;
}

/* TabularInline: скроллим только блок инлайна */
.inline-group .tabular {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

/* Если заголовок+таблица обёрнуты в общий скролл-контейнер — убираем двойной скролл */
.inline-group .inline-xscroll {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

.inline-group .inline-xscroll > h2 {
    /* ширина задаётся JS под ширину таблицы (scrollWidth) */
    display: block;
    box-sizing: border-box;
}

.inline-group .inline-xscroll .tabular {
    overflow-x: visible !important;
}

/* Вариант разметки, когда инлайн — это fieldset.module и table лежит напрямую */
fieldset.module > .inline-xscroll {
    max-width: 100%;
    overflow-x: auto;
    overflow-y: visible;
    -webkit-overflow-scrolling: touch;
}

fieldset.module > .inline-xscroll > h2 {
    /* ширина задаётся JS под ширину таблицы (scrollWidth) */
    display: block;
    box-sizing: border-box;
}

fieldset.module > .inline-xscroll > table {
    min-width: 100%;
    width: max-content;
}

/* Таблица может быть шире контейнера -> появляется скролл внутри `.tabular` */
.inline-group .tabular table {
    min-width: 100%;
    width: max-content;
}

/* Скрываем заголовки строк - универсальное правило для всех инлайнов */
/* Для TabularInline - скрываем ячейку с дублирующим текстом */
.inline-group td.original {
    display: none !important;
}
.inline-group td.original p {
    display: none !important;
}
/* Для StackedInline и других вариантов */
.inline-group .original {
    display: none !important;
}
.inline-group .original p {
    display: none !important;
}
/* Скрываем дублирующие текстовые элементы над строками в формах */
.inline-group tr.form-row .original,
.inline-group tr.form-row td.original {
    display: none !important;
}
.inline-group .inline_label {
    display: none !important;
}


/* 2. Убираем обертку <p> для полей даты */
.inline-related .field-valid_from p.date,
.inline-related .field-valid_until p.date {
    margin: 0 !important;
    padding: 0 !important;
    display: inline !important;
}

/* 3. Делаем инпуты даты компактными */
.inline-related .field-valid_from input.vDateField,
.inline-related .field-valid_until input.vDateField {
    width: 100px !important;
    height: 28px !important;
    margin: 0 !important;
    vertical-align: middle !important;
    display: inline-block !important;
}

/* 4. Выравниваем все ячейки по верху */
.inline-related tr.form-row td {
    vertical-align: top !important;
    padding: 8px 5px !important;
}

/* 5. Убираем лишние отступы в ячейках с датами */
.inline-related .field-valid_from,
.inline-related .field-valid_until {
    padding-top: 4px !important;
}

/* 6. Убедимся, что все инпуты имеют одинаковую высоту */
.inline-related select,
.inline-related input[type="number"],
.inline-related input[type="text"] {
    height: 28px !important;
    box-sizing: border-box !important;
    vertical-align: middle !important;
}

/* 7. Специфично для полей даты - убираем обертку */
.inline-related .field-valid_from > div,
.inline-related .field-valid_until > div {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1 !important;
}

/* 8. Для динамически добавляемых строк */
.dynamic-prices .field-valid_from,
.dynamic-prices .field-valid_until {
    white-space: nowrap !important;
}

/* 9. Скрываем значки редактирования, добавления и просмотра в инлайнах */
/*
  Связанные иконки возле FK/M2M полей в админке:
  - полностью убираем add/change/delete/lookup во всём проекте
  - оставляем только "стрелочку-ссылку" (view-related) и только для моделей из приложения crm
*/

/* Django admin "plus/pencil/trash" */
.related-widget-wrapper-link.add-related,
.related-widget-wrapper-link.change-related,
.related-widget-wrapper-link.delete-related {
    display: none !important;
}

/* Старый raw_id_fields "лупа" / "плюс" (зависит от версии Django/темплейта) */
a.related-lookup,
a.add-another {
    display: none !important;
}

/* По умолчанию "view-related" скрыта везде... */
.related-widget-wrapper-link.view-related {
    display: none;
}

/* ...и включается только для объектов из приложения crm (training/payment/client/coachpayment и т.п.) */
.related-widget-wrapper-link.view-related[href*="/crm/"] {
    display: inline-block;
}

/* Визуально заменяем стандартную "view" иконку на стрелочку Material Icons */
.related-widget-wrapper-link.view-related {
    background-image: none !important;
    background: none !important;
    text-indent: 0 !important;
    width: 20px !important;
    height: 20px !important;
    vertical-align: middle !important;
    margin-left: -5px !important;
    position: relative !important;
    overflow: hidden !important;
}

.related-widget-wrapper-link.view-related img {
    display: none !important;
}

.related-widget-wrapper-link.view-related::before {
    content: 'arrow_forward' !important;
    font-family: 'Material Icons' !important;
    font-size: 18px !important;
    color: var(--body-quiet-color, #666) !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    line-height: 1 !important;
    display: inline-block !important;
}

.related-widget-wrapper-link.view-related:hover::before {
    color: var(--primary, #23949f) !important;
}

/* ---- CRM: "Клиенты" → inline "Операции по депозиту" (payments-group) ---- */
/* В этом инлайне часть колонок обёрнута в <p> (с margin), а часть — нет,
   из-за чего поля оказываются на разных "горизонтальных уровнях". */
#payments-group.inline-group tr.form-row td {
    vertical-align: middle !important; /* перебиваем правило #4 (vertical-align: top !important) */
}

#payments-group.inline-group tr.form-row td p {
    margin: 0 !important;
}

/* Дата: держим input + "Сегодня/календарь" в одной линии */
#payments-group.inline-group td.field-payment_date p {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

/* Событие: делаем select компактнее (без растяжения на весь столбец) */
#payments-group.inline-group td.field-source_display select.deposit-source-display {
    width: auto !important;
    min-width: 220px;
    max-width: 320px;
    box-sizing: border-box;
}

/* Сертификат: делаем колонку шире */
#payments-group.inline-group th.column-certificate,
#payments-group.inline-group td.field-certificate {
    width: 150px;
    min-width: 150px;
    max-width: 420px;
}

#payments-group.inline-group td.field-certificate .select2-container {
    width: 100% !important;
    min-width: 150px;
    box-sizing: border-box;
}

/* Тренировка: ограничиваем ширину, чтобы не съедала место у остальных колонок */
#payments-group.inline-group th.column-training_link,
#payments-group.inline-group td.field-training_link {
    width: 200px;
    max-width: 200px;
}

#payments-group.inline-group td.field-training_link {
    white-space: normal;
    word-break: break-word;
}
