:root {
  --kbs-bg: #0e1116;
  --kbs-surface: #161b22;
  --kbs-surface-alt: #1c222b;
  --kbs-border: #2a313c;
  --kbs-text: #e6e9ef;
  --kbs-text-muted: #8b95a5;
  --kbs-accent: #d4ff00;
  --kbs-accent-dark: #00a690;
  --kbs-danger: #ff6b6b;
}

body {
  background-color: var(--kbs-bg);
  color: var(--kbs-text);
  font-family:
    "Segoe UI",
    Roboto,
    -apple-system,
    sans-serif;
}

/* ---------- Navbar ---------- */
.kbs-navbar {
  background-color: var(--kbs-surface);
  border-bottom: 1px solid var(--kbs-border);
}

.kbs-brand {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
  color: var(--kbs-text) !important;
  font-weight: 700;
}

.kbs-brand-sub {
  font-size: 0.7rem;
  color: var(--kbs-text-muted);
  font-weight: 400;
}

.kbs-cube {
  display: none;
}

.kbs-navbar .nav-link {
  color: var(--kbs-text-muted);
  font-weight: 500;
  border-radius: 0.5rem;
  padding: 0.45rem 0.8rem;
}

.kbs-navbar .nav-link.active,
.kbs-navbar .nav-link:hover {
  color: var(--kbs-text);
  background-color: var(--kbs-surface-alt);
}

/* ---------- Buttons ---------- */
.btn-kbs-accent {
  background-color: var(--kbs-accent);
  border-color: var(--kbs-accent);
  color: #04201c;
  font-weight: 600;
}

.btn-kbs-accent:hover,
.btn-kbs-accent:focus {
  background-color: var(--kbs-accent-dark);
  border-color: var(--kbs-accent-dark);
  color: #04201c;
}

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

/* ---------- Surfaces ---------- */
.kbs-surface {
  background-color: var(--kbs-surface);
  border: 1px solid var(--kbs-border);
  border-radius: 0.85rem;
}

.kbs-page-header h4 {
  font-weight: 700;
}

/* ---------- Pills ---------- */
.kbs-pills .nav-link {
  color: var(--kbs-text-muted);
  background-color: var(--kbs-surface);
  border: 1px solid var(--kbs-border);
  margin-right: 0.4rem;
  font-weight: 600;
}

.kbs-pills .nav-link.active {
  background-color: var(--kbs-accent);
  color: #04201c;
  border-color: var(--kbs-accent);
}

/* ---------- Tables ---------- */
.kbs-table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--kbs-text);
  margin-bottom: 0;
}

.kbs-table thead th {
  color: var(--kbs-text-muted);
  border-bottom: 1px solid var(--kbs-border);
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.kbs-table td,
.kbs-table th {
  border-color: var(--kbs-border);
  vertical-align: middle;
}

/* ---------- Badges ---------- */
.kbs-badge-active {
  background-color: rgba(0, 194, 168, 0.15);
  color: var(--kbs-accent);
}

.kbs-badge-inactive {
  background-color: rgba(255, 107, 107, 0.15);
  color: var(--kbs-danger);
}

.kbs-badge-type {
  background-color: var(--kbs-surface-alt);
  color: var(--kbs-text);
  border: 1px solid var(--kbs-border);
  font-weight: 600;
}

/* ---------- Forms ---------- */
.form-control,
.form-select {
  background-color: var(--kbs-surface-alt);
  border: 1px solid var(--kbs-border);
  color: var(--kbs-text);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--kbs-surface-alt);
  color: var(--kbs-text);
  border-color: var(--kbs-accent);
  box-shadow: 0 0 0 0.2rem rgba(0, 194, 168, 0.2);
}

/* Select2 dark theme overrides */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple {
  background-color: var(--kbs-surface-alt);
  border: 1px solid var(--kbs-border);
  color: var(--kbs-text);
  min-height: calc(1.5em + 0.75rem + 2px);
}

.select2-container--default .select2-selection__rendered {
  color: var(--kbs-text) !important;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__choice {
  background-color: var(--kbs-accent);
  border: none;
  color: #04201c;
  font-weight: 600;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__remove {
  color: #04201c;
}

.select2-dropdown {
  background-color: var(--kbs-surface-alt);
  border-color: var(--kbs-border);
  color: var(--kbs-text);
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected] {
  background-color: var(--kbs-accent);
  color: #04201c;
}

.select2-search--dropdown .select2-search__field {
  background-color: var(--kbs-surface);
  color: var(--kbs-text);
  border-color: var(--kbs-border);
}

/* ---------- Loading overlay ---------- */
.kbs-loading-overlay {
  position: fixed;
  inset: 0;
  background: rgba(14, 17, 22, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2000;
}

/* ---------- Pagination ---------- */
.pagination .page-link {
  background-color: var(--kbs-surface-alt);
  border-color: var(--kbs-border);
  color: var(--kbs-text);
}

.pagination .page-item.active .page-link {
  background-color: var(--kbs-accent);
  border-color: var(--kbs-accent);
  color: #04201c;
}
