

.switch {
    position: relative;
    display: inline-block;
    width: 55px;
    height: 28px;
  }
  
  .switch input { 
    opacity: 0;
    width: 0;
    height: 0;
  }
  
  .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    -webkit-transition: .4s;
    transition: .4s;
  }
  
  .slider:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
  }
  
  input:checked + .slider {
    background-color: #2196F3;
  }
  
  input:focus + .slider {
    box-shadow: 0 0 1px #2515b6;
  }
  
  input:checked + .slider:before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
  }
  
  .slider.round {
    border-radius: 34px;
  }
  
  .slider.round:before {
    border-radius: 50%;
  }
  
  @media (max-width: 1024px){
.navbar {
    left: 0px !important ;
    right: 0 !important ;
}
}
  
/*
 * Обвязка DataTables (строка «Показать N / Поиск» и строка «Записи / страницы»)
 * свёрстана бутстраповской сеткой: .row тянет margin-left/right: -15px в расчёте
 * на то, что у контейнера есть компенсирующий padding. У .dataTables_wrapper его
 * нет — components.css гасит его через padding: 0 !important. В итоге обвязка
 * вылезала на 15px за оба края карточки, и под КАЖДОЙ таблицей появлялась
 * горизонтальная полоса прокрутки, даже если таблица целиком помещалась по ширине.
 *
 * Гасим отрицательные поля у самой обвязки, а не возвращаем padding: колонки
 * внутри всё равно прижаты к краям (слева — «Показать N», справа — «Поиск»),
 * так что их собственные отступы тоже лишние.
 */
.dataTables_wrapper > .row {
    margin-left: 0;
    margin-right: 0;
}

.dataTables_wrapper > .row > [class*="col-"] {
    padding-left: 0;
    padding-right: 0;
}

/* Пузырь сообщения покупателя в чате заказа (orderchat.js).
   Раньше здесь стоял бутстраповский .bg-light — он задаёт светлый фон
   (#e3eaef) и НЕ переопределён в тёмной теме, а цвет текста не задавал вовсе,
   наследуя его от страницы. В тёмной теме текст страницы почти белый
   (--c-text: #e7ece9), и сообщение покупателя становилось белым по белому —
   читалось только выделением мышью. Сообщение поставщика этим не страдало:
   у него цвет задан явно (.text-white на .bg-primary).
   Берём токены темы: они определены и в светлой, и в тёмной, поэтому пузырь
   остаётся контрастным в обеих. Фолбэки — на случай, если theme.css не
   подключился. */
.chat-bubble-buyer {
    background-color: var(--c-surface-2, #e3eaef);
    color: var(--c-text, #1b211e);
    border: 1px solid var(--c-border, #d6dee3);
}

.chat-bubble-buyer .chat-bubble-time {
    color: var(--c-text-muted, #5b6660);
}

/* Подпись автора — курьер или системная запись о приёмке (v052). Приглушена:
   это пометка «кто это сказал», а не часть сообщения. Цвет тем же токеном,
   что и время, иначе в тёмной теме она слилась бы с фоном пузыря. */
.chat-bubble-buyer .chat-bubble-author {
    color: var(--c-text-muted, #5b6660);
}

/* ── Карточка заказа: плитки одной строки — одной высоты ──────────────────
   В строке «Курьер» / «Доставить» и «Метод оплаты» / «Дата заказа» текста
   разное количество, и плитки выходили разной высоты: сетка выглядела
   рваной, будто половина карточек недогрузилась.

   Колонки .row и так равны по высоте (Bootstrap 4 делает строку flex), не
   тянулась сама .card. Делаем колонку flex-контейнером — карточка занимает
   её целиком и выравнивается с соседней. Правило адресное (внутри
   .invoice-print карточки заказа и страницы правки), чтобы не задеть
   остальные сетки админки. */
.invoice-print > .row > [class*="col-"] {
    display: flex;
}

.invoice-print > .row > [class*="col-"] > .card {
    width: 100%;
}
