:root,
[data-bs-theme=dark] {
    --site-ground: #0e0e1a;
    --site-ground-rgb: 14, 14, 26;
    --site-night-rgb: 5, 5, 12;
    --site-surface: #15152a;
    --site-menu: #1d1d36;
    --site-raised: #1d1d36;
    --site-dialog: #15152a;
    --site-field: #0e0e1a;
    --site-line: #3a3566;
    --site-field-line: #6b6699;

    --site-text: #ececf4;
    --site-text-soft: #bdbcd2;
    --site-text-muted: #9391ad;
    --site-ink: #ffffff;
    --site-ink-rgb: 255, 255, 255;
    --site-on-accent: #ffffff;
    --site-on-stage: #ffffff;
    --site-on-stage-rgb: 255, 255, 255;
    --site-shade: #000000;
    --site-shade-rgb: 0, 0, 0;
    --site-mist: #a1a1c4;
    --site-mist-rgb: 161, 161, 196;
    --site-on-avatar: #0e0e1a;
    --site-avatar-1: #7c4dff;
    --site-avatar-2: #26a69a;
    --site-avatar-3: #ef5350;
    --site-avatar-4: #4fc3f7;
    --site-avatar-5: #ffa726;
    --site-avatar-6: #ec407a;
    --site-avatar-7: #66bb6a;
    --site-avatar-8: #5c6bc0;

    --site-accent: #a855f7;
    --site-accent-rgb: 168, 85, 247;
    --site-accent-text: #c084fc;
    --site-accent-text-rgb: 192, 132, 252;
    --site-accent-strong: #9333ea;
    --site-accent-strong-rgb: 147, 51, 234;
    --site-accent-deep: #7c3aed;
    --site-accent-deep-rgb: 124, 58, 237;
    --site-accent-light: #c084fc;
    --site-accent-pale: #d8b4fe;

    --site-danger: #f1416c;
    --site-danger-rgb: 241, 65, 108;
    --site-danger-text: #ff6b8b;
    --site-danger-text-rgb: 255, 107, 139;
    --site-danger-strong: #be123c;
    --site-danger-hover: #d9365f;
    --site-danger-light: #f87194;
    --site-danger-pale: #ff8fab;
    --site-warning: #ff9f43;
    --site-warning-rgb: 255, 159, 67;
    --site-success: #50cd89;
    --site-success-rgb: 80, 205, 137;
    --site-success-strong: #16794a;
    --site-warning-strong: #9a4d00;
    --site-info: #4fc3f7;
    --site-info-rgb: 79, 195, 247;
    --site-info-strong: #0b6694;
    --site-gold: #f6c343;
    --site-gold-rgb: 246, 195, 67;

    --site-progress: #7239ea;
    --site-progress-glow: #2299dd;
    --site-screen: #000000;
    --site-screen-rgb: 0, 0, 0;
    --site-on-screen: #ffffff;
    --site-on-screen-rgb: 255, 255, 255;
    --site-live: #ff6b8b;
    --site-live-rgb: 255, 107, 139;
    --site-stage-top: #150b2b;
    --site-stage-middle: #0b0818;
    --site-stage-bottom: #050409;

    --site-sidebar: #0b0b17;
    --site-sidebar-raised: #1d1d36;
    --site-sidebar-text: #d4d3e4;
    --site-sidebar-muted: #a3a1bd;
    --site-sidebar-muted-rgb: 163, 161, 189;
    --site-tint: 0.14;
}

[data-bs-theme=light] {
    --site-ground: #f6f5fa;
    --site-ground-rgb: 246, 245, 250;
    --site-night-rgb: 22, 20, 31;
    --site-surface: #ffffff;
    --site-menu: #ffffff;
    --site-raised: #efedf6;
    --site-dialog: #ffffff;
    --site-field: #ffffff;
    --site-line: #dcd8ea;
    --site-field-line: #8a85a6;

    --site-text: #16141f;
    --site-text-soft: #3f3b52;
    --site-text-muted: #615c74;
    --site-ink: #16141f;
    --site-ink-rgb: 22, 20, 31;
    --site-shade: #8c82b4;
    --site-shade-rgb: 140, 130, 180;

    --site-accent: #7c3aed;
    --site-accent-rgb: 124, 58, 237;
    --site-accent-text: #6d28d9;
    --site-accent-text-rgb: 109, 40, 217;
    --site-accent-strong: #7c3aed;
    --site-accent-strong-rgb: 124, 58, 237;
    --site-accent-deep: #6d28d9;
    --site-accent-deep-rgb: 109, 40, 217;
    --site-accent-light: #6d28d9;
    --site-accent-pale: #5b21b6;

    --site-danger: #c2183f;
    --site-danger-rgb: 194, 24, 63;
    --site-danger-text: #c2183f;
    --site-danger-text-rgb: 194, 24, 63;
    --site-danger-strong: #c2183f;
    --site-danger-hover: #a3122f;
    --site-danger-light: #c2183f;
    --site-danger-pale: #a3122f;
    --site-warning: #9a4d00;
    --site-warning-rgb: 154, 77, 0;
    --site-success: #136c41;
    --site-success-rgb: 19, 108, 65;
    --site-info: #0b6694;
    --site-info-rgb: 11, 102, 148;
    --site-gold: #8a5a00;
    --site-gold-rgb: 138, 90, 0;

    --site-on-stage: #16141f;
    --site-on-stage-rgb: 22, 20, 31;
    --site-mist: #615c74;
    --site-mist-rgb: 97, 92, 116;
    --site-stage-top: #f3eefe;
    --site-stage-middle: #ece8f7;
    --site-stage-bottom: #e3def2;
    --site-tint: 0.08;
}

[data-site-palette=ocean][data-bs-theme=dark],
[data-site-palette=ocean] [data-bs-theme=dark] {
    --site-accent: #22d3ee;
    --site-accent-rgb: 34, 211, 238;
    --site-accent-text: #67e8f9;
    --site-accent-text-rgb: 103, 232, 249;
    --site-accent-strong: #0e7490;
    --site-accent-strong-rgb: 14, 116, 144;
    --site-accent-deep: #155e75;
    --site-accent-deep-rgb: 21, 94, 117;
    --site-accent-light: #67e8f9;
    --site-accent-pale: #a5f3fc;
}

[data-site-palette=ocean][data-bs-theme=light],
[data-site-palette=ocean] [data-bs-theme=light] {
    --site-accent: #0e7490;
    --site-accent-rgb: 14, 116, 144;
    --site-accent-text: #155e75;
    --site-accent-text-rgb: 21, 94, 117;
    --site-accent-strong: #0e7490;
    --site-accent-strong-rgb: 14, 116, 144;
    --site-accent-deep: #155e75;
    --site-accent-deep-rgb: 21, 94, 117;
    --site-accent-light: #155e75;
    --site-accent-pale: #164e63;
}

[data-bs-theme] {
    --bs-body-bg: var(--site-ground);
    --bs-body-bg-rgb: var(--site-ground-rgb);
    --bs-body-color: var(--site-text);
    --bs-heading-color: var(--site-text);
    --bs-secondary-bg: var(--site-surface);
    --bs-tertiary-bg: var(--site-menu);
    --bs-border-color: var(--site-line);
    --bs-text-muted: var(--site-text-muted);
    --bs-gray-600: var(--site-text-muted);
    --bs-gray-700: var(--site-text-soft);
    --bs-gray-800: var(--site-text);
    --bs-gray-900: var(--site-text);
    --bs-gray-500: var(--site-text-muted);
    --bs-text-gray-500: var(--site-text-muted);
    --bs-text-gray-600: var(--site-text-muted);
    --bs-text-gray-700: var(--site-text-soft);
    --bs-primary: var(--site-accent-strong);
    --bs-primary-rgb: var(--site-accent-text-rgb);
    --bs-primary-active: var(--site-accent-deep);
    --bs-primary-light: rgba(var(--site-accent-rgb), var(--site-tint));
    --bs-primary-inverse: var(--site-on-accent);
    --bs-text-primary: var(--site-accent-text);
    --bs-success: var(--site-success-strong);
    --bs-success-rgb: var(--site-success-rgb);
    --bs-success-active: var(--site-success-strong);
    --bs-success-light: rgba(var(--site-success-rgb), var(--site-tint));
    --bs-success-inverse: var(--site-on-accent);
    --bs-text-success: var(--site-success);
    --bs-info: var(--site-info-strong);
    --bs-info-rgb: var(--site-info-rgb);
    --bs-info-active: var(--site-info-strong);
    --bs-info-light: rgba(var(--site-info-rgb), var(--site-tint));
    --bs-info-inverse: var(--site-on-accent);
    --bs-text-info: var(--site-info);
    --bs-warning: var(--site-warning-strong);
    --bs-warning-rgb: var(--site-warning-rgb);
    --bs-warning-active: var(--site-warning-strong);
    --bs-warning-light: rgba(var(--site-warning-rgb), var(--site-tint));
    --bs-warning-inverse: var(--site-on-accent);
    --bs-text-warning: var(--site-warning);
    --bs-danger: var(--site-danger-strong);
    --bs-danger-rgb: var(--site-danger-text-rgb);
    --bs-danger-active: var(--site-danger-strong);
    --bs-danger-light: rgba(var(--site-danger-rgb), var(--site-tint));
    --bs-danger-inverse: var(--site-on-accent);
    --bs-text-danger: var(--site-danger-text);
    --bs-light: var(--site-raised);
    --bs-light-inverse: var(--site-text-soft);
    --bs-link-color-rgb: var(--site-accent-text-rgb);
    --bs-link-hover-color-rgb: var(--site-accent-text-rgb);
    --bs-code-color: var(--site-accent-text);
    --bs-primary-text-emphasis: var(--site-accent-text);
    --bs-success-text-emphasis: var(--site-success);
    --bs-info-text-emphasis: var(--site-info);
    --bs-warning-text-emphasis: var(--site-warning);
    --bs-danger-text-emphasis: var(--site-danger-text);
    --bs-primary-bg-subtle: rgba(var(--site-accent-rgb), var(--site-tint));
    --bs-success-bg-subtle: rgba(var(--site-success-rgb), var(--site-tint));
    --bs-info-bg-subtle: rgba(var(--site-info-rgb), var(--site-tint));
    --bs-warning-bg-subtle: rgba(var(--site-warning-rgb), var(--site-tint));
    --bs-danger-bg-subtle: rgba(var(--site-danger-rgb), var(--site-tint));
    --bs-link-color: var(--site-accent-text);
    --bs-link-hover-color: var(--site-accent-strong);
    --bs-app-header-base-bg-color: var(--site-ground);
    --bs-dropdown-bg: var(--site-menu);
    --bs-dropdown-border-color: rgba(var(--site-accent-rgb), 0.25);
    --bs-dropdown-border-width: 0.5px;
    --bs-dropdown-box-shadow: 0 8px 32px rgba(var(--site-shade-rgb), 0.5);
    --bs-dropdown-link-hover-bg: rgba(var(--site-accent-rgb), 0.1);
    --bs-dropdown-link-hover-color: var(--site-text);
    --bs-dropdown-link-active-bg: rgba(var(--site-accent-rgb), 0.2);
    --bs-component-hover-bg: rgba(var(--site-accent-rgb), 0.1);
    --bs-component-hover-color: var(--site-accent-text);
}

.btn.btn-light-primary,
.btn.btn-light-primary i,
.btn.btn-outline.btn-outline-primary,
.badge-light-primary,
.alert-primary {
    --btn-ring-rgb: var(--bs-primary-rgb);
    color: rgb(var(--bs-primary-rgb));
}

.btn.btn-light-success,
.btn.btn-light-success i,
.btn.btn-outline.btn-outline-success,
.badge-light-success,
.alert-success {
    --btn-ring-rgb: var(--bs-success-rgb);
    color: rgb(var(--bs-success-rgb));
}

.btn.btn-light-info,
.btn.btn-light-info i,
.btn.btn-outline.btn-outline-info,
.badge-light-info,
.alert-info {
    --btn-ring-rgb: var(--bs-info-rgb);
    color: rgb(var(--bs-info-rgb));
}

.btn.btn-light-warning,
.btn.btn-light-warning i,
.btn.btn-outline.btn-outline-warning,
.badge-light-warning,
.alert-warning {
    --btn-ring-rgb: var(--bs-warning-rgb);
    color: rgb(var(--bs-warning-rgb));
}

.btn.btn-light-danger,
.btn.btn-light-danger i,
.btn.btn-outline.btn-outline-danger,
.badge-light-danger,
.alert-danger {
    --btn-ring-rgb: var(--bs-danger-rgb);
    color: rgb(var(--bs-danger-rgb));
}

.btn:is(
    .btn-custom,
    .btn-light-primary,
    .btn-light-success,
    .btn-light-info,
    .btn-light-warning,
    .btn-light-danger
):not(.btn-shadow):not(.shadow):not(.shadow-sm):not(.shadow-lg):not(.shadow-xs) {
    box-shadow: inset 0 0 0 1px rgba(var(--btn-ring-rgb), 0.8);
}

[data-bs-theme] .form-control,
[data-bs-theme] .form-select,
[data-bs-theme] .form-check-input:not(:checked) {
    border-color: var(--site-field-line);
    background-color: var(--site-field);
    box-shadow: inset 0 0 0 1px var(--site-field-line);
}
