.overlay-aguarde {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 2000;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.6);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.pull-right {
    float: right !important;
}

.pull-left {
    float: left !important;
}

.modalFullScreen {
    width: 100% !important;
    height: 100% !important;
    padding: 10px !important;
    margin-top: 10px !important;
}

.has-error .form-control {
    border-color: #dc3545 !important;
    padding-right: calc(1.5em + 0.75rem);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='0 0 16 16'%3e%3cpath d='M16 14.5c0 .8-.7 1.5-1.5 1.5h-13C.7 16 0 15.3 0 14.5v-13C0 .7.7 0 1.5 0h13c.8 0 1.5.7 1.5 1.5v13zM1 1.5C1 1.2 1.2 1 1.5 1h13c.3 0 .5.2.5.5v13c0 .3-.2.5-.5.5h-13c-.3 0-.5-.2-.5-.5v-13z'/%3e%3cpath d='M7.1 4.2a.5.5 0 0 1 .9 0l.6 3.8a.5.5 0 0 1-1 .2L7.1 4.2zm.9 7.3a.8.8 0 1 1-1.6 0 .8.8 0 0 1 1.6 0z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.has-error .help-block {
    color: #dc3545;
    font-size: 0.875em;
}

.has-error .form-control:focus {
    box-shadow: 0 0 0 0.25rem rgba(220, 53, 69, 0.25);
}

.help-block {
    display: block;
    margin-top: 0.25rem;
    margin-bottom: 0.5rem;
    color: #6c757d;
}

.hidden {
    display: none !important;
}

/* === SHIM PARA CLASSES DO BOOTSTRAP 3 COMPATÍVEIS COM COREUI (BS5) === */

/* Container antigo */
.container95 {
    max-width: 95% !important;
}

.container {
    width: 95% !important;
    max-width: 100% !important;
    margin-left: auto;
    margin-right: auto;
    padding-left: 1rem;
    padding-right: 1rem;
}

/* Painel base */
.panel {
    background-color: var(--cui-body-bg);
    border: 1px solid var(--cui-border-color-translucent);
    border-radius: 0.5rem;
    margin-bottom: 1rem;
    box-shadow: var(--cui-box-shadow-sm);
}

/* Cabeçalho do painel */
.panel-heading {
    padding: 0.75rem 1rem;
    font-weight: 600;
    font-size: 1rem;
    border-bottom: 1px solid var(--cui-border-color-translucent);
    border-top-left-radius: 0.5rem;
    border-top-right-radius: 0.5rem;
}

/* Corpo do painel */
.panel-body {
    padding: 1rem;
}

/* Formulário */
.form-group {
    margin-bottom: 1rem;
}

/* === Estilos de painel com cores adaptadas ao modo Light/Dark === */

/* Primary */
.panel-primary {
    border-color: var(--cui-primary);
}

    .panel-primary > .panel-heading {
        background-color: var(--cui-primary);
        color: var(--cui-primary-contrast);
    }

/* Success */
.panel-success {
    border-color: var(--cui-success);
}

    .panel-success > .panel-heading {
        background-color: var(--cui-success);
        color: var(--cui-success-contrast);
    }

/* Danger */
.panel-danger {
    border-color: var(--cui-danger);
}

    .panel-danger > .panel-heading {
        background-color: var(--cui-danger);
        color: var(--cui-danger-contrast);
    }

/* Warning */
.panel-warning {
    border-color: var(--cui-warning);
}

    .panel-warning > .panel-heading {
        background-color: var(--cui-warning);
        color: var(--cui-warning-contrast);
    }

/* Info */
.panel-info {
    border-color: var(--cui-primary);
}

    .panel-info > .panel-heading {
        background-color: var(--cui-primary);
        color: var(--cui-info-contrast);
    }

    /* Painéis com heading colorido devem ter texto branco */
    .panel-primary > .panel-heading,
    .panel-success > .panel-heading,
    .panel-danger > .panel-heading,
    .panel-warning > .panel-heading,
    .panel-info > .panel-heading {
        color: var(--cui-white, #fff);
    }

/* Botões temáticos (legado) devem ter texto branco por padrão */
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info {
    color: var(--cui-white, #fff) !important;
}

/* SHIM: Compatibilidade para .form-group antigo */
.form-group {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 1rem; /* equivalente ao mb-3 */
    row-gap: 0.5rem;
}

    /* Label dentro de .form-group */
    .form-group > label,
    .control-label {
        margin-bottom: 0.5rem;
        font-weight: 500;
        display: block;
        width: 100%;
    }

    /* Campos de formulário dentro de .form-group */
    .form-group > input,
    .form-group > select,
    .form-group > textarea {
        flex: 1 1 auto;
    }

/* Corrige .has-error para Bootstrap 5 */
.has-error input,
.has-error select,
.has-error textarea {
    border-color: #dc3545 !important;
}

.has-error .form-control:focus {
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);
}

/* Texto de erro */
.help-block {
    font-size: 0.875rem;
    color: #dc3545;
    margin-top: 0.25rem;
}

/* === SHIM: Grid Bootstrap 3 para CoreUI === */

/* Base de .row */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -0.75rem;
    margin-left: -0.75rem;
}

/* Colunas legacy: col-xs-*, col-sm-*, col-md-*, col-lg-* */
[class*="col-xs-"],
[class*="col-sm-"],
[class*="col-md-"],
[class*="col-lg-"] {
    box-sizing: border-box;
    position: relative;
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

/* Alinhamento das labels em forms horizontais */
.form-horizontal .form-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.form-horizontal .control-label {
    margin-bottom: 0;
    padding-top: calc(0.375rem + 1px); /* Alinhamento vertical */
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 0.5rem;
}

/* Compatibilidade extra para .form-control dentro de col-* */
.form-horizontal .form-control {
    width: 100%;
}

/* Padding correto para colunas dentro de form-groups */
.form-group > [class*="col-"] {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

/* Corrige quebras em col-xs-12 que antes eram padrão */
.col-xs-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

/* Definições de col-xs-* (assumindo padrão de 12 colunas) */
.col-xs-1 {
    flex: 0 0 8.333333%;
    max-width: 8.333333%;
}

.col-xs-2 {
    flex: 0 0 16.666667%;
    max-width: 16.666667%;
}

.col-xs-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.col-xs-4 {
    flex: 0 0 33.333333%;
    max-width: 33.333333%;
}

.col-xs-5 {
    flex: 0 0 41.666667%;
    max-width: 41.666667%;
}

.col-xs-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.col-xs-7 {
    flex: 0 0 58.333333%;
    max-width: 58.333333%;
}

.col-xs-8 {
    flex: 0 0 66.666667%;
    max-width: 66.666667%;
}

.col-xs-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

.col-xs-10 {
    flex: 0 0 83.333333%;
    max-width: 83.333333%;
}

.col-xs-11 {
    flex: 0 0 91.666667%;
    max-width: 91.666667%;
}

.col-xs-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

/* Suporte visual para .form-horizontal com col-xs-* */
.form-horizontal .form-group > .col-xs-1,
.form-horizontal .form-group > .col-xs-2,
.form-horizontal .form-group > .col-xs-3,
.form-horizontal .form-group > .col-xs-4,
.form-horizontal .form-group > .col-xs-5,
.form-horizontal .form-group > .col-xs-6,
.form-horizontal .form-group > .col-xs-7,
.form-horizontal .form-group > .col-xs-8,
.form-horizontal .form-group > .col-xs-9,
.form-horizontal .form-group > .col-xs-10,
.form-horizontal .form-group > .col-xs-11,
.form-horizontal .form-group > .col-xs-12 {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

/* Corrige paddings para manter o alinhamento dos campos nas colunas */
.row > [class*="col-"] {
    padding-right: 0.75rem;
    padding-left: 0.75rem;
}

/* Garante que wrappers intermediários não quebrem a grid */
.form-horizontal .row > div:not([class*="col-"]):not(.row):not(.form-group) {
    display: contents;
}

/* Ajusta espaçamento dos campos nos grids */
.form-horizontal .col-lg-3,
.form-horizontal .col-lg-2,
.form-horizontal .col-sm-4 {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.nav-tabs {
    border-bottom: none;
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    margin-bottom: 1rem;
    padding-left: 0;
    border-bottom-color: var(--cui-primary) !important;
}

    .nav-tabs > li {
        margin-bottom: -1px;
    }

        .nav-tabs > li > a {
            display: block;
            padding: 0.5rem 1rem;
            border: 1px solid transparent;
            border-radius: 0.375rem 0.375rem 0 0;
            text-decoration: none;
            background-color: var(--cui-primary-bg-subtle);
            color: #080a0c;
            transition: all 0.3s ease;
            margin-right: 2px;
        }

            .nav-tabs > li > a:hover,
            .nav-tabs .nav-link:hover {
                background-color: var(--cui-primary-border-subtle);
                color: var(--cui-emphasis-color);
            }

            /* Abas estilo Bootstrap 3: li.active > a */
            .nav-tabs > li.active > a,
            .nav-tabs > li > a.active {
                background-color: var(--cui-primary) !important;
                color: var(--cui-white, #fff) !important;
                font-weight: 500 !important;
                border-color: var(--cui-primary) var(--cui-primary) var(--cui-body-bg) !important;
                border-radius: 0.375rem 0.375rem 0 0 !important;
            }

    /* Abas estilo Bootstrap 5/CoreUI: .nav-link.active */
    .nav-tabs .nav-link.active {
        background-color: var(--cui-primary) !important;
        color: var(--cui-white, #fff) !important;
        font-weight: 500 !important;
        border-color: var(--cui-primary) var(--cui-primary) var(--cui-body-bg) !important;
        border-radius: 0.375rem 0.375rem 0 0 !important;
    }

/* Conteúdo da aba */
.tab-pane {
    display: none;
    padding: 1rem;
    border: 1px solid var(--cui-primary);
    border-top: none;
    border-radius: 0 0 0.375rem 0.375rem;
    background-color: var(--cui-body-bg);
    color: var(--cui-body-color);
}

    .tab-pane.active {
        display: block;
    }

/* SHIM para classes de botões antigos */
.btn {
    @extend .btn; /* garante que btn antigo já aplique o estilo novo */
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    border-radius: 0.375rem;
    border: 1px solid transparent;
    transition: all 0.2s ease-in-out;
}

/* Mapear cores antigas para o novo esquema de CoreUI */
.btn-default {
    @extend .btn-secondary;
}

.btn-primary {
    background-color: var(--cui-primary) !important;
    border-color: var(--cui-primary) !important;
    color: #fff;
}

.btn-success {
    background-color: var(--cui-success) !important;
    border-color: var(--cui-success) !important;
    color: #fff;
}

.btn-info {
    background-color: var(--cui-info) !important;
    border-color: var(--cui-info) !important;
    color: #fff;
}

.btn-warning {
    background-color: var(--cui-warning) !important;
    border-color: var(--cui-warning) !important;
    color: #212529;
}

.btn-danger {
    background-color: var(--cui-danger) !important;
    border-color: var(--cui-danger) !important;
    color: #fff;
}

/* Link */
.btn-link {
    color: var(--cui-link-color);
    background-color: transparent;
    text-decoration: underline;
}

/* Hover / Focus para todos */
.btn:hover,
.btn:focus {
    filter: brightness(0.95);
}

/* Tamanhos continuam funcionais */
.btn-sm {
    padding: 0.25rem 0.5rem !important;
    font-size: 0.875rem !important;
}

.btn-md {
    padding: 0.4rem 0.4rem !important;
    font-size: 0.8rem !important;
}

.btn-lg {
    padding: 0.5rem 1rem !important;
    font-size: 1.25rem !important;
}

.btn-xs {
    padding: 0.15rem 0.4rem !important;
    font-size: 0.75rem !important;
    line-height: 1.2 !important;
    border-radius: 0.2rem !important;
}

/* Accordion com estrutura de Panel + Collapse */

.panel-group .panel.panel-info {
    border: var(--cui-border-width) solid var(--cui-border-color);
    border-radius: var(--cui-border-radius);
    overflow: hidden;
    margin-bottom: 1rem;
    background-color: var(--cui-body-bg);
    color: var(--cui-body-color);
}

/* Header clicável */
.panel-group .panel .card-header {
    cursor: pointer;
    padding: 0;
    margin: 0;
    border: none;
    border-radius: 0;
}

    /* Link do header do accordion */
    .panel-group .panel .card-header a {
        display: block;
        padding: 0.75rem 1rem;
        color: var(--cui-primary-text, #ffffff);
        background-color: var(--cui-primary, #e0d4fa);
        text-decoration: none;
        transition: background-color 0.3s ease;
    }

        .panel-group .panel .card-header a:hover {
            background-color: var(--cui-primary-bg, #5f4dce);
            color: var(--cui-primary-color, #fff);
        }

/* Estado expandido */
.panel-group .panel .panel-collapse.in,
.panel-group .panel .panel-collapse.show {
    display: block;
}

/* Transição suave */
.panel-group .panel .panel-collapse.collapse {
    transition: height 0.35s ease;
}

/* Corpo do accordion */
.panel-group .panel .panel-body {
    padding: 1rem;
    background-color: var(--cui-body-bg);
    border-top: var(--cui-border-width) solid var(--cui-border-color);
}

.panel-group .panel .card-header a::after {
    float: right;
    transition: transform 0.3s ease;
    font-size: 1rem;
    margin-left: 0.5rem;
}

/* Ícone girado quando ativo (seta para cima) */
.panel-group .panel .panel-collapse.in + .panel-body::before,
.panel-group .panel .panel-collapse.show + .panel-body::before {
    transform: rotate(180deg);
}

/* Correção para girar ícone corretamente com base na expansão */
.panel-group .panel .card-header a[aria-expanded="true"]::after {
    transform: rotate(180deg);
}

/* Modal SHIM - ajustado para título à esquerda e botão à direita */

.modal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem;
    background-color: #fff; /* fundo branco */
    border-bottom: 1px solid var(--cui-border-color);
    color: var(--cui-body-color);
    border-top-left-radius: 0.375rem;
    border-top-right-radius: 0.375rem;
}

    .modal-header .modal-title {
        font-size: 1.25rem;
        font-weight: 500;
        margin: 0;
        order: 0; /* Garante que o título vem primeiro */
    }

    .modal-header .close {
        padding: 0;
        background: none;
        border: none;
        font-size: 1.5rem;
        line-height: 1;
        color: var(--cui-body-color);
        opacity: 0.7;
        order: 1; /* Botão de fechar à direita */
        margin-left: auto;
    }

        .modal-header .close:hover {
            opacity: 1;
        }

/* Estiliza <select class="form-select"> como se fosse form-select */
select.form-control:not(.form-select) {
    display: block;
    width: 100%;
    padding: 0.375rem 2.25rem 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: var(--cui-body-color);
    background-color: var(--cui-body-bg);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='currentColor' viewBox='0 0 16 16'%3e%3cpath d='M1.5 5.5a.5.5 0 0 1 .8-.4L8 10.293 13.7 5.1a.5.5 0 1 1 .6.8l-6 5.5a.5.5 0 0 1-.7 0l-6-5.5a.5.5 0 0 1-.1-.4z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 1rem 1rem;
    border: 1px solid var(--cui-input-border-color, #ced4da);
    border-radius: 0.375rem;
    transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
    appearance: none;
}

    select.form-control:focus {
        border-color: var(--cui-primary);
        outline: 0;
        box-shadow: 0 0 0 0.25rem rgba(60, 75, 100, 0.25);
    }

/* === SHIM: Paginação do Grid.Mvc (BS3) para CoreUI/Bootstrap 5 === */

.grid-footer {
    display: flex;
    justify-content: flex-start;
    padding: 1rem 0;
    text-align: left !important;
}

    .grid-footer .grid-pager,
    .grid-footer ul.pagination {
        float: none !important;
    }

    /* Alinha a paginação à esquerda */
    .grid-footer .grid-pager {
        display: flex !important;
        justify-content: flex-start !important;
        align-items: center;
        text-align: left !important;
    }

    /* Remove margens excessivas */
    .grid-footer .pagination {
        margin: 0 !important;
    }

.grid-pager .pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
    border-radius: 0.375rem;
    margin: 0;
}

    .grid-pager .pagination > li {
        margin: 0 2px;
    }

        .grid-pager .pagination > li > a,
        .grid-pager .pagination > li > span {
            position: relative;
            display: block;
            padding: 0.375rem 0.75rem;
            font-size: 1rem;
            color: var(--cui-link-color, #0d6efd);
            background-color: var(--cui-body-bg, #fff);
            border: 1px solid var(--cui-border-color, #dee2e6);
            border-radius: 0.375rem;
            text-decoration: none;
            transition: all 0.2s ease-in-out;
        }

            .grid-pager .pagination > li > a:hover,
            .grid-pager .pagination > li > span:hover {
                z-index: 2;
                background-color: var(--cui-primary-bg-subtle, #e9ecef);
                border-color: var(--cui-primary, #6f42c1);
                color: var(--cui-primary, #6f42c1);
            }

        .grid-pager .pagination > li.active > span,
        .grid-pager .pagination > li.active > a {
            z-index: 3;
            color: #fff;
            background-color: var(--cui-primary, #6f42c1);
            border-color: var(--cui-primary, #6f42c1);
            font-weight: 600;
        }

        .grid-pager .pagination > li.disabled > span,
        .grid-pager .pagination > li.disabled > a {
            color: var(--cui-secondary-color, #6c757d);
            background-color: var(--cui-secondary-bg, #f8f9fa);
            border-color: var(--cui-border-color, #dee2e6);
            pointer-events: none;
        }

.row > .btn,
.row > button,
.row > .btn-group {
    width: auto;
    flex: 0 0 auto;
    align-self: center;
}

.row.mb-3 > button + button {
    margin-left: 0.5rem;
}