:root, [data-bs-theme="dark"] {
    --dm-bg: #04112a;
    --dm-bg-elevated: #16305f;
    --dm-bg-elevated-2: #15223c;
    --dm-border: #2e4676;

    --bs-body-bg: var(--dm-bg);
    --bs-body-color: #e7ecf5;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: #93a2bf;
    --bs-secondary-bg: var(--dm-bg-elevated);
    --bs-tertiary-bg: var(--dm-bg-elevated-2);
    --bs-border-color: var(--dm-border);
    --bs-border-color-translucent: rgba(255, 255, 255, .1);

    --bs-primary: #3b6df0;
    --bs-primary-rgb: 59,109,240;
    --bs-link-color: #3b6df0;
    --bs-link-color-rgb: 59,109,240;
    --bs-link-hover-color: #5882F2;
    --bs-link-hover-color-rgb: 88,130,242;

    --bs-success: #22c55e;
    --bs-success-rgb: 34,197,94;
    --bs-danger: #ef4444;
    --bs-danger-rgb: 239,68,68;
    --bs-warning: #f2a93c;
    --bs-warning-rgb: 242,169,60;
    --bs-info: #38bdf8;
    --bs-info-rgb: 56,189,248;
    --bs-secondary: #64748b;
    --bs-secondary-rgb: 100,116,139;
}

body {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.card {
    --bs-card-bg: var(--dm-bg-elevated);
    --bs-card-cap-bg: rgba(255, 255, 255, .03);
    --bs-card-border-color: var(--dm-border);
}

.dropdown-menu {
    --bs-dropdown-bg: var(--dm-bg-elevated);
    --bs-dropdown-border-color: var(--dm-border);
    --bs-dropdown-link-hover-bg: var(--dm-bg-elevated-2);
    --bs-dropdown-link-hover-color: var(--bs-body-color);
}

.modal-content {
    --bs-modal-bg: var(--dm-bg-elevated);
    --bs-modal-border-color: var(--dm-border);
}

.app-navbar {
    background-color: #0d1526 !important;
    border-bottom: 1px solid var(--dm-border);
}

.app-navbar .navbar-brand {
    color: #ffffff;
    font-weight: 700;
}

.btn-primary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #3b6df0;
    --bs-btn-border-color: #3b6df0;
    --bs-btn-hover-bg: #335FD3;
    --bs-btn-hover-border-color: #335FD3;
    --bs-btn-active-bg: #2E55BB;
    --bs-btn-active-border-color: #2E55BB;
    --bs-btn-disabled-bg: #3b6df0;
    --bs-btn-disabled-border-color: #3b6df0;
}
.btn-success {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #22c55e;
    --bs-btn-border-color: #22c55e;
    --bs-btn-hover-bg: #1DAD52;
    --bs-btn-hover-border-color: #1DAD52;
    --bs-btn-active-bg: #1A9949;
    --bs-btn-active-border-color: #1A9949;
    --bs-btn-disabled-bg: #22c55e;
    --bs-btn-disabled-border-color: #22c55e;
}
.btn-danger {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #ef4444;
    --bs-btn-border-color: #ef4444;
    --bs-btn-hover-bg: #D23B3B;
    --bs-btn-hover-border-color: #D23B3B;
    --bs-btn-active-bg: #BA3535;
    --bs-btn-active-border-color: #BA3535;
    --bs-btn-disabled-bg: #ef4444;
    --bs-btn-disabled-border-color: #ef4444;
}
.btn-warning {
    --bs-btn-color: #1a1300;
    --bs-btn-bg: #f2a93c;
    --bs-btn-border-color: #f2a93c;
    --bs-btn-hover-bg: #D49434;
    --bs-btn-hover-border-color: #D49434;
    --bs-btn-active-bg: #BC832E;
    --bs-btn-active-border-color: #BC832E;
    --bs-btn-disabled-bg: #f2a93c;
    --bs-btn-disabled-border-color: #f2a93c;
}
.btn-info {
    --bs-btn-color: #001a26;
    --bs-btn-bg: #38bdf8;
    --bs-btn-border-color: #38bdf8;
    --bs-btn-hover-bg: #31A6DA;
    --bs-btn-hover-border-color: #31A6DA;
    --bs-btn-active-bg: #2B93C1;
    --bs-btn-active-border-color: #2B93C1;
    --bs-btn-disabled-bg: #38bdf8;
    --bs-btn-disabled-border-color: #38bdf8;
}
.btn-secondary {
    --bs-btn-color: #ffffff;
    --bs-btn-bg: #64748b;
    --bs-btn-border-color: #64748b;
    --bs-btn-hover-bg: #58667A;
    --bs-btn-hover-border-color: #58667A;
    --bs-btn-active-bg: #4E5A6C;
    --bs-btn-active-border-color: #4E5A6C;
    --bs-btn-disabled-bg: #64748b;
    --bs-btn-disabled-border-color: #64748b;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus, .form-select:focus {
    box-shadow: 0 0 0 .1rem var(--dm-bg-elevated), 0 0 0 .25rem #3b6df0;
}

.text-dark {
    color: var(--bs-body-color) !important;
}

.bg-light {
    background-color: var(--dm-bg-elevated-2) !important;
    color: var(--bs-body-color);
}

.table-light,
.table-light > th,
.table-light > td {
    --bs-table-bg: var(--dm-bg-elevated-2) !important;
    --bs-table-color: var(--bs-body-color) !important;
    --bs-table-border-color: var(--dm-border) !important;
    background-color: var(--dm-bg-elevated-2) !important;
    color: var(--bs-body-color) !important;
}