/* Основная тема Cloudme ERP mini «macOS»: утопленные поля, приподнятые карточки и кнопки,
   сегментированные вкладки, мягкие бейджи, кольцо фокуса.
   Подключается после tabler.min.css и theme.css (base.html, base_auth.html) и только переопределяет их вид.
   Правила и токены: docs/ui-style.md, раздел 9. Образец: design/mac-preview/. */

/* ---------- Токены ---------- */
:root {
  --mac-bg: #e9ecf1;
  --mac-surface: #f6f7fa;
  --mac-surface-2: #eef0f5;
  --mac-field: #eceff4;
  --mac-field-focus: #f3f6fb;
  --mac-text: #1c2230;
  --mac-text-2: #5d6779;
  --mac-text-3: #8b94a5;
  --mac-line: rgba(28, 40, 70, 0.09);
  --mac-line-strong: rgba(28, 40, 70, 0.14);
  --mac-blue: #0a7cff;
  --mac-blue-dark: #0064d9;
  --mac-blue-soft: rgba(10, 124, 255, 0.1);
  --mac-green: #1f9d55;
  --mac-red: #d6403a;
  --mac-amber: #c98a05;
  --mac-chip: #dfe6f4;
  --mac-radius: 10px;
  --mac-radius-sm: 8px;
  --mac-radius-lg: 14px;
  --mac-font: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI Variable Text", "Segoe UI", "Helvetica Neue", sans-serif;
  --mac-shadow-card: 0 1px 2px rgba(28, 40, 70, 0.06), 0 10px 28px rgba(28, 40, 70, 0.07);
  --mac-shadow-raise: 0 1px 1px rgba(28, 40, 70, 0.08), 0 2px 6px rgba(28, 40, 70, 0.08);
  --mac-shadow-pop: 0 2px 6px rgba(28, 40, 70, 0.1), 0 16px 40px rgba(28, 40, 70, 0.18);
  --mac-shadow-inset: inset 0 1px 3px rgba(28, 40, 70, 0.2), inset 0 0 0 1px rgba(28, 40, 70, 0.07), 0 1px 0 rgba(255, 255, 255, 0.95);
  --mac-shadow-flat: 0 0 0 1px var(--mac-line);
  --mac-ring: 0 0 0 3px rgba(10, 124, 255, 0.32);
  --mac-ring-danger: 0 0 0 3px rgba(214, 64, 58, 0.28);
  --mac-ease: 0.15s ease-in-out;

  /* Tabler берёт цвета и формы из своих переменных: направляем их на токены темы */
  --tblr-primary: var(--mac-blue);
  --tblr-primary-rgb: 10, 124, 255;
  --tblr-primary-darken: var(--mac-blue-dark);
  --tblr-link-color: var(--mac-blue-dark);
  --tblr-link-color-rgb: 0, 100, 217;
  --tblr-link-hover-color: #0050b0;
  --tblr-link-hover-color-rgb: 0, 80, 176;
  --tblr-font-sans-serif: var(--mac-font);
  --tblr-body-color: var(--mac-text);
  --tblr-body-color-rgb: 28, 34, 48;
  --tblr-body-bg: var(--mac-bg);
  --tblr-body-bg-rgb: 233, 236, 241;
  --tblr-secondary: var(--mac-text-2);
  --tblr-secondary-rgb: 93, 103, 121;
  --tblr-muted: var(--mac-text-2);
  --tblr-muted-rgb: 93, 103, 121;
  --tblr-bg-surface: var(--mac-surface);
  --tblr-bg-surface-secondary: var(--mac-surface-2);
  --tblr-bg-surface-tertiary: var(--mac-surface-2);
  --tblr-bg-forms: var(--mac-field);
  --tblr-border-color: var(--mac-line-strong);
  --tblr-border-color-translucent: var(--mac-line);
  --tblr-border-radius: var(--mac-radius);
  --tblr-border-radius-lg: var(--mac-radius-lg);
  --tblr-shadow-card: var(--mac-shadow-card);
  --tblr-box-shadow-input: none;
  --tblr-focus-ring-color: rgba(10, 124, 255, 0.32);
}

body {
  font-family: var(--mac-font);
  color: var(--mac-text);
  background: var(--mac-bg);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, .h1, .h2, .h3, .h4, .page-title, .card-title {
  color: var(--mac-text);
  letter-spacing: -0.01em;
}
.text-secondary,
.text-muted,
.form-hint,
.form-hint-small {
  color: var(--mac-text-2) !important;
}
.form-label {
  color: var(--mac-text-2);
  font-weight: 500;
}

/* ---------- Боковое меню ---------- */
.navbar.navbar-vertical {
  background: rgba(246, 247, 250, 0.82);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  box-shadow: inset -1px 0 0 var(--mac-line);
}
.navbar-vertical .navbar-nav .nav-link,
.navbar-vertical .dropdown-menu .dropdown-item {
  color: var(--mac-text-2);
  border-radius: var(--mac-radius-sm);
}
.navbar-vertical .navbar-nav > .nav-item.dropdown > .nav-link {
  color: var(--mac-text);
}
.navbar-vertical .navbar-nav .nav-link:hover,
.navbar-vertical .dropdown-menu .dropdown-item:hover {
  color: var(--mac-text);
  background: rgba(28, 40, 70, 0.05);
}
.navbar-vertical .dropdown-menu {
  background: transparent;
  border: 0;
  box-shadow: none;
}
/* активный пункт утоплен в панель, как поле ввода */
.navbar-vertical .navbar-nav > .nav-item.active:not(.dropdown) > .nav-link,
.navbar-vertical.navbar .navbar-collapse .dropdown-menu .dropdown-item.active {
  color: var(--mac-text);
  font-weight: 600;
  background: var(--mac-field);
  box-shadow: var(--mac-shadow-inset);
}
.navbar-vertical .navbar-nav > .nav-item.active::after {
  display: none; /* вместо синей полосы группы утоплен сам пункт */
}
.navbar-vertical .navbar-nav .nav-link:focus-visible,
.navbar-vertical .dropdown-menu .dropdown-item:focus-visible,
.navbar-vertical .navbar-brand:focus-visible {
  outline: none;
  box-shadow: var(--mac-ring);
}
.navbar-vertical .sidebar-user {
  color: var(--mac-text);
  font-weight: 500;
}
.navbar-vertical .navbar-toggler:focus-visible {
  box-shadow: var(--mac-ring);
}

/* ---------- Шапка страницы и крошки ---------- */
.page-header {
  background: rgba(233, 236, 241, 0.86);
  -webkit-backdrop-filter: saturate(1.4) blur(14px);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--mac-line);
}
.breadcrumb {
  --tblr-breadcrumb-divider-color: var(--mac-text-3);
  --tblr-breadcrumb-item-active-color: var(--mac-text-2);
}
.breadcrumb a {
  color: var(--mac-text-2);
}
.breadcrumb a:hover {
  color: var(--mac-blue-dark);
}

/* ---------- Карточки ---------- */
.card {
  --tblr-card-bg: var(--mac-surface);
  --tblr-card-border-color: rgba(255, 255, 255, 0.7);
  --tblr-card-border-radius: var(--mac-radius-lg);
  --tblr-card-inner-border-radius: calc(var(--mac-radius-lg) - 1px);
  --tblr-card-box-shadow: var(--mac-shadow-card);
  --tblr-card-cap-bg: transparent;
}
.card-header {
  border-bottom: 1px solid var(--mac-line);
}
.card-footer {
  border-top: 1px solid var(--mac-line);
}
/* таблица у края карточки обрезается по её скруглению */
.card > .table-responsive:first-child {
  border-top-left-radius: var(--tblr-card-inner-border-radius);
  border-top-right-radius: var(--tblr-card-inner-border-radius);
}
.card > .table-responsive:last-child {
  border-bottom-left-radius: var(--tblr-card-inner-border-radius);
  border-bottom-right-radius: var(--tblr-card-inner-border-radius);
}

/* ---------- Поля ввода: утоплены в поверхность ---------- */
.form-control,
.form-select {
  background-color: var(--mac-field);
  border: 0;
  padding-top: calc(0.4375rem + 1px); /* рамки нет: высота как у кнопок (2.25rem) */
  padding-bottom: calc(0.4375rem + 1px);
  border-radius: var(--mac-radius);
  box-shadow: var(--mac-shadow-inset);
  color: var(--mac-text);
  transition: background-color var(--mac-ease), box-shadow var(--mac-ease);
}
.form-control::placeholder {
  color: var(--mac-text-3);
}
.form-control:focus,
.form-select:focus {
  background-color: var(--mac-field-focus);
  box-shadow: var(--mac-shadow-inset), var(--mac-ring);
  outline: none;
}
.form-control::file-selector-button {
  background: linear-gradient(180deg, #ffffff 0%, #f1f3f8 100%);
  color: var(--mac-text);
  border-color: var(--mac-line);
}
.form-control.is-invalid,
.form-select.is-invalid {
  box-shadow: var(--mac-shadow-inset), 0 0 0 1px var(--mac-red);
}
/* Отключённое поле (например, строка закрытого месяца) и режим просмотра: плоские, без утопления, текст читаем */
.form-control:disabled,
.form-select:disabled,
form[data-readonly] .form-control:disabled,
form[data-readonly] .form-select:disabled {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--mac-shadow-flat);
  opacity: 1;
}
form[data-readonly] .form-select:disabled {
  background-image: none; /* стрелка выпадения в просмотре не нужна */
}

/* Группа поля (кнопка копирования, «с»/«по» в периоде): утоплена целиком, части внутри без своего фона */
.input-group {
  border-radius: var(--mac-radius);
  background-color: var(--mac-field);
  box-shadow: var(--mac-shadow-inset);
  transition: background-color var(--mac-ease), box-shadow var(--mac-ease);
}
.input-group > .form-control,
.input-group > .form-select,
.input-group > .input-group-text,
.input-group > .copy-btn,
form[data-readonly] .input-group > .form-control:disabled {
  background-color: transparent;
  border: 0;
  box-shadow: none;
}
.input-group:has(> .form-control:focus) {
  background-color: var(--mac-field-focus);
  box-shadow: var(--mac-shadow-inset), var(--mac-ring);
}
.input-group:has(> .form-control:disabled) {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--mac-shadow-flat);
}
.input-group > .input-group-text {
  color: var(--mac-text-2);
  padding-right: 0.25rem;
}
/* кнопка копирования внутри поля: значок без подложки */
.input-group > .copy-btn {
  color: var(--mac-text-3);
  border-radius: var(--mac-radius);
}
.input-group > .copy-btn:hover {
  color: var(--mac-blue);
  background-color: transparent;
}
.input-group > .copy-btn:active {
  transform: none;
  box-shadow: none;
}
.input-group > .copy-btn:focus-visible {
  box-shadow: inset var(--mac-ring);
}

/* Флажки, радио, переключатели: утопленная канавка */
.form-check-input {
  background-color: var(--mac-field);
  border: 0;
  box-shadow: var(--mac-shadow-inset);
}
.form-check-input[type="checkbox"]:not([role="switch"]) {
  border-radius: 5px;
}
.form-check-input:checked {
  background-color: var(--mac-blue);
  box-shadow: inset 0 1px 2px rgba(0, 40, 100, 0.35), 0 1px 0 rgba(255, 255, 255, 0.9);
}
.form-check-input:focus {
  box-shadow: var(--mac-shadow-inset);
}
.form-check-input:focus-visible {
  box-shadow: var(--mac-shadow-inset), var(--mac-ring);
}
.form-check-input:disabled {
  box-shadow: 0 0 0 1px var(--mac-line-strong);
  opacity: 0.7;
}
.form-check-input:disabled:not(:checked) {
  background-color: rgba(255, 255, 255, 0.6);
}
.form-check-input:disabled ~ .form-check-label {
  opacity: 1;
  color: var(--mac-text);
}

/* ---------- Список с поиском (Tom Select) ---------- */
.ts-wrapper.form-select,
.ts-wrapper.form-control {
  border: 0;
  box-shadow: var(--mac-shadow-inset);
}
.ts-wrapper.form-select.focus,
.ts-wrapper.form-control.focus {
  background-color: var(--mac-field-focus);
  box-shadow: var(--mac-shadow-inset), var(--mac-ring);
}
.ts-wrapper .ts-control,
.ts-wrapper .ts-control input {
  color: var(--mac-text);
}
.ts-wrapper.disabled.form-select,
.ts-wrapper.disabled.form-control,
form[data-readonly] .ts-wrapper.disabled {
  background-color: rgba(255, 255, 255, 0.5);
  box-shadow: var(--mac-shadow-flat);
}
.ts-wrapper.disabled .ts-control {
  background-color: transparent;
}
form[data-readonly] .ts-wrapper.single.form-select {
  background-image: none;
}
/* чипы выбранных значений (фильтры) */
.ts-wrapper.multi .ts-control > div {
  background: var(--mac-chip);
  color: var(--mac-text);
  border-radius: 999px;
  padding: 1px 4px 1px 9px;
}
.ts-wrapper.multi .ts-control > div.active {
  background: var(--mac-blue);
  color: #fff;
}
.ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
  border-left: 0;
  border-radius: 0 999px 999px 0;
  margin-left: 2px;
  color: var(--mac-text-2);
}
.ts-wrapper.plugin-remove_button .item .remove:hover {
  background: rgba(28, 40, 70, 0.08);
  color: var(--mac-text);
}
.ts-wrapper.plugin-remove_button .item.active .remove {
  color: #fff;
}
.ts-dropdown,
.ts-dropdown.form-select,
.ts-dropdown.form-control {
  margin-top: 0.25rem;
  background: var(--mac-surface);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: var(--mac-radius);
  box-shadow: var(--mac-shadow-pop);
  overflow: hidden;
}
.ts-dropdown .option,
.ts-dropdown .no-results {
  padding: 0.375rem 0.75rem;
}
.ts-dropdown .active {
  background-color: var(--mac-blue-soft);
  color: var(--mac-text);
}
.ts-dropdown .no-results {
  color: var(--mac-text-2);
}

/* ---------- Кнопки: приподняты, при нажатии вдавливаются ---------- */
.btn {
  --tblr-btn-border-color: transparent;
  --tblr-btn-hover-border-color: transparent;
  --tblr-btn-active-border-color: transparent;
  border-radius: var(--mac-radius);
  font-weight: 500;
  background-origin: border-box;
  box-shadow: var(--mac-shadow-raise);
  transition: color var(--mac-ease), background-color var(--mac-ease), box-shadow var(--mac-ease), transform var(--mac-ease);
}
.btn:active {
  box-shadow: var(--mac-shadow-inset);
  transform: translateY(1px);
}
.btn:focus-visible {
  outline: none;
  box-shadow: var(--mac-ring);
}
.btn-primary {
  background: linear-gradient(180deg, #2b93ff 0%, var(--mac-blue) 55%, var(--mac-blue-dark) 100%);
  color: #fff;
  box-shadow: 0 1px 2px rgba(0, 70, 160, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background: linear-gradient(180deg, #3d9cff 0%, #1a87ff 55%, #0a6ee6 100%);
  color: #fff;
}
.btn-success {
  background: linear-gradient(180deg, #3cbf73 0%, var(--mac-green) 55%, #188a49 100%);
  color: #fff;
  box-shadow: 0 1px 2px rgba(15, 100, 50, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.3);
}
.btn-success:hover,
.btn-success:focus-visible {
  background: linear-gradient(180deg, #4bc880 0%, #25a95e 55%, #1a9450 100%);
  color: #fff;
}
.btn-outline-secondary,
.btn-secondary,
.btn-outline-primary {
  background: linear-gradient(180deg, #ffffff 0%, #f1f3f8 100%);
  color: var(--mac-text);
  box-shadow: 0 0 0 1px var(--mac-line), var(--mac-shadow-raise);
}
.btn-outline-primary {
  color: var(--mac-blue-dark);
}
.btn-outline-secondary:hover,
.btn-secondary:hover,
.btn-outline-primary:hover {
  background: linear-gradient(180deg, #ffffff 0%, #e8ebf2 100%);
  color: var(--mac-text);
}
.btn-outline-primary:hover {
  color: var(--mac-blue-dark);
}
.btn-outline-danger {
  background: linear-gradient(180deg, #ffffff 0%, #f6eceb 100%);
  color: var(--mac-red);
  box-shadow: 0 0 0 1px rgba(214, 64, 58, 0.25), var(--mac-shadow-raise);
}
.btn-outline-danger:hover {
  background: linear-gradient(180deg, #fff8f7 0%, #f1dedc 100%);
  color: #b8302b;
}
.btn-outline-danger:focus-visible {
  box-shadow: var(--mac-ring-danger);
}
.btn-outline-secondary:focus-visible,
.btn-secondary:focus-visible,
.btn-outline-primary:focus-visible,
.btn-primary:focus-visible,
.btn-success:focus-visible {
  box-shadow: var(--mac-ring);
}
.btn-outline-secondary:active,
.btn-secondary:active,
.btn-outline-primary:active,
.btn-outline-danger:active,
.btn-primary:active,
.btn-success:active {
  box-shadow: var(--mac-shadow-inset);
}
/* нажатая и раскрытая (меню «+ фильтры») кнопка: Tabler красит её текст белым, у нас светлая подложка */
.btn.btn-outline-secondary:is(:active, .active, .show),
.btn.btn-secondary:is(:active, .active, .show),
.btn.btn-outline-primary:is(:active, .active, .show) {
  background: linear-gradient(180deg, #eef0f5 0%, #e6e9f0 100%);
  color: var(--mac-text);
  box-shadow: var(--mac-shadow-inset);
}
.btn.btn-outline-danger:is(:active, .active, .show) {
  background: linear-gradient(180deg, #f6eceb 0%, #f1dedc 100%);
  color: #b8302b;
  box-shadow: var(--mac-shadow-inset);
}
.btn.btn-primary:is(:active, .active, .show),
.btn.btn-success:is(:active, .active, .show) {
  color: #fff;
  box-shadow: var(--mac-shadow-inset);
}
/* круглая кнопка: «Назад», поиск в шапке, действие внутри поля */
.btn-round {
  border-radius: 50%;
}
.btn-outline-secondary.btn-round:hover {
  background: linear-gradient(180deg, #ffffff 0%, #e8ebf2 100%);
  color: var(--mac-blue-dark);
}
.field-with-action .field-action:active {
  transform: translateY(calc(-50% + 1px)); /* кнопка уже сдвинута на середину поля */
}
/* плоские кнопки: ссылка, значки в строках формсета */
.btn-link,
.btn-ghost-secondary,
.btn-link:hover,
.btn-ghost-secondary:hover,
.btn-link:active,
.btn-ghost-secondary:active {
  background: transparent;
  box-shadow: none;
  transform: none;
}
.btn-ghost-secondary {
  color: var(--mac-text-2);
}
.btn-ghost-secondary:hover {
  background: rgba(28, 40, 70, 0.06);
  color: var(--mac-text);
}
.btn-link:focus-visible,
.btn-ghost-secondary:focus-visible {
  box-shadow: var(--mac-ring);
}
.btn:disabled,
.btn.disabled {
  box-shadow: none;
}

/* ---------- Вкладки: сегментированный переключатель в утопленной дорожке ---------- */
.nav-tabs {
  display: inline-flex;
  flex-wrap: wrap;
  max-width: 100%;
  gap: 2px;
  padding: 3px;
  border: 0;
  border-radius: var(--mac-radius);
  background: var(--mac-field);
  box-shadow: var(--mac-shadow-inset);
}
.nav-tabs:not(.card-header-tabs) {
  margin-bottom: 1rem;
}
.nav-tabs .nav-link {
  margin: 0;
  padding: 0.3rem 0.9rem;
  border: 0;
  border-radius: var(--mac-radius-sm);
  color: var(--mac-text-2);
  font-weight: 500;
  transition: color var(--mac-ease), background-color var(--mac-ease), box-shadow var(--mac-ease);
}
.nav-tabs .nav-link:hover {
  color: var(--mac-text);
  background: rgba(255, 255, 255, 0.45);
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  margin: 0;
  background: linear-gradient(180deg, #ffffff 0%, #f6f7fb 100%);
  color: var(--mac-text);
  font-weight: 600;
  border: 0;
  box-shadow: var(--mac-shadow-raise);
}
.nav-tabs .nav-link:focus-visible {
  outline: none;
  box-shadow: var(--mac-ring);
}
/* вкладка с ошибкой (form-tabs.js): красный текст и красноватая подложка, заметно и на активной */
.nav-tabs .nav-link.text-danger {
  background: rgba(214, 64, 58, 0.1);
}
.nav-tabs .nav-link.text-danger.active {
  background: linear-gradient(180deg, #ffffff 0%, #fbeeed 100%);
  box-shadow: 0 0 0 1px rgba(214, 64, 58, 0.35), var(--mac-shadow-raise);
}
/* вкладки списка в шапке карточки (_list_tabs.html) */
.card-header-tabs {
  flex: 0 1 auto;
  margin: 0;
}
/* карточка под вкладками больше не срастается с ними, карточки во вкладке разделены, как везде */
.tab-content > .tab-pane > .card:first-child {
  border-top-left-radius: var(--mac-radius-lg);
  border-top-color: rgba(255, 255, 255, 0.7);
}
.tab-content > .tab-pane > .card + .card {
  margin-top: 1rem;
}

/* ---------- Таблицы ---------- */
.table {
  --tblr-table-bg: transparent;
  --tblr-table-color: var(--mac-text);
  --tblr-table-border-color: var(--mac-line);
  --tblr-table-hover-bg: rgba(10, 124, 255, 0.06);
  --tblr-table-hover-color: var(--mac-text);
  color: var(--mac-text);
}
.table thead th {
  background: var(--mac-surface-2);
  color: var(--mac-text-2);
  border-bottom: 1px solid var(--mac-line);
}
.table > :not(caption) > * > * {
  border-bottom-color: var(--mac-line);
}
.table-hover > tbody > tr:hover > * {
  background: rgba(10, 124, 255, 0.06);
}
/* пустое состояние «Ничего не найдено» */
.card-table td[colspan].text-secondary {
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  text-align: center;
}

/* ---------- Бейджи: мягкие тона ---------- */
.badge {
  border-radius: 999px;
  font-weight: 600;
  box-shadow: none;
}
.mode-view { --tag-bg: #e3e7ee; --tag-fg: #4a5466; }
.mode-edit { --tag-bg: #ffe7a3; --tag-fg: #7a4b00; }
.mode-new  { --tag-bg: #d6e6ff; --tag-fg: #0050b3; }
.mode-tag::before {
  background: var(--mac-bg); /* отверстие ярлыка цвета фона шапки */
}
.avatar {
  border-radius: 50%;
  box-shadow: var(--mac-shadow-raise);
}

/* ---------- Панель фильтров списка ---------- */
.btn.filter-period-link {
  padding: calc(0.4375rem + 1px) 0.75rem !important;
  border: 0;
  border-radius: var(--mac-radius);
  background: var(--mac-field);
  color: var(--mac-text);
  box-shadow: var(--mac-shadow-inset);
  transform: none;
}
.btn.filter-period-link:hover {
  background: var(--mac-field-focus);
}
.btn.filter-period-link:focus-visible {
  box-shadow: var(--mac-shadow-inset), var(--mac-ring);
}
.filter-period-menu.card {
  padding: 0.25rem;
  border: 0;
  border-radius: var(--mac-radius);
  background: var(--mac-surface-2);
  box-shadow: var(--mac-shadow-flat);
}
.filter-period-menu .dropdown-item {
  border-radius: var(--mac-radius-sm);
}
.filter-period-menu .dropdown-item:hover {
  background: var(--mac-blue-soft);
}
.filter-period-menu > .d-flex.flex-column {
  border-top-color: var(--mac-line);
}

/* ---------- Выпадающие меню, окна ---------- */
.dropdown-menu {
  --tblr-dropdown-bg: var(--mac-surface);
  --tblr-dropdown-border-color: rgba(255, 255, 255, 0.7);
  --tblr-dropdown-border-radius: var(--mac-radius);
  --tblr-dropdown-box-shadow: var(--mac-shadow-pop);
  --tblr-dropdown-link-active-bg: var(--mac-blue-soft);
  --tblr-dropdown-link-active-color: var(--mac-text);
  padding: 0.25rem;
}
.dropdown-menu .dropdown-item {
  border-radius: var(--mac-radius-sm);
}
.modal-content {
  --tblr-modal-bg: var(--mac-surface);
  --tblr-modal-border-color: rgba(255, 255, 255, 0.7);
  --tblr-modal-border-radius: var(--mac-radius-lg);
  --tblr-modal-box-shadow: var(--mac-shadow-pop);
  border-radius: var(--mac-radius-lg);
  box-shadow: var(--mac-shadow-pop);
}
.modal-header,
.modal-footer {
  border-color: var(--mac-line);
}
.modal-backdrop {
  --tblr-backdrop-bg: #1c2230;
  --tblr-backdrop-opacity: 0.3;
}
/* окно «несохранённые изменения» */
.leave-guard {
  background: rgba(28, 34, 48, 0.32);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
}
.leave-guard-box {
  background: var(--mac-surface);
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: var(--mac-radius-lg);
  box-shadow: var(--mac-shadow-pop);
}
/* окно глобального поиска */
.global-search-dialog .modal-header .form-control {
  min-height: 2.5rem;
}
.global-search-group {
  color: var(--mac-text-3);
  border-top-color: var(--mac-line);
}
.global-search-item {
  margin: 0 0.5rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--mac-radius-sm);
}
.global-search-item:hover,
.global-search-item.active {
  background: var(--mac-blue-soft);
  box-shadow: none;
}
.global-search-item:focus-visible {
  outline: none;
  box-shadow: var(--mac-ring);
}

/* ---------- Сообщения ---------- */
.alert {
  border-radius: var(--mac-radius);
  border-color: var(--mac-line);
  background-color: var(--mac-surface);
  box-shadow: var(--mac-shadow-raise);
}

/* ---------- Постраничный вывод ---------- */
.page-link {
  border-radius: var(--mac-radius-sm);
  color: var(--mac-text-2);
}
.page-item:not(.disabled) .page-link:hover {
  background: rgba(28, 40, 70, 0.06);
  color: var(--mac-text);
}
.page-item.disabled .page-link {
  color: var(--mac-text-3);
}
.page-link:focus-visible {
  outline: none;
  box-shadow: var(--mac-ring);
}

/* ---------- Строки формсетов ---------- */
[data-formset-row] {
  background: rgba(255, 255, 255, 0.45);
  border-color: var(--mac-line) !important;
}

/* ---------- Ссылки ---------- */
a:focus-visible {
  outline: none;
  border-radius: 4px;
  box-shadow: var(--mac-ring);
}

/* ---------- Меньше движения ---------- */
@media (prefers-reduced-motion: reduce) {
  .btn,
  .form-control,
  .form-select,
  .input-group,
  .nav-tabs .nav-link {
    transition: none;
  }
  .btn:active,
  .btn-round:active {
    transform: none;
  }
  .field-with-action .field-action:active {
    transform: translateY(-50%);
  }
}

/* ---------- Печать страниц приложения (печатные формы актов тему не подключают) ---------- */
@media print {
  body,
  .page-wrapper {
    background: #fff;
  }
  .card,
  .alert {
    box-shadow: none;
  }
}
