:root,
[data-bs-theme="light"] {
    color-scheme: light;
    --cashly-bg: #f2f7ff;
    --cashly-bg-rgb: 242, 247, 255;
    --cashly-surface: #ffffff;
    --cashly-surface-soft: #f8f9fa;
    --cashly-surface-hover: #e9ecef;
    --cashly-border: #dee2e6;
    --cashly-field-border: #dce7f1;
    --cashly-focus-border: #a1afdf;
    --cashly-text: #607080;
    --cashly-text-rgb: 96, 112, 128;
    --cashly-heading: #25396f;
    --cashly-muted: rgba(96, 112, 128, 0.75);
    --cashly-placeholder: #adb5bd;
    --cashly-disabled-bg: #e9ecef;
    --cashly-addon-bg: #e6eef5;
    --cashly-addon-text: #526e8a;
    --cashly-link-rgb: 67, 94, 190;
    --cashly-link-hover-rgb: 54, 75, 152;
    --cashly-dropdown-hover: #f8f9fa;
    --cashly-divider: #bdc7d1;
    --cashly-shadow: rgba(16, 24, 40, 0.08);
    --cashly-on-primary: #ffffff;
}

[data-bs-theme="dark"] {
    color-scheme: dark;
    --cashly-bg: #1e1e2d;
    --cashly-bg-rgb: 30, 30, 45;
    --cashly-surface: #2a2a3c;
    --cashly-surface-soft: #353549;
    --cashly-surface-hover: #414159;
    --cashly-border: #3a3a4f;
    --cashly-field-border: #44445c;
    --cashly-focus-border: #6f82d0;
    --cashly-text: #d0d4e4;
    --cashly-text-rgb: 208, 212, 228;
    --cashly-heading: #f1f3fb;
    --cashly-muted: rgba(208, 212, 228, 0.7);
    --cashly-placeholder: #7c8299;
    --cashly-disabled-bg: #2f2f44;
    --cashly-addon-bg: #353549;
    --cashly-addon-text: #c7cbe0;
    --cashly-link-rgb: 142, 158, 216;
    --cashly-link-hover-rgb: 165, 177, 224;
    --cashly-dropdown-hover: #353549;
    --cashly-divider: #44445c;
    --cashly-shadow: rgba(0, 0, 0, 0.4);
    --cashly-on-primary: #ffffff;
}

:root,
[data-bs-theme] {
    --bs-body-bg: var(--cashly-bg);
    --bs-body-bg-rgb: var(--cashly-bg-rgb);
    --bs-body-color: var(--cashly-text);
    --bs-body-color-rgb: var(--cashly-text-rgb);
    --bs-heading-color: var(--cashly-heading);
    --bs-secondary-color: var(--cashly-muted);
    --bs-secondary-bg: var(--cashly-surface-hover);
    --bs-tertiary-bg: var(--cashly-surface-soft);
    --bs-border-color: var(--cashly-border);
    --bs-link-color: rgb(var(--cashly-link-rgb));
    --bs-link-color-rgb: var(--cashly-link-rgb);
    --bs-link-hover-color: rgb(var(--cashly-link-hover-rgb));
    --bs-link-hover-color-rgb: var(--cashly-link-hover-rgb);
}

.card {
    --bs-card-bg: var(--cashly-surface);
    --bs-card-cap-bg: var(--cashly-surface);
    --bs-card-border-color: var(--cashly-border);
}

.modal {
    --bs-modal-bg: var(--cashly-surface);
    --bs-modal-border-color: var(--cashly-border);
}

.dropdown-menu {
    --bs-dropdown-bg: var(--cashly-surface);
    --bs-dropdown-color: var(--cashly-text);
    --bs-dropdown-border-color: var(--cashly-border);
    --bs-dropdown-link-color: var(--cashly-text);
    --bs-dropdown-link-hover-color: var(--cashly-heading);
    --bs-dropdown-link-hover-bg: var(--cashly-dropdown-hover);
    --bs-dropdown-divider-bg: var(--cashly-divider);
}

.form-control,
.form-select {
    color: var(--cashly-text);
    background-color: var(--cashly-surface);
    border-color: var(--cashly-field-border);
}

.form-control:focus,
.form-select:focus {
    color: var(--cashly-text);
    background-color: var(--cashly-surface);
    border-color: var(--cashly-focus-border);
}

.form-control::placeholder {
    color: var(--cashly-placeholder);
}

.form-control:disabled,
.form-select:disabled {
    background-color: var(--cashly-disabled-bg);
}

.form-check-input {
    --bs-form-check-bg: var(--cashly-surface);
    border-color: var(--cashly-field-border);
}

.input-group-text {
    color: var(--cashly-addon-text);
    background-color: var(--cashly-addon-bg);
    border-color: var(--cashly-field-border);
}

.form-text {
    color: var(--cashly-muted);
}

.btn-soft {
    --bs-btn-color: var(--cashly-text);
    --bs-btn-bg: var(--cashly-surface-soft);
    --bs-btn-border-color: var(--cashly-border);
    --bs-btn-hover-color: var(--cashly-heading);
    --bs-btn-hover-bg: var(--cashly-surface-hover);
    --bs-btn-hover-border-color: var(--cashly-border);
    --bs-btn-active-color: var(--cashly-heading);
    --bs-btn-active-bg: var(--cashly-surface-hover);
    --bs-btn-active-border-color: var(--cashly-border);
    --bs-btn-disabled-color: var(--cashly-muted);
    --bs-btn-disabled-bg: var(--cashly-surface-soft);
    --bs-btn-disabled-border-color: var(--cashly-border);
}

.swal2-popup {
    background: var(--cashly-surface);
    color: var(--cashly-text);
}

.swal2-title,
.swal2-html-container {
    color: var(--cashly-text);
}
