:root {
  --app-page-bg: #f6f7f9;
  --app-surface: #fff;
  --app-surface-muted: #f8f9fa;
  --app-border: rgba(0, 0, 0, .1);
  --app-muted-text: #6c757d;
}
[data-bs-theme="dark"] {
  --app-page-bg: #16181b;
  --app-surface: #212529;
  --app-surface-muted: #2b3035;
  --app-border: rgba(255, 255, 255, .15);
  --app-muted-text: #adb5bd;
}
body { background: var(--app-page-bg); font-size: 0.95rem; }
.card { border-color: var(--app-border); }
.card-header { background: var(--app-surface); }
summary.card-header { cursor: pointer; }
.table > :not(caption) > * > * { padding-top: .4rem; padding-bottom: .4rem; }
.table-responsive { background: var(--app-surface); border: 1px solid var(--app-border); border-radius: .375rem; }
.table-responsive > .table { margin-bottom: 0; }
.dl-compact dt { font-weight: 500; color: var(--app-muted-text); }
.dl-compact dd { margin-bottom: .35rem; }
#upload-preview table { font-size: .8rem; }
#upload-preview td, #upload-preview th { max-width: 14rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.svod-detail > td { background: var(--app-surface-muted); padding: .5rem 1rem !important; }
.svod-detail table { font-size: .85rem; background: var(--app-surface); }
.js-expand { text-decoration: none; font-size: 1.5rem; line-height: 1; padding: 0 .3rem; }
select.form-select-sm { min-width: 9.5rem; }
.status-menu { min-width: 11rem; }
.status-item { cursor: pointer; }
.status-tick { width: 1em; text-align: center; visibility: hidden; }
.js-status-filter:checked + .status-tick { visibility: visible; }
.js-status-filter:focus-visible + .status-tick { outline: 2px solid #0d6efd; border-radius: 2px; }

.log-view { max-height: 22rem; overflow: auto; font-size: .8rem; white-space: pre-wrap; word-break: break-word; background: var(--app-surface-muted); margin: 0; }

/* Тёмная тема: у Bootstrap эти «светлые» варианты фиксированы, поэтому переопределяем */
[data-bs-theme="dark"] .table-light {
  --bs-table-color: var(--bs-body-color);
  --bs-table-bg: var(--app-surface-muted);
  --bs-table-border-color: var(--bs-border-color);
}
[data-bs-theme="dark"] .table-danger {
  --bs-table-color: var(--bs-body-color);
  --bs-table-bg: rgba(220, 53, 69, .22);
  --bs-table-border-color: rgba(220, 53, 69, .35);
  --bs-table-hover-bg: rgba(220, 53, 69, .32);
  --bs-table-hover-color: var(--bs-body-color);
}
[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: var(--app-muted-text); }
[data-bs-theme="dark"] .text-bg-light { background-color: var(--app-surface-muted) !important; color: var(--bs-body-color) !important; }
[data-bs-theme="dark"] .text-bg-dark { background-color: #495057 !important; color: #fff !important; }

@media (max-width: 575.98px) {
  main.container-fluid { padding-left: 1rem !important; padding-right: 1rem !important; }
  .table { font-size: .85rem; }
}
