/* ================= Global Scroll Fix ================== */
/* Override Material Dashboard's max-height-vh-100 and h-100 on main content
   which prevents pages from scrolling when content exceeds viewport height */
main.main-content,
main.main-content.ps,
main.main-content.max-height-vh-100,
main.main-content.h-100 {
    max-height: none !important;
    height: auto !important;
    min-height: 100vh !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
}

/* Fix navbar sticky position - Material Dashboard's .top-1 uses top:1%
   which shifts the navbar based on page height. Use fixed value instead. */
.top-1 {
    top: 0.75rem !important;
}

/* Ensure body and html allow scrolling */
html, body {
    height: auto !important;
    overflow-y: auto !important;
}

/* ================= Select2 Bootstrap 5 Theme Fixes ================== */

/* Fix dropdown z-index to appear above cards and other elements */
.select2-container--bootstrap-5.select2-container--open,
.select2-container--bootstrap-5 .select2-dropdown {
    z-index: 99999 !important;
}

/* Ensure Select2 dropdown appears above modal backdrop (z-index 1050) and modal (z-index 1055) */
.modal .select2-container--bootstrap-5.select2-container--open,
.modal .select2-container--bootstrap-5 .select2-dropdown,
body > .select2-container--bootstrap-5.select2-container--open,
body > .select2-container--bootstrap-5 .select2-dropdown {
    z-index: 99999 !important;
}

/* Fix single-select placeholder and text vertical alignment */
.select2-container--bootstrap-5 .select2-selection--single {
    display: flex;
    align-items: center;
}

/* Prevent selected text from overlapping the clear (X) button */
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding-right: 1.25rem;
}

/* Ensure clear (X) button is always clickable above the text */
.select2-container--bootstrap-5 .select2-selection--single .select2-selection__clear,
.select2-container--bootstrap-5 .select2-selection--multiple .select2-selection__clear {
    z-index: 1;
}

/* Dropdown selected item highlight */
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--selected,
.select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option[aria-selected=true]:not(.select2-results__option--highlighted) {
    background-color: #F4F4F4;
    color: #344767;
}

/* ================= Bootstrap Style Buttons ================== */
/* Override Material Pro button styles with Bootstrap 5 style */

.btn {
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    border-radius: 0.375rem !important;
    box-shadow: none !important;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out !important;
}

/* Solid buttons get white text */
.btn:not([class*="btn-outline-"]):not(.btn-link) {
    color: #fff !important;
}
.btn:not([class*="btn-outline-"]):not(.btn-link):hover,
.btn:not([class*="btn-outline-"]):not(.btn-link):focus,
.btn:not([class*="btn-outline-"]):not(.btn-link):active {
    color: #fff !important;
}

.btn:hover,
.btn:focus,
.btn:active,
.btn.active,
.btn:focus-visible {
    box-shadow: none !important;
}

/* Remove all button shadows globally */
.btn,
.btn[class*="btn-"],
.btn[class*="bg-gradient-"] {
    box-shadow: none !important;
}

/* Icons inside buttons inherit text color */
.btn i,
.btn .material-icons,
.btn .material-icons-round {
    color: inherit !important;
}

/* Action icons should use their text-* color classes */
.btn i.text-danger,
.btn .material-icons.text-danger,
.td-actions i.text-danger,
.td-actions .material-icons.text-danger,
.btn:hover i.text-danger,
.btn:focus i.text-danger,
.btn:active i.text-danger,
.btn-link:hover i.text-danger,
.btn-link:focus i.text-danger,
.btn-link:active i.text-danger {
    color: #ac1800 !important;
}
.btn i.text-success,
.btn .material-icons.text-success,
.td-actions i.text-success,
.td-actions .material-icons.text-success,
.btn:hover i.text-success,
.btn:focus i.text-success,
.btn:active i.text-success,
.btn-link:hover i.text-success,
.btn-link:focus i.text-success,
.btn-link:active i.text-success {
    color: #069f2f !important;
}
.btn i.text-info,
.btn .material-icons.text-info,
.td-actions i.text-info,
.td-actions .material-icons.text-info,
.btn:hover i.text-info,
.btn:focus i.text-info,
.btn:active i.text-info,
.btn:visited i.text-info,
.btn-link:hover i.text-info,
.btn-link:focus i.text-info,
.btn-link:active i.text-info {
    color: #254493 !important;
}
.btn i.text-warning,
.btn .material-icons.text-warning,
.td-actions i.text-warning,
.td-actions .material-icons.text-warning,
.btn:hover i.text-warning,
.btn:focus i.text-warning,
.btn:active i.text-warning,
.btn-link:hover i.text-warning,
.btn-link:focus i.text-warning,
.btn-link:active i.text-warning {
    color: #f2892c !important;
}
.btn i.text-primary,
.btn .material-icons.text-primary,
.td-actions i.text-primary,
.td-actions .material-icons.text-primary,
.btn:hover i.text-primary,
.btn:focus i.text-primary,
.btn:active i.text-primary,
.btn-link:hover i.text-primary,
.btn-link:focus i.text-primary,
.btn-link:active i.text-primary {
    color: #0a58ca !important;
}
.btn i.text-secondary,
.btn .material-icons.text-secondary,
.btn i.eye-icon,
.btn .material-icons.eye-icon,
.td-actions i.text-secondary,
.td-actions .material-icons.text-secondary,
.btn:hover i.text-secondary,
.btn:focus i.text-secondary,
.btn:active i.text-secondary,
.btn-link:hover i.text-secondary,
.btn-link:focus i.text-secondary,
.btn-link:active i.text-secondary,
.btn:hover i.eye-icon,
.btn:focus i.eye-icon,
.btn:active i.eye-icon,
.btn-link:hover i.eye-icon,
.btn-link:focus i.eye-icon,
.btn-link:active i.eye-icon {
    color: #545b62 !important;
}

/* Ensure white icons on colored buttons */
.btn-primary i, .btn-primary .material-icons, .btn-primary .material-icons-round,
.btn-secondary i, .btn-secondary .material-icons, .btn-secondary .material-icons-round,
.btn-success i, .btn-success .material-icons, .btn-success .material-icons-round,
.btn-danger i, .btn-danger .material-icons, .btn-danger .material-icons-round,
.btn-info i, .btn-info .material-icons, .btn-info .material-icons-round,
.btn-dark i, .btn-dark .material-icons, .btn-dark .material-icons-round,
.btn-rose i, .btn-rose .material-icons, .btn-rose .material-icons-round {
    color: #fff !important;
}

/* Primary - Darker Blue */
.btn-primary {
    color: #fff !important;
    background-color: #0a58ca !important;
    border-color: #0a58ca !important;
}
.btn-primary:hover {
    color: #fff !important;
    background-color: #084298 !important;
    border-color: #073d8a !important;
}
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    color: #fff !important;
    background-color: #073d8a !important;
    border-color: #06357a !important;
}

/* Secondary - Darker Gray */
.btn-secondary {
    color: #fff !important;
    background-color: #545b62 !important;
    border-color: #545b62 !important;
}
.btn-secondary:hover {
    color: #fff !important;
    background-color: #3d4349 !important;
    border-color: #373c41 !important;
}
.btn-secondary:focus,
.btn-secondary:active,
.btn-secondary.active {
    color: #fff !important;
    background-color: #373c41 !important;
    border-color: #31363a !important;
}

/* Success - Darker Green */
.btn-success {
    color: #fff !important;
    background-color: #146c43 !important;
    border-color: #146c43 !important;
}
.btn-success:hover {
    color: #fff !important;
    background-color: #0f5132 !important;
    border-color: #0d472b !important;
}
.btn-success:focus,
.btn-success:active,
.btn-success.active {
    color: #fff !important;
    background-color: #0d472b !important;
    border-color: #0b3d25 !important;
}

/* Danger - Darker Red */
.btn-danger {
    color: #fff !important;
    background-color: #b02a37 !important;
    border-color: #b02a37 !important;
}
.btn-danger:hover {
    color: #fff !important;
    background-color: #8c212c !important;
    border-color: #801e28 !important;
}
.btn-danger:focus,
.btn-danger:active,
.btn-danger.active {
    color: #fff !important;
    background-color: #801e28 !important;
    border-color: #741b24 !important;
}

/* Warning - Darker Yellow/Orange */
.btn-warning {
    color: #fff !important;
    background-color: #cc9a06 !important;
    border-color: #cc9a06 !important;
}
.btn-warning:hover {
    color: #fff !important;
    background-color: #a67c05 !important;
    border-color: #997204 !important;
}
.btn-warning:focus,
.btn-warning:active,
.btn-warning.active {
    color: #fff !important;
    background-color: #997204 !important;
    border-color: #8c6804 !important;
}

/* Info - Darker Cyan */
.btn-info {
    color: #fff !important;
    background-color: #0aa2c0 !important;
    border-color: #0aa2c0 !important;
}
.btn-info:hover {
    color: #fff !important;
    background-color: #087990 !important;
    border-color: #076d81 !important;
}
.btn-info:focus,
.btn-info:active,
.btn-info.active {
    color: #fff !important;
    background-color: #076d81 !important;
    border-color: #066272 !important;
}

/* Light - Darker (exception: dark text on light background) */
.btn-light,
.btn-light:hover,
.btn-light:focus,
.btn-light:active {
    color: #212529 !important;
}
.btn-light {
    background-color: #d3d4d5 !important;
    border-color: #d3d4d5 !important;
}
.btn-light:hover {
    background-color: #babcbd !important;
    border-color: #b1b3b4 !important;
}

/* Dark */
.btn-dark {
    color: #fff !important;
    background-color: #212529 !important;
    border-color: #212529 !important;
}
.btn-dark:hover {
    color: #fff !important;
    background-color: #424649 !important;
    border-color: #373b3e !important;
}

/* Outline variants - Darker colors */
.btn-outline-primary {
    color: #0a58ca !important;
    border-color: #0a58ca !important;
    background-color: transparent !important;
}
.btn-outline-primary:hover {
    color: #fff !important;
    background-color: #0a58ca !important;
    border-color: #0a58ca !important;
}

.btn-outline-secondary {
    color: #545b62 !important;
    border-color: #545b62 !important;
    background-color: transparent !important;
}
.btn-outline-secondary:hover {
    color: #fff !important;
    background-color: #545b62 !important;
    border-color: #545b62 !important;
}

.btn-outline-success {
    color: #146c43 !important;
    border-color: #146c43 !important;
    background-color: transparent !important;
}
.btn-outline-success:hover {
    color: #fff !important;
    background-color: #146c43 !important;
    border-color: #146c43 !important;
}

.btn-outline-danger {
    color: #b02a37 !important;
    border-color: #b02a37 !important;
    background-color: transparent !important;
}
.btn-outline-danger:hover {
    color: #fff !important;
    background-color: #b02a37 !important;
    border-color: #b02a37 !important;
}

.btn-outline-warning {
    color: #cc9a06 !important;
    border-color: #cc9a06 !important;
    background-color: transparent !important;
}
.btn-outline-warning:hover {
    color: #fff !important;
    background-color: #cc9a06 !important;
    border-color: #cc9a06 !important;
}

.btn-outline-info {
    color: #0aa2c0 !important;
    border-color: #0aa2c0 !important;
    background-color: transparent !important;
}
.btn-outline-info:hover {
    color: #fff !important;
    background-color: #0aa2c0 !important;
    border-color: #0aa2c0 !important;
}

.btn-outline-dark {
    color: #212529 !important;
    border-color: #212529 !important;
    background-color: transparent !important;
}
.btn-outline-dark:hover {
    color: #fff !important;
    background-color: #212529 !important;
    border-color: #212529 !important;
}

/* Material Pro btn-rose -> Darker primary */
.btn-rose {
    color: #fff !important;
    background-color: #0a58ca !important;
    border-color: #0a58ca !important;
}
.btn-rose:hover {
    color: #fff !important;
    background-color: #084298 !important;
    border-color: #073d8a !important;
}

/* Link button (exception: uses link color, not white) */
.btn-link,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
    text-transform: none !important;
}
.btn-link {
    color: #0a58ca !important;
    text-decoration: none !important;
    background-color: transparent !important;
    border-color: transparent !important;
}
.btn-link:hover {
    color: #073d8a !important;
    text-decoration: underline !important;
}

/* ================= Global ================== */
.table th,
.table td {
    white-space: nowrap;
}

ul {
    list-style-type: none;
    padding: 0;
    margin: 0;
}




/* Fix for input/textarea padding - exclude Select2 */
input[type="text"]:not(.select2-search__field),
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
textarea:not(.select2-search__field) {
    padding: 10px 12px !important;
}

li {
    margin-bottom: 0.5rem;
}

table th a span:nth-child(2) {
    font-size: 15px !important;
    position: relative;
    top: -1px;
    float: right;
    cursor: pointer;
    margin-left: 20px;
}

table i.eye-icon,
.toggle-details i.eye-icon,
i.eye-icon {
    color: #545b62 !important;
}

table th {
    color: #344767;
}

table td {
    vertical-align: middle !important;
}

/* Remove bottom margin from all buttons inside table cells */
table td .btn,
.table td .btn {
    margin-bottom: 0 !important;
}

table td.td-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

table td.td-actions .btn {
    margin-bottom: 0;
}

table td.verified-checks i {
    /* font-size: 1.1rem; */
    position: relative;
    top: 3px;
}

table td.td-actions form {
    margin: 0 !important;
    padding: 0 !important;
    display: contents;
}

/* Remove all spacing between action items */
table td.td-actions .btn,
table td.td-actions .btn-link,
table td.td-actions a.btn,
table td.td-actions button.btn {
    margin: 0 !important;
    min-width: auto !important;
    width: auto !important;
}

/* Consistent icon sizing in action columns */
table td.td-actions .material-icons,
table td.td-actions i.material-icons {
    font-size: 18px !important;
    width: 18px !important;
}

/* Action icons color - #2B44B0 (navy blue) */
.td-actions .fa-pencil,
.td-actions .fa-pencil-alt,
.td-actions .fa-pen,
.td-actions .fa-edit,
.td-actions .fa-trash,
.td-actions .fa-trash-alt,
.td-actions .fa-eye,
.td-actions .fa-chevron-right,
.td-actions .fa-chevron-left,
.td-actions .fa-chevron-up,
.td-actions .fa-chevron-down,
.td-actions .fa-copy,
.td-actions .fa-clone,
.td-actions .fa-user-secret,
.td-actions .fa-sign-in-alt,
.td-actions .material-icons,
.btn-link .fa-pencil,
.btn-link .fa-pencil-alt,
.btn-link .fa-pen,
.btn-link .fa-edit,
.btn-link .fa-trash,
.btn-link .fa-trash-alt,
.btn-link .fa-eye,
.btn-link .fa-copy,
.btn-link .fa-clone,
.btn-link .fa-user-secret,
.btn-link .material-icons,
a.text-primary .fa,
a.text-primary .fas,
a.text-primary .far,
a.text-primary .material-icons,
button.btn-link i.fas,
button.btn-link i.far,
button.btn-link i.fa {
    color: #2B44B0 !important;
}

/* Keep trash/delete icons red */
.td-actions .fa-trash,
.td-actions .fa-trash-alt,
.btn-link .fa-trash,
.btn-link .fa-trash-alt,
form[onsubmit*="confirm"] .fa-trash,
form[onsubmit*="confirm"] .fa-trash-alt,
.text-danger .fa-trash,
.text-danger .fa-trash-alt,
.text-danger.fa-trash,
.text-danger.fa-trash-alt {
    color: #dc3545 !important;
}

/* Prevent small text from shrinking inside badges */
.badge small,
.badge .small {
    font-size: 1em;
}

.event-submission-table-wrapper table td.td-actions form {
    margin-right: 0px;
    display: contents;
}

table>thead>tr>th {
    padding: 5px !important;
}

table>thead>tr>th:not(:last-child) {
    padding-right: 7px !important;
}

table.table-invoice th {
    font-size: 15px !important;
    padding: 10px !important;
}

table.table-invoice td {
    font-size: 15px !important;
    padding: 10px !important;
}

.table-responsive {
    margin-top: 6px !important;
}

.judges-orientation-table td:first-child,
.judges-orientation-table td:nth-child(2) {
    vertical-align: top !important;
}

.judges-orientation-table td:nth-child(4) {
    border-top: 0px !important;
    border-bottom: 0px !important;
}

.judges-orientation-table tr {
    border-top: 1px solid rgb(240, 242, 245) !important;
}

.judges-orientation-table tr:first-child {
    border-top: 0px !important;
}

i.info-icon {
    font-size: 15px;
    position: relative;
    top: 2px;
}

label.col-form-label {
    margin-left: 0;
}

@media(max-width: 767px) {
    label.col-form-label {
        flex: 0 0 100%;
        max-width: 100%;
        text-align: left !important;
        color: #000000;
        justify-content: start !important;

    }

    label.col-form-label+.col-sm-10 {
        flex: 0 0 100%;
        max-width: 100%;
        text-align: left !important;
        color: #000000;
        justify-content: start !important;

    }
}

/* ================= Global classes ================== */
@media (min-width: 768px) {
    .drop-perpage + span.text-muted {
        white-space: pre;
    }
}
.w-max-content{
    width: max-content;
}
.drop-perpage{
    width: auto;
    min-width: 57px;
    border: 1px solid #e0e0e0;
    padding-left: 6px;
    font-weight: 500;
    appearance: auto;
        -webkit-appearance: auto;
        -moz-appearance: auto;

}
.drop-perpage:focus,
.drop-perpage:active {
    border: 1px solid #e0e0e0;
}
.sidenav .navbar-nav {
    padding-bottom: 200px;
}
.navbar-vertical .navbar-brand>img,
.navbar-vertical .navbar-brand-img {
    max-height: unset;
    width: 100%;
}

.sidenav-header {
    display: flex;
    align-items: center;
}

body.g-sidenav-hidden .sidenav-header a{
    padding: 12px 6px;
}
.navbar-brand img{
    max-width: 188px;
}
@media (max-width: 767px) {
    .navbar-brand {
        margin: 0px !important;
    }
}

.login-nav-links {
    padding-right: 202px;
}



li.nav-item .sidenav-normal {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

@media (min-width: 991px) {
    .w-md-max-content {
        width: max-content;
    }
}

.min-h-53vh {
    min-height: 53vh;
}

.loading {
    animation: spin 1s linear infinite;
}

.td-overflow-400 {
    max-width: 370px !important;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.ck-editor{
    width: 100% !important;
}

/* Payment table invoice cell responsive truncation */
.payment-invoice-cell {
    max-width: 300px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.payment-invoice-cell a {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-decoration: none;
}

.payment-invoice-cell a:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .payment-invoice-cell {
        max-width: 200px;
    }
}

@media (max-width: 576px) {
    .payment-invoice-cell {
        max-width: 150px;
    }
}

.max-content {
    width: -webkit-max-content;
    width: -moz-max-content;
    width: max-content;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

table th span:nth-child(2) {
    color: #7b809a;
}

table th a:hover span {
    color: #e91e63;
}

table .disabled-sorting:before,
table .disabled-sorting:after {
    display: none !important;
}

.form-group {
    margin-bottom: 16px;
}

.form-switch .toggle {
    margin-right: 9px;
}

.choices[data-type*='select-multiple'] .choices__inner input {
    width: 100% !important;
}

.choices[data-type*='select-one'] {
    margin-bottom: 0;
}

.choices[data-type*='select-one'] .choices__inner {
    padding: 0;
    align-items: end;
    border-radius: 0 !important;
}

form.dropzone {
    min-height: 45px;
    padding: 10px;
}

@media(min-width: 576px) {
    form.dropzone {
        max-height: 32px;
        padding: 5px;
        min-height: 32px;
    }
}

.choices .choices__list--single .choices__placeholder {
    opacity: 1 !important;
}

.required .choices .choices__placeholder::after {
    content: " *";
    color: #F44335;
}

.choices .choices__list.choices__list--single .choices__item--selectable form.dropzone .dz-default.dz-message {
    margin: 0;
}

.choices[data-type*='select-one']:after {
    font-family: 'Font Awesome 5 Free';
    font-weight: 700;
    content: "\f107";
    margin-left: auto;
    color: #7b8098de;
    transition: all 0.2s ease-in-out;
}

/* ================= Custom Checkbox ================== */
.custom-toggle {
    cursor: pointer;
    position: relative;
    width: 200px;
    height: 50px;
    background-color: #f44335;
    border-radius: 25px;
    transition: background-color 0.3s ease;
}

.custom-toggle.active {
    background-color: #4caf50;
}

.toggle-handle {
    position: absolute;
    top: 5px;
    left: 5px;
    width: 40px;
    height: 40px;
    background-color: white;
    border-radius: 50%;
    transition: transform 0.3s ease;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.custom-toggle.active .toggle-handle {
    transform: translateX(150px);
}

.toggle-text {
    position: absolute;
    top: 56%;
    transform: translateY(-50%);
    color: white;
    font-weight: bold;
    font-size: 18px;
    transition: opacity 0.3s ease;
}

.yes-text {
    left: 25px;
    opacity: 0;
}

.no-text {
    right: 25px;
    opacity: 1;
}

.custom-toggle.active .yes-text {
    opacity: 1;
}

.custom-toggle.active .no-text {
    opacity: 0;
}

input.toggle-checkbox {
    width: 100%;
    height: 100%;
    z-index: 1;
    position: relative;
    opacity: 0;
}

/* For demonstration, adding a second toggle that's compact */
.toggle-compact {
    width: 80px;
    height: 30px;
}

.toggle-compact .toggle-handle {
    width: 22px;
    height: 22px;
    top: 4px;
}

.toggle-compact.active .toggle-handle {
    transform: translateX(48px);
}

.toggle-compact .yes-text,
.toggle-compact .no-text {
    font-size: 12px;
}

.toggle-compact .yes-text {
    left: 13px;
}

.toggle-compact .no-text {
    right: 13px;
}

.new-form-check .form-check-input[type="checkbox"] {
    position: relative !important;
}

.new-form-check .form-check-input[type="checkbox"]:after {
    content: '' !important;
    position: absolute !important;
    left: 6px !important;
    top: 2px !important;
    width: 6px !important;
    height: 11px !important;
    border: solid white !important;
    border-width: 0 3px 3px 0 !important;
    transform: rotate(45deg) !important;
    display: none !important;
}

.new-form-check .form-check-input[type="checkbox"]:checked:after {
    display: block !important;
}

/* ================= Checkbox Checkmark Fix ================== */
/* Override FontAwesome-based checkmark with pure CSS checkmark */
.form-check:not(.form-switch) .form-check-input[type="checkbox"]:after {
    font-family: inherit !important;
    content: '' !important;
    position: absolute !important;
    left: 5px !important;
    top: 1px !important;
    width: 6px !important;
    height: 12px !important;
    border: solid white !important;
    border-width: 0 2px 2px 0 !important;
    transform: rotate(45deg) !important;
    display: none !important;
    opacity: 1 !important;
}

.form-check:not(.form-switch) .form-check-input[type="checkbox"]:checked:after {
    display: block !important;
}

/* ================= Modal ================== */
.modal .col-form-label {
    text-align: left !important;
    color: #000000;
    justify-content: start !important;
    position: relative !important;
    top: 0 !important;
}

.modal .dropdown-toggle {
    margin: 0 !important;
}

ul.pagination {
    flex-wrap: wrap;
    justify-content: center;
}

.upload-rubric .bootstrap-select {
    width: 100% !important;
    max-width: 340px;
}

.custom-file-label {
    border: 1px solid #d2d2d2;
    border-radius: 5px;
    display: flex;
    align-items: center;
    max-width: 340px;
}

.custom-file-label:after {
    display: flex;
    align-items: center;
}

.btn-circle {
    border-radius: 50%;
    width: 27.6px;
    height: 27.1px;
    padding: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
    text-align: center;
}

.alert .close {
    color: #fff;
    position: absolute;
    top: 4px;
    right: 15px;
    font-size: 22px;
    cursor: pointer;
}

/* ------------------- Bootstrap Alert Box Styles ------------------- */
/* All alert boxes should have white text on colored backgrounds */
.alert-success {
    position: relative;
    background-color: #28a745 !important;
    color: #ffffff !important;
}

.alert-success .material-icons {
    color: #fff !important;
    font-size: 1.5rem;
}

.alert-success li {
    padding: 4px 0;
    font-size: 0.9rem;
    color: #ffffff !important;
}

.alert-info {
    background-color: #17a2b8 !important;
    color: #ffffff !important;
    border-color: #17a2b8 !important;
}

.alert-info .material-icons {
    color: #ffffff !important;
}

.alert-danger {
    background-color: #dc3545 !important;
    color: #ffffff !important;
    border-color: #dc3545 !important;
}

.alert-danger .material-icons {
    color: #ffffff !important;
}

.alert-warning {
    background-color: #ffc107 !important;
    color: #ffffff !important;
    border-color: #ffc107 !important;
}

.alert-warning .material-icons {
    color: #ffffff !important;
}

/* Orange/Secondary alerts */
.alert-secondary {
    background-color: #fd7e14 !important;
    color: #ffffff !important;
    border-color: #fd7e14 !important;
}

.alert-secondary .material-icons {
    color: #ffffff !important;
}

/* Ensure text-light class works in alerts */
.alert .text-light {
    color: #ffffff !important;
}

/* Grid System */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

/* @media(min-width: 992px) {
    .col-md-6,
    .col-lg-6 {
        width: 50% !important;
        padding-left: 15px;
        padding-right: 15px;
    }
} */

.col-xs-12 {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
}



/* ================= CUSTOM THEME STYLING ================== */

/* Sidebar text - dark gray, medium weight */
.sidenav .nav-link,
.sidenav .nav-link span,
.sidenav .nav-link .nav-link-text,
.sidenav .sidenav-normal,
.sidenav .sidenav-mini-icon {
    color: #344767 !important;
    font-weight: 500 !important;
}

/* Sidebar icons - navy */
.sidenav .nav-link i,
.sidenav .nav-link .material-icons {
    color: #182A54 !important;
}

/* Active menu items with navy background - ALL children white */
.sidenav .nav-link.active.bg-primary,
.sidenav .nav-link.active.bg-primary > *,
.sidenav .nav-link.active.bg-primary span,
.sidenav .nav-link.active.bg-primary i,
.sidenav .nav-link.active.bg-primary .material-icons,
.sidenav .nav-link.active.bg-primary .nav-link-text,
.sidenav .nav-link.active.bg-primary .sidenav-normal,
.sidenav .nav-link.active.bg-primary .sidenav-mini-icon,
.sidenav .collapse .nav-link.active.bg-primary,
.sidenav .collapse .nav-link.active.bg-primary > *,
.sidenav .collapse .nav-link.active.bg-primary span,
.sidenav .collapse .nav-link.active.bg-primary .sidenav-normal,
.sidenav .collapse .nav-link.active.bg-primary .sidenav-mini-icon {
    color: #ffffff !important;
}

/* Hover effect */
.sidenav .nav-link:hover {
    background-color: #f0f4f8 !important;
    border-radius: 0.375rem;
}

/* Divider lines */
.sidenav hr.horizontal.dark {
    background-color: #e0e0e0 !important;
}

/* Button shadows - removed */
.btn-primary,
.btn.bg-gradient-primary,
.btn-primary:hover,
.btn.bg-gradient-primary:hover {
    box-shadow: none !important;
}

/* Main page text - darker */
.main-panel,
.main-panel p,
.main-panel span,
.main-panel td,
.main-panel label,
.main-panel .card-body,
.main-panel .form-control,
.table td,
.table th,
.card-body {
    color: #344767 !important;
}

/* Override text-dark on active sub-items */
.sidenav .nav-link.text-dark.active,
.sidenav .nav-link.text-dark.active span,
.sidenav .nav-link.text-dark.active .sidenav-mini-icon,
.sidenav .nav-link.text-dark.active .sidenav-normal,
.sidenav .collapse .nav-link.text-dark.active,
.sidenav .collapse .nav-link.text-dark.active span,
.sidenav .collapse .nav-link.text-dark.active .sidenav-mini-icon,
.sidenav .collapse .nav-link.text-dark.active .sidenav-normal {
    color: #ffffff !important;
}

/* Parent menu items with active but no bg-primary should be dark */
.sidenav > .navbar-collapse > .navbar-nav > .nav-item > .nav-link.text-dark.active:not(.bg-primary),
.sidenav > .navbar-collapse > .navbar-nav > .nav-item > .nav-link.text-dark.active:not(.bg-primary) span,
.sidenav > .navbar-collapse > .navbar-nav > .nav-item > .nav-link.text-dark.active:not(.bg-primary) i {
    color: #344767 !important;
}

/* Only sub-items inside collapse with active AND bg-gradient-primary should be white */
.sidenav .collapse .nav .nav-item .nav-link.text-dark.active.bg-gradient-primary,
.sidenav .collapse .nav .nav-item .nav-link.text-dark.active.bg-gradient-primary span,
.sidenav .collapse .nav .nav-item .nav-link.text-dark.active.bg-gradient-primary .sidenav-mini-icon,
.sidenav .collapse .nav .nav-item .nav-link.text-dark.active.bg-gradient-primary .sidenav-normal {
    color: #ffffff !important;
}

/* Fix: When nav-item has .active class WITH bg-gradient-primary, make child nav-link text white */
.sidenav .collapse .nav .nav-item.active .nav-link.bg-gradient-primary.text-dark,
.sidenav .collapse .nav .nav-item.active .nav-link.bg-gradient-primary.text-dark span,
.sidenav .collapse .nav .nav-item.active .nav-link.bg-gradient-primary.text-dark .sidenav-mini-icon,
.sidenav .collapse .nav .nav-item.active .nav-link.bg-gradient-primary.text-dark .sidenav-normal,
.sidenav .collapse .nav .nav-item .nav-link.active.bg-gradient-primary.text-dark,
.sidenav .collapse .nav .nav-item .nav-link.active.bg-gradient-primary.text-dark span,
.sidenav .collapse .nav .nav-item .nav-link.active.bg-gradient-primary.text-dark .sidenav-mini-icon,
.sidenav .collapse .nav .nav-item .nav-link.active.bg-gradient-primary.text-dark .sidenav-normal {
    color: #ffffff !important;
}

/* Fix hover on active bg-primary items - dark text */
.sidenav .nav-link.active.bg-primary:hover,
.sidenav .nav-link.active.bg-primary:hover span,
.sidenav .nav-link.active.bg-primary:hover i,
.sidenav .nav-link.active.bg-primary:hover .material-icons,
.sidenav .nav-link.active.bg-primary:hover .nav-link-text {
    color: #344767 !important;
}

/* Slightly darker page background */
.main-panel {
    background-color: #f4f5f7 !important;
}
.main-panel .content {
    background-color: #f4f5f7 !important;
}

/* Darker page background */
.main-panel {
    background-color: #e8ebef !important;
}
.main-panel .content {
    background-color: #e8ebef !important;
}

/* Even darker page background */
.main-panel {
    background-color: #d8dde3 !important;
}
.main-panel .content {
    background-color: #d8dde3 !important;
}

/* Darker page background */
body, html, .wrapper, .main-panel, .main-panel > .content, .g-sidenav-show {
    background-color: #d8dde3 !important;
}

/* Darker dropdown chevron on sidebar */
.sidenav .nav-link[data-bs-toggle="collapse"]:after,
.sidenav .nav-link[aria-expanded]:after {
    color: #344767 !important;
}

/* Fix pink hover/focus states for btn-primary */
.btn-primary:hover {
    color: #fff !important;
    background-color: #084298 !important;
    border-color: #073d8a !important;
}

.btn-primary:focus {
    color: #fff !important;
    background-color: #084298 !important;
    border-color: #073d8a !important;
    box-shadow: none !important;
}

.btn-primary:active,
.btn-primary.active {
    color: #fff !important;
    background-color: #073d8a !important;
    border-color: #06357a !important;
}

/* ================= Date/DateTime Picker - Box Style with Hidden Native Icon ================== */
input[type="date"],
input[type="datetime-local"] {
    border: 1px solid #d2d6da !important;
    border-radius: 0.375rem !important;
    padding: 10px 12px !important;
    background-image: none !important;
}

/* Hide the native date picker icon - we'll use Material Icons instead */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    display: none;
    -webkit-appearance: none;
}

/* Remove the underline from input-group-static for date inputs */
.input-group-static input[type="date"],
.input-group-static input[type="datetime-local"] {
    background-image: none !important;
}

/* ================= Darker Body Text Color ================== */
body,
.main-content,
.card-body,
p,
span,
label,
td,
th {
    color: #344767 !important;
}

/* Preserve white text on dark backgrounds */
.bg-dark,
.bg-gradient-dark,
.bg-gradient-primary,
.bg-gradient-info,
.bg-gradient-success,
.bg-gradient-warning,
.bg-gradient-danger,
.navbar-dark,
.sidenav,
.btn-primary,
.btn-dark,
.badge-primary,
.badge-dark {
    color: #fff !important;
}

/* Preserve muted/secondary text where intentional */
/* High specificity to override table td color rules */
.text-muted,
.text-secondary,
td .text-muted,
td .text-secondary,
.table td .text-muted,
.table td .text-secondary,
.table tbody td .text-muted,
.table tbody td .text-secondary {
    color: #6c757d !important;
}

/* FilePond file preview text - white */
.filepond--file-info,
.filepond--file-info-main,
.filepond--file-info-sub {
    color: #fff !important;
}


/* Force Chrome repaint to fix blurry text */
.filepond--file-wrapper {
    filter: blur(0) !important;
    -webkit-filter: blur(0) !important;
}

.filepond--item {
    filter: blur(0) !important;
    -webkit-filter: blur(0) !important;
}

/* Disable blur effects that cause fuzzy text */
.blur,
.blur.saturation-less,
.blur.blur-rounded,
.blur.blur-light,
.blur.blur-dark,
.shadow-blur,
.navbar-blur,
.blur-section,
.blur-section.blur-gradient-primary,
nav.navbar.blur,
#navbarBlur.blur {
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    filter: none !important;
}

/* Fix blurry dropdown text - replace 3D transforms with 2D positioning */
.dropdown .dropdown-menu.show,
.dropdown.dropdown-hover:hover > .dropdown-menu {
    transform: none !important;
    top: 100% !important;
    margin-top: 8px !important;
}

.choices__list--dropdown.is-active {
    transform: none !important;
    top: 100% !important;
    margin-top: 8px !important;
}

.choices__list--dropdown {
    transform: none !important;
}


/* Table header sortable links */
.table thead th a,
.table thead th a span,
thead.text-primary th a,
thead.text-primary th a span {
    color: #344767 !important;
}

/* Button link text - white */
.btn span,
.btn-primary span,
.btn-success span,
.btn-warning span,
.btn-info span,
.btn-danger span,
.btn-dark span,
a.btn span {
    color: #fff !important;
}

/* Bulk delete button - selected count white */
#bulkDeleteBtn,
#bulkDeleteBtn span,
#selectedCount {
    color: #fff !important;
}

/* ================= Pagination - Active Page White Text ================== */
.page-item.active .page-link,
.pagination .page-item.active .page-link,
.pagination .page-item.active .page-link:hover,
.pagination .page-item.active .page-link:focus {
    color: #fff !important;
}

/* ================= Sidebar - Hide Scrollbar Until Needed ================== */
.sidenav,
.navbar-vertical.navbar-expand-xs,
.navbar-vertical.navbar-expand-xs .navbar-collapse {
    overflow-y: auto;
    scrollbar-width: thin; /* Firefox */
    scrollbar-color: transparent transparent; /* Firefox - hidden by default */
}

/* Show scrollbar on hover */
.sidenav:hover,
.navbar-vertical.navbar-expand-xs:hover,
.navbar-vertical.navbar-expand-xs .navbar-collapse:hover {
    scrollbar-color: rgba(0,0,0,0.2) transparent; /* Firefox - visible on hover */
}

/* Webkit browsers (Chrome, Safari, Edge) */
.sidenav::-webkit-scrollbar,
.navbar-vertical.navbar-expand-xs::-webkit-scrollbar,
.navbar-vertical.navbar-expand-xs .navbar-collapse::-webkit-scrollbar {
    width: 6px;
}

.sidenav::-webkit-scrollbar-track,
.navbar-vertical.navbar-expand-xs::-webkit-scrollbar-track,
.navbar-vertical.navbar-expand-xs .navbar-collapse::-webkit-scrollbar-track {
    background: transparent;
}

.sidenav::-webkit-scrollbar-thumb,
.navbar-vertical.navbar-expand-xs::-webkit-scrollbar-thumb,
.navbar-vertical.navbar-expand-xs .navbar-collapse::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 3px;
}

/* Show scrollbar thumb on hover */
.sidenav:hover::-webkit-scrollbar-thumb,
.navbar-vertical.navbar-expand-xs:hover::-webkit-scrollbar-thumb,
.navbar-vertical.navbar-expand-xs .navbar-collapse:hover::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.2);
}

/* ================= Sidebar - Make Sidebar 20px Wider ================== */
.navbar-vertical.navbar-expand-xs {
    max-width: 16.875rem !important; /* 270px instead of 250px */
}

@media (min-width: 1200px) {
    .sidenav {
        max-width: 16.875rem !important;
    }
    .sidenav:hover {
        max-width: 16.875rem !important;
    }
    .sidenav.fixed-start + .main-content {
        margin-left: 18.375rem !important; /* 294px instead of 274px */
    }
    .navbar-main.fixed-top {
        width: calc(100% - (16.875rem + 1.5rem * 3)) !important;
    }
}

/* ================= Sidebar - Allow Long Menu Items to Wrap ================== */
.sidenav .nav-link .nav-link-text,
.sidenav .nav-link span.nav-link-text {
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
    line-height: 1.3;
    flex: 1;
    min-width: 0;
}

/* Ensure nav-link uses flexbox for proper alignment */
.sidenav .nav-link {
    display: flex;
    align-items: center;
}

/* Collapsible menu items - chevron vertically centered */
.sidenav .nav-link[data-bs-toggle="collapse"] {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.sidenav .nav-link[data-bs-toggle="collapse"]::after {
    flex-shrink: 0;
    margin-left: auto;
    align-self: center;
}

/* ================= Schedule Upload Progress Bar ================== */
#progressBarWrap .progress {
    height: 20px;
}

/* ================= Admin Statistics - White Text on Colored Bars ================== */
.progress-bar,
.bg-gradient-primary,
.bg-gradient-secondary,
.bg-gradient-success,
.bg-gradient-danger,
.bg-gradient-warning,
.bg-gradient-info,
.bg-gradient-dark {
    color: #fff !important;
}

.progress-bar span,
.progress-bar small,
.bg-gradient-primary span,
.bg-gradient-secondary span,
.bg-gradient-success span,
.bg-gradient-danger span,
.bg-gradient-warning span,
.bg-gradient-info span,
.bg-gradient-dark span {
    color: #fff !important;
}

/* Stats info text on colored backgrounds */
.card .bg-gradient-primary *,
.card .bg-gradient-secondary *,
.card .bg-gradient-success *,
.card .bg-gradient-danger *,
.card .bg-gradient-warning *,
.card .bg-gradient-info *,
.card .bg-gradient-dark * {
    color: #fff !important;
}

/* Statistics page colored bars - force white text */
.chapters-stats div[style*="background"] span,
.chapters-stats div[style*="background"] span.text-sm,
.chapters-stats .position-absolute.text-sm,
.chapters-stats .d-flex span,
.chapters-stats .d-flex .text-sm,
.chapters-stats span.text-sm,
.chapters-stats span[style*="color"] {
    color: #fff !important;
}

/* ================= Quickbooks Quick Select Buttons ================== */
.quick-select-btn,
.btn-quick-select {
    margin: 2px 4px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Button group spacing */
.btn-group .btn + .btn,
.btn-group-sm .btn + .btn {
    margin-left: 4px !important;
}

/* ================= Badges, Tags - Text Centering ================== */
.badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    vertical-align: middle !important;
    color: #fff !important;
}

/* Ensure all badge variants have white text and proper backgrounds */
/* High specificity to override table td color rules */
.badge.bg-primary,
td .badge.bg-primary,
.table td .badge.bg-primary {
    background-color: #e91e63 !important;
    color: #fff !important;
}
.badge.bg-secondary,
td .badge.bg-secondary,
.table td .badge.bg-secondary {
    background-color: #7b809a !important;
    color: #fff !important;
}
.badge.bg-success,
td .badge.bg-success,
.table td .badge.bg-success,
.judges-orientation-table td .badge.bg-success {
    background-color: #4caf50 !important;
    color: #fff !important;
}
.badge.bg-danger,
td .badge.bg-danger,
.table td .badge.bg-danger,
.judges-orientation-table td .badge.bg-danger {
    background-color: #f44336 !important;
    color: #fff !important;
}
.badge.bg-warning,
td .badge.bg-warning,
.table td .badge.bg-warning {
    background-color: #fb8c00 !important;
    color: #fff !important;
}
.badge.bg-info,
td .badge.bg-info,
.table td .badge.bg-info {
    background-color: #1a73e8 !important;
    color: #fff !important;
}
.badge.bg-dark,
td .badge.bg-dark,
.table td .badge.bg-dark {
    background-color: #344767 !important;
    color: #fff !important;
}

/* Ensure badge child elements also get white text (except badge-dot which uses colored dots with dark text) */
.badge:not(.badge-dot) span,
.badge:not(.badge-dot) small,
td .badge:not(.badge-dot) span,
td .badge:not(.badge-dot) small,
.table td .badge:not(.badge-dot) span,
.table td .badge:not(.badge-dot) small {
    color: #fff !important;
}

/* ================= Index Page Search Button Responsiveness ================== */
/* Search button container - always right aligned on desktop */
#additional-search-form .row .col-md-3:last-child,
.card-body form .row > div:last-child:has(.btn) {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-end !important;
}


@media (max-width: 767px) {
    /* On mobile, search button goes full width below other fields */
    #additional-search-form .row .col-md-3:last-child,
    .card-body form .row > div:last-child:has(.btn) {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-top: 12px !important;
        justify-content: flex-start !important;
    }

    #additional-search-form .row .col-md-3:last-child .btn,
    .card-body form .row > div:last-child .btn {
        margin-left: 0 !important;
    }
}

/* ================= Nav Pills - Custom Styling ================== */
/* Remove card-like wrapper styling */
.nav-wrapper {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.nav.nav-pills,
.nav-wrapper .nav.nav-pills {
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Nav pills - text-sized with horizontal padding */
.nav.nav-pills .nav-item {
    margin: 0 5px !important;
}

.nav.nav-pills .nav-link,
.nav.nav-pills.nav-fill .nav-link,
.nav-wrapper .nav.nav-pills .nav-link {
    border-radius: 0.25rem !important;
    box-shadow: none !important;
    background-color: #e9ecef !important;
    background: #e9ecef !important;
    color: #344767 !important;
    font-weight: 500 !important;
    padding: 8px 15px !important;
}

/* Active pill - navy background with white text */
.nav.nav-pills .nav-link.active,
.nav.nav-pills .nav-link.active:hover,
.nav.nav-pills .nav-link.active:focus,
.nav.nav-pills.nav-fill .nav-link.active,
.nav-wrapper .nav.nav-pills .nav-link.active {
    background-color: #182A54 !important;
    background: #182A54 !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* Hover state for inactive pills */
.nav.nav-pills .nav-link:hover:not(.active),
.nav.nav-pills.nav-fill .nav-link:hover:not(.active) {
    background-color: #dee2e6 !important;
    background: #dee2e6 !important;
    color: #344767 !important;
}

/* Remove any moving indicator/slider effect */
.nav.nav-pills .moving-tab,
.nav-wrapper .moving-tab,
.moving-tab,
.nav-pills > .moving-tab,
ul.nav-pills .moving-tab,
.moving-tab.position-absolute,
.moving-tab.nav-link {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
}

/* Responsive nav-pills - wrap and add gap on small screens */
.nav-pills-responsive {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    width: auto !important;
}

.nav-pills-responsive .nav-item {
    margin: 0 !important;
}

/* Full width pills on small/medium screens - ensure spacing when stacking */
@media (max-width: 1199.98px) {
    .nav-wrapper {
        width: 100% !important;
    }
    .nav-pills-responsive {
        width: 100% !important;
        flex-direction: column !important;
    }
    .nav-pills-responsive .nav-item {
        width: 100% !important;
        flex: none !important;
        margin-bottom: 0.5rem !important;
    }
    .nav-pills-responsive .nav-item:last-child {
        margin-bottom: 0 !important;
    }
    .nav-pills-responsive .nav-item .nav-link {
        text-align: center !important;
        width: 100% !important;
    }
}

/* Ensure non-active tab panes are properly hidden */
.tab-content {
    position: relative !important;
}

.tab-content > .tab-pane:not(.active):not(.show) {
    display: none !important;
    visibility: hidden !important;
    position: absolute !important;
    left: -9999px !important;
}

.tab-content > .tab-pane.active,
.tab-content > .tab-pane.show {
    display: block !important;
}

/* Remove pseudo-element squares from dropdown menus */
.dropdown-menu::before,
.dropdown-menu::after,
.dropdown-item::before,
.dropdown-item::after,
.nav-pills .dropdown-menu::before,
.nav-pills .dropdown-menu::after {
    display: none !important;
    content: none !important;
}

/* ================= Breadcrumb Styling ================== */
/* Make breadcrumb text navy to match rest of site */
.breadcrumb-item,
.breadcrumb-item a,
.breadcrumb-item.active,
nav[aria-label="breadcrumb"] .breadcrumb-item,
nav[aria-label="breadcrumb"] .breadcrumb-item a {
    color: #182A54 !important;
}

.breadcrumb-item + .breadcrumb-item::before {
    color: #182A54 !important;
}

/* Page header title - ensure navy color */
.page-header-container h6,
.navbar h6.font-weight-bolder {
    color: #182A54 !important;
}

/* ================= Action Item Link Styling ================== */
/* Remove black underline on action item clicks */
.td-actions a,
.td-actions button,
.btn-link,
a.btn-link {
    text-decoration: none !important;
    border-bottom: none !important;
}

.td-actions a:hover,
.td-actions a:focus,
.td-actions a:active,
.td-actions button:hover,
.td-actions button:focus,
.td-actions button:active,
.btn-link:hover,
.btn-link:focus,
.btn-link:active {
    text-decoration: none !important;
    border-bottom: none !important;
    outline: none !important;
}

/* ================= Card and Sidebar Border Radius ================== */
/* Make cards less rounded and remove shadow */
.card {
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}


.card-header {
    border-radius: 0.5rem 0.5rem 0 0 !important;
}

/* Make sidebar less rounded and remove shadow */
.sidenav,
#sidenav-main {
    border-radius: 0.5rem !important;
    box-shadow: none !important;
}

/* ================= Yearly Reports Card Spacing ================== */
/* Fix card spacing on yearly reports page */
.container-fluid .container-fluid {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* ================= Edit Registration Text Color ================== */
/* Fix lighter text in edit registration page */
.accordion-body {
    opacity: 1 !important;
}

.accordion-body.opacity-8 {
    opacity: 1 !important;
}

/* Ensure consistent text color in accordion bodies */
.accordion-body .text-sm {
    color: #344767 !important;
}

/* ================= Modal Z-Index Fix ================== */
/* Ensure modals appear above sidebar and nav elements */
/* Sidenav has z-index: 9999, so modal needs to be above that */
.modal-backdrop,
.modal-backdrop.show {
    z-index: 10000 !important;
}

.modal,
.modal.show {
    z-index: 10001 !important;
}

.modal-dialog {
    z-index: 10001 !important;
    display: flex !important;
    align-items: center !important;
    min-height: calc(100% - 1rem) !important;
    margin: 0.5rem auto !important;
}

.modal-content {
    z-index: 10001 !important;
    pointer-events: auto !important;
}

/* Reset z-index on main-content children to avoid stacking context issues */
body.modal-open .main-content * {
    z-index: auto;
}

/* Ensure modals inside main-content also get proper z-index */
body.modal-open .main-content .modal,
body.modal-open .main-content .modal-dialog,
body.modal-open .main-content .modal-content {
    z-index: 10001 !important;
}


/* Ensure nav-pills tabs don't appear above modal backdrop */
.nav.nav-pills .nav-link,
.nav.nav-pills .nav-item {
    z-index: auto !important;
}

/* Cards should not create stacking context that interferes with modals */
.card {
    z-index: auto;
}

/* ================= Event Form Padding ================== */
/* Fix add new event page card padding to match other pages */
.events-form .container-fluid,
form[action*="events"] .container-fluid {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

/* ================= Tooltips - Larger and Faster ================== */
/* Make tooltips appear faster */
.tooltip {
    transition: opacity 0.1s ease-in-out !important;
}

/* Make tooltip text larger and more readable */
.tooltip-inner {
    font-size: 14px !important;
    padding: 8px 12px !important;
    max-width: 300px !important;
    text-align: left !important;
}

/* Native title attribute tooltip styling (CSS-only approach) */
[title] {
    position: relative;
}

/* For browsers that support it, we can style the title delay */
[data-bs-toggle="tooltip"],
[data-original-title],
.td-actions [title],
.td-actions [data-original-title] {
    cursor: pointer;
}

/* ================= Dark Purple Color for Reset Password Icon ================== */
.text-purple,
.material-icons.text-purple {
    color: #7b1fa2 !important;
}

/* ================= Dark Orange Color for Login As Icon ================== */
.text-dark-orange,
.material-icons.text-dark-orange {
    color: #e65100 !important;
}

/* ================= Email Count Badge - Always White Text ================== */
/* Override the global a:hover { color: #182A54 } from material-dashboard.css */
/* Using highest specificity with multiple selectors */
span.email-count-badge[style],
.email-count-badge[style],
a:hover span.email-count-badge[style],
.sidenav a:hover span.email-count-badge,
.sidenav .nav-item a:hover span.email-count-badge,
body.g-sidenav-show .sidenav .nav-item a:hover span.email-count-badge,
body.g-sidenav-show .sidenav .navbar-nav .nav-item a.nav-link:hover span.email-count-badge {
    color: #ffffff !important;
}

.email-count-badge,
span.email-count-badge,
a .email-count-badge,
a:hover .email-count-badge,
a:focus .email-count-badge,
a:active .email-count-badge,
a:visited .email-count-badge,
a:link .email-count-badge,
.nav-link .email-count-badge,
.nav-link:hover .email-count-badge,
.nav-link:focus .email-count-badge,
.sidenav .email-count-badge,
.sidenav a .email-count-badge,
.sidenav a:hover .email-count-badge,
.sidenav .nav-link .email-count-badge,
.sidenav .nav-link:hover .email-count-badge,
.sidenav .nav-item a:hover .email-count-badge,
.sidenav .nav-item .nav-link:hover .email-count-badge,
.navbar-nav .nav-link:hover .email-count-badge,
.g-sidenav-show .sidenav a:hover .email-count-badge,
body a:hover .email-count-badge,
body a:hover span.email-count-badge {
    color: #ffffff !important;
}

/* ================= NO DROP SHADOWS - GLOBAL ================== */
/* Remove all box shadows from elements */
img,
.img-fluid,
.img-thumbnail,
.card img,
.modal img,
.question-image,
.answer-image,
figure img,
picture img,
[class*="shadow"],
.shadow,
.shadow-sm,
.shadow-lg,
.shadow-none,
.box-shadow {
    box-shadow: none !important;
}

/* Remove card shadows */
.card {
    box-shadow: none !important;
}

/* Remove button shadows */
.btn {
    box-shadow: none !important;
}

/* Remove form control shadows */
.form-control:focus,
.form-select:focus,
input:focus,
textarea:focus,
select:focus {
    box-shadow: none !important;
}

/* Remove modal shadows */
.modal-content {
    box-shadow: none !important;
}

/* Dropdown menu styling */
.dropdown-menu {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
    z-index: 9999 !important;
}

/* Ensure nav-pills dropdowns appear above cards and tab content */
.nav-pills .dropdown-menu,
.nav-wrapper .dropdown-menu,
.nav.nav-pills .dropdown-menu {
    z-index: 9999 !important;
}

/* Nav pills container must have higher z-index than tab content */
.nav-wrapper,
.nav.nav-pills {
    position: relative !important;
    z-index: 1060 !important;
}

/* Ensure tab content doesn't create stacking context that clips dropdowns */
.tab-content {
    position: relative !important;
    z-index: 1 !important;
    overflow: visible !important;
}

.tab-pane {
    overflow: visible !important;
}

/* Dropdown within nav-pills - keep relative positioning for correct placement */
.nav-pills .dropdown,
.nav.nav-pills .dropdown,
.nav-pills .nav-item.dropdown {
    position: relative !important;
}

.nav-pills .dropdown-menu.show,
.nav.nav-pills .dropdown-menu.show {
    position: absolute !important;
    z-index: 9999 !important;
    left: 0 !important;
    right: auto !important;
}

/* Remove nav-link shadows */
.nav-link,
.nav-link.active {
    box-shadow: none !important;
}

/* ================= MOBILE RESPONSIVE STYLES ================== */

/* Fix login page zoom on mobile when focusing inputs */
@media (max-width: 767px) {
    input[type="email"],
    input[type="password"],
    input[type="text"],
    input[type="tel"],
    input[type="number"],
    textarea,
    select {
        font-size: 16px !important; /* Prevents iOS zoom on focus */
    }
}

/* Fix pagination entries per page selector alignment on mobile */
@media (max-width: 767px) {
    .drop-perpage {
        width: 70px !important;
        min-width: 70px !important;
    }

    .drop-perpage + span.text-muted {
        white-space: normal !important;
        flex: 1;
    }

    .col-md-4.ps-2.d-flex.align-items-center.gap-2 {
        flex-wrap: nowrap !important;
        width: 100% !important;
        max-width: 100% !important;
    }
}

/* Fix email date boxes squished on iPhone and add button padding */
@media (max-width: 767px) {
    #email-search-form .col-auto.ms-auto {
        width: 100% !important;
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-top: 1rem !important;
    }

    #email-search-form .col-auto.ms-auto.d-flex {
        flex-wrap: wrap !important;
        gap: 0.75rem !important;
    }

    #email-search-form .col-auto.ms-auto > div {
        flex: 1 1 45% !important;
        min-width: 140px !important;
    }

    #email-search-form .col-auto.ms-auto > div:last-child {
        flex: 1 1 100% !important;
        margin-top: 0.5rem !important;
    }

    #email-search-form .btn {
        margin: 0.25rem !important;
    }

    /* Date input minimum width for readability */
    input[type="date"],
    input[type="datetime-local"] {
        min-width: 130px !important;
    }
}

/* Add padding between search description and first field (multiple pages) */
@media (max-width: 767px) {
    .card-header p.text-sm.text-muted + .card-body,
    .card-header + .card-body {
        padding-top: 1rem !important;
    }

    .card-header p.text-sm.text-muted {
        margin-bottom: 0.75rem !important;
    }

    /* Activity log, documents index, student testing, advisor testing search spacing */
    #additional-search-form .row .col-md-4,
    #additional-search-form .row .col-md-3,
    #search-form .row > div[class*="col-"] {
        margin-bottom: 1rem !important;
    }
}

/* Fix alerts page padding consistency */
@media (max-width: 767px) {
    .alert + .card,
    .alert + .row {
        margin-top: 1rem !important;
    }

    .alert .d-flex {
        flex-wrap: wrap !important;
    }
}

/* Add more padding between filters on email creation page */
@media (max-width: 767px) {
    #dynamicRows .row.p-1 > div[class*="col-"] {
        margin-bottom: 0.75rem !important;
    }

    #dynamicRows .dynamic-row {
        padding-bottom: 1rem !important;
        border-bottom: 1px solid #e0e0e0;
        margin-bottom: 1rem !important;
    }

    #dynamicRows .col-md-2.text-end {
        text-align: left !important;
        margin-top: 0.5rem !important;
    }
}

/* Add more padding between filters on SMS messengers user type select */
@media (max-width: 767px) {
    .sms-recipient .row > div[class*="col-"],
    form[action*="sms"] .row > div[class*="col-"] {
        margin-bottom: 0.75rem !important;
    }
}

/* Reformat discounts page statistics for mobile */
@media (max-width: 991px) {
    .row.mb-4 > .col-md-2 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
        margin-bottom: 0.75rem !important;
    }
}

@media (max-width: 575px) {
    .row.mb-4 > .col-md-2 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    .row.mb-4 > .col-md-2 .card-body {
        padding: 0.75rem !important;
    }

    .row.mb-4 > .col-md-2 .badge {
        font-size: 1.25rem !important;
    }
}

/* Add padding above delete selected button on event list */
@media (max-width: 767px) {
    #bulkDeleteBtn {
        margin-top: 1rem !important;
    }

    .row.mx-0.mb-2 {
        margin-top: 1rem !important;
    }
}

/* Add padding around service tickets page buttons on mobile */
@media (max-width: 767px) {
    .btn-group {
        flex-wrap: wrap !important;
        gap: 0.25rem !important;
    }

    .btn-group .btn {
        margin-bottom: 0.25rem !important;
    }

    /* Tickets page status buttons */
    .mb-3 > .btn-group {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
    }

    .mb-3 > .btn-group > a.btn {
        flex: 1 1 auto !important;
        text-align: center !important;
        margin-left: 0 !important;
        border-radius: 0.375rem !important;
    }
}

/* Fix service tickets statistics boxes responsiveness */
@media (max-width: 767px) {
    /* Service tickets search form */
    #search-form .row > div[class*="col-md-"] {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        margin-bottom: 0.75rem !important;
    }

    #search-form .col-md-3:last-child {
        margin-bottom: 0 !important;
    }

    #search-form .col-md-3:last-child .btn {
        width: 100% !important;
    }
}

/* Add padding in student/advisor testing screen search */
@media (max-width: 767px) {
    .testing-search .row > div[class*="col-"],
    form[action*="testing"] .row > div[class*="col-"] {
        margin-bottom: 0.75rem !important;
    }
}

/* Fix Advisor Student Index to use proper styling on mobile */
@media (max-width: 767px) {
    .advisor-student-index select,
    .student-index select {
        width: 100% !important;
    }
}

/* Add padding above reset to zero button on judges scoring screen */
@media (max-width: 767px) {
    #defaultToZero,
    button[id*="default"],
    button:contains("Default Values to Zeros"),
    .col-md-6:has(#defaultToZero) {
        margin-top: 1rem !important;
    }

    /* Judge rubric PID and reset button row */
    .card-body > .row > .col-md-6:last-child {
        margin-top: 1rem !important;
    }
}

/* Add padding between scorecard and comment card in judge rubric view */
@media (max-width: 767px) {
    .card + .card,
    .row.mt-3 + .row.mt-3 {
        margin-top: 1rem !important;
    }

    /* Score summary card spacing */
    .card-body table.table-bordered + .card,
    .table-responsive + .card {
        margin-top: 1rem !important;
    }
}

/* General mobile card spacing */
@media (max-width: 767px) {
    .card {
        margin-bottom: 1rem !important;
    }

    .card-body {
        padding: 1rem !important;
    }

    .card-header {
        padding: 1rem !important;
    }
}

/* Mobile button responsiveness */
@media (max-width: 767px) {
    .btn {
        padding: 0.5rem 1rem !important;
        font-size: 0.875rem !important;
    }

    .btn-sm {
        padding: 0.375rem 0.75rem !important;
        font-size: 0.8125rem !important;
    }

    /* Full width buttons on mobile for primary actions */
    .card-body .btn-primary:not(.btn-sm),
    .card-footer .btn-primary:not(.btn-sm) {
        width: auto !important;
    }

    /* Action buttons row spacing */
    .d-flex.gap-2,
    .d-flex.flex-wrap.gap-2 {
        gap: 0.5rem !important;
    }
}

/* Mobile table responsiveness */
@media (max-width: 767px) {
    .table-responsive {
        margin: 0 -1rem !important;
        padding: 0 1rem !important;
    }

    .table th,
    .table td {
        padding: 0.5rem !important;
        font-size: 0.875rem !important;
    }
}

/* Mobile form group spacing */
@media (max-width: 767px) {
    .form-group,
    .mb-3,
    .mb-4 {
        margin-bottom: 1rem !important;
    }

    .row > div[class*="col-"] {
        margin-bottom: 0.75rem;
    }

    .row > div[class*="col-"]:last-child {
        margin-bottom: 0;
    }
}

/* Tablet nav pills - stack vertically with spacing */
@media (max-width: 991px) {
    .nav.nav-pills {
        flex-wrap: wrap !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .nav.nav-pills .nav-item {
        width: 100% !important;
        margin: 0 0 0.5rem 0 !important;
    }

    .nav.nav-pills .nav-item:last-child {
        margin-bottom: 0 !important;
    }

    .nav.nav-pills .nav-link {
        text-align: center !important;
        width: 100% !important;
        display: block !important;
    }
}

/* Mobile nav pills */
@media (max-width: 767px) {
    .nav.nav-pills {
        flex-wrap: wrap !important;
        flex-direction: column !important;
    }

    .nav.nav-pills .nav-item {
        flex: 1 1 auto !important;
        width: 100% !important;
        margin: 0 0 0.5rem 0 !important;
    }

    .nav.nav-pills .nav-item:last-child {
        margin-bottom: 0 !important;
    }

    .nav.nav-pills .nav-link {
        text-align: center !important;
        padding: 0.5rem 0.75rem !important;
        font-size: 0.875rem !important;
        width: 100% !important;
    }
}

/* iOS touch fix for sidebar navigation */
.sidenav .nav-link {
    cursor: pointer;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
    touch-action: manipulation;
}

/* Ensure nav links are clickable on iOS */
.sidenav .navbar-nav .nav-item .nav-link {
    -webkit-touch-callout: none;
}

/* ================= Button Margin Fix ================== */
/* Override Material Dashboard's .btn { margin-bottom: 1rem } which adds
   unwanted 16px bottom margin to all buttons globally */
.card-body .btn {
    margin-bottom: 0;
}

/* ================= Accordion Fix ================== */
/* Override Material Dashboard's .accordion .accordion-button { font-size: inherit !important }
   which causes accordion buttons inside h2 headers to inherit the h2's large font size.
   Also replace transition: all with specific properties to prevent font-size animation. */
.accordion .accordion-button {
    font-size: 1rem !important;
    transition: color 0.15s ease-in, background-color 0.15s ease-in, border-radius 0.15s ease !important;
}
.accordion h2.accordion-header {
    font-size: 1rem !important;
}
.accordion .accordion-button:hover {
    background-color: #f0f0f0;
}
.accordion .accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #333;
}
.accordion .accordion-button:focus {
    border-color: transparent;
}
.accordion .accordion-button::after {
    flex-shrink: 0;
}
.accordion-body {
    overflow: hidden;
}

/* ================= Advisor Results Cards ================== */
.student-card-col .card {
    border: 1px solid #dee2e6;
}
.student-card-col .card-header {
    border-bottom: 1px solid #dee2e6;
}

/* ================= Rubric Panel ================== */
.rubric-panel {
    overflow: hidden;
}
.rubric-panel .table {
    table-layout: fixed;
    width: 100%;
}
.rubric-panel .table td {
    border: none;
    word-wrap: break-word;
    overflow-wrap: break-word;
}
