/* 1. Brand Palette & Bootstrap Overrides */
:root {
    /* Core Brand Palette */
    --brand-primary: #BED600;
    --brand-primary-dark: #8FA300;
    --brand-primary-light: #E2F26A;

    /* Supporting Neutrals */
    --brand-black: #000000;
    --brand-dark-grey: #333333;
    --brand-mid-grey: #777777;
    --brand-light-grey: #F5F5F5;
    --brand-white: #FFFFFF;

    /* Bootstrap Semantic Overrides */
    --bs-primary: #BED600;
    --bs-secondary: #333333;
    --bs-success: #7BBE00;
    --bs-info: #4BA8C9;
    --bs-warning: #F7B500;
    --bs-danger: #D64545;
    --bs-light: #F8FAE5;
    --bs-dark: #1C1C1C;
    
    /* Body Colors */
    --bs-body-color: var(--brand-dark-grey);
    --bs-body-bg: var(--brand-light-grey);
}

/* 2. General Styles & Bootstrap Component Overrides */

body {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
}

a {
    color: var(--bs-primary);
}

a:hover {
    color: var(--brand-primary-dark);
}

/* Buttons */
.btn-primary {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
    color: var(--brand-black); /* Accessibility: Black text on lime */
}

.btn-primary:hover {
    background-color: var(--brand-primary-dark);
    border-color: var(--brand-primary-dark);
    color: var(--brand-black);
}

.btn-secondary {
    background-color: var(--bs-secondary);
    border-color: var(--bs-secondary);
    color: var(--brand-white);
}

.btn-secondary:hover {
    background-color: var(--brand-mid-grey);
    border-color: var(--brand-mid-grey);
    color: var(--brand-white);
}

.btn-outline-light {
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.btn-outline-light:hover {
    color: var(--brand-black);
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* Navbar */
.navbar-dark.bg-dark {
    background-color: var(--bs-dark) !important;
}

/* Cards */
.card-title {
    color: var(--brand-black);
}

.bg-primary {
    background-color: var(--bs-primary) !important;
    color: var(--brand-black) !important;
}
.bg-primary .card-header, .bg-primary .card-text {
    color: var(--brand-black) !important;
}

.bg-success {
    background-color: var(--bs-success) !important;
    color: var(--brand-white) !important;
}
.bg-success .card-header, .bg-success .card-text {
    color: var(--brand-white) !important;
}

.bg-warning {
    background-color: var(--bs-warning) !important;
    color: var(--brand-black) !important;
}
.bg-warning .card-header, .bg-warning .card-text {
    color: var(--brand-black) !important;
}

/* Alerts */
.alert-success {
    background-color: var(--bs-success);
    color: var(--brand-white);
}

.alert-danger {
    background-color: var(--bs-danger);
    color: var(--brand-white);
}

.alert-warning {
    background-color: var(--bs-warning);
    color: var(--brand-black);
}

.alert-info {
    background-color: var(--bs-info);
    color: var(--brand-white);
}

/* Custom GIPWA Alert Styling (Legacy - Refactored) */
.alert-gipwa-danger {
    background-color: var(--bs-dark);
    color: var(--bs-primary);
    border-color: var(--bs-primary);
}

.alert-gipwa-danger .btn-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

.alert-gipwa-success {
    background-color: var(--bs-light);
    color: var(--bs-dark);
    border-color: var(--bs-success);
}

/* 3. Application-Specific Styles */

/* Styling for archived user rows */
tr.archived-user {
    opacity: 0.6;
    background-color: #f8f9fa; /* Using a standard light grey for this */
}

tr.archived-user td {
    color: var(--brand-mid-grey);
}

/* Page Loader Overlay */
.page-loader-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(245, 245, 245, 0.8); /* Use light-grey with opacity */
    z-index: 1000;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Modal Loader Overlay */
.modal-loader-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 1056; /* Just above the modal content */
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--bs-modal-border-radius);
}





/* Custom Branded Spinner */
.spinner-branded {
    display: inline-block;
    width: 5rem;
    height: 5rem;
    vertical-align: text-bottom;
    border: .5em solid var(--brand-dark-grey);
    border-right-color: var(--bs-primary);
    border-radius: 50%;
    -webkit-animation: .75s linear infinite spinner-border;
    animation: .75s linear infinite spinner-border;
}
