/**
 * 主题主色覆盖层：用 --bs-primary / --bs-primary-rgb 等变量
 * 覆盖 bootstrap / app 中原主色字面量。
 * 变量由 admin-primary.js 写入，勿在此文件再写死主色。
 */
:root,
[data-bs-theme="light"],
[data-bs-theme="dark"] {
  --bs-link-color: var(--bs-primary);
  --bs-link-color-rgb: var(--bs-primary-rgb);
  --bs-link-hover-color: var(--admin-primary-hover, var(--bs-primary));
  --bs-link-hover-color-rgb: var(--bs-primary-rgb);
  --bs-focus-ring-color: rgba(var(--bs-primary-rgb), 0.25);
  --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.1);
  --bs-primary-border-subtle: rgba(var(--bs-primary-rgb), 0.35);
  --bs-primary-text-emphasis: var(--admin-primary-active, var(--bs-primary));
  --bs-purple: var(--bs-primary);
  --bs-purple-rgb: var(--bs-primary-rgb);
  --bs-purple-bg-subtle: rgba(var(--bs-primary-rgb), 0.1);
}

[data-bs-theme="dark"] {
  --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb), 0.2);
}

/* Buttons */
.btn-primary,
.btn-purple {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--admin-primary-hover, var(--bs-primary));
  --bs-btn-hover-border-color: var(--admin-primary-hover, var(--bs-primary));
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--admin-primary-active, var(--bs-primary));
  --bs-btn-active-border-color: var(--admin-primary-active, var(--bs-primary));
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--bs-primary);
  --bs-btn-disabled-border-color: var(--bs-primary);
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  box-shadow: 0 1px 2px 0 rgba(var(--bs-primary-rgb), 0.35) !important;
}
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.btn-purple:hover,
.btn-purple:focus,
.btn-purple:active,
.btn-purple.active {
  background-color: var(--admin-primary-hover, var(--bs-primary)) !important;
  border-color: var(--admin-primary-hover, var(--bs-primary)) !important;
  box-shadow: none !important;
}

.btn-outline-primary,
.btn-outline-purple {
  --bs-btn-color: var(--bs-primary);
  --bs-btn-border-color: var(--bs-primary);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--bs-primary);
  --bs-btn-hover-border-color: var(--bs-primary);
  --bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: var(--bs-primary);
  --bs-btn-active-border-color: var(--bs-primary);
  --bs-btn-disabled-color: var(--bs-primary);
  --bs-btn-disabled-border-color: var(--bs-primary);
  color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active,
.btn-outline-purple:hover,
.btn-outline-purple:focus,
.btn-outline-purple:active,
.btn-outline-purple.active {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}

.btn-soft-primary,
.btn-soft-purple {
  background-color: rgba(var(--bs-primary-rgb), 0.15) !important;
  color: var(--bs-primary) !important;
  border-color: transparent !important;
  box-shadow: none !important;
}
.btn-soft-primary:hover,
.btn-soft-primary:focus,
.btn-soft-primary:active,
.btn-soft-purple:hover,
.btn-soft-purple:focus,
.btn-soft-purple:active {
  background-color: rgba(var(--bs-primary-rgb), 0.25) !important;
  color: var(--bs-primary) !important;
}

/* Forms */
.form-check-input:checked {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}
.form-check-input:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.55) !important;
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25) !important;
}
.form-check-input[type="checkbox"]:indeterminate {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}
.form-range::-webkit-slider-thumb,
.form-range::-moz-range-thumb {
  background-color: var(--bs-primary) !important;
}
.form-control:focus,
.form-select:focus,
.datatable-input:focus,
.dataTable-input:focus {
  border-color: rgba(var(--bs-primary-rgb), 0.55) !important;
  box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.2) !important;
}
.form-switch-primary .form-check-input:checked,
.form-switch .form-check-input:checked {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

/* Links / text / bg */
a { color: var(--bs-link-color, var(--bs-primary)); }
a:hover { color: var(--bs-link-hover-color, var(--admin-primary-hover, var(--bs-primary))); }
.text-primary,
.link-primary { color: var(--bs-primary) !important; }
.bg-primary { background-color: var(--bs-primary) !important; }
.border-primary { border-color: var(--bs-primary) !important; }
.bg-soft-primary,
.bg-soft-purple {
  background-color: rgba(var(--bs-primary-rgb), 0.15) !important;
  color: var(--bs-primary) !important;
}

/* Nav / tabs / pills */
.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
  background-color: var(--bs-primary) !important;
}
.nav-tabs .nav-link.active,
.nav-tabs-custom .nav.nav-tabs .nav-link.active {
  background-color: rgba(var(--bs-primary-rgb), 0.08) !important;
  border-color: var(--bs-primary) !important;
  color: var(--bs-primary) !important;
}
.nav-tabs-custom .nav.nav-tabs .nav-link.active i,
.nav-tabs .nav-link.active i {
  color: var(--bs-primary) !important;
}
.nav-tabs .nav-link:hover {
  border-bottom-color: var(--bs-primary) !important;
}
.nav-bordered .nav-item .nav-link.active {
  border-bottom: 1px solid var(--bs-primary) !important;
  color: var(--bs-primary) !important;
}

/* Pagination / progress / list */
.page-link { color: var(--bs-primary) !important; }
.page-item.active .page-link,
.datatable-pagination a:hover,
.dataTable-pagination a:hover,
.datatable-pagination .active a,
.dataTable-pagination .active a {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
  color: #fff !important;
}
.progress-bar { background-color: var(--bs-primary) !important; }
.list-group-item.active {
  background-color: var(--bs-primary) !important;
  border-color: var(--bs-primary) !important;
}

/* Selectr / misc vendor */
.selectr-tag { background: var(--bs-primary) !important; }
.selectr-option.selected:not(.disabled):hover,
.selectr-option.selected {
  background-color: var(--bs-primary) !important;
  color: #fff !important;
}

/* App shell leftovers in app.min */
.startbar .startbar-menu .navbar-nav .nav-item.active .nav-link.active,
.startbar .startbar-menu .navbar-nav .nav-item .nav-link:hover,
.startbar .startbar-menu .navbar-nav .nav-item.active .nav-link.active .menu-icon {
  color: var(--bs-primary) !important;
}
.startbar .startbar-menu .navbar-nav .nav-item .nav-link:hover::before,
.startbar .startbar-menu .navbar-nav .nav-item .nav .nav-item .nav-link:hover::before,
.startbar .startbar-menu .navbar-nav .nav-item .nav .nav-item .nav-link.active::before {
  border-color: var(--bs-primary) !important;
  background-color: var(--bs-primary) !important;
}

.badge-soft-primary {
  background: rgba(var(--bs-primary-rgb), 0.14) !important;
  color: var(--bs-primary) !important;
}

.uppy-Dashboard-Item-action--remove { color: var(--bs-primary) !important; }
