:root {
    --bs-primary-text: #ffffff;
    --bs-primary-accent-text: #ffffff;

    --bs-success:   #43a047;
    --bs-info:      #17a2b8;
    --bs-warning:   #fbc02d;
    --bs-danger:    #e53935;
    --bs-light:     #f8f9fa;
    --bs-dark:      #343a40;

    --bs-secondary-text: #ffffff;
    --bs-success-text:   #ffffff;
    --bs-info-text:      #ffffff;
    --bs-warning-text:   #212529;
    --bs-danger-text:    #ffffff;
    --bs-light-text:     #212529;
    --bs-dark-text:      #ffffff;

    --gray-100: #f8f9fa;
    --gray-200: #e9ecef;
    --gray-300: #dee2e6;
    --gray-400: #ced4da;
    --gray-500: #adb5bd;
    --gray-600: #6c757d;
    --gray-700: #495057;
    --gray-800: #343a40;
    --gray-900: #212529;
}

/* =========================
   Buttons
   ========================= */
.btn-primary    { background: var(--bs-primary) !important;         border-color: var(--bs-primary) !important;         color: var(--bs-primary-text) !important; }
.btn-secondary  { background: var(--bs-secondary) !important;       border-color: var(--bs-secondary) !important;       color: var(--bs-secondary-text) !important; }
.btn-success    { background: var(--bs-success) !important;         border-color: var(--bs-success) !important;         color: var(--bs-success-text) !important; }
.btn-info       { background: var(--bs-info) !important;            border-color: var(--bs-info) !important;            color: var(--bs-info-text) !important; }
.btn-warning    { background: var(--bs-warning) !important;         border-color: var(--bs-warning) !important;         color: var(--bs-warning-text) !important; }
.btn-danger     { background: var(--bs-danger) !important;          border-color: var(--bs-danger) !important;          color: var(--bs-danger-text) !important; }
.btn-light      { background: var(--bs-light) !important;           border-color: var(--bs-light) !important;           color: var(--bs-light-text) !important; }
.btn-dark       { background: var(--bs-dark) !important;            border-color: var(--bs-dark) !important;            color: var(--bs-dark-text) !important; }

/* =========================
   Backgrounds
   ========================= */
.bg-primary     { background: var(--bs-primary) !important;         color: var(--bs-primary-text) !important; }
.bg-secondary   { background: var(--bs-secondary) !important;       color: var(--bs-secondary-text) !important; }
.bg-success     { background: var(--bs-success) !important;         color: var(--bs-success-text) !important; }
.bg-info        { background: var(--bs-info) !important;            color: var(--bs-info-text) !important; }
.bg-warning     { background: var(--bs-warning) !important;         color: var(--bs-warning-text) !important; }
.bg-danger      { background: var(--bs-danger) !important;          color: var(--bs-danger-text) !important; }
.bg-light       { background: var(--bs-light) !important;           color: var(--bs-light-text) !important; }
.bg-dark        { background: var(--bs-dark) !important;            color: var(--bs-dark-text) !important; }

/* =========================
   Text Colors
   ========================= */
.text-primary   { color: var(--bs-primary) !important; }
.text-accent    { color: var(--bs-primary-accent) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-success   { color: var(--bs-success) !important; }
.text-info      { color: var(--bs-info) !important; }
.text-warning   { color: var(--bs-warning) !important; }
.text-danger    { color: var(--bs-danger) !important; }
.text-light     { color: var(--bs-light) !important; }
.text-dark      { color: var(--bs-dark) !important; }

/* =========================
   Borders
   ========================= */
.border-primary { border-color: var(--bs-primary) !important; }
.border-accent  { border-color: var(--bs-primary-accent) !important; }
.border-secondary { border-color: var(--bs-secondary) !important; }
.border-success { border-color: var(--bs-success) !important; }
.border-info    { border-color: var(--bs-info) !important; }
.border-warning { border-color: var(--bs-warning) !important; }
.border-danger  { border-color: var(--bs-danger) !important; }
.border-light   { border-color: var(--bs-light) !important; }
.border-dark    { border-color: var(--bs-dark) !important; }

/* =========================
   Alerts
   ========================= */
.alert-primary     { background: var(--bs-primary) !important;        color: var(--bs-primary-text) !important;        border-color: var(--bs-primary) !important; }
.alert-secondary   { background: var(--bs-secondary) !important;      color: var(--bs-secondary-text) !important;      border-color: var(--bs-secondary) !important; }
.alert-success     { background: var(--bs-success) !important;        color: var(--bs-success-text) !important;        border-color: var(--bs-success) !important; }
.alert-info        { background: var(--bs-info) !important;           color: var(--bs-info-text) !important;           border-color: var(--bs-info) !important; }
.alert-warning     { background: var(--bs-warning) !important;        color: var(--bs-warning-text) !important;        border-color: var(--bs-warning) !important; }
.alert-danger      { background: var(--bs-danger) !important;         color: var(--bs-danger-text) !important;         border-color: var(--bs-danger) !important; }
.alert-light       { background: var(--bs-light) !important;          color: var(--bs-light-text) !important;          border-color: var(--bs-light) !important; }
.alert-dark        { background: var(--bs-dark) !important;           color: var(--bs-dark-text) !important;           border-color: var(--bs-dark) !important; }

/* =========================
   Badges
   ========================= */
.badge-primary     { background: var(--bs-primary) !important;        color: var(--bs-primary-text) !important; }
.badge-secondary   { background: var(--bs-secondary) !important;      color: var(--bs-secondary-text) !important; }
.badge-success     { background: var(--bs-success) !important;        color: var(--bs-success-text) !important; }
.badge-info        { background: var(--bs-info) !important;           color: var(--bs-info-text) !important; }
.badge-warning     { background: var(--bs-warning) !important;        color: var(--bs-warning-text) !important; }
.badge-danger      { background: var(--bs-danger) !important;         color: var(--bs-danger-text) !important; }
.badge-light       { background: var(--bs-light) !important;          color: var(--bs-light-text) !important; }
.badge-dark        { background: var(--bs-dark) !important;           color: var(--bs-dark-text) !important; }

/* =========================
   Tables
   ========================= */
.table-primary     { background: var(--bs-primary) !important;        color: var(--bs-primary-text) !important; }
.table-secondary   { background: var(--bs-secondary) !important;      color: var(--bs-secondary-text) !important; }
.table-success     { background: var(--bs-success) !important;        color: var(--bs-success-text) !important; }
.table-info        { background: var(--bs-info) !important;           color: var(--bs-info-text) !important; }
.table-warning     { background: var(--bs-warning) !important;        color: var(--bs-warning-text) !important; }
.table-danger      { background: var(--bs-danger) !important;         color: var(--bs-danger-text) !important; }
.table-light       { background: var(--bs-light) !important;          color: var(--bs-light-text) !important; }
.table-dark        { background: var(--bs-dark) !important;           color: var(--bs-dark-text) !important; }