html {
    font-size: 14px;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
    box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
    position: relative;
    min-height: 100%;
}

body {
    margin-bottom: 60px;
}

.row.required .control-label:after, .form-group.required .control-label:after {
    color: #d00;
    content: "*";
    position: absolute;
    margin-left: 8px;
    font-family: Cambria;
    font-size: 16px;
}

.alert-success, td.alert-success {
    color: #000;
    background-color: #dff0d8;
    border-color: #468847;
}

.alert-danger, td.alert-danger {
    color: #000;
    background-color: #f2dede;
    border-color: #b94a48;
}

.alert-warning, td.alert-warning {
    color: #000;
    background-color: #fcf8e3;
    border-color: #c09853;
}

/* If any table rule still paints over cells, force the alert cells to win */
#indexTable td.alert-success {
    background-color: #dff0d8 !important;
}

#indexTable td.alert-warning {
    background-color: #fcf8e3 !important;
}

#indexTable td.alert-danger {
    background-color: #f2dede !important;
}

.config-label-nojust-odd {
    color: black;
    font-weight: bold;
}

.config-background-odd {
    background-color: #dae2eb;
}

.config-label-odd {
    text-align: right;
    color: black;
    font-weight: bold;
}

.config-data-odd {
    color: black;
}

.config-background-even {
    background-color: #d8f0d3;
}

.config-label-nojust-even {
    color: black;
    font-weight: bold;
}

.config-label-even {
    text-align: right;
    color: black;
    font-weight: bold;
}

.config-data-even {
    color: black;
}

:root {
    --bs-heading-color: #1A4E80;
    --bs-link-color: #1A4E80;
    --bs-link-color-rgb: 17, 92, 136;
}

.form-check-input:checked {
    background-color: #1A4E80;
    border-color: #1A4E80;
}

@media (min-width: 1400px) {
    .container, .container-sm, .container-md, .container-lg, .container-xl, .container-xxl {
        max-width: 95%;
    }
}

/* Toast Variants with shadow and rounded corners */
.toast-success {
    background-color: #198754; /* Bootstrap success green */
    color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.toast-error {
    background-color: #dc3545; /* Bootstrap danger red */
    color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.toast-warning {
    background-color: #ffc107; /* Bootstrap warning yellow */
    color: #212529;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.toast-info {
    background-color: #0dcaf0; /* Bootstrap info cyan */
    color: #212529;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.toast-secondary {
    background-color: #6c757d; /* Bootstrap secondary gray */
    color: #fff;
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

    /* Ensure close button is visible on dark backgrounds */
    .toast-success .btn-close,
    .toast-error .btn-close,
    .toast-secondary .btn-close {
        filter: invert(1);
    }

.toast.fade {
    transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
    opacity: 0;
    transform: translateY(20px);
}

    .toast.fade.show {
        opacity: 1;
        transform: translateY(0);
    }

/* Rounded corners + shadow for all variants */
.toast-success,
.toast-error,
.toast-warning,
.toast-info,
.toast-secondary {
    border-radius: 0.5rem;
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

    /* Ensure close button is visible on dark backgrounds */
    .toast-success .btn-close,
    .toast-error .btn-close,
    .toast-secondary .btn-close {
        filter: invert(1);
    }

/* Ensure fade transitions are present */
.toast.fade {
    opacity: 0;
    transition: opacity 0.35s ease, transform 0.35s ease;
    transform: translateY(12px);
    will-change: opacity, transform;
}

    .toast.fade.show {
        opacity: 1;
        transform: translateY(0);
    }

.active > .page-link,
.page-link.active {
    background-color: #115C88 !important;
    border-color: #115C88 !important;
    color: #fff !important;
}

input.input-validation-error[type="text"],
input.input-validation-error[type="number"],
input.input-validation-error[type="email"],
input.input-validation-error[type="password"],
textarea.input-validation-error {
    border-color: #C01B21;
}

    /* Show error text only for text-like inputs */
    input.input-validation-error[type="text"] ~ .invalid-feedback,
    input.input-validation-error[type="number"] ~ .invalid-feedback,
    input.input-validation-error[type="email"] ~ .invalid-feedback,
    input.input-validation-error[type="password"] ~ .invalid-feedback,
    textarea.input-validation-error ~ .invalid-feedback,
    select.input-validation-error ~ .invalid-feedback {
        display: block;
    }

.invalid-feedback {
    color: #C01B21;
}

.accordion-collapse {
    transition: height 0.35s ease-in-out;
}
/* Change accordion header background color */
.accordion-button {
    background-color: #0d6efd; /* Bootstrap primary blue */
    color: white;
}

    /* When collapsed (not active) */
    .accordion-button.collapsed {
        background-color: #e9ecef; /* Light gray */
        color: #212529; /* Dark text */
    }

    /* Hover effect */
    .accordion-button:hover {
        background-color: #b9c2cc;
    }

    /* Remove focus outline if desired */
    .accordion-button:focus {
        box-shadow: none;
    }

.btn-warning {
    --bs-btn-bg: #cc4e00;
}

.btn-warning {
    background-image: linear-gradient(#e27129, #cc4e00 60%, #d05100);
}
.dt-length select + label {
    margin-left: 0.5rem;
}