/* ============================================================
   Сайтовый скелет тем (site-theme.css)
   Единые стили для ВСЕХ страниц сайта PICAT.RU.
   Подключать ПОСЛЕ bootstrap.min.css.
   Значения цветов — CSS-переменные --t-*, которые задаёт
   файл палитры (themes/dark.css | themes/light.css | ...).
   Добавление новой темы = новый файл палитры + строка в lib/theme.php.
   ============================================================ */

/* --- Bootstrap 5.1: проброс базовых переменных из палитры --- */
:root {
  --bs-body-bg: var(--t-bg);
  --bs-body-color: var(--t-text);
  --bs-body-color-rgb: var(--t-text-rgb);
  --bs-light-rgb: var(--t-panel-rgb);
  --bs-border-color: var(--t-border);
  --bs-link-color: var(--t-link);
  --bs-link-hover-color: var(--t-link-hover);
}

/* --- Основа --- */
html, body {
  background-color: var(--t-bg) !important;
  color: var(--t-text) !important;
}
a { color: var(--t-link); }
a:hover { color: var(--t-link-hover); }
hr { color: var(--t-border); opacity: 1; }

/* Цвет рамок по умолчанию (низкая специфичность — классы важнее) */
*, *::before, *::after { border-color: var(--t-border) !important; }
.border          { border-color: var(--t-border) !important; }
.border-success  { border-color: var(--t-border-success) !important; }
.border-danger   { border-color: var(--t-border-danger) !important; }
.border-warning  { border-color: var(--t-border-warning) !important; }
.border-info     { border-color: var(--t-border-info) !important; }
.border-primary  { border-color: var(--t-border-primary) !important; }
.border-secondary{ border-color: var(--t-muted) !important; }

/* --- Панели: bg-light / карточки --- */
.bg-light, .bg-white, .bg-body {
  background-color: var(--t-panel) !important;
}
.bg-dark {
  background-color: var(--t-panel-3) !important;
}
.card {
  background-color: var(--t-panel);
  border-color: var(--t-border);
  color: var(--t-text);
}
.card-header {
  background-color: var(--t-panel-2);
  border-color: var(--t-border);
  color: var(--t-text);
}

/* --- Текст --- */
.text-muted   { color: var(--t-muted) !important; }
.text-dark    { color: var(--t-text) !important; }

/* link-dark: по умолчанию Bootstrap красит в #212529 (невидим на тёмном фоне).
   В светлой теме даёт почти тот же тёмный цвет, в тёмной — читаемый текст. */
.link-dark { color: var(--t-text) !important; }
.link-dark:hover,
.link-dark:focus { color: var(--t-link-hover) !important; }
.text-secondary { color: var(--t-muted) !important; }
.text-body    { color: var(--t-text) !important; }
.text-success { color: var(--t-success) !important; }
.text-danger  { color: var(--t-danger) !important; }
.text-warning { color: var(--t-warning) !important; }
.text-info    { color: var(--t-info) !important; }

/* --- Таблицы (единый стиль на всех страницах) --- */
.table {
  --bs-table-bg: transparent;
  --bs-table-accent-bg: transparent;
  --bs-table-striped-color: var(--t-table-striped-color);
  --bs-table-striped-bg: var(--t-table-striped-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-active-bg);
  --bs-table-hover-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  color: var(--t-text);
  border-color: var(--t-border);
}
.table > :not(caption) > * > * {
  border-color: var(--t-border);
  color: var(--t-text);
}
.table-bordered > :not(caption) > * > * { border-color: var(--t-border); }

.table-secondary,
.table-light,
.table-dark {
  --bs-table-bg: var(--t-table-secondary-bg);
  --bs-table-striped-bg: var(--t-table-secondary-bg);
  --bs-table-striped-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-active-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  --bs-table-hover-color: var(--t-text);
  color: var(--t-text);
  border-color: var(--t-border);
}
.table-success {
  --bs-table-bg: var(--t-table-success-bg);
  --bs-table-striped-bg: var(--t-table-success-bg);
  --bs-table-striped-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-success-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  --bs-table-hover-color: var(--t-text);
  color: var(--t-text);
  border-color: var(--t-border);
}
.table-danger {
  --bs-table-bg: var(--t-table-danger-bg);
  --bs-table-striped-bg: var(--t-table-danger-bg);
  --bs-table-striped-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-danger-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  --bs-table-hover-color: var(--t-text);
  color: var(--t-text);
  border-color: var(--t-border);
}
.table-warning {
  --bs-table-bg: var(--t-table-warning-bg);
  --bs-table-striped-bg: var(--t-table-warning-bg);
  --bs-table-striped-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-warning-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  --bs-table-hover-color: var(--t-text);
  color: var(--t-text);
  border-color: var(--t-border);
}
.table-info,
.table-primary {
  --bs-table-bg: var(--t-table-info-bg);
  --bs-table-striped-bg: var(--t-table-info-bg);
  --bs-table-striped-color: var(--t-text);
  --bs-table-active-bg: var(--t-table-info-bg);
  --bs-table-active-color: var(--t-text);
  --bs-table-hover-bg: var(--t-table-hover-bg);
  --bs-table-hover-color: var(--t-text);
  color: var(--t-text);
  border-color: var(--t-border);
}

/* --- Формы --- */
.form-control, .form-select {
  background-color: var(--t-input-bg) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
.form-control::placeholder { color: var(--t-muted); }
.form-control:focus, .form-select:focus {
  background-color: var(--t-input-bg) !important;
  color: var(--t-text) !important;
  border-color: var(--t-info) !important;
  box-shadow: 0 0 0 0.2rem var(--t-focus-ring);
}
.form-control:disabled, .form-select:disabled { background-color: var(--t-panel-3) !important; }
.input-group-text {
  background-color: var(--t-panel-2) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
.form-check-input {
  background-color: var(--t-input-bg);
  border-color: var(--t-check-border);
}
.form-check-input:checked { background-color: var(--t-info); border-color: var(--t-info); }
.form-select {
  background-image: var(--t-select-arrow) !important;
}
.form-label { color: var(--t-text); }
.form-text { color: var(--t-muted); }

/* --- Кнопки --- */
.btn-outline-secondary { color: var(--t-muted); border-color: var(--t-border); }
.btn-outline-secondary:hover { background-color: var(--t-panel-2); color: var(--t-text); }
.btn-close { filter: var(--t-btn-close-filter); }

/* --- Шапка (navbar) --- */
.nav-ink,
.navbar-dark.bg-dark {
  background: linear-gradient(180deg, var(--t-nav-g1) 0%, var(--t-nav-g2) 100%) !important;
  border-bottom: 1px solid var(--t-border);
}
.navbar-dark .nav-link { color: var(--t-nav-link) !important; }
.navbar-dark .nav-link:hover,
.navbar-dark .nav-link:focus { color: var(--t-nav-link-hover) !important; }
.navbar-dark .navbar-toggler { border-color: var(--t-border); }

/* --- Выпадающие меню --- */
.dropdown-menu {
  background-color: var(--t-panel) !important;
  border: 1px solid var(--t-border) !important;
}
.dropdown-item { color: var(--t-text) !important; }
.dropdown-item:hover, .dropdown-item:focus {
  background-color: var(--t-panel-2) !important;
  color: var(--t-text) !important;
}
.dropdown-item.active { background-color: var(--t-info) !important; color: #fff !important; }
.dropdown-divider { border-color: var(--t-border) !important; }
.dropdown-header { color: var(--t-muted) !important; }

/* --- Табы (nav-pills) — фирменный акцент активной вкладки --- */
.nav-pills .nav-link { color: var(--t-muted); }
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--t-accent) !important;
  color: var(--t-accent-text) !important;
  font-weight: 700;
}

/* --- Списки, модалки, пагинация, брейдкрамбы --- */
.list-group-item {
  background-color: var(--t-panel) !important;
  border-color: var(--t-border) !important;
  color: var(--t-text) !important;
}
.list-group-item.active {
  background-color: var(--t-info) !important;
  border-color: var(--t-info) !important;
}
.modal-content {
  background-color: var(--t-panel) !important;
  color: var(--t-text) !important;
  border-color: var(--t-border) !important;
}
.modal-header, .modal-footer { border-color: var(--t-border) !important; }
.page-link {
  background-color: var(--t-panel) !important;
  border-color: var(--t-border) !important;
  color: var(--t-link) !important;
}
.page-link:hover { background-color: var(--t-panel-2) !important; color: var(--t-text) !important; }
.page-item.disabled .page-link {
  background-color: var(--t-panel-3) !important;
  color: var(--t-page-disabled) !important;
  border-color: var(--t-border) !important;
}
.breadcrumb-item a { color: var(--t-link); }
.breadcrumb-item.active { color: var(--t-muted); }

/* --- Алёрты --- */
.alert-dark, .alert-secondary { background-color: var(--t-panel-2); color: var(--t-text); border-color: var(--t-border); }
.alert-light { background-color: var(--t-border); color: var(--t-text); border-color: var(--t-border-strong); }
.alert-success { background-color: var(--t-table-success-bg); color: var(--t-text); border-color: var(--t-border); }
.alert-danger { background-color: var(--t-table-danger-bg); color: var(--t-text); border-color: var(--t-border); }
.alert-warning { background-color: var(--t-table-warning-bg); color: var(--t-text); border-color: var(--t-border); }
.alert-info { background-color: var(--t-table-info-bg); color: var(--t-text); border-color: var(--t-border); }

/* --- Pre/код (логи) --- */
pre {
  background-color: var(--t-pre-bg) !important;
  color: var(--t-pre-text) !important;
  border: 1px solid var(--t-border) !important;
  border-radius: 8px;
  padding: 0.5rem 0.75rem;
}
code { color: var(--t-code); }
kbd { background-color: var(--t-kbd-bg); color: var(--t-text); }

/* --- Скроллбары --- */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--t-scrollbar-track); }
::-webkit-scrollbar-thumb { background: var(--t-scrollbar-thumb); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--t-scrollbar-thumb-hover); }

/* --- Монитор/страницы без шапки (robot_app, login) --- */
.block-white, .card-block { background-color: var(--t-panel) !important; border-color: var(--t-border) !important; }
body.logged-out, .app-body { background-color: var(--t-bg) !important; }

/* --- Dashboard (dash.php): липкие ячейки и шапки таблиц --- */
.dash-page table.dash-table thead th {
  background-color: var(--t-panel-2) !important;
  box-shadow: inset 0 -1px 0 var(--t-border) !important;
  color: var(--t-text) !important;
}
.dash-page table.dash-table-matrix th:first-child,
.dash-page table.dash-table-matrix td:first-child {
  background-color: var(--t-panel) !important;
  box-shadow: 2px 0 0 var(--t-border) !important;
}
.dash-page table.dash-table-matrix thead th:first-child {
  background-color: var(--t-panel-2) !important;
}
.dash-page table.dash-table-matrix tbody tr:nth-of-type(odd) td:first-child {
  background-color: var(--t-panel-3) !important;
}
.dash-page .card.bg-warning {
  background-color: var(--t-warning-card-bg) !important;
  border-color: var(--t-warning-card-border) !important;
}