@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap');

[data-bs-theme="qx-dark"] {
  color-scheme: dark;

  /* ── Superfici ── */
  --qx-bg:        #0b1116;
  --qx-panel:     #111a20;
  --qx-panel-2:   #16212a;
  --qx-line:      #22303a;
  --qx-line-soft: #1a252d;
  --qx-text:      #e8eef1;
  --qx-dim:       #8598a4;
  --qx-faint:     #5a6d78;
  --qx-mono:      "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;

  --qx-primary-on-dark: #8aa8dd;
  --qx-danger-on-dark:  #f7ab54;

  --bs-body-bg:                  var(--qx-bg);
  --bs-body-color:               var(--qx-text);
  --bs-emphasis-color:           #ffffff;
  --bs-secondary-color:          var(--qx-dim);
  --bs-tertiary-color:           var(--qx-faint);
  --bs-secondary-bg:             var(--qx-panel);
  --bs-tertiary-bg:              var(--qx-panel-2);
  --bs-border-color:             var(--qx-line);
  --bs-border-color-translucent: var(--qx-line-soft);
  --bs-heading-color:            var(--qx-text);

  --bs-link-color:       var(--qx-primary-on-dark);
  --bs-link-color-rgb:   138, 168, 221;
  --bs-link-hover-color: #a8c0e8;

  --bs-navbar-active-color: var(--qx-primary-on-dark);
  --bs-nav-link-color: var(--qx-primary-on-dark);

  background-image: radial-gradient(120% 55% at 50% -12%, #16232c 0%, var(--qx-bg) 60%);
  background-repeat: no-repeat;
  background-attachment: fixed;
}

[data-bs-theme="qx-dark"] .navbar {
    --bs-navbar-active-color: var(--qx-primary-on-dark);
    --bs-navbar-color: var(--qx-text);
    --bs-navbar-hover-color: var(--qx-primary-on-dark);
}

[data-bs-theme="qx-dark"] .btn-close {
    border: 1px solid var(--qx-text);
}

[data-bs-theme="qx-dark"] .card,
[data-bs-theme="qx-dark"] .modal-content,
[data-bs-theme="qx-dark"] .dropdown-menu,
[data-bs-theme="qx-dark"] .accordion-item,
[data-bs-theme="qx-dark"] .offcanvas {
  background: linear-gradient(180deg, var(--qx-panel-2) 0%, var(--qx-panel) 100%);
  border-color: var(--qx-line);
  color: var(--qx-text);
}

[data-bs-theme="qx-dark"] .list-group-item {
    border-color: var(--qx-line);
    color: var(--qx-text);
}

[data-bs-theme="qx-dark"] .list-group-item:not([class*="bg-"]) {
    background: linear-gradient(
        180deg,
        var(--qx-panel-2) 0%,
        var(--qx-panel) 100%
    );
}

[data-bs-theme="qx-dark"] .card-header,
[data-bs-theme="qx-dark"] .card-footer,
[data-bs-theme="qx-dark"] .modal-header,
[data-bs-theme="qx-dark"] .modal-footer {
  background-color: rgba(0, 0, 0, .18);
  border-color: var(--qx-line-soft);
}

[data-bs-theme="qx-dark"] .bg-light,
[data-bs-theme="qx-dark"] .bg-white {
  background-color: var(--qx-panel-2) !important;
  color: var(--qx-text);
}

[data-bs-theme="qx-dark"] .navbar {
  background-color: var(--qx-panel) !important;
  border-bottom: 1px solid var(--qx-line);
}

[data-bs-theme="qx-dark"] hr,
[data-bs-theme="qx-dark"] .dropdown-divider {
  border-color: var(--qx-line);
  opacity: 1;
}

[data-bs-theme="qx-dark"] .accordion-button {
  background-color: var(--qx-panel-2);
  color: var(--qx-text);
}
[data-bs-theme="qx-dark"] .accordion-button:not(.collapsed) {
  background-color: var(--qx-panel);
  color: var(--qx-primary-on-dark);
  box-shadow: inset 0 -1px 0 var(--qx-line);
}
[data-bs-theme="qx-dark"] .accordion-button::after {
  filter: invert(70%) sepia(8%) saturate(400%) hue-rotate(155deg);
}

[data-bs-theme="qx-dark"] .form-control,
[data-bs-theme="qx-dark"] .form-select {
  background-color: var(--qx-panel);
  border-color: var(--qx-line);
  color: var(--qx-text);
}
[data-bs-theme="qx-dark"] .form-control:hover,
[data-bs-theme="qx-dark"] .form-select:hover {
  border-color: #2e404c;
}
[data-bs-theme="qx-dark"] .form-control:focus,
[data-bs-theme="qx-dark"] .form-select:focus {
  background-color: var(--qx-panel);
  border-color: var(--qx-primary);
  color: var(--qx-text);
  box-shadow: 0 0 0 .25rem rgba(85, 122, 188, .28);
}
[data-bs-theme="qx-dark"] .form-control[readonly],
[data-bs-theme="qx-dark"] .form-control:disabled,
[data-bs-theme="qx-dark"] .form-select:disabled {
  background-color: #0e161c;
  color: var(--qx-dim);
}
[data-bs-theme="qx-dark"] .form-control::placeholder { color: var(--qx-faint); }
[data-bs-theme="qx-dark"] .input-group-text {
  background-color: var(--qx-panel-2);
  border-color: var(--qx-line);
  color: var(--qx-dim);
}
[data-bs-theme="qx-dark"] .form-check-input {
  background-color: var(--qx-panel);
  border-color: var(--qx-line);
}
[data-bs-theme="qx-dark"] .form-check-input:checked {
  background-color: var(--qx-primary);
  border-color: var(--qx-primary);
}

[data-bs-theme="qx-dark"] .table {
  --bs-table-bg:           transparent;
  --bs-table-color:        var(--qx-text);
  --bs-table-border-color: var(--qx-line-soft);
  --bs-table-striped-bg:   rgba(255, 255, 255, .022);
  --bs-table-striped-color: var(--qx-text);
  --bs-table-hover-bg:     rgba(85, 122, 188, .10);
  --bs-table-hover-color:  var(--qx-text);
}
[data-bs-theme="qx-dark"] .table > thead {
  color: var(--qx-faint);
  border-bottom: 1px solid var(--qx-line);
}

[data-bs-theme="qx-dark"] .dataTables_wrapper .dataTables_info,
[data-bs-theme="qx-dark"] .dataTables_wrapper .dataTables_length,
[data-bs-theme="qx-dark"] .dataTables_wrapper .dataTables_filter {
  color: var(--qx-dim);
}
[data-bs-theme="qx-dark"] .page-link {
  background-color: var(--qx-panel);
  border-color: var(--qx-line);
  color: var(--qx-text);
}
[data-bs-theme="qx-dark"] .page-link:hover {
  background-color: var(--qx-panel-2);
  border-color: var(--qx-primary);
}
[data-bs-theme="qx-dark"] .page-item.disabled .page-link {
  background-color: var(--qx-panel);
  color: var(--qx-faint);
}

[data-bs-theme="qx-dark"] .alert-primary {
  background-color: rgba(85, 122, 188, .14);
  border-color:     rgba(85, 122, 188, .38);
  color:            #b4c8e8;
}
[data-bs-theme="qx-dark"] .alert-info {
  background-color: rgba(178, 178, 178, .12);
  border-color:     rgba(178, 178, 178, .32);
  color:            #d0d0d0;
}
[data-bs-theme="qx-dark"] .alert-warning {
  background-color: rgba(232, 227, 70, .12);
  border-color:     rgba(232, 227, 70, .34);
  color:            #eae681;
}
[data-bs-theme="qx-dark"] .alert-success {
  background-color: rgba(79, 180, 128, .13);
  border-color:     rgba(79, 180, 128, .36);
  color:            #8dd2ac;
}
[data-bs-theme="qx-dark"] .alert-danger {
  background-color: rgba(243, 147, 34, .13);
  border-color:     rgba(243, 147, 34, .36);
  color:            #f7b96e;
}
[data-bs-theme="qx-dark"] .alert-secondary {
  background-color: var(--qx-panel-2);
  border-color:     var(--qx-line);
  color:            var(--qx-dim);
}

[data-bs-theme="qx-dark"] .toast {
  background-color: var(--qx-panel);
  border-color:     var(--qx-line);
  color:            var(--qx-text);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .45);
}
[data-bs-theme="qx-dark"] .toast-body { color: var(--qx-text); }

[data-bs-theme="qx-dark"] .text-primary { color: var(--qx-primary-on-dark) !important; }
[data-bs-theme="qx-dark"] .text-danger  { color: var(--qx-danger-on-dark)  !important; }
[data-bs-theme="qx-dark"] .text-muted   { color: var(--qx-dim)             !important; }
[data-bs-theme="qx-dark"] .text-dark    { color: var(--qx-text)            !important; }
[data-bs-theme="qx-dark"] .text-black   { color: var(--qx-text)            !important; }
[data-bs-theme="qx-dark"] .border       { border-color: var(--qx-line)     !important; }

[data-bs-theme="qx-dark"] input[type="number"],
[data-bs-theme="qx-dark"] .qx-num {
  font-family: var(--qx-mono);
  font-variant-numeric: tabular-nums;
}

[data-bs-theme="qx-dark"] .select2-container--bootstrap-5 .select2-selection,
[data-bs-theme="qx-dark"] .select2-dropdown {
  background-color: var(--qx-panel);
  border-color: var(--qx-line);
  color: var(--qx-text);
}
[data-bs-theme="qx-dark"] .select2-container--bootstrap-5 .select2-results__option--highlighted {
  background-color: var(--qx-primary);
  color: #fff;
}

[data-bs-theme="qx-dark"] :focus-visible {
  outline: 2px solid var(--qx-primary-on-dark);
  outline-offset: 3px;
}

.qx-theme-toggle {
  --icon-light: inline-block;
  --icon-dark:  none;
  border: 1px solid var(--bs-border-color);
  background: transparent;
  color: inherit;
  border-radius: .375rem;
  padding: .35rem .6rem;
  line-height: 1;
  transition: border-color .18s, color .18s;
}
.qx-theme-toggle:hover {
  border-color: var(--qx-primary);
  color: var(--qx-primary);
}
[data-bs-theme="qx-dark"] .qx-theme-toggle {
  --icon-light: none;
  --icon-dark:  inline-block;
}
[data-bs-theme="qx-dark"] .qx-theme-toggle:hover {
  border-color: var(--qx-warning);
  color: var(--qx-warning);
}
.qx-theme-toggle .icon-light { display: var(--icon-light); }
.qx-theme-toggle .icon-dark  { display: var(--icon-dark);  }

@media (prefers-reduced-motion: reduce) {
  .qx-theme-toggle { transition: none; }
}