:root {
  --app-bg: var(--bg-1, #f3f6fb);
  --app-surface: var(--surface, #ffffff);
  --app-surface-2: var(--bg-2, #eef4ff);
  --app-border: var(--line, #dbe4ef);
  --app-border-soft: var(--line-soft, #e8edf5);
  --app-text: var(--ink, #0f172a);
  --app-text-muted: var(--muted, #64748b);
  --app-primary: var(--brand-2, #1d4ed8);
  --app-primary-hover: #1e40af;
  --app-success: #15803d;
  --app-warning: #b45309;
  --app-danger: #b91c1c;
  --app-shadow: 0 10px 26px rgba(15, 23, 42, 0.1);
  --app-table-row-hover: #edf4ff;
  --app-input-bg: #ffffff;
  --app-input-border: #c9d6ea;
  --app-pagination-bg: #ffffff;
  --app-pagination-active-bg: linear-gradient(135deg, rgba(13, 148, 136, 0.18), rgba(29, 78, 216, 0.18));
  --app-pagination-active-text: #0f172a;
  --app-pagination-hover-bg: #eaf1ff;
  --app-pagination-disabled-bg: #f8fafc;
  --app-pagination-disabled-text: #94a3b8;
}

html[data-theme="dark"] {
  --app-bg: #0b1220;
  --app-surface: #172133;
  --app-surface-2: #1b2740;
  --app-border: #34435a;
  --app-border-soft: #263449;
  --app-text: #f8fafc;
  --app-text-muted: #9fb2d4;
  --app-primary: #38bdf8;
  --app-primary-hover: #60a5fa;
  --app-success: #22c55e;
  --app-warning: #f59e0b;
  --app-danger: #f87171;
  --app-shadow: 0 14px 30px rgba(2, 6, 23, 0.35);
  --app-table-row-hover: #243149;
  --app-input-bg: #132036;
  --app-input-border: #34435a;
  --app-pagination-bg: #172133;
  --app-pagination-active-bg: linear-gradient(135deg, rgba(20, 184, 166, 0.28), rgba(59, 130, 246, 0.28));
  --app-pagination-active-text: #ffffff;
  --app-pagination-hover-bg: #223248;
  --app-pagination-disabled-bg: #182338;
  --app-pagination-disabled-text: #5f7393;
}

.orbix-card,
.orbix-panel {
  background: var(--app-surface);
  border: 1px solid var(--app-border);
  border-radius: 14px;
  box-shadow: var(--app-shadow);
}

.orbix-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.orbix-table {
  --bs-table-bg: var(--app-surface);
  --bs-table-color: var(--app-text);
  --bs-table-border-color: var(--app-border-soft);
  --bs-table-striped-bg: color-mix(in srgb, var(--app-surface) 84%, var(--app-primary) 16%);
  --bs-table-striped-color: var(--app-text);
  --bs-table-hover-bg: var(--app-table-row-hover);
  --bs-table-hover-color: var(--app-text);
  margin-bottom: 0;
}

.orbix-table thead th,
.table.orbix-table thead th,
.table thead.orbix-table-head th {
  background: var(--app-surface-2);
  color: var(--app-text-muted);
  border-bottom: 1px solid var(--app-border);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.72rem;
  font-weight: 800;
}

.orbix-form-control,
.orbix-panel .form-control,
.orbix-panel .form-select,
.orbix-card .form-control,
.orbix-card .form-select,
.table-responsive .form-control,
.table-responsive .form-select {
  background: var(--app-input-bg);
  color: var(--app-text);
  border-color: var(--app-input-border);
}

.orbix-form-control::placeholder,
.orbix-panel .form-control::placeholder,
.orbix-card .form-control::placeholder {
  color: var(--app-text-muted);
  opacity: 0.82;
}

.orbix-form-control:focus,
.orbix-panel .form-control:focus,
.orbix-panel .form-select:focus,
.orbix-card .form-control:focus,
.orbix-card .form-select:focus {
  border-color: color-mix(in srgb, var(--app-primary) 62%, var(--app-border) 38%);
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--app-primary) 26%, transparent);
}

.orbix-badge,
.badge.orbix-badge {
  border: 1px solid color-mix(in srgb, var(--app-border) 70%, transparent);
  color: var(--app-text);
  background: color-mix(in srgb, var(--app-surface-2) 86%, var(--app-primary) 14%);
}

.orbix-empty-state {
  border: 1px dashed var(--app-border);
  border-radius: 12px;
  background: color-mix(in srgb, var(--app-surface) 88%, var(--app-surface-2) 12%);
  color: var(--app-text-muted);
  text-align: center;
  padding: 1.2rem;
}

.orbix-pagination,
nav[role="navigation"] {
  margin-top: 0.75rem;
}

.orbix-pagination--compact nav[role="navigation"] > div:last-child {
  gap: 0.5rem;
}

.orbix-pagination--compact nav[role="navigation"] .pagination {
  gap: 0.25rem;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 0.15rem;
  scrollbar-width: thin;
}

.orbix-pagination--compact nav[role="navigation"] .page-link {
  min-width: 1.95rem;
  height: 1.95rem;
  padding: 0 0.45rem;
  font-size: 0.84rem;
}

.orbix-pagination .pagination,
nav[role="navigation"] .pagination {
  gap: 0.35rem;
  flex-wrap: wrap;
  margin-bottom: 0;
}

.orbix-pagination .page-item,
nav[role="navigation"] .page-item {
  display: inline-flex;
}

.orbix-pagination .page-link,
nav[role="navigation"] .page-link {
  min-width: 2.2rem;
  height: 2.2rem;
  border-radius: 10px;
  border: 1px solid var(--app-border);
  background: var(--app-pagination-bg);
  color: var(--app-text);
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.66rem;
  box-shadow: none;
  transition: background-color 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}

.orbix-pagination .page-link *,
nav[role="navigation"] .page-link * {
  color: inherit !important;
}

.orbix-pagination .page-link svg,
nav[role="navigation"] .page-link svg {
  color: inherit !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.orbix-pagination .page-link:hover,
nav[role="navigation"] .page-link:hover {
  background: var(--app-pagination-hover-bg);
  color: var(--app-text);
  border-color: color-mix(in srgb, var(--app-primary) 30%, var(--app-border));
}

.orbix-pagination .page-link:focus,
nav[role="navigation"] .page-link:focus,
.orbix-pagination .page-link:focus-visible,
nav[role="navigation"] .page-link:focus-visible {
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--app-primary) 28%, transparent);
  outline: 0;
  z-index: 2;
}

.orbix-pagination .page-item.active .page-link,
nav[role="navigation"] .page-item.active .page-link {
  background: var(--app-pagination-active-bg);
  color: var(--app-pagination-active-text);
  border-color: color-mix(in srgb, var(--app-primary) 44%, var(--app-border));
}

.orbix-pagination .page-item.disabled .page-link,
nav[role="navigation"] .page-item.disabled .page-link {
  background: var(--app-pagination-disabled-bg);
  color: var(--app-pagination-disabled-text);
  border-color: var(--app-border-soft);
  opacity: 1;
}

html[data-theme="dark"] .orbix-pagination .page-link,
html[data-theme="dark"] nav[role="navigation"] .page-link {
  background: var(--app-pagination-bg) !important;
  color: var(--app-text) !important;
  border-color: var(--app-border) !important;
}

html[data-theme="dark"] .orbix-pagination .page-link:hover,
html[data-theme="dark"] nav[role="navigation"] .page-link:hover {
  background: var(--app-pagination-hover-bg) !important;
  color: var(--app-text) !important;
}

html[data-theme="dark"] .orbix-pagination .page-item.active .page-link,
html[data-theme="dark"] nav[role="navigation"] .page-item.active .page-link {
  background: var(--app-pagination-active-bg) !important;
  color: var(--app-pagination-active-text) !important;
  border-color: color-mix(in srgb, var(--app-primary) 44%, var(--app-border)) !important;
}

html[data-theme="dark"] .orbix-pagination .page-item.disabled .page-link,
html[data-theme="dark"] nav[role="navigation"] .page-item.disabled .page-link {
  background: var(--app-pagination-disabled-bg) !important;
  color: var(--app-pagination-disabled-text) !important;
  border-color: var(--app-border-soft) !important;
}

nav[role="navigation"] > div:last-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: wrap;
}

nav[role="navigation"] p.small,
nav[role="navigation"] p.text-muted,
nav[role="navigation"] span.small,
nav[role="navigation"] span.text-muted {
  color: var(--app-text-muted) !important;
}

nav[role="navigation"] .form-select.form-select-sm {
  min-width: 84px;
  height: 2rem;
  border-radius: 10px;
  font-size: 0.82rem;
  line-height: 1.1;
  background-color: var(--app-input-bg);
  border-color: var(--app-input-border);
  color: var(--app-text);
}

.table-responsive,
.card,
.modal-content,
.dropdown-menu,
.list-group-item,
.accordion-item,
.offcanvas,
.offcanvas-header,
.offcanvas-body {
  background: var(--app-surface);
  border-color: var(--app-border);
  color: var(--app-text);
}

.table-responsive {
  border-radius: 14px;
  border: 1px solid var(--app-border);
}

.table,
.table > :not(caption) > * > * {
  color: var(--app-text);
  border-color: var(--app-border-soft);
}

.table > thead th,
.table > thead td {
  background: var(--app-surface-2);
  color: var(--app-text-muted);
}

.table-hover > tbody > tr:hover > * {
  background-color: var(--app-table-row-hover);
  color: var(--app-text);
}

.form-control,
.form-select,
.form-check-input,
.input-group-text,
.form-control:disabled,
.form-select:disabled,
textarea.form-control {
  background-color: var(--app-input-bg);
  border-color: var(--app-input-border);
  color: var(--app-text);
}

.form-control::placeholder,
textarea.form-control::placeholder {
  color: var(--app-text-muted);
}

.form-check-input:checked {
  background-color: var(--app-primary);
  border-color: var(--app-primary);
}

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus,
.btn:focus-visible,
.dropdown-item:focus,
.dropdown-item:focus-visible,
.nav-link:focus,
.nav-link:focus-visible {
  box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--app-primary) 30%, transparent);
}

.dropdown-menu,
.tooltip-inner,
.popover,
.accordion-button,
.accordion-body,
.alert,
.breadcrumb,
.nav-tabs .nav-link,
.nav-pills .nav-link,
.list-group-item,
.modal-content {
  color: var(--app-text);
}

.nav-tabs {
  border-bottom-color: var(--app-border);
}

.nav-tabs .nav-link {
  border-color: transparent;
  color: var(--app-text-muted);
}

.nav-tabs .nav-link:hover {
  border-color: var(--app-border);
  color: var(--app-text);
}

.nav-tabs .nav-link.active {
  background: var(--app-surface);
  border-color: var(--app-border) var(--app-border) var(--app-surface);
  color: var(--app-text);
}

.alert-info {
  border-color: color-mix(in srgb, var(--app-primary) 30%, var(--app-border));
}

.alert-success {
  border-color: color-mix(in srgb, var(--app-success) 35%, var(--app-border));
}

.alert-warning {
  border-color: color-mix(in srgb, var(--app-warning) 35%, var(--app-border));
}

.alert-danger {
  border-color: color-mix(in srgb, var(--app-danger) 35%, var(--app-border));
}

.badge.text-bg-light,
.badge.bg-light {
  background: color-mix(in srgb, var(--app-surface-2) 82%, var(--app-primary) 18%) !important;
  color: var(--app-text) !important;
  border: 1px solid var(--app-border);
}

@media (max-width: 767.98px) {
  nav[role="navigation"] > div:last-child {
    flex-direction: column;
    align-items: flex-start;
  }

  .orbix-pagination .page-link,
  nav[role="navigation"] .page-link {
    min-width: 2rem;
    height: 2rem;
    font-size: 0.82rem;
  }

  .orbix-pagination--compact nav[role="navigation"] > div:last-child {
    align-items: stretch;
    width: 100%;
  }

  .orbix-pagination--compact nav[role="navigation"] .pagination {
    width: 100%;
  }

  .orbix-pagination--compact nav[role="navigation"] p.small,
  .orbix-pagination--compact nav[role="navigation"] span.small {
    font-size: 0.78rem;
  }
}
