/*!
 * Минимальный локальный резерв стилей для офлайн-режима.
 *
 * Полная библиотека Bootstrap 5.3 подключается с CDN в шаблоне base.html.
 * Этот файл используется только при недоступности интернета и содержит
 * сокращённый набор классов, на которые опирается разметка проекта.
 */
:root {
  --bs-primary: #b92323;
  --bs-primary-rgb: 185, 35, 35;
  --bs-secondary: #6d6965;
  --bs-success: #26733b;
  --bs-danger: #a91f19;
  --bs-warning: #a25b00;
  --bs-info: #1766b1;
  --bs-light: #f7f5f2;
  --bs-dark: #262321;
  --bs-body-color: #262321;
  --bs-body-bg: #f7f5f2;
  --bs-border-color: #ddd8d2;
  --bs-border-radius: 10px;
  --bs-font-sans-serif: "Segoe UI", Roboto, Arial, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--bs-font-sans-serif); color: var(--bs-body-color); background: var(--bs-body-bg); }
a { color: inherit; }
h1, h2, h3, h4, h5, h6 { margin: 0 0 8px; font-weight: 700; line-height: 1.25; }
p { margin: 0 0 12px; }
img, svg { vertical-align: middle; }
table { border-collapse: collapse; width: 100%; }
.container-fluid, .container { width: 100%; padding: 0 16px; margin: 0 auto; }
.row { display: flex; flex-wrap: wrap; gap: 16px; }
[class*="col-"] { flex: 1 1 100%; min-width: 0; }
.col-6 { flex: 1 1 calc(50% - 8px); }
.col-4 { flex: 1 1 calc(33.333% - 11px); }
.col-3 { flex: 1 1 calc(25% - 12px); }
.col-12 { flex: 1 1 100%; }
@media (min-width: 768px) {
  .col-md-3 { flex: 1 1 calc(25% - 12px); }
  .col-md-4 { flex: 1 1 calc(33.333% - 11px); }
  .col-md-6 { flex: 1 1 calc(50% - 8px); }
}
@media (min-width: 992px) {
  .col-lg-2 { flex: 1 1 calc(16.66% - 14px); }
  .col-lg-3 { flex: 1 1 calc(25% - 12px); }
  .col-lg-4 { flex: 1 1 calc(33.333% - 11px); }
  .col-lg-6 { flex: 1 1 calc(50% - 8px); }
  .col-lg-8 { flex: 1 1 calc(66.66% - 6px); }
}
.d-flex { display: flex; }
.flex-column { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.align-items-center { align-items: center; }
.align-items-start { align-items: flex-start; }
.justify-content-between { justify-content: space-between; }
.justify-content-end { justify-content: flex-end; }
.gap-1 { gap: 4px; } .gap-2 { gap: 8px; } .gap-3 { gap: 12px; } .gap-4 { gap: 16px; }
.mb-0 { margin-bottom: 0; } .mb-1 { margin-bottom: 4px; } .mb-2 { margin-bottom: 8px; }
.mb-3 { margin-bottom: 12px; } .mb-4 { margin-bottom: 16px; } .mb-5 { margin-bottom: 24px; }
.mt-1 { margin-top: 4px; } .mt-2 { margin-top: 8px; } .mt-3 { margin-top: 12px; }
.mt-4 { margin-top: 16px; } .mt-5 { margin-top: 24px; }
.py-2 { padding: 8px 0; } .py-3 { padding: 12px 0; } .py-4 { padding: 16px 0; }
.px-2 { padding: 0 8px; } .px-3 { padding: 0 12px; }
.text-center { text-align: center; } .text-end { text-align: right; }
.text-muted { color: #6d6965; }
.text-danger { color: #a91f19; } .text-success { color: #26733b; } .text-warning { color: #a25b00; }
.small { font-size: 13px; } .fw-bold { font-weight: 700; } .fw-semibold { font-weight: 600; }
.w-100 { width: 100%; } .h-100 { height: 100%; }
.card { background: #fff; border: 1px solid var(--bs-border-color); border-radius: var(--bs-border-radius); }
.card-body { padding: 16px; }
.card-header, .card-footer { padding: 12px 16px; border-bottom: 1px solid var(--bs-border-color); }
.card-footer { border-bottom: 0; border-top: 1px solid var(--bs-border-color); }
.card-title { font-size: 17px; font-weight: 700; margin-bottom: 8px; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 9px 14px; border-radius: 8px; border: 1px solid transparent;
  font-size: 14px; font-weight: 600; cursor: pointer; text-decoration: none;
  background: #f0ede9; color: #262321; line-height: 1.2;
}
.btn:hover { filter: brightness(0.97); }
.btn-primary { background: #b92323; color: #fff; }
.btn-primary:hover { background: #991b1b; }
.btn-outline-primary { border-color: #b92323; color: #b92323; background: transparent; }
.btn-outline-secondary { border-color: #ddd8d2; color: #262321; background: #fff; }
.btn-danger { background: #a91f19; color: #fff; }
.btn-success { background: #26733b; color: #fff; }
.btn-light { background: #fff; border-color: #ddd8d2; }
.btn-sm { padding: 6px 10px; font-size: 13px; }
.btn-lg { padding: 13px 20px; font-size: 16px; }
.btn:disabled, .btn.disabled { opacity: 0.6; cursor: not-allowed; }
.form-label, label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; color: #444; }
.form-control, .form-select {
  display: block; width: 100%; padding: 9px 11px; font: inherit; color: inherit;
  background: #fff; border: 1px solid #ddd8d2; border-radius: 8px;
}
.form-control:focus, .form-select:focus { outline: 2px solid rgba(185, 35, 35, 0.25); border-color: #b92323; }
.form-check { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 8px; }
.form-check-input { margin-top: 4px; }
.form-text, .help-text { font-size: 12px; color: #6d6965; }
.invalid-feedback, .errorlist { color: #a91f19; font-size: 13px; margin: 4px 0 0; padding: 0; list-style: none; }
.alert { padding: 12px 14px; border-radius: 8px; border: 1px solid transparent; margin-bottom: 12px; }
.alert-success { background: #eaf6ed; border-color: #b9e0c4; color: #1d5a2d; }
.alert-danger { background: #fbe9e7; border-color: #f2c2bd; color: #8c1a15; }
.alert-warning { background: #fff4df; border-color: #f0d9a8; color: #7a4500; }
.alert-info { background: #eaf2fb; border-color: #bcd6f0; color: #12507f; }
.table { width: 100%; font-size: 14px; }
.table th, .table td { padding: 9px 10px; border-bottom: 1px solid #ece8e4; text-align: left; vertical-align: middle; }
.table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: #6d6965; }
.table-striped tbody tr:nth-child(odd) { background: #fbfaf8; }
.badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 3px 9px;
  border-radius: 999px; font-size: 12px; font-weight: 600;
  background: #f0ede9; color: #44403c;
}
.badge.bg-primary, .badge--red { background: #fbe9e7; color: #8c1a15; }
.badge.bg-info, .badge--blue { background: #eaf2fb; color: #12507f; }
.badge.bg-success, .badge--green { background: #eaf6ed; color: #1d5a2d; }
.badge.bg-warning, .badge--warn { background: #fff4df; color: #7a4500; }
.badge.bg-secondary, .badge--neutral { background: #f0ede9; color: #44403c; }
.nav { display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; list-style: none; }
.nav-link { padding: 8px 12px; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: 14px; }
.nav-tabs .nav-link { border-bottom: 2px solid transparent; border-radius: 0; }
.nav-tabs .nav-link.active { border-bottom-color: #b92323; color: #b92323; }
.list-group { padding: 0; margin: 0; list-style: none; }
.list-group-item { padding: 10px 12px; border-bottom: 1px solid #ece8e4; }
.table-responsive { overflow-x: auto; }
.modal-content { background: #fff; border-radius: 12px; padding: 20px; }
.pagination { display: flex; gap: 6px; list-style: none; padding: 0; }
.page-link { padding: 7px 11px; border: 1px solid #ddd8d2; border-radius: 8px; text-decoration: none; }
.page-item.active .page-link { background: #b92323; color: #fff; border-color: #b92323; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.d-none { display: none; }
@media (min-width: 768px) { .d-md-block { display: block; } .d-md-none { display: none; } }
