.bg-primary {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-primary-rgb), var(--bs-bg-opacity)) !important;
}

.bg-primary-emphasis {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-primary-emphasis-rgb), var(--bs-bg-opacity)) !important;
}

.bg-secondary {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-secondary-rgb), var(--bs-bg-opacity)) !important;
}

.bg-success {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-success-rgb), var(--bs-bg-opacity)) !important;
}

.bg-info {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-info-rgb), var(--bs-bg-opacity)) !important;
}

.bg-warning {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-warning-rgb), var(--bs-bg-opacity)) !important;
}

.bg-danger {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-danger-rgb), var(--bs-bg-opacity)) !important;
}

.bg-light {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-light-rgb), var(--bs-bg-opacity)) !important;
}

.bg-light-50 {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-light-50-rgb), var(--bs-bg-opacity)) !important;
}

.bg-light-25 {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-light-25-rgb), var(--bs-bg-opacity)) !important;
}

.bg-dark {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-dark-rgb), var(--bs-bg-opacity)) !important;
}

.bg-black {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-black-rgb), var(--bs-bg-opacity)) !important;
}

.bg-white {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-white-rgb), var(--bs-bg-opacity)) !important;
}

.bg-body {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-body-bg-rgb), var(--bs-bg-opacity)) !important;
}

.bg-transparent {
    --bs-bg-opacity: 1;
    background-color: transparent !important;
}

.bg-body-secondary {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-secondary-bg-rgb), var(--bs-bg-opacity)) !important;
}

.bg-body-tertiary {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
}

.bg-opacity-10 {
    --bs-bg-opacity: 0.1;
}

.bg-opacity-15 {
    --bs-bg-opacity: 0.15;
}

.bg-opacity-20 {
    --bs-bg-opacity: 0.20;
}

.bg-opacity-25 {
    --bs-bg-opacity: 0.25;
}

.bg-opacity-30 {
    --bs-bg-opacity: 0.30;
}

.bg-opacity-35 {
    --bs-bg-opacity: 0.35;
}

.bg-opacity-40 {
    --bs-bg-opacity: 0.40;
}

.bg-opacity-45 {
    --bs-bg-opacity: 0.45;
}

.bg-opacity-50 {
    --bs-bg-opacity: 0.5;
}

.bg-opacity-75 {
    --bs-bg-opacity: 0.75;
}

.bg-opacity-80 {
    --bs-bg-opacity: 0.80;
}

.bg-opacity-85 {
    --bs-bg-opacity: 0.85;
}

.bg-opacity-90 {
    --bs-bg-opacity: 0.9;
}

.bg-opacity-100 {
    --bs-bg-opacity: 1;
}

.bg-primary-subtle {
    background-color: var(--bs-primary-bg-subtle) !important;
}

.bg-secondary-subtle {
    background-color: var(--bs-secondary-bg-subtle) !important;
}

.bg-success-subtle {
    background-color: var(--bs-success-bg-subtle) !important;
}

.bg-info-subtle {
    background-color: var(--bs-info-bg-subtle) !important;
}

.bg-warning-subtle {
    background-color: var(--bs-warning-bg-subtle) !important;
}

.bg-danger-subtle {
    background-color: var(--bs-danger-bg-subtle) !important;
}

.bg-light-subtle {
    background-color: var(--bs-light-bg-subtle) !important;
}

.bg-dark-subtle {
    background-color: var(--bs-dark-bg-subtle) !important;
}

.bg-pattern-primary {
    background-image: var(--bs-primary-pattern);
}

.bg-pattern-secondary {
    background-image: var(--bs-secondary-pattern);
    background-position: bottom right;
    background-repeat: no-repeat;
    background-size: auto 100%;
}

.bg-pattern-info {
    background-image: var(--bs-info-pattern);
}

.bg-pattern-primary-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background-image: var(--bs-info-pattern);
    background-position: left bottom;
    background-repeat: repeat-y;
    background-size: auto auto;
    width: 100%;
    height: 100%;
    opacity: 0.3;
}

.bg-pattern-secondary-overlay::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    background-image: linear-gradient(90deg, rgba(var(--bs-primary-rgb), 1) 0%, rgba(var(--bs-primary-rgb), 1) 50%, rgba(255, 255, 255, 0) 100%);
    width: 100%;
    height: 100%;
    z-index: 2;
}

.bg-secondary.bg-pattern-secondary-overlay::after {
    background-image: linear-gradient(90deg, rgba(var(--bs-secondary-rgb), 1) 0%, rgba(var(--bs-secondary-rgb), 1) 50%, rgba(255, 255, 255, 0) 100%);
}

.bg-info.bg-pattern-secondary-overlay::after {
    background-image: linear-gradient(90deg, rgba(var(--bs-info-rgb), 1) 0%, rgba(var(--bs-info-rgb), 1) 50%, rgba(255, 255, 255, 0) 100%);
}

.bg-pattern-secondary-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    background-image: var(--bs-info-pattern);
    background-position: bottom right;
    background-repeat: repeat;
    background-size: auto 111%;
    width: 100%;
    height: 100%;
    opacity: 0.3;
    z-index: 1;
}

.fill-primary {
    fill: var(--bs-primary);
}

.fill-secondary {
    fill: var(--bs-secondary);
}

.fill-success {
    fill: #5f9481;
}

.fill-danger {
    fill: var(--bs-danger);
}

.fill-white {
    fill: var(--bs-white);
}

.fill-opacity-50 {
    fill-opacity: 0.5;
}

.fill-opacity-25 {
    fill-opacity: 0.25;
}