:root,
[data-bs-theme="light"] {
    --bs-primary: #228B22;
    --bs-primary-rgb: 34, 139, 34;
    --bs-primary-text-emphasis: #0e380e;
    --bs-primary-bg-subtle: #d3ebd3;
    --bs-primary-border-subtle: #a7d7a7;

    --bs-secondary: #C2B280;
    --bs-secondary-rgb: 194, 178, 128;
    --bs-secondary-text-emphasis: #4e4733;
    --bs-secondary-bg-subtle: #f3f0e6;
    --bs-secondary-border-subtle: #e7e1cc;

    --bs-success: #9ACD32;
    --bs-success-rgb: 154, 205, 50;
    --bs-success-text-emphasis: #3e5214;
    --bs-success-bg-subtle: #ebf5d6;
    --bs-success-border-subtle: #d7ebad;

    --bs-danger: #E2725B;
    --bs-danger-rgb: 226, 114, 91;
    --bs-danger-text-emphasis: #5a2e25;
    --bs-danger-bg-subtle: #f9e3de;
    --bs-danger-border-subtle: #f3c7bd;

    --bs-warning: #DAA520;
    --bs-warning-rgb: 218, 165, 32;
    --bs-warning-text-emphasis: #57420d;
    --bs-warning-bg-subtle: #f8edd2;
    --bs-warning-border-subtle: #f1dba6;

    --bs-info: #40E0D0;
    --bs-info-rgb: 64, 224, 208;
    --bs-info-text-emphasis: #1a5a53;
    --bs-info-bg-subtle: #d9f9f6;
    --bs-info-border-subtle: #b3f3ed;

    --bs-dark: #3B2F2F;
    --bs-dark-rgb: 59, 47, 47;
    --bs-dark-text-emphasis: #181313;
    --bs-dark-bg-subtle: #d8d5d5;
    --bs-dark-border-subtle: #b1abab;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-primary), black 10%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-primary), black 15%);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-primary), black 15%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-primary), black 20%);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-secondary {
    --bs-btn-color: #2f2f2f;
    --bs-btn-bg: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-secondary), black 5%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-secondary), black 10%);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-secondary), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-secondary), black 15%);
    --bs-btn-disabled-color: #2f2f2f;
    --bs-btn-disabled-bg: var(--bs-secondary);
    --bs-btn-disabled-border-color: var(--bs-secondary);
}

.btn-success {
    --bs-btn-color: #2f2f2f;
    --bs-btn-bg: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-success), black 5%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-success), black 10%);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-success), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-success), black 15%);
    --bs-btn-disabled-color: #2f2f2f;
    --bs-btn-disabled-bg: var(--bs-success);
    --bs-btn-disabled-border-color: var(--bs-success);
}

.btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-danger), black 10%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-danger), black 15%);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-danger), black 15%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-danger), black 20%);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-danger);
    --bs-btn-disabled-border-color: var(--bs-danger);
}

.btn-warning {
    --bs-btn-color: #2f2f2f;
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-warning), black 5%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-warning), black 10%);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-warning), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-warning), black 15%);
    --bs-btn-disabled-color: #2f2f2f;
    --bs-btn-disabled-bg: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning);
}

.btn-info {
    --bs-btn-color: #2f2f2f;
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-info), black 5%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-info), black 10%);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-info), black 10%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-info), black 15%);
    --bs-btn-disabled-color: #2f2f2f;
    --bs-btn-disabled-bg: var(--bs-info);
    --bs-btn-disabled-border-color: var(--bs-info);
}

.btn-dark {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: color-mix(in srgb, var(--bs-dark), white 10%);
    --bs-btn-hover-border-color: color-mix(in srgb, var(--bs-dark), white 5%);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: color-mix(in srgb, var(--bs-dark), white 5%);
    --bs-btn-active-border-color: color-mix(in srgb, var(--bs-dark), white 10%);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-dark);
    --bs-btn-disabled-border-color: var(--bs-dark);
}

.btn-outline-primary {
    --bs-btn-color: var(--bs-primary);
    --bs-btn-border-color: var(--bs-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-primary);
    --bs-btn-hover-border-color: var(--bs-primary);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-primary);
    --bs-btn-active-border-color: var(--bs-primary);
    --bs-btn-disabled-color: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-outline-secondary {
    --bs-btn-color: var(--bs-secondary);
    --bs-btn-border-color: var(--bs-secondary);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: var(--bs-secondary);
    --bs-btn-hover-border-color: var(--bs-secondary);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: var(--bs-secondary);
    --bs-btn-active-border-color: var(--bs-secondary);
    --bs-btn-disabled-color: var(--bs-secondary);
    --bs-btn-disabled-border-color: var(--bs-secondary);
}

.btn-outline-success {
    --bs-btn-color: var(--bs-success);
    --bs-btn-border-color: var(--bs-success);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: var(--bs-success);
    --bs-btn-hover-border-color: var(--bs-success);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: var(--bs-success);
    --bs-btn-active-border-color: var(--bs-success);
    --bs-btn-disabled-color: var(--bs-success);
    --bs-btn-disabled-border-color: var(--bs-success);
}

.btn-outline-danger {
    --bs-btn-color: var(--bs-danger);
    --bs-btn-border-color: var(--bs-danger);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-danger);
    --bs-btn-hover-border-color: var(--bs-danger);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-danger);
    --bs-btn-active-border-color: var(--bs-danger);
    --bs-btn-disabled-color: var(--bs-danger);
    --bs-btn-disabled-border-color: var(--bs-danger);
}

.btn-outline-warning {
    --bs-btn-color: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: var(--bs-warning);
    --bs-btn-hover-border-color: var(--bs-warning);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: var(--bs-warning);
    --bs-btn-active-border-color: var(--bs-warning);
    --bs-btn-disabled-color: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning);
}

.btn-outline-info {
    --bs-btn-color: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: #2f2f2f;
    --bs-btn-hover-bg: var(--bs-info);
    --bs-btn-hover-border-color: var(--bs-info);
    --bs-btn-active-color: #2f2f2f;
    --bs-btn-active-bg: var(--bs-info);
    --bs-btn-active-border-color: var(--bs-info);
    --bs-btn-disabled-color: var(--bs-info);
    --bs-btn-disabled-border-color: var(--bs-info);
}

.btn-outline-dark {
    --bs-btn-color: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-dark);
    --bs-btn-hover-border-color: var(--bs-dark);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-dark);
    --bs-btn-active-border-color: var(--bs-dark);
    --bs-btn-disabled-color: var(--bs-dark);
    --bs-btn-disabled-border-color: var(--bs-dark);
}

/* Dark Theme */
[data-bs-theme="dark"] {
    --bs-primary: #3DA83D;
    --bs-primary-rgb: 61, 168, 61;
    --bs-primary-text-emphasis: #d4f5d4;
    --bs-primary-bg-subtle: #1a331a;
    --bs-primary-border-subtle: #2a4a2a;
    --bs-secondary: #8A7A50;
    --bs-secondary-rgb: 138, 122, 80;
    --bs-secondary-text-emphasis: #e8e4d6;
    --bs-secondary-bg-subtle: #2a2520;
    --bs-secondary-border-subtle: #453c33;
    --bs-success: #B0E040;
    --bs-success-rgb: 176, 224, 64;
    --bs-success-text-emphasis: #e0f0a0;
    --bs-success-bg-subtle: #263316;
    --bs-success-border-subtle: #3a4c25;
    --bs-danger: #FF9070;
    --bs-danger-rgb: 255, 144, 112;
    --bs-danger-text-emphasis: #ffe9e3;
    --bs-danger-bg-subtle: #3d221a;
    --bs-danger-border-subtle: #5c352c;
    --bs-warning: #E8C030;
    --bs-warning-rgb: 232, 192, 48;
    --bs-warning-text-emphasis: #ffe8a0;
    --bs-warning-bg-subtle: #3d3316;
    --bs-warning-border-subtle: #5c4d25;
    --bs-info: #60F0E0;
    --bs-info-rgb: 96, 240, 224;
    --bs-info-text-emphasis: #8ccfcb;
    --bs-info-bg-subtle: #163330;
    --bs-info-border-subtle: #244d4a;
    --bs-dark: #1E1515;
    --bs-dark-rgb: 30, 21, 21;
    --bs-dark-text-emphasis: #e8e4e4;
    --bs-dark-bg-subtle: #2a2020;
    --bs-dark-border-subtle: #453535;
}
