/* Admin-only dark theme overrides for Jazzmin/AdminLTE. */

:root {
  --admin-page: #07111f;
  --admin-panel: #0f1f33;
  --admin-panel-2: #132943;
  --admin-input: #0b1728;
  --admin-border: rgba(125, 211, 252, 0.18);
  --admin-border-strong: rgba(125, 211, 252, 0.34);
  --admin-text: #eaf6ff;
  --admin-muted: #9fb6c9;
  --admin-primary: #38bdf8;
  --admin-primary-strong: #0ea5e9;
  --admin-success: #22c55e;
  --admin-danger: #ef4444;
  --admin-warning: #f59e0b;
}

html,
body {
  color-scheme: dark;
  background: var(--admin-page) !important;
  color: var(--admin-text) !important;
}

body,
.wrapper,
.content-wrapper,
.content-wrapper > .content,
.content-wrapper > .content-header,
.content,
.content-header,
.container,
.container-fluid,
#content,
#content-main,
#content-related,
#jazzy-actions,
.dashboard,
.dashboard #content,
.dashboard #content-main,
.main-footer,
.login-page,
.register-page {
  background: var(--admin-page) !important;
  background-color: var(--admin-page) !important;
  color: var(--admin-text) !important;
}

.wrapper > .content-wrapper,
body .content-wrapper,
body.jazzmin .content-wrapper,
body[class*="theme-"] .content-wrapper,
body[class*="sidebar"] .content-wrapper,
.layout-navbar-fixed .wrapper .content-wrapper,
.layout-fixed .wrapper .content-wrapper,
.layout-footer-fixed .wrapper .content-wrapper {
  background: var(--admin-page) !important;
  background-color: var(--admin-page) !important;
}

.bg-white,
.bg-light,
.card.bg-white,
.card.bg-light,
.table .bg-white,
.table .bg-light {
  background: var(--admin-panel) !important;
  background-color: var(--admin-panel) !important;
  color: var(--admin-text) !important;
}

a {
  color: var(--admin-primary) !important;
}

a:hover,
a:focus {
  color: #7dd3fc !important;
}

.text-muted,
.help,
.help-block,
.form-text,
.readonly,
.quiet,
small {
  color: var(--admin-muted) !important;
}

hr {
  border-color: var(--admin-border) !important;
}

/* Shell, navbar, and sidebar */
.main-header,
.main-header.navbar,
.navbar-white,
.navbar-light,
.main-sidebar,
.brand-link,
.sidebar,
.sidebar-dark-primary {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.navbar-light .navbar-nav .nav-link,
.navbar-white .navbar-nav .nav-link,
.brand-link,
.brand-link .brand-text,
.sidebar a,
.nav-sidebar .nav-link,
.nav-sidebar .nav-link p,
.nav-sidebar .nav-icon {
  color: var(--admin-text) !important;
}

.nav-sidebar .nav-link:hover,
.nav-sidebar .nav-link:focus,
.nav-sidebar .nav-link.active,
.dropdown-item:hover,
.dropdown-item:focus {
  background: rgba(56, 189, 248, 0.14) !important;
  color: var(--admin-text) !important;
}

.dropdown-menu {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.dropdown-item,
.dropdown-header,
.dropdown-menu .user-footer,
.dropdown-menu .user-header {
  background: transparent !important;
  color: var(--admin-text) !important;
}

/* Cards, modules, dashboards, and form sections */
.card,
.card.card-outline,
.card.dashboard-card,
.info-box,
.small-box,
.card-body,
.card-header,
.card-footer,
.box,
.module,
fieldset.module,
.inline-group,
.inline-related,
.tabular.inline-related,
.form-row,
.form-group,
.callout,
.list-group-item,
.timeline > div > .timeline-item {
  background: var(--admin-panel) !important;
  background-color: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.card-header,
.module h2,
.inline-group h2,
.selector h2,
.timeline-header {
  background: var(--admin-panel-2) !important;
  background-color: var(--admin-panel-2) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.card-title,
.card-header h3,
.content-header h1,
.content-header h2,
.content-header h3,
legend,
label,
.col-form-label,
.form-check-label,
.required label,
.fieldBox label {
  color: var(--admin-text) !important;
}

.card-primary.card-outline,
.card-outline,
.login-box .card {
  border-top-color: var(--admin-primary) !important;
}

/* Tables and changelists */
table,
.table,
.table-responsive,
.results,
#changelist,
#changelist .results {
  background: var(--admin-panel) !important;
  background-color: var(--admin-panel) !important;
  color: var(--admin-text) !important;
}

thead,
.table thead th,
table thead th,
thead th,
tfoot td,
tfoot th {
  background: var(--admin-panel-2) !important;
  background-color: var(--admin-panel-2) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

tbody,
tbody tr,
.table tbody tr,
.table-striped tbody tr,
.table-striped tbody tr:nth-of-type(odd),
.table-hover tbody tr {
  background: var(--admin-panel) !important;
  background-color: var(--admin-panel) !important;
  color: var(--admin-text) !important;
}

.table-striped tbody tr:nth-of-type(even),
tbody tr:nth-child(even) {
  background: #0c1b2d !important;
  background-color: #0c1b2d !important;
}

.table-hover tbody tr:hover,
tbody tr:hover,
tr.selected {
  background: rgba(56, 189, 248, 0.12) !important;
  background-color: rgba(56, 189, 248, 0.12) !important;
  color: var(--admin-text) !important;
}

td,
th,
.table td,
.table th,
table td,
table th {
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.action-checkbox-column,
.action-checkbox,
.actions,
#toolbar,
#changelist-filter,
.filter,
.paginator,
.pagination,
.object-tools {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

#changelist-filter h2,
#changelist-filter h3,
#changelist-filter li,
#changelist-filter li.selected,
#changelist-filter a {
  color: var(--admin-text) !important;
}

#changelist-filter li.selected,
#changelist-filter li:hover {
  background: rgba(56, 189, 248, 0.12) !important;
}

/* Forms, widgets, filters, and search */
.form-control,
.form-control:focus,
.custom-select,
.custom-file-label,
input,
select,
textarea,
input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="datetime-local"],
input[type="time"],
input[type="file"],
select[multiple],
textarea.vLargeTextField,
.vTextField,
.vIntegerField,
.vURLField,
.vEmailField,
.vDateField,
.vTimeField,
.related-widget-wrapper select {
  background-color: var(--admin-input) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.form-control::placeholder,
input::placeholder,
textarea::placeholder {
  color: rgba(159, 182, 201, 0.75) !important;
}

.form-control:focus,
.custom-select:focus,
input:focus,
select:focus,
textarea:focus,
button:focus,
a:focus {
  border-color: var(--admin-primary) !important;
  box-shadow: 0 0 0 0.2rem rgba(56, 189, 248, 0.22) !important;
  outline: none !important;
}

input[readonly],
textarea[readonly],
select[readonly],
input:disabled,
textarea:disabled,
select:disabled,
.form-control:disabled,
.form-control[readonly] {
  background: #0a1422 !important;
  color: #7f96aa !important;
  opacity: 1 !important;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--admin-text) !important;
  box-shadow: 0 0 0 1000px var(--admin-input) inset !important;
}

.input-group-text,
.custom-file-label::after,
.related-widget-wrapper-link,
.related-widget-wrapper .related-lookup {
  background: var(--admin-panel-2) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

/* Select2 widgets used by Jazzmin and Django admin. */
.select2-container--default .select2-selection--single,
.select2-container--default .select2-selection--multiple,
.select2-dropdown,
.select2-search--dropdown .select2-search__field {
  background: var(--admin-input) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered,
.select2-container--default .select2-selection--multiple .select2-selection__choice,
.select2-results__option,
.select2-search__field {
  color: var(--admin-text) !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice {
  background: rgba(14, 165, 233, 0.24) !important;
  border-color: var(--admin-border-strong) !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option--highlighted {
  background: var(--admin-primary-strong) !important;
  color: #fff !important;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
  background: rgba(56, 189, 248, 0.18) !important;
}

/* Django admin selector/inlines/widgets */
.selector,
.selector .selector-available,
.selector .selector-chosen,
.selector select,
.selector .selector-filter,
.selector-chooser li a,
.related-widget-wrapper,
.inline-deletelink,
.deletelink-box,
.submit-row {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.selector-chooser li a {
  color: var(--admin-primary) !important;
}

.inline-deletelink,
.deletelink {
  color: #fecaca !important;
}

.prepopulated_field a,
.datetimeshortcuts a,
.datetimeshortcuts {
  color: var(--admin-primary) !important;
}

/* Breadcrumbs, pagination, tabs, and navigation pills */
.breadcrumb,
.breadcrumb-item,
.breadcrumb-item.active,
.nav-tabs,
.nav-tabs .nav-link,
.nav-pills .nav-link,
.page-link {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.breadcrumb a,
.page-link:hover,
.page-item.active .page-link,
.nav-tabs .nav-link.active,
.nav-pills .nav-link.active {
  background: rgba(14, 165, 233, 0.22) !important;
  border-color: var(--admin-primary) !important;
  color: var(--admin-text) !important;
}

.page-item.disabled .page-link {
  background: #0a1422 !important;
  border-color: var(--admin-border) !important;
  color: #6f8599 !important;
}

/* Buttons and messages */
.btn {
  border-radius: 8px;
  font-weight: 700;
}

.btn-primary,
.btn-info,
.object-tools .btn,
input[type="submit"].default,
.submit-row input.default {
  background: var(--admin-primary-strong) !important;
  border-color: var(--admin-primary) !important;
  color: #fff !important;
}

.btn-secondary,
.btn-light,
input[type="submit"],
.submit-row input,
.actions button {
  background: var(--admin-panel-2) !important;
  border-color: var(--admin-border-strong) !important;
  color: var(--admin-text) !important;
}

.btn-success,
.alert-success {
  background: rgba(34, 197, 94, 0.18) !important;
  border-color: rgba(34, 197, 94, 0.45) !important;
  color: #dcfce7 !important;
}

.btn-danger,
.deletelink-box .btn,
input[type="submit"].deletelink,
.submit-row a.deletelink {
  background: var(--admin-danger) !important;
  border-color: #f87171 !important;
  color: #fff !important;
}

.btn-warning,
.alert-warning {
  background: rgba(245, 158, 11, 0.18) !important;
  border-color: rgba(245, 158, 11, 0.45) !important;
  color: #ffedd5 !important;
}

.alert,
.messagelist li,
.callout,
.errornote,
.errors,
ul.errorlist,
.invalid-feedback {
  background: var(--admin-panel-2) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.alert-danger,
.errornote,
.errors,
ul.errorlist,
.invalid-feedback {
  border-color: rgba(239, 68, 68, 0.55) !important;
  color: #fecaca !important;
}

/* Modals and delete/history pages */
.modal-content,
.modal-header,
.modal-body,
.modal-footer,
.delete-confirmation form,
.delete-confirmation .card,
.object-history .card {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.modal-backdrop {
  background: #020617 !important;
}

pre,
code,
.prettyprint {
  background: #020617 !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

/* Login page */
.login-page {
  min-height: 100vh;
  background: var(--admin-page) !important;
}

.login-box,
.login-box .card,
.login-card-body,
.register-card-body {
  background: var(--admin-panel) !important;
  border-color: var(--admin-border) !important;
  color: var(--admin-text) !important;
}

.login-logo a,
.login-box-msg,
.register-box-msg {
  color: var(--admin-text) !important;
}

.login-page .login-logo .logo-dark {
  display: none !important;
}

/* Keep dense admin tables usable on small screens. */
.table-responsive,
.card-body .table {
  overflow-x: auto;
}
