﻿:root {
    /* Base Primary color */
    --bs-primary: #286090;
    /* Base Info color */
    --bs-info: #afd9ef;
    /* Base Danger color */
    --bs-danger: #d43e39;
    /* Base Warning Color */
    --bs-warning: #fff3cd;
    /* Base Dark Color */
    --bs-dark: #ced4da;
    /* Global component variables */
    --bs-link-color: #337ab7;
    --bs-link-color-rgb: 51, 122, 183; /* RGB values of #337ab7 */
    --bs-link-hover-color: #245269; /* Optional: darker shade for hover */
    --bs-focus-ring-color: rgba(40, 96, 144, 0.25);
    --bs-progress-bar-bg: var(--bs-primary);
    --bs-tooltip-bg: var(--bs-primary);
    --bs-tooltip-color: #fff;
    --bs-nav-link-color: var(--bs-link-color);
    --bs-nav-link-hover-color: var(--bs-link-hover-color);
    --bs-btn-color: var(--bs-link-color); /* for .btn-link */
    --bs-btn-hover-color: var(--bs-link-hover-color);
    --bs-dropdown-link-color: var(--bs-link-color);
    --bs-dropdown-link-hover-color: var(--bs-link-hover-color);
}

/* Contextual Text Colors */
.text-primary { color: var(--bs-primary) !important; }
.text-secondary { color: var(--bs-secondary) !important; }
.text-info { color: #31708f; }
.text-danger { color: var(--bs-danger) !important; }
.text-warning { color: #664d03 !important; }
.text-light { color: #212529 !important; }
.text-dark { color: #212529 !important; }

/* Contextual Link Colors */
.link-primary { color: var(--bs-primary) !important; }
.link-secondary { color: var(--bs-secondary) !important; }
.link-info { color: #31708f !important; }
.link-danger { color: var(--bs-danger) !important; }
.link-warning { color: #664d03 !important; }
.link-light { color: #495057 !important; }
.link-dark { color: #495057 !important;}

/* Buttons */
.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: #245580;
    --bs-btn-hover-border-color: #204d74;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #204d74;
    --bs-btn-active-border-color: #1b4b72;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-primary);
    --bs-btn-disabled-border-color: var(--bs-primary);
}

.btn-outline-primary {
    color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
}

.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active {
    background-color: var(--bs-primary) !important;
    color: #fff !important;
    border-color: var(--bs-primary) !important;
}

/* Info Buttons */
.btn-info {
    --bs-btn-color: #31708f; /* Bootstrap's default dark text */
    --bs-btn-bg: var(--bs-info);
    --bs-btn-border-color: var(--bs-info);
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #bce0f1;
    --bs-btn-hover-border-color: #a6d4ec;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #a6d4ec;
    --bs-btn-active-border-color: #8fc8e7;
    --bs-btn-disabled-color: #212529;
    --bs-btn-disabled-bg: var(--bs-info);
    --bs-btn-disabled-border-color: var(--bs-info);
}

.btn-outline-info {
    color: var(--bs-info) !important;
    border-color: var(--bs-info) !important;
}

.btn-outline-info:hover,
.btn-outline-info:focus,
.btn-outline-info:active {
    background-color: var(--bs-info) !important;
    color: #000 !important;
    border-color: var(--bs-info) !important;
}

/* Warning Buttons */
.btn-warning {
    --bs-btn-color: #664d03; /* dark text for contrast */
    --bs-btn-bg: var(--bs-warning);
    --bs-btn-border-color: var(--bs-warning);
    --bs-btn-hover-color: #212529;
    --bs-btn-hover-bg: #f7d87b; /* slightly deeper shade */
    --bs-btn-hover-border-color: #f0c962;
    --bs-btn-active-color: #212529;
    --bs-btn-active-bg: #f0c962;
    --bs-btn-active-border-color: #e8ba49;
    --bs-btn-disabled-color: #212529;
    --bs-btn-disabled-bg: var(--bs-warning);
    --bs-btn-disabled-border-color: var(--bs-warning);
}

.btn-outline-warning {
    color: #664d03 !important;
    border-color: #664d03 !important;
}

.btn-outline-warning:hover,
.btn-outline-warning:focus,
.btn-outline-warning:active {
    background-color: var(--bs-warning) !important;
    color: #212529 !important;
    border-color: var(--bs-warning) !important;
}


/* Danger Buttons */
.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: #a94442; /* customize as needed */
    --bs-btn-hover-border-color: #922d2d;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #922d2d;
    --bs-btn-active-border-color: #7b1f1f;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-danger);
    --bs-btn-disabled-border-color: var(--bs-danger);
}

.btn-outline-danger {
    color: var(--bs-danger) !important;
    border-color: var(--bs-danger) !important;
}

.btn-outline-danger:hover,
.btn-outline-danger:focus,
.btn-outline-danger:active {
    background-color: var(--bs-danger) !important;
    color: #fff !important;
    border-color: var(--bs-danger) !important;
}

/* Dark Buttons */
.btn-dark {
    --bs-btn-color: #495057;
    --bs-btn-bg: var(--bs-dark);
    --bs-btn-border-color: var(--bs-dark);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #495057; /* customize as needed */
    --bs-btn-hover-border-color: var(--bs-dark);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #495057;
    --bs-btn-active-border-color: #7b1f1f;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-dark);
    --bs-btn-disabled-border-color: var(--bs-dark);
}

.btn-outline-dark {
    color: var(--bs-dark) !important;
    border-color: var(--bs-dark) !important;
}

.btn-outline-dark:hover,
.btn-outline-dark:focus,
.btn-outline-dark:active {
    background-color: var(--bs-dark) !important;
    color: #495057 !important;
    border-color: var(--bs-dark) !important;
}


/* Alerts */
.alert-primary {
    --bs-alert-bg: var(--bs-primary);
    --bs-alert-border-color: var(--bs-primary);
    --bs-alert-color: #fff;
}
.alert-info {
    --bs-alert-bg: #d9edf7;
    --bs-alert-border-color: #bce8f1;
    --bs-alert-color: #31708f;
}
.alert-danger {
    --bs-alert-bg: var(--bs-danger);
    --bs-alert-border-color: var(--bs-danger);
    --bs-alert-color: #fff;
}

.bg-primary {
    background-color: var(--bs-primary) !important;
    color: #fff; /* optional: ensure contrast */
}

.bg-info {
    background-color: var(--bs-info) !important;
    color: #31708f;
}

.bg-danger {
    background-color: var(--bs-danger) !important;
    color: #fff;
}

.bg-warning {
    background-color: var(--bs-warning) !important;
    color: #664d03;
}

.bg-secondary {
    background-color: var(--bs-secondary) !important;
    color: #fff;
}

.bg-light {
    background-color: var(--bs-light) !important;
    color: #212529;
}

.bg-dark {
    background-color: var(--bs-dark) !important;
    color: #495057;
}



/* Badge Overrides */
.badge.bg-primary       { background-color: var(--bs-primary) !important; color: #fff !important; }
.badge.bg-secondary     { background-color: var(--bs-secondary) !important; color: #fff !important; }
.badge.bg-info          { background-color: var(--bs-info) !important; color: #31708f !important; }
.badge.bg-danger        { background-color: var(--bs-danger) !important; color: #fff !important; }
.badge.bg-warning       { background-color: var(--bs-warning) !important; color: #664d03 !important; }
.badge.bg-light         { background-color: var(--bs-light) !important; color: #212529 !important; }
.badge.bg-dark          { background-color: var(--bs-dark) !important; color: #495057 !important; }

/* Pills (Nav Link Active) */
.nav-pills .nav-link.active.bg-primary   { background-color: var(--bs-primary) !important; color: #fff !important; }
.nav-pills .nav-link.active.bg-secondary { background-color: var(--bs-secondary) !important; color: #fff !important; }
.nav-pills .nav-link.active.bg-info      { background-color: var(--bs-info) !important; color: #31708f !important; }
.nav-pills .nav-link.active.bg-danger    { background-color: var(--bs-danger) !important; color: #fff !important; }
.nav-pills .nav-link.active.bg-warning   { background-color: var(--bs-warning) !important; color: #664d03 !important; }
.nav-pills .nav-link.active.bg-light     { background-color: var(--bs-light) !important; color: #212529 !important; }
.nav-pills .nav-link.active.bg-dark      { background-color: var(--bs-dark) !important; color: #495057 !important; }

/* Progress Bar */
.progress-bar.bg-primary   { background-color: var(--bs-primary) !important; }
.progress-bar.bg-secondary { background-color: var(--bs-secondary) !important; }
.progress-bar.bg-info      { background-color: #31708f !important; }
.progress-bar.bg-danger    { background-color: var(--bs-danger) !important; }
.progress-bar.bg-warning   { background-color: #664d03 !important; }
.progress-bar.bg-light     { background-color: var(--bs-dark) !important; }
.progress-bar.bg-dark      { background-color: var(--bs-dark) !important; }

/* Toast Header */
.toast-header.bg-primary   { background-color: var(--bs-primary) !important; color: #fff !important; }
.toast-header.bg-secondary { background-color: var(--bs-secondary) !important; color: #fff !important; }
.toast-header.bg-info      { background-color: var(--bs-info) !important; color: #31708f !important; }
.toast-header.bg-danger    { background-color: var(--bs-danger) !important; color: #fff !important; }
.toast-header.bg-warning   { background-color: var(--bs-warning) !important; color: #664d03 !important; }
.toast-header.bg-light     { background-color: var(--bs-light) !important; color: #212529 !important; }
.toast-header.bg-dark      { background-color: var(--bs-dark) !important; color: #495057 !important; }

/* Toast Body */
.toast-body.toast-primary {
    color: var(--bs-primary);
    background-color: #fff !important;
}

.toast-body.toast-secondary {
    color: var(--bs-secondary);
    background-color: #fff !important;
}

.toast-body.toast-info {
    color: var(--bs-info);
    background-color: #fff !important;
}

.toast-body.toast-danger {
    color: var(--bs-danger);
    background-color: #fff !important;
}

.toast-body.toast-warning {
    color: var(--bs-warning);
    background-color: #fff !important;
}

.toast-body.toast-light {
    color: var(--bs-light);
    background-color: #fff !important;
}

.toast-body.toast-dark {
    color: var(--bs-dark);
    background-color: #fff !important;
}

/* Pagination */

/* Base Styles for All Page Links */
.pagination .page-link {
    font-weight: 600;
    font-size: 1rem;
    padding: 0.5rem 0.75rem;
    border-radius: 0.25rem;
    background-color: #fff;
}

/* Primary */
.pagination .page-link.text-primary {
    color: var(--bs-primary);
    border: 1px solid var(--bs-primary);
}

.pagination .page-link.text-primary:hover {
    background-color: var(--bs-primary);
    color: #fff;
}

.pagination .page-item.active .page-link.bg-primary {
    background-color: var(--bs-primary);
    color: #fff;
    border-color: var(--bs-primary);
}

/* Secondary */
.pagination .page-link.text-secondary {
    color: var(--bs-secondary);
    border: 1px solid var(--bs-secondary);
}

.pagination .page-link.text-secondary:hover {
    background-color: var(--bs-secondary);
    color: #fff;
}

.pagination .page-item.active .page-link.bg-secondary {
    background-color: var(--bs-secondary);
    color: #fff;
    border-color: var(--bs-secondary);
}

/* Info */
.pagination .page-link.text-info {
    color: var(--bs-info);
    border: 1px solid var(--bs-info);
}

.pagination .page-link.text-info:hover {
    background-color: var(--bs-info);
    color: #212529;
}

.pagination .page-item.active .page-link.bg-info {
    background-color: var(--bs-info);
    color: #212529;
    border-color: var(--bs-info);
}

/* Danger */
.pagination .page-link.text-danger {
    color: var(--bs-danger);
    border: 1px solid var(--bs-danger);
}

.pagination .page-link.text-danger:hover {
    background-color: var(--bs-danger);
    color: #fff;
 }

.pagination .page-item.active .page-link.bg-danger {
    background-color: var(--bs-danger);
    color: #fff;
    border-color: var(--bs-danger);
}

/* Warning */
.pagination .page-link.text-warning {
    color: var(--bs-warning);
    border: 1px solid var(--bs-warning);
}

.pagination .page-link.text-warning:hover {
    background-color: var(--bs-warning);
    color: #212529;
}

.pagination .page-item.active .page-link.bg-warning {
    background-color: var(--bs-warning);
    color: #212529;
    border-color: var(--bs-warning);
}

/* Light */
.pagination .page-link.text-light {
    color: var(--bs-light);
    border: 1px solid var(--bs-light);
}

.pagination .page-link.text-light:hover {
    background-color: var(--bs-light);
    color: #212529;
}

.pagination .page-item.active .page-link.bg-light {
    background-color: var(--bs-light);
    color: #212529;
    border-color: var(--bs-light);
}

/* Dark */
.pagination .page-link.text-dark {
    color: var(--bs-dark);
    border: 1px solid var(--bs-dark);
}

.pagination .page-link.text-dark:hover {
    background-color: var(--bs-dark);
    color: #fff;
}

.pagination .page-item.active .page-link.bg-dark {
    background-color: var(--bs-dark);
    color: #fff;
    border-color: var(--bs-dark);
}


/* Dropdowns */
.dropdown-menu {
    --bs-dropdown-bg: #fff;
}

.dropdown-item:hover {
    --bs-dropdown-link-hover-bg: #cbd3da;
    --bs-dropdown-link-hover-color: #222222;
    opacity: 0.95;
}

/* Modals */
.modal-header {
    --bs-modal-header-bg: #f5f5f5;
    --bs-modal-header-color: #f4f4f4;
}

.modal-footer {
    --bs-modal-footer-bg: #f5f5f5;
    --bs-modal-footer-color: #f4f4f4;
}


/* Progress Bars */
.progress-bar.bg-primary {
    background-color: var(--bs-primary) !important;
}

.progress-bar.bg-info {
    background-color: var(--bs-info) !important;
}


/* Link Overrides */
a {
    text-decoration: none;
    color: var(--bs-link-color);
}

a:hover {
    text-decoration: none;
    color: var(--bs-link-hover-color);
}



