/* Общая тема ZIMA — 1:1 с fastApiZima/docs/main/MAIN_SLIDES.html */

:root {
  --bg: #f8fafc;
  --bg-alt: #ffffff;
  --card: #ffffff;
  --text: #0f172a;
  --muted: #475569;
  --border: #cbd5e1;
  --accent: #0369a1;
  --accent-hover: #0284c7;
  --accent-light: #e0f2fe;
  --warn: #b45309;
  --warn-bg: #fffbeb;
  --ok: #047857;
  --ok-bg: #ecfdf5;
  --bad: #b91c1c;
  --bad-bg: #fef2f2;
  --violet: #6d28d9;
  --violet-bg: #f5f3ff;
  --shadow: rgba(0, 0, 0, 0.12);
  --row-alt: #f1f5f9;
  --overlay: rgba(0, 0, 0, 0.5);
  --navbar-bg: #0f172a;
  --navbar-text: #f8fafc;
  --input-bg: #ffffff;
  --input-border: #cbd5e1;
  --table-head: #f1f5f9;
  --avr-label-bg: #f4e4c8;
  --avr-value-bg: #e8f4e0;
  --on-accent: #ffffff;
  --sum-head-bg: #fef08a;
  --sum-slot-bg: #fef9c3;
  --sum-work-bg: #d1fae5;
  --zone-z1-bg: #fef9c3;
  --zone-z1-border: #fde047;
  --zone-z3-bg: #d1fae5;
  --zone-z3-border: #6ee7b7;
  --zone-z4-bg: #e0f2fe;
  --zone-z4-border: #7dd3fc;
  --col-bad-border: #fecaca;
  --col-good-border: #6ee7b7;
  --pill-v-border: #c4b5fd;
}

:root[data-theme="dark"] {
  color-scheme: dark;
  --bg: #0b1220;
  --bg-alt: #0f172a;
  --card: #0f172a;
  --text: #e5e7eb;
  --muted: #94a3b8;
  --border: #233048;
  --accent: #38bdf8;
  --accent-hover: #7dd3fc;
  --accent-light: rgba(56, 189, 248, 0.18);
  --warn: #fbbf24;
  --warn-bg: rgba(251, 191, 36, 0.12);
  --ok: #34d399;
  --ok-bg: rgba(52, 211, 153, 0.12);
  --bad: #fb7185;
  --bad-bg: rgba(251, 113, 133, 0.12);
  --violet: #a78bfa;
  --violet-bg: rgba(167, 139, 250, 0.14);
  --shadow: rgba(0, 0, 0, 0.45);
  --row-alt: rgba(148, 163, 184, 0.08);
  --overlay: rgba(0, 0, 0, 0.65);
  --navbar-bg: #0b1220;
  --navbar-text: #e5e7eb;
  --input-bg: #0b1220;
  --input-border: #233048;
  --table-head: #1e293b;
  --avr-label-bg: rgba(251, 191, 36, 0.15);
  --avr-value-bg: rgba(52, 211, 153, 0.1);
  --on-accent: #0b1220;
  --sum-head-bg: rgba(251, 191, 36, 0.28);
  --sum-slot-bg: rgba(251, 191, 36, 0.16);
  --sum-work-bg: rgba(52, 211, 153, 0.16);
  --zone-z1-bg: rgba(251, 191, 36, 0.14);
  --zone-z1-border: rgba(251, 191, 36, 0.45);
  --zone-z3-bg: rgba(52, 211, 153, 0.14);
  --zone-z3-border: rgba(52, 211, 153, 0.45);
  --zone-z4-bg: rgba(56, 189, 248, 0.14);
  --zone-z4-border: rgba(56, 189, 248, 0.45);
  --col-bad-border: rgba(251, 113, 133, 0.45);
  --col-good-border: rgba(52, 211, 153, 0.45);
  --pill-v-border: rgba(167, 139, 250, 0.55);
  --bs-body-color: var(--text);
  --bs-body-bg: var(--bg);
  --bs-emphasis-color: var(--text);
  --bs-secondary-color: var(--muted);
  --bs-tertiary-color: var(--muted);
  --bs-border-color: var(--border);
  --bs-link-color: var(--accent);
  --bs-link-hover-color: var(--accent-hover);
}

html,
body {
  background-color: var(--bg);
  color: var(--text);
}

/* Navbar */
.navbar.zima-navbar {
  background-color: var(--navbar-bg) !important;
  border-bottom: 1px solid var(--border);
}

.navbar.zima-navbar .navbar-brand,
.navbar.zima-navbar .nav-link,
.navbar.zima-navbar .navbar-toggler-icon {
  color: var(--navbar-text) !important;
}

.navbar.zima-navbar .nav-link:hover,
.navbar.zima-navbar .navbar-brand:hover {
  color: var(--accent) !important;
}

.navbar.zima-navbar .btn-outline-secondary {
  color: var(--navbar-text);
  border-color: var(--border);
}

.navbar.zima-navbar .btn-outline-secondary:hover {
  background: var(--accent-light);
  color: var(--accent);
  border-color: var(--accent);
}

.offcanvas.zima-offcanvas {
  background-color: var(--navbar-bg) !important;
  color: var(--navbar-text);
}

.offcanvas.zima-offcanvas .offcanvas-title,
.offcanvas.zima-offcanvas .nav-link {
  color: var(--navbar-text);
}

.offcanvas.zima-offcanvas .dropdown-menu {
  background-color: var(--card);
  border-color: var(--border);
}

.offcanvas.zima-offcanvas .dropdown-item {
  color: var(--text);
}

.offcanvas.zima-offcanvas .dropdown-item:hover {
  background-color: var(--accent-light);
  color: var(--accent);
}

#zimaThemeBtn {
  border: 1px solid var(--border);
  background: transparent;
  color: var(--navbar-text);
  font-weight: 700;
  font-size: 0.85rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  margin-left: 0.5rem;
}

#zimaThemeBtn:hover {
  background: var(--accent-light);
  color: var(--accent);
  border-color: var(--accent);
}

/* Bootstrap */
.card,
.modal-content,
.dropdown-menu,
.list-group-item {
  background-color: var(--card);
  color: var(--text);
  border-color: var(--border);
}

.form-control,
.form-select {
  background-color: var(--input-bg);
  color: var(--text);
  border-color: var(--input-border);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--input-bg);
  color: var(--text);
  border-color: var(--accent);
  box-shadow: 0 0 0 0.2rem color-mix(in oklab, var(--accent) 25%, transparent);
}

.table {
  --bs-table-bg: var(--card);
  --bs-table-color: var(--text);
  --bs-table-border-color: var(--border);
  --bs-table-striped-bg: var(--row-alt);
}

.table thead th {
  background-color: var(--table-head);
  color: var(--text);
  border-color: var(--border);
}

.btn-primary {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}

.btn-primary:hover,
.btn-primary:focus {
  color: var(--on-accent);
}

.btn-primary:hover {
  background-color: var(--accent-hover);
  border-color: var(--accent-hover);
}

.btn-success {
  background-color: var(--ok);
  border-color: var(--ok);
}

.btn-outline-primary {
  color: var(--accent);
  border-color: var(--accent);
}

.btn-outline-primary:hover {
  background-color: var(--accent-light);
  color: var(--accent);
  border-color: var(--accent);
}

footer.site-footer {
  color: var(--muted);
  border-top: 1px solid var(--border);
}

.text-muted {
  color: var(--muted) !important;
}

.page-title {
  color: var(--accent) !important;
}

.alert-warning {
  background-color: var(--warn-bg);
  border-color: var(--warn);
  color: var(--text);
}

.alert-success {
  background-color: var(--ok-bg);
  border-color: var(--ok);
  color: var(--text);
}

.alert-danger {
  background-color: var(--bad-bg);
  border-color: var(--bad);
  color: var(--text);
}

a:not(.btn):not(.nav-link):not(.navbar-brand) {
  color: var(--accent);
}

a:not(.btn):not(.nav-link):not(.navbar-brand):hover {
  color: var(--accent-hover);
}

.form-label,
.form-check-label {
  color: var(--text);
}

.form-control::placeholder {
  color: var(--muted);
  opacity: 0.85;
}

.btn-secondary {
  background-color: var(--table-head);
  border-color: var(--border);
  color: var(--text);
}

.btn-outline-secondary {
  color: var(--text);
  border-color: var(--border);
}

.btn-outline-secondary:hover {
  background-color: var(--row-alt);
  color: var(--text);
  border-color: var(--border);
}

.dropdown-item {
  color: var(--text);
}

.dropdown-item:hover,
.dropdown-item:focus {
  background-color: var(--accent-light);
  color: var(--accent);
}

.modal-header,
.modal-footer {
  border-color: var(--border);
}

.list-group-item {
  background-color: var(--card);
  color: var(--text);
}

.list-group-item-action:hover,
.list-group-item-action:focus {
  background-color: var(--row-alt);
  color: var(--text);
}

.pagination .page-link {
  background-color: var(--card);
  border-color: var(--border);
  color: var(--text);
}

.pagination .page-link:hover {
  background-color: var(--row-alt);
  color: var(--accent);
}

.pagination .page-item.active .page-link {
  background-color: var(--accent);
  border-color: var(--accent);
  color: var(--on-accent);
}

/* Заголовки таблиц на акцентном фоне */
table thead[style],
thead th[style*="background"] {
  color: var(--on-accent) !important;
}
