:root {
    --ui-bg: #f4f7fc;
    --ui-bg-deep: #edf2fb;
    --ui-surface: #ffffff;
    --ui-surface-soft: #f8faff;
    --ui-surface-contrast: #0f1b2d;
    --ui-text: #162338;
    --ui-text-muted: #63718a;
    --ui-border: #d8e1f0;
    --ui-border-rgb: 216, 225, 240;
    --ui-accent: #2d6cff;
    --ui-accent-soft: #e7efff;
    --ui-success: #18b47d;
    --ui-warning-500: #f4be36;
    --ui-warning-400: #ffd966;
    --ui-danger: #f05d6f;
    --ui-theme-rgb: 255, 255, 255;
    --ui-theme-alt-rgb: 15, 27, 45;

    --bs-body-bg: var(--ui-bg);
    --bs-body-color: var(--ui-text);
    --bs-border-color: var(--ui-border);
    --bs-secondary-color: var(--ui-text-muted);
    --bs-primary: var(--ui-accent);
    --bs-link-color: #255fe0;
    --bs-link-hover-color: #164ab8;
    --bs-success: var(--ui-success);
    --bs-danger: var(--ui-danger);
}

[data-bs-theme="dark"] {
    --ui-bg: #0c1424;
    --ui-bg-deep: #121c2f;
    --ui-surface: #172338;
    --ui-surface-soft: #1c2a42;
    --ui-surface-contrast: #eaf1ff;
    --ui-text: #e7efff;
    --ui-text-muted: #9aa8c5;
    --ui-border: #2c3b57;
    --ui-border-rgb: 44, 59, 87;
    --ui-accent: #7ea7ff;
    --ui-accent-soft: #1f355e;
    --ui-success: #53d6a4;
    --ui-warning-500: #e5b03b;
    --ui-warning-400: #f6d26a;
    --ui-danger: #ff8696;
    --ui-theme-rgb: 12, 20, 36;
    --ui-theme-alt-rgb: 234, 241, 255;

    --bs-body-bg: var(--ui-bg);
    --bs-body-color: var(--ui-text);
    --bs-border-color: var(--ui-border);
    --bs-secondary-color: var(--ui-text-muted);
    --bs-primary: var(--ui-accent);
    --bs-link-color: #a6c2ff;
    --bs-link-hover-color: #c6d8ff;
    --bs-success: var(--ui-success);
    --bs-danger: var(--ui-danger);
}

html,
body {
    background-color: var(--ui-bg) !important;
    color: var(--ui-text) !important;
}

body {
    background-image: radial-gradient(1200px 520px at -12% -12%, rgba(95, 149, 255, 0.16), transparent 58%), radial-gradient(900px 360px at 115% 2%, rgba(255, 223, 131, 0.12), transparent 56%), linear-gradient(180deg, var(--ui-bg-deep), var(--ui-bg) 38%, var(--ui-bg));
}

a,
.btn.btn-link,
.btn-link {
    color: var(--bs-link-color);
}

a:hover,
a:focus,
.btn.btn-link:hover,
.btn-link:hover {
    color: var(--bs-link-hover-color);
}

.text-theme {
    color: var(--ui-text) !important;
}

.text-theme-alt {
    color: var(--ui-surface-contrast) !important;
}

.text-muted,
.text-silver {
    color: var(--ui-text-muted) !important;
}

.text-orangered {
    color: #ff8d3b !important;
}

.bg-theme {
    background-color: rgba(var(--ui-theme-rgb), 1) !important;
}

.bg-theme-95 {
    background-color: rgba(var(--ui-theme-rgb), 0.95) !important;
}

.bg-theme-90 {
    background-color: rgba(var(--ui-theme-rgb), 0.9) !important;
}

.bg-theme-85 {
    background-color: rgba(var(--ui-theme-rgb), 0.85) !important;
}

.bg-theme-80 {
    background-color: rgba(var(--ui-theme-rgb), 0.8) !important;
}

.bg-theme-75 {
    background-color: rgba(var(--ui-theme-rgb), 0.75) !important;
}

.bg-theme-70 {
    background-color: rgba(var(--ui-theme-rgb), 0.7) !important;
}

.bg-theme-65 {
    background-color: rgba(var(--ui-theme-rgb), 0.65) !important;
}

.bg-theme-60 {
    background-color: rgba(var(--ui-theme-rgb), 0.6) !important;
}

.bg-theme-55 {
    background-color: rgba(var(--ui-theme-rgb), 0.55) !important;
}

.bg-theme-50 {
    background-color: rgba(var(--ui-theme-rgb), 0.5) !important;
}

.bg-theme-45 {
    background-color: rgba(var(--ui-theme-rgb), 0.45) !important;
}

.bg-theme-40 {
    background-color: rgba(var(--ui-theme-rgb), 0.4) !important;
}

.bg-theme-35 {
    background-color: rgba(var(--ui-theme-rgb), 0.35) !important;
}

.bg-theme-30 {
    background-color: rgba(var(--ui-theme-rgb), 0.3) !important;
}

.bg-theme-25 {
    background-color: rgba(var(--ui-theme-rgb), 0.25) !important;
}

.bg-theme-20 {
    background-color: rgba(var(--ui-theme-rgb), 0.2) !important;
}

.bg-theme-15 {
    background-color: rgba(var(--ui-theme-rgb), 0.15) !important;
}

.bg-theme-10 {
    background-color: rgba(var(--ui-theme-rgb), 0.1) !important;
}

.bg-theme-alt {
    background-color: rgba(var(--ui-theme-alt-rgb), 1) !important;
}

.bg-theme-alt-95 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.95) !important;
}

.bg-theme-alt-90 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.9) !important;
}

.bg-theme-alt-85 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.85) !important;
}

.bg-theme-alt-80 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.8) !important;
}

.bg-theme-alt-75 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.75) !important;
}

.bg-theme-alt-70 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.7) !important;
}

.bg-theme-alt-65 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.65) !important;
}

.bg-theme-alt-60 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.6) !important;
}

.bg-theme-alt-55 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.55) !important;
}

.bg-theme-alt-50 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.5) !important;
}

.bg-theme-alt-45 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.45) !important;
}

.bg-theme-alt-40 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.4) !important;
}

.bg-theme-alt-35 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.35) !important;
}

.bg-theme-alt-30 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.3) !important;
}

.bg-theme-alt-25 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.25) !important;
}

.bg-theme-alt-20 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.2) !important;
}

.bg-theme-alt-15 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.15) !important;
}

.bg-theme-alt-10 {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.1) !important;
}

.border-theme,
.border-theme {
    border-color: rgba(var(--ui-theme-alt-rgb), var(--bs-border-opacity, 1)) !important;
}

.border-theme-alt {
    border-color: rgba(var(--ui-theme-rgb), var(--bs-border-opacity, 1)) !important;
}

hr,
.dropdown-divider {
    border-color: var(--ui-border) !important;
}

.btn-default,
.btn-outline-default,
.btn.btn-default.nav-link,
.btn-theme-alt {
    background-color: var(--ui-surface-soft) !important;
    border-color: var(--ui-border) !important;
    color: var(--ui-text) !important;
}

.btn-default:hover,
.btn-outline-default:hover,
.btn-default:focus,
.btn-outline-default:focus,
.btn-theme-alt:hover,
.btn-theme-alt:focus,
.btn-theme-alt:active,
.btn-default.active {
    background-color: var(--ui-surface) !important;
    border-color: var(--ui-accent) !important;
    color: var(--ui-text) !important;
}

.btn-theme {
    background-color: var(--ui-surface-contrast) !important;
    border-color: var(--ui-surface-contrast) !important;
    color: rgba(var(--ui-theme-rgb), 1) !important;
}

.btn-theme:hover,
.btn-theme:focus,
.btn-theme:focus-visible {
    background-color: rgba(var(--ui-theme-alt-rgb), 0.88) !important;
    border-color: rgba(var(--ui-theme-alt-rgb), 0.88) !important;
    color: rgba(var(--ui-theme-rgb), 1) !important;
}

.btn-theme:active,
.btn-theme.active,
.btn-check:checked + .btn-theme,
.btn-check:active + .btn-theme,
.btn-theme.show,
.show > .btn-theme.dropdown-toggle {
    background-color: rgba(var(--ui-theme-alt-rgb), 1) !important;
    border-color: rgba(var(--ui-theme-alt-rgb), 1) !important;
    color: rgba(var(--ui-theme-rgb), 1) !important;
}

.btn-theme:focus,
.btn-theme:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(var(--ui-theme-alt-rgb), 0.24) !important;
}

.btn-theme:disabled,
.btn-theme.disabled {
    background-color: var(--ui-surface-contrast) !important;
    border-color: var(--ui-surface-contrast) !important;
    color: rgba(var(--ui-theme-rgb), 1) !important;
    opacity: 0.65;
}

.btn.btn-warning.btn-gradient,
.btn-warning.btn-gradient,
.btn-warning {
    background-image: linear-gradient(145deg, #ffe066, var(--ui-warning-500)) !important;
    border-color: rgba(205, 152, 30, 0.75) !important;
    color: #2e2303 !important;
}

.btn.btn-success.btn-gradient,
.btn-success.btn-gradient {
    background-image: linear-gradient(145deg, #4fffa8, #0d8a5e) !important;
    border-color: rgba(16, 140, 95, 0.75) !important;
    color: #fff !important;
}

.btn.btn-danger.btn-gradient,
.btn-danger.btn-gradient {
    background-image: linear-gradient(145deg, #ff8fa0, #c0152e) !important;
    border-color: rgba(200, 40, 60, 0.75) !important;
    color: #fff !important;
}

.btn.btn-primary.btn-gradient,
.btn-primary.btn-gradient {
    background-image: linear-gradient(145deg, #7eb3ff, #1040cc) !important;
    border-color: rgba(30, 80, 220, 0.75) !important;
    color: #fff !important;
}

.btn.btn-info.btn-gradient,
.btn-info.btn-gradient {
    background-image: linear-gradient(145deg, #8ae8ff, #0e7fa8) !important;
    border-color: rgba(20, 140, 185, 0.75) !important;
    color: #fff !important;
}

.btn.btn-purple.btn-gradient,
.btn-purple.btn-gradient {
    background-image: linear-gradient(145deg, #d49cff, #6010c8) !important;
    border-color: rgba(115, 40, 210, 0.75) !important;
    color: #fff !important;
}

.btn.btn-gradient {
    --ui-btn-glow-rgb: 244, 190, 54;
    --ui-btn-glow-disabled-rgb: 166, 153, 128;
}

.btn.btn-primary.btn-gradient {
    --ui-btn-glow-rgb: 45, 108, 255;
    --ui-btn-glow-disabled-rgb: 134, 146, 171;
}

.btn.btn-info.btn-gradient {
    --ui-btn-glow-rgb: 74, 188, 255;
    --ui-btn-glow-disabled-rgb: 131, 157, 168;
}

.btn.btn-success.btn-gradient {
    --ui-btn-glow-rgb: 24, 180, 125;
    --ui-btn-glow-disabled-rgb: 125, 156, 143;
}

.btn.btn-danger.btn-gradient {
    --ui-btn-glow-rgb: 240, 93, 111;
    --ui-btn-glow-disabled-rgb: 161, 131, 138;
}

.btn.btn-warning.btn-gradient {
    --ui-btn-glow-rgb: 244, 190, 54;
    --ui-btn-glow-disabled-rgb: 165, 154, 124;
}

.btn.btn-default.btn-gradient {
    --ui-btn-glow-rgb: 147, 160, 183;
    --ui-btn-glow-disabled-rgb: 137, 143, 154;
}

.btn.btn-purple.btn-gradient {
    --ui-btn-glow-rgb: 167, 111, 255;
    --ui-btn-glow-disabled-rgb: 145, 132, 168;
}

.btn.btn-gradient {
    transition:
        transform 0.15s ease,
        box-shadow 0.15s ease !important;
}

.btn.btn-gradient:hover:not(:disabled):not(.disabled) {
    transform: scale(1.04);
}

.btn.btn-gradient:active:not(:disabled):not(.disabled) {
    transform: scale(0.96);
}

.btn.btn-gradient.shadow-20 {
    box-shadow:
        0 0 0.65rem rgba(var(--ui-btn-glow-rgb), 0.24),
        0 0 1.15rem rgba(var(--ui-btn-glow-rgb), 0.16) !important;
}

.btn.btn-gradient.shadow-50 {
    box-shadow:
        0 0 0.95rem rgba(var(--ui-btn-glow-rgb), 0.36),
        0 0 1.85rem rgba(var(--ui-btn-glow-rgb), 0.24) !important;
}

.btn.btn-gradient.shadow-20:disabled,
.btn.btn-gradient.shadow-20.disabled,
.btn.btn-gradient.shadow-20[disabled] {
    box-shadow:
        0 0 0.65rem rgba(var(--ui-btn-glow-disabled-rgb), 0.24),
        0 0 1.15rem rgba(var(--ui-btn-glow-disabled-rgb), 0.16) !important;
}

.btn.btn-gradient.shadow-50:disabled,
.btn.btn-gradient.shadow-50.disabled,
.btn.btn-gradient.shadow-50[disabled] {
    box-shadow:
        0 0 0.95rem rgba(var(--ui-btn-glow-disabled-rgb), 0.3),
        0 0 1.85rem rgba(var(--ui-btn-glow-disabled-rgb), 0.2) !important;
}

.btn-outline-success {
    color: var(--ui-success) !important;
    border-color: rgba(24, 180, 125, 0.58) !important;
}

.btn-outline-success:hover,
.btn-outline-success:focus {
    color: var(--ui-success) !important;
    border-color: var(--ui-success) !important;
    background-color: rgba(24, 180, 125, 0.12) !important;
}

.btn-success {
    background-color: var(--ui-success) !important;
    border-color: var(--ui-success) !important;
}

.btn-danger {
    background-color: var(--ui-danger) !important;
    border-color: var(--ui-danger) !important;
}

.form-control,
.form-select,
textarea.form-control,
input.form-control {
    background-color: var(--ui-surface) !important;
    border-color: var(--ui-border) !important;
    color: var(--ui-text) !important;
}

.form-control::placeholder,
textarea.form-control::placeholder,
input.form-control::placeholder {
    color: var(--ui-text-muted) !important;
}

.form-floating > .form-control::placeholder,
.form-floating > .form-control-plaintext::placeholder,
.form-floating > textarea.form-control::placeholder {
    color: transparent !important;
    opacity: 0 !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
input.form-control:focus {
    border-color: var(--ui-accent) !important;
    box-shadow: 0 0 0 0.2rem rgba(45, 108, 255, 0.15) !important;
}

.dropdown-item {
    color: var(--ui-text) !important;
}

.dropdown-item:hover,
.dropdown-item:focus,
.dropdown-item.active {
    color: var(--ui-text) !important;
    background-color: rgba(66, 118, 230, 0.14) !important;
}

.badge.bg-success {
    background-color: rgba(24, 180, 125, 0.2) !important;
    color: var(--ui-success) !important;
    border-color: rgba(24, 180, 125, 0.35) !important;
}

.badge.bg-danger {
    background-color: rgba(240, 93, 111, 0.2) !important;
    color: var(--ui-danger) !important;
}

.bg-transparent,
.bg-none,
.bg-transparent.bg-blur,
.bg-none.bg-blur,
.btn.bg-transparent,
.btn.bg-none,
.btn.bg-transparent:hover,
.btn.bg-none:hover,
.btn.bg-transparent:focus,
.btn.bg-none:focus,
.btn.bg-transparent:active,
.btn.bg-none:active,
.form-control.bg-transparent,
.form-control.bg-none,
.form-select.bg-transparent,
.form-select.bg-none,
textarea.form-control.bg-transparent,
textarea.form-control.bg-none,
input.form-control.bg-transparent,
input.form-control.bg-none,
.dropdown-item.bg-transparent,
.dropdown-item.bg-none,
.dropdown-item.bg-transparent:hover,
.dropdown-item.bg-none:hover,
.dropdown-item.bg-transparent:focus,
.dropdown-item.bg-none:focus,
.card.bg-transparent,
.card.bg-none,
.modal-content.bg-transparent,
.modal-content.bg-none,
.dropdown-menu.bg-transparent,
.dropdown-menu.bg-none {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

.border-0,
.border-0:hover,
.border-0:focus,
.border-0:focus-visible,
.border-0:active,
.btn.border-0,
.btn.border-0:hover,
.btn.border-0:focus,
.btn.border-0:focus-visible,
.btn.border-0:active,
.btn.border-0.active,
.form-control.border-0,
.form-control.border-0:focus,
.form-control.border-0:focus-visible,
.form-control.border-0:active,
.form-select.border-0,
.form-select.border-0:focus,
.form-select.border-0:focus-visible,
.form-select.border-0:active,
.card.border-0,
.modal-content.border-0,
.dropdown-menu.border-0,
.badge.border-0,
.dropdown-item.border-0,
.dropdown-item.border-0:hover,
.dropdown-item.border-0:focus,
.dropdown-item.border-0:focus-visible,
.dropdown-item.border-0:active {
    border: 0 !important;
    border-width: 0 !important;
    border-color: transparent !important;
    outline: 0 !important;
    box-shadow: none !important;
}
