/* Утилиты, которых нет в Bootstrap и которыми пользуются виды админки: шкала отступов и размеров, мягкие бейджи, поля таблиц,
   панели карточки. Каждое правило называет то, что значит; новое сюда добавляют, только если без него не обойтись. */

/* Шкала отступов: 0–10 с шагом в четверть rem до 5 и дальше (в Bootstrap шаги 3–5 крупнее, виды написаны под эту шкалу) */
.mt-0{margin-top:0 !important;}
.mt-3{margin-top:.75rem !important;}
.mt-4{margin-top:1rem !important;}
.mt-5{margin-top:1.25rem !important;}
.mt-6{margin-top:1.5rem !important;}
.mt-7{margin-top:1.75rem !important;}
.mt-8{margin-top:2rem !important;}
.mt-9{margin-top:2.25rem !important;}
.mt-10{margin-top:2.5rem !important;}
.mb-0{margin-bottom:0 !important;}
.mb-3{margin-bottom:.75rem !important;}
.mb-4{margin-bottom:1rem !important;}
.mb-5{margin-bottom:1.25rem !important;}
.mb-6{margin-bottom:1.5rem !important;}
.mb-7{margin-bottom:1.75rem !important;}
.mb-8{margin-bottom:2rem !important;}
.mb-9{margin-bottom:2.25rem !important;}
.mb-10{margin-bottom:2.5rem !important;}
.ms-0{margin-left:0 !important;}
.ms-3{margin-left:.75rem !important;}
.ms-4{margin-left:1rem !important;}
.ms-5{margin-left:1.25rem !important;}
.ms-6{margin-left:1.5rem !important;}
.ms-7{margin-left:1.75rem !important;}
.ms-8{margin-left:2rem !important;}
.ms-9{margin-left:2.25rem !important;}
.ms-10{margin-left:2.5rem !important;}
.me-0{margin-right:0 !important;}
.me-3{margin-right:.75rem !important;}
.me-4{margin-right:1rem !important;}
.me-5{margin-right:1.25rem !important;}
.me-6{margin-right:1.5rem !important;}
.me-7{margin-right:1.75rem !important;}
.me-8{margin-right:2rem !important;}
.me-9{margin-right:2.25rem !important;}
.me-10{margin-right:2.5rem !important;}
.mx-0{margin-left:0 !important;margin-right:0 !important;}
.mx-3{margin-left:.75rem !important;margin-right:.75rem !important;}
.mx-4{margin-left:1rem !important;margin-right:1rem !important;}
.mx-5{margin-left:1.25rem !important;margin-right:1.25rem !important;}
.mx-6{margin-left:1.5rem !important;margin-right:1.5rem !important;}
.mx-7{margin-left:1.75rem !important;margin-right:1.75rem !important;}
.mx-8{margin-left:2rem !important;margin-right:2rem !important;}
.mx-9{margin-left:2.25rem !important;margin-right:2.25rem !important;}
.mx-10{margin-left:2.5rem !important;margin-right:2.5rem !important;}
.my-0{margin-top:0 !important;margin-bottom:0 !important;}
.my-3{margin-top:.75rem !important;margin-bottom:.75rem !important;}
.my-4{margin-top:1rem !important;margin-bottom:1rem !important;}
.my-5{margin-top:1.25rem !important;margin-bottom:1.25rem !important;}
.my-6{margin-top:1.5rem !important;margin-bottom:1.5rem !important;}
.my-7{margin-top:1.75rem !important;margin-bottom:1.75rem !important;}
.my-8{margin-top:2rem !important;margin-bottom:2rem !important;}
.my-9{margin-top:2.25rem !important;margin-bottom:2.25rem !important;}
.my-10{margin-top:2.5rem !important;margin-bottom:2.5rem !important;}
.m-0{margin-top:0 !important;margin-right:0 !important;margin-bottom:0 !important;margin-left:0 !important;}
.m-3{margin-top:.75rem !important;margin-right:.75rem !important;margin-bottom:.75rem !important;margin-left:.75rem !important;}
.m-4{margin-top:1rem !important;margin-right:1rem !important;margin-bottom:1rem !important;margin-left:1rem !important;}
.m-5{margin-top:1.25rem !important;margin-right:1.25rem !important;margin-bottom:1.25rem !important;margin-left:1.25rem !important;}
.m-6{margin-top:1.5rem !important;margin-right:1.5rem !important;margin-bottom:1.5rem !important;margin-left:1.5rem !important;}
.m-7{margin-top:1.75rem !important;margin-right:1.75rem !important;margin-bottom:1.75rem !important;margin-left:1.75rem !important;}
.m-8{margin-top:2rem !important;margin-right:2rem !important;margin-bottom:2rem !important;margin-left:2rem !important;}
.m-9{margin-top:2.25rem !important;margin-right:2.25rem !important;margin-bottom:2.25rem !important;margin-left:2.25rem !important;}
.m-10{margin-top:2.5rem !important;margin-right:2.5rem !important;margin-bottom:2.5rem !important;margin-left:2.5rem !important;}
.pt-0{padding-top:0 !important;}
.pt-3{padding-top:.75rem !important;}
.pt-4{padding-top:1rem !important;}
.pt-5{padding-top:1.25rem !important;}
.pt-6{padding-top:1.5rem !important;}
.pt-7{padding-top:1.75rem !important;}
.pt-8{padding-top:2rem !important;}
.pt-9{padding-top:2.25rem !important;}
.pt-10{padding-top:2.5rem !important;}
.pb-0{padding-bottom:0 !important;}
.pb-3{padding-bottom:.75rem !important;}
.pb-4{padding-bottom:1rem !important;}
.pb-5{padding-bottom:1.25rem !important;}
.pb-6{padding-bottom:1.5rem !important;}
.pb-7{padding-bottom:1.75rem !important;}
.pb-8{padding-bottom:2rem !important;}
.pb-9{padding-bottom:2.25rem !important;}
.pb-10{padding-bottom:2.5rem !important;}
.ps-0{padding-left:0 !important;}
.ps-3{padding-left:.75rem !important;}
.ps-4{padding-left:1rem !important;}
.ps-5{padding-left:1.25rem !important;}
.ps-6{padding-left:1.5rem !important;}
.ps-7{padding-left:1.75rem !important;}
.ps-8{padding-left:2rem !important;}
.ps-9{padding-left:2.25rem !important;}
.ps-10{padding-left:2.5rem !important;}
.pe-0{padding-right:0 !important;}
.pe-3{padding-right:.75rem !important;}
.pe-4{padding-right:1rem !important;}
.pe-5{padding-right:1.25rem !important;}
.pe-6{padding-right:1.5rem !important;}
.pe-7{padding-right:1.75rem !important;}
.pe-8{padding-right:2rem !important;}
.pe-9{padding-right:2.25rem !important;}
.pe-10{padding-right:2.5rem !important;}
.px-0{padding-left:0 !important;padding-right:0 !important;}
.px-3{padding-left:.75rem !important;padding-right:.75rem !important;}
.px-4{padding-left:1rem !important;padding-right:1rem !important;}
.px-5{padding-left:1.25rem !important;padding-right:1.25rem !important;}
.px-6{padding-left:1.5rem !important;padding-right:1.5rem !important;}
.px-7{padding-left:1.75rem !important;padding-right:1.75rem !important;}
.px-8{padding-left:2rem !important;padding-right:2rem !important;}
.px-9{padding-left:2.25rem !important;padding-right:2.25rem !important;}
.px-10{padding-left:2.5rem !important;padding-right:2.5rem !important;}
.py-0{padding-top:0 !important;padding-bottom:0 !important;}
.py-3{padding-top:.75rem !important;padding-bottom:.75rem !important;}
.py-4{padding-top:1rem !important;padding-bottom:1rem !important;}
.py-5{padding-top:1.25rem !important;padding-bottom:1.25rem !important;}
.py-6{padding-top:1.5rem !important;padding-bottom:1.5rem !important;}
.py-7{padding-top:1.75rem !important;padding-bottom:1.75rem !important;}
.py-8{padding-top:2rem !important;padding-bottom:2rem !important;}
.py-9{padding-top:2.25rem !important;padding-bottom:2.25rem !important;}
.py-10{padding-top:2.5rem !important;padding-bottom:2.5rem !important;}
.p-0{padding-top:0 !important;padding-right:0 !important;padding-bottom:0 !important;padding-left:0 !important;}
.p-3{padding-top:.75rem !important;padding-right:.75rem !important;padding-bottom:.75rem !important;padding-left:.75rem !important;}
.p-4{padding-top:1rem !important;padding-right:1rem !important;padding-bottom:1rem !important;padding-left:1rem !important;}
.p-5{padding-top:1.25rem !important;padding-right:1.25rem !important;padding-bottom:1.25rem !important;padding-left:1.25rem !important;}
.p-6{padding-top:1.5rem !important;padding-right:1.5rem !important;padding-bottom:1.5rem !important;padding-left:1.5rem !important;}
.p-7{padding-top:1.75rem !important;padding-right:1.75rem !important;padding-bottom:1.75rem !important;padding-left:1.75rem !important;}
.p-8{padding-top:2rem !important;padding-right:2rem !important;padding-bottom:2rem !important;padding-left:2rem !important;}
.p-9{padding-top:2.25rem !important;padding-right:2.25rem !important;padding-bottom:2.25rem !important;padding-left:2.25rem !important;}
.p-10{padding-top:2.5rem !important;padding-right:2.5rem !important;padding-bottom:2.5rem !important;padding-left:2.5rem !important;}
.gap-3{gap:.75rem !important;}
.g-3,.gx-3{--bs-gutter-x:.75rem;} .g-3,.gy-3{--bs-gutter-y:.75rem;}
.gap-4{gap:1rem !important;}
.g-4,.gx-4{--bs-gutter-x:1rem;} .g-4,.gy-4{--bs-gutter-y:1rem;}
.gap-5{gap:1.25rem !important;}
.g-5,.gx-5{--bs-gutter-x:1.25rem;} .g-5,.gy-5{--bs-gutter-y:1.25rem;}
.gap-6{gap:1.5rem !important;}
.g-6,.gx-6{--bs-gutter-x:1.5rem;} .g-6,.gy-6{--bs-gutter-y:1.5rem;}
.gap-7{gap:1.75rem !important;}
.g-7,.gx-7{--bs-gutter-x:1.75rem;} .g-7,.gy-7{--bs-gutter-y:1.75rem;}
.gap-8{gap:2rem !important;}
.g-8,.gx-8{--bs-gutter-x:2rem;} .g-8,.gy-8{--bs-gutter-y:2rem;}
.gap-9{gap:2.25rem !important;}
.g-9,.gx-9{--bs-gutter-x:2.25rem;} .g-9,.gy-9{--bs-gutter-y:2.25rem;}
.gap-10{gap:2.5rem !important;}
.g-10,.gx-10{--bs-gutter-x:2.5rem;} .g-10,.gy-10{--bs-gutter-y:2.5rem;}

/* Размеры шрифта */
.fs-7 { font-size: .95rem !important; } .fs-8 { font-size: .85rem !important; }
.fs-base { font-size: 1rem !important; } .fs-2x { font-size: 2rem !important; }

/* Серый текст по ступеням: тёмный и светлый берут цвета темы */
.text-gray-900, .text-gray-800 { color: var(--sk-ink) !important; }
.text-gray-700, .text-gray-600, .text-gray-500 { color: var(--sk-ink-2) !important; }

/* Ширина и высота в пикселях */
.w-30px { width: 30px !important; } .w-35px { width: 35px !important; } .w-50px { width: 50px !important; }
.w-60px { width: 60px !important; } .w-100px { width: 100px !important; } .w-150px { width: 150px !important; }
.w-200px { width: 200px !important; } .w-225px { width: 225px !important; }
.h-30px { height: 30px !important; } .h-35px { height: 35px !important; }
.min-w-200px { min-width: 200px !important; } .min-w-250px { min-width: 250px !important; } .min-w-450px { min-width: 450px !important; }

/* Расположение */
.flex-stack { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.flex-center { display: flex; justify-content: center; align-items: center; }
.flex-column-fluid { flex: 1 0 auto; }
.flex-row-fluid { flex: 1 auto; min-width: 1px; }
@media (min-width: 768px) { .flex-md-stack { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } }
.cursor-pointer { cursor: pointer; }

/* Карточка: панель действий в заголовке, без нижней линии у «плоской» */
.card-toolbar { display: flex; align-items: center; gap: .5rem; margin: .5rem 0; }
.card-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; }
.card-flush > .card-header { border-bottom: 0; }

/* Поля «solid» и «custom» у чекбоксов в видах — те же поля, что и обычные */
.form-control-solid, .form-select-solid { background-color: var(--sk-ground); }
.form-check-custom { display: flex; align-items: center; }

/* Мягкие бейджи: цвет текста и бледная заливка тем же цветом */
.badge-light-success, .badge-light-danger, .badge-light-warning, .badge-light-primary, .badge-light-info, .badge-light-dark, .badge-light-secondary, .badge-light-inline { background-color: transparent; border: 1px solid currentColor; }
.badge-light-success { color: var(--sk-ok); background-color: color-mix(in srgb, var(--sk-ok) 12%, transparent); }
.badge-light-danger { color: var(--sk-red); background-color: color-mix(in srgb, var(--sk-red) 12%, transparent); }
.badge-light-warning { color: var(--sk-warn); background-color: color-mix(in srgb, var(--sk-warn) 12%, transparent); }
.badge-light-primary, .badge-light-info { color: var(--sk-blue); background-color: color-mix(in srgb, var(--sk-blue) 12%, transparent); }
.badge-light-dark, .badge-light-secondary, .badge-light-inline { color: var(--sk-ink); background-color: color-mix(in srgb, var(--sk-ink) 8%, transparent); }
.badge-danger { background: var(--sk-red); color: #fff; }
.badge-primary { background: var(--sk-blue); color: #fff; }

/* Таблицы: вертикальные поля ячеек, крайние поля первой и последней ячейки, пунктир между строками */
.table.gy-1 > :not(caption) > * > * { padding-top: .25rem; padding-bottom: .25rem; }
.table.gy-2 > :not(caption) > * > * { padding-top: .5rem; padding-bottom: .5rem; }
.table.gy-3 > :not(caption) > * > * { padding-top: .75rem; padding-bottom: .75rem; }
.table.gy-5 > :not(caption) > * > * { padding-top: 1.25rem; padding-bottom: 1.25rem; }
.table.gs-0 > :not(caption) > * > :first-child { padding-left: 0; }
.table.gs-0 > :not(caption) > * > :last-child { padding-right: 0; }
.table.gs-3 > :not(caption) > * > :first-child { padding-left: .75rem; }
.table.gs-3 > :not(caption) > * > :last-child { padding-right: .75rem; }
.table-row-dashed > :not(caption) > * > * { border-bottom-style: solid; }
.table-row-gray-300 > :not(caption) > * > * { border-bottom-color: var(--sk-hair); }

/* Чекбокс с подписью в одну строку */
.form-check.form-check-custom { padding-left: 0; gap: .5rem; }
.form-check.form-check-custom .form-check-input { float: none; margin: 0; }

/* Пара полей даты: обе помещаются в колонку фильтра */
[data-adm-range] .form-control { min-width: 0; flex: 1 1 0; padding-left: .5rem; padding-right: .5rem; }
