/* Base overrides */
body {
    color: #e0e0e0;
    background-color: #121212;
}

/* Text colors */
.text-muted {
    color: #909090 !important;
}

.text-dark {
    color: #e0e0e0 !important;
}

.text-body {
    color: #e0e0e0 !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
    color: #e0e0e0;
}

a {
    color: #3a67a2;
}

a:hover {
    color: #2a5792;
}

/* Background utilities */
.bg-light {
    background-color: #1e2124 !important;
    color: #e0e0e0;
}

.bg-white {
    background-color: #1e2124 !important;
    color: #e0e0e0;
}

.bg-dark {
    background-color: #121212 !important;
    color: #e0e0e0;
}

/* Cards */
.card {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.5);
}

.card-header {
    background-color: #1e3a5f;
    border-bottom: 1px solid #2a5792;
    color: #e0e0e0;
}

.card-footer {
    background-color: #1e3a5f;
    border-top: 1px solid #2a5792;
    color: #e0e0e0;
}

.card-body {
    background-color: #1e2124;
}

.card-title {
    color: #e0e0e0;
}

.card-subtitle {
    color: #909090;
}

.card-text {
    color: #c0c0c0;
}

/* Tables */
.table {
    --bs-table-color: #e0e0e0;
    --bs-table-bg: #1e2124;
    --bs-table-border-color: #2a5792;
    --bs-table-striped-color: #e0e0e0;
    --bs-table-striped-bg: #2c3034;
    --bs-table-active-color: #e0e0e0;
    --bs-table-active-bg: #3d4247;
    --bs-table-hover-color: #e0e0e0;
    --bs-table-hover-bg: #32383e;
}

.table-dark {
    --bs-table-bg: #1e2124;
    --bs-table-striped-bg: #2c3034;
    --bs-table-active-bg: #3d4247;
    --bs-table-hover-bg: #32383e;
    --bs-table-border-color: #2a5792;
    --bs-table-color: #e0e0e0;
}

.table thead th {
    background-color: #1e3a5f;
    color: #e0e0e0;
    border-color: #2a5792;
}

.table > :not(caption) > * > * {
    background-color: var(--bs-table-bg);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: #1e2124;
}

.table-striped > tbody > tr:nth-of-type(even) > * {
    --bs-table-bg-type: #121212;
}

/* Forms */
.form-control {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

.form-control:focus {
    background-color: #333;
    border-color: #2a5792;
    color: #e0e0e0;
    box-shadow: 0 0 0 0.25rem rgba(42, 87, 146, 0.25);
}

.form-control::placeholder {
    color: #909090;
}

.form-select {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

.form-select:focus {
    border-color: #2a5792;
    box-shadow: 0 0 0 0.25rem rgba(42, 87, 146, 0.25);
}

.form-control:disabled, .form-control[readonly] {
    background-color: #252525;
    color: #909090;
}

.form-check-input {
    background-color: #2c2c2c;
    border-color: #444;
}

.form-check-input:checked {
    background-color: #2a5792;
    border-color: #2a5792;
}

.form-check-label {
    color: #e0e0e0;
}

.form-label {
    color: #e0e0e0;
}

.input-group-text {
    color: #e0e0e0;
    background-color: #1e3a5f;
    border-color: #444;
}

.form-text {
    color: #909090;
}

/* Buttons */
.btn-primary {
    background-color: #1e3a5f;
    border-color: #2a5792;
}

.btn-primary:hover {
    background-color: #2a5792;
    border-color: #3a67a2;
}

.btn-primary:focus, .btn-primary.focus {
    box-shadow: 0 0 0 0.25rem rgba(42, 87, 146, 0.5);
}

.btn-secondary {
    background-color: #2c2c2c;
    border-color: #444;
}

.btn-secondary:hover {
    background-color: #3c3c3c;
    border-color: #555;
}

.btn-success {
    background-color: #1e5f3a;
    border-color: #2a9257;
}

.btn-success:hover {
    background-color: #2a9257;
    border-color: #3aa267;
}

.btn-danger {
    background-color: #5f1e1e;
    border-color: #922a2a;
}

.btn-danger:hover {
    background-color: #922a2a;
    border-color: #a23a3a;
}

.btn-warning {
    background-color: #5f471e;
    border-color: #92672a;
    color: #e0e0e0;
}

.btn-warning:hover {
    background-color: #92672a;
    border-color: #a2773a;
    color: #e0e0e0;
}

.btn-info {
    background-color: #1e4d5f;
    border-color: #2a7992;
    color: #e0e0e0;
}

.btn-info:hover {
    background-color: #2a7992;
    border-color: #3a89a2;
    color: #e0e0e0;
}

.btn-outline-primary {
    color: #2a5792;
    border-color: #2a5792;
}

.btn-outline-primary:hover {
    background-color: #2a5792;
    color: #e0e0e0;
}

.btn-link {
    color: #3a67a2;
}

.btn-link:hover {
    color: #2a5792;
}

.btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

/* Navs & Tabs */
.nav-tabs {
    border-bottom: 1px solid #2a5792;
}

.nav-tabs .nav-link:hover {
    border-color: #333 #333 #2a5792;
    background-color: #2c2c2c;
}

.nav-tabs .nav-link.active {
    color: #e0e0e0;
    background-color: #1e3a5f;
    border-color: #2a5792 #2a5792 #1e3a5f;
}

.nav-link {
    color: #2a5792;
}

.nav-link:hover {
    color: #3a67a2;
}

.nav-text {
    color: #e0e0e0;
}

.navbar-light .navbar-brand,
.navbar-light .navbar-nav .nav-link {
    color: #e0e0e0;
}

.navbar-dark .navbar-brand,
.navbar-dark .navbar-nav .nav-link {
    color: #e0e0e0;
}

.navbar-toggler-icon {
    filter: invert(1);
}

/* List Groups */
.list-group-item {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
}

.list-group-item.active {
    background-color: #1e3a5f;
    border-color: #2a5792;
}

.list-group-item-action {
    color: #e0e0e0;
}

.list-group-item-action:hover {
    background-color: #1e3a5f;
    color: #e0e0e0;
}

/* Modals */
.modal {
    color: #e0e0e0;
}

.modal-content {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
}

.modal-header {
    border-bottom: 1px solid #2a5792;
    background-color: #1e3a5f;
    color: #e0e0e0;
}

.modal-footer {
    border-top: 1px solid #2a5792;
    background-color: #1e3a5f;
}

.modal-backdrop {
    background-color: #000;
}

.modal-title {
    color: #e0e0e0;
}

.modal-body {
    color: #e0e0e0;
    background-color: #1e2124;
}

/* Pagination */
.pagination .page-item .page-link {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
}

.pagination .page-item.active .page-link {
    background-color: #1e3a5f;
    border-color: #2a5792;
}

.pagination .page-item .page-link:hover {
    background-color: #2a5792;
    border-color: #3a67a2;
    color: #e0e0e0;
}

.pagination .page-item.disabled .page-link {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #666;
}

/* Badge */
.badge.bg-success {
    background-color: #1e5f3a !important;
}

.badge.bg-secondary {
    background-color: #2c2c2c !important;
}

.badge.bg-danger {
    background-color: #5f1e1e !important;
}

.badge.bg-warning {
    background-color: #5f471e !important;
}

.badge.bg-info {
    background-color: #1e4d5f !important;
}

.badge.bg-primary {
    background-color: #1e3a5f !important;
}

.badge.bg-dark {
    background-color: #121212 !important;
}

.badge.bg-light {
    background-color: #2c2c2c !important;
    color: #e0e0e0;
}

/* Alerts */
.alert-danger {
    background-color: #5f1e1e;
    border-color: #922a2a;
    color: #e0e0e0;
}

.alert-success {
    background-color: #1e5f3a;
    border-color: #2a9257;
    color: #e0e0e0;
}

.alert-warning {
    background-color: #5f471e;
    border-color: #92672a;
    color: #e0e0e0;
}

.alert-info {
    background-color: #1e4d5f;
    border-color: #2a7992;
    color: #e0e0e0;
}

.alert-primary {
    background-color: #1e3a5f;
    border-color: #2a5792;
    color: #e0e0e0;
}

.alert-secondary {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

.alert-light {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

.alert-dark {
    background-color: #121212;
    border-color: #333;
    color: #e0e0e0;
}

/* Borders */
.border-top, .border-bottom, .border-start, .border-end {
    border-color: #2a5792 !important;
}

.border {
    border-color: #2a5792 !important;
}

/* Dropdown */
.dropdown-menu {
    background-color: #1e2124;
    border-color: #2a5792;
}

.dropdown-item {
    color: #e0e0e0;
}

.dropdown-item:hover, .dropdown-item:focus {
    background-color: #1e3a5f;
    color: #e0e0e0;
}

.dropdown-divider {
    border-top-color: #2a5792;
}

.dropdown-header {
    color: #909090;
}

/* Spinners */
.spinner-border.text-primary {
    color: #2a5792 !important;
}

.spinner-grow.text-primary {
    color: #2a5792 !important;
}

/* Tooltips & Popovers */
.tooltip {
    --bs-tooltip-bg: #1e3a5f;
    --bs-tooltip-color: #e0e0e0;
}

.popover {
    background-color: #1e2124;
    border-color: #2a5792;
}

.popover-header {
    background-color: #1e3a5f;
    border-bottom-color: #2a5792;
    color: #e0e0e0;
}

.popover-body {
    color: #e0e0e0;
}

/* Breadcrumb */
.breadcrumb {
    background-color: #1e2124;
}

.breadcrumb-item {
    color: #909090;
}

.breadcrumb-item.active {
    color: #e0e0e0;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: #909090;
}

/* Progress */
.progress {
    background-color: #2c2c2c;
}

.progress-bar {
    background-color: #2a5792;
}

/* Toasts */
.toast {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
}

.toast-header {
    background-color: #1e3a5f;
    color: #e0e0e0;
    border-bottom-color: #2a5792;
}

/* Quill Editor */
.ql-toolbar {
    background-color: #1e3a5f !important;
    border-color: #2a5792 !important;
}

.ql-container {
    background-color: #2c2c2c !important;
    border-color: #2a5792 !important;
    color: #e0e0e0 !important;
}

.ql-editor {
    color: #e0e0e0 !important;
}

.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
    color: #e0e0e0;
}

.ql-snow.ql-toolbar button.ql-active .ql-stroke, 
.ql-snow .ql-toolbar button.ql-active .ql-stroke {
    stroke: #2a5792;
}

.ql-snow.ql-toolbar button .ql-stroke, 
.ql-snow .ql-toolbar button .ql-stroke {
    stroke: #e0e0e0;
}

.ql-snow .ql-picker {
    color: #e0e0e0;
}

.ql-snow .ql-tooltip {
    background-color: #1e2124;
    border-color: #2a5792;
    color: #e0e0e0;
}

.ql-snow .ql-tooltip input[type=text] {
    background-color: #2c2c2c;
    border-color: #444;
    color: #e0e0e0;
}

/* Footer */
.footer {
    background-color: #121212;
    border-top-color: #2a5792 !important;
    color: #909090;
}

.footer a {
    color: #2a5792;
}

/* Horizontal rules */
hr {
    border-top-color: #2a5792 !important;
}

/* Code blocks */
pre, code, kbd, samp {
    color: #e0e0e0;
    background-color: #2c2c2c;
}

blockquote {
    border-left-color: #2a5792;
    color: #909090;
}

/* Accordion */
.accordion-button {
    background-color: #1e3a5f;
    color: #e0e0e0;
}

.accordion-button:not(.collapsed) {
    background-color: #2a5792;
    color: #e0e0e0;
}

.accordion-body {
    background-color: #1e2124;
    color: #e0e0e0;
}

.accordion-item {
    background-color: #1e2124;
    border-color: #2a5792;
}