.form-control:focus,
.form-select:focus {
    border-color: #cccccc;
    box-shadow: none;
    -webkit-box-shadow: none;
    -moz-box-shadow: none;
    transition: none;
    -moz-transition: none;
    -webkit-transition: none;
}

.help-block {
    color: var(--bs-red);
}

.btn-primary {
    background-color: var(--corpadrao);
    border-color: var(--corpadrao);
    color: var(--corletraclara);
}

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

.zebrado {
    background-color: var(--bs-gray-200);
}

/* Cores do campo Alerta - Relatório de Estoque */
.alerta-critico {
    background-color: #ffcccc !important;
    /* Vermelho claro - <= 2,99 meses */
}

.alerta-atencao {
    background-color: #ffffcc !important;
    /* Amarelo claro - 3,00 a 5,99 meses */
}

.alerta-normal {
    background-color: #cce5ff !important;
    /* Azul claro - >= 6,00 meses */
}

.alerta-erro {
    background-color: #ff6666 !important;
    /* Vermelho - divisão por zero */
    color: white !important;
    font-weight: bold;
}

/* cores de análise de visitas */
.badge-observacao {
    background-color: steelblue;
}

.badge-semvisita {
    background-color: rgb(205, 205, 255);
}

.badge-periodozerado {
    background-color: aqua;
}

.badge-comvisita {
    background-color: green;
}

.badge-passouperiodo {
    background-color: red;
}

/* Estilo para campos editáveis do relatório gerencial */
.campo-editavel {
    cursor: pointer;
    padding: 2px 4px;
    border-radius: 3px;
    transition: background-color 0.2s ease;
    display: inline-block;
    min-width: 40px;
    text-align: right;
}

.campo-editavel:hover {
    background-color: #e3f2fd;
    border: 1px dashed #2196f3;
}

.campo-input {
    border: 2px solid #2196f3 !important;
    box-shadow: 0 0 5px rgba(33, 150, 243, 0.3) !important;
}

/* Estilos específicos para inputs temporários em contextos especiais */
/* Input alinhado à direita (para campos numéricos) */
.text-end .campo-input,
.campo-input[data-campo="qtpedidospend"],
.campo-input[data-campo="vlmediaescolhida"] {
    text-align: right !important;
    margin-left: auto !important;
    display: block !important;
}

/* Input centralizado (para Média Escolhida) */
.text-center .campo-input {
    text-align: center !important;
    margin: 0 auto !important;
}

/* Input inline (para Crescimento Estimado com %) - DEVE VIR POR ÚLTIMO */
.campo-input[data-campo="pecrescimento"] {
    display: inline-block !important;
    width: 60px !important;
    vertical-align: middle !important;
    text-align: right !important;
    margin-left: 0 !important;
}

.feedback-estoque {
    animation: slideInRight 0.3s ease-out;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.badge-alertaperiodo {
    background-color: gold;
}

.badge-visitafalhou {
    background-color: orange;
    background-image: repeating-linear-gradient(135deg,
            OrangeRed,
            OrangeRed 3px,
            orange 10px,
            orange 25px);
}

.badge-corinvalida {
    background-color: fuchsia;
}

.text-orange {
    color: DarkOrange;
}

.btn-outline-orange {
    color: DarkOrange;
    border: 1px solid DarkOrange;
    background-color: transparent;
    transition: background-color 0.2s, color 0.2s;
}

.btn-outline-orange:hover,
.btn-outline-orange:focus,
.btn-outline-orange:active,
.btn-outline-orange.active,
.open>.dropdown-toggle.btn-outline-orange,
.btn-outline-orange:active:focus {
    background-color: DarkOrange;
    border-color: DarkOrange;
    color: white;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active,
.open>.dropdown-toggle.btn-primary,
.btn-primary:active:focus,
.btn-outline-primary:hover,
.btn-outline-primary:focus,
.btn-outline-primary:active,
.btn-outline-primary.active,
.open>.dropdown-toggle.btn-outline-primary,
.btn-outline-primary:active:focus {
    background-color: var(--corsecundaria);
    border-color: var(--corsecundaria);
    color: var(--corletraclara);
}

.btn-light:hover,
.btn-light:focus,
.btn-light:active,
.btn-light.active,
.open>.dropdown-toggle.btn-light,
.btn-light:active:focus,
.btn-outline-light:hover,
.btn-outline-light:focus,
.btn-outline-light:active,
.btn-outline-light.active,
.open>.dropdown-toggle.btn-outline-light,
.btn-outline-light:active:focus {
    background-color: var(--corsecundaria);
    border-color: var(--corsecundaria);
    color: var(--corletraclara);
}

.botoes-acao-menu,
.botoes-acao-menu:hover {
    color: var(--corpadrao);
}

.botoes-acao-menu:active,
.botoes-acao-menu.active,
.botoes-acao-menu.show {
    background-color: var(--corpadrao) !important;
    color: var(--corletraclara) !important;
}

.pagination>li {
    padding: 5px;
    /* border: solid 1px; */
}

.pagination>li.last,
.pagination>li.first,
.pagination>li.next,
.pagination>li.prev,
li.custom-pagination-item,
.pagination-link {
    background-color: var(--bs-light);
    text-decoration: none;
    padding-left: 11px;
    padding-right: 11px;
    margin: 3px;
    border: 1px solid;
    border-color: var(--bs-dark-border-subtle);
    border-radius: 7%;
}

.pagination>li.next,
.pagination>li.prev {
    padding-left: 5px;
    padding-right: 5px;
    border: none;
}

.page-link,
.page-link:hover,
.tab-link,
.tab-link:hover {
    color: var(--corpadrao);
}

a {
    color: var(--corpadrao);
}

a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none;
}

table .w-5 {
    width: 5%;
}

table .w-10 {
    width: 10%;
}

table .w-15 {
    width: 15%;
}

table .w-20 {
    width: 20%;
}

table .w-30 {
    width: 30%;
}

.table-responsive {
    max-height: 650px;
    /* overflow: scroll; */
}

.table>thead {
    z-index: 1 !important;
}

/* relatórios */
div.relatorio {
    background-color: rgb(239, 239, 239);
    display: table;
    border-width: 1px;
    border-style: solid;
}

span.relatorio_subtitulo {
    display: inline-block;
    width: 100%;
    background-color: #BBB;
    padding-top: 3px;
    padding-bottom: 3px;
    font-weight: bold;
}

p.relatorio_titulo {
    height: 20px;
    padding-top: 5px;
    padding-bottom: 5px;
    margin-bottom: 0px;
    background: linear-gradient(to bottom, var(--corpadrao) 0%, var(--corsecundaria) 100%);
    color: var(--corletraclara);
    font-weight: bold;
    text-align: center;
}

div.relatorio_titulo {
    background: linear-gradient(to bottom, var(--corpadrao) 0%, var(--corsecundaria) 100%);
    color: var(--corletraclara);
}

table.relatorio {
    border: 0px solid;
    margin-bottom: 0px;
}

th.data,
td.data,
th.numero,
td.numero,
th.numero_sep,
td.numero_sep,
th.numero_dot,
td.numero_dot,
th.total,
td.total,
th.total_sep,
td.total_sep,
th.total_dot,
td.total_dot {
    padding: 3px 5px 1px 3px;
}

th.data,
td.data {
    text-align: center;
    background-color: silver;
    /*border-top: 1px solid;
    border-right: 1px solid;*/
    border-left: 1px solid;
    border-right: 0px solid;
    font-weight: bold;
    /* color: #005A5A; */
}

th.numero,
td.numero,
th.numero_tabela,
td.numero_tabela,
th.numero_sep,
td.numero_sep,
th.numero_dot,
td.numero_dot {
    text-align: right;
}

th.numero_sep,
td.numero_sep {
    border-right: 1px solid;
}

th.numero_dot,
td.numero_dot {
    border-right: 1px dotted;
}

th.total,
td.total,
th.total_sep,
td.total_sep,
th.total_dot,
td.total_dot {
    text-align: right;
    font-weight: bold;
    background-color: silver;
}

th.total_sep,
td.total_sep {
    border-right: 1px solid;
}

th.total_dot,
td.total_dot {
    border-right: 1px dotted;
}

th.texto_centralizado,
td.texto_centralizado {
    text-align: center !important;
}

.input-group.date {
    width: 86%;
}

.kv-grouped-row {
    background-color: var(--cortitulogrupo) !important;
    color: var(--corletraclara) !important;
}

.input_editable {
    /* width: 50%; */
    height: 25px !important;
    text-align: right;
    /* padding-right: 3px; */
    z-index: 0 !important;
}

.button_editable {
    z-index: 0 !important;
    height: 25px !important;
    /* margin-left: 5px;     */
    /* margin-bottom: 3px; */
    padding-top: 0px;
    padding-bottom: 0px;
}

.dropdown-menu,
.dropdown-item,
.titulo-contatos {
    background-color: var(--corpadrao);
    color: var(--corletraclara);
}

.dropdown-item:hover,
.dropdown-item.active {
    background-color: var(--corsecundaria);
    color: var(--corletraclara);
}

th.action-column {
    min-width: 75px;
}

.botao-acao {
    min-width: 10em;
}

.min-width-17em {
    min-width: 17em;
}

.textuppercase {
    text-transform: uppercase;
}

img.transparent {
    filter: alpha(opacity=25);
    opacity: .25;
}

/* Esconde o input */
.botao_upload_arquivo {
    display: none;
}

/* Aparência que terá o seletor de arquivo */
.upload_arquivo {
    cursor: pointer;
}

.texto-observacoes {
    white-space: pre-wrap;
    overflow-y: scroll;
    background: linear-gradient(to bottom, var(--bs-light) 0%, white 75%);
    line-height: 1;
    font-size: 13px;
}

.largura50 {
    width: 50px;
}

.largura100 {
    width: 100px;
}

.largura300 {
    width: 300px;
}

/* Classe específica para observações da agenda (preserva quebras mas remove espaços extras) */
.texto-observacoes-agenda {
    overflow-y: auto;
    background: linear-gradient(to bottom, var(--bs-light) 0%, white 75%);
    line-height: 1;
    font-size: 13px;
    white-space: pre-line;
}

/* Estilos customizados para as guias da agenda de visitas */
.agenda-tabs {
    flex-wrap: wrap;
    gap: 2px;
    margin-bottom: 0;
}

.agenda-tabs .nav-item {
    flex-shrink: 0;
    margin-bottom: 2px;
}

.agenda-tabs .nav-link {
    font-size: 0.75rem;
    padding: 0.4rem 0.6rem;
    white-space: nowrap;
    border-radius: 0.25rem 0.25rem 0 0;
    border: 1px solid #dee2e6;
    background-color: #f8f9fa;
    color: #495057;
    transition: all 0.2s ease;
}

.agenda-tabs .nav-link:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

.agenda-tabs .nav-link.active {
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    color: var(--corpadrao);
    font-weight: 500;
}

/* Melhorias visuais para os cards da agenda */
.agenda-card {
    border: 1px solid #e3e6f0;
    border-radius: 0.5rem;
    box-shadow: 0 0.15rem 1.75rem 0 rgba(58, 59, 69, 0.15);
    transition: all 0.3s;
    margin-bottom: 1rem;
}

.agenda-card:hover {
    box-shadow: 0 0.25rem 2rem 0 rgba(58, 59, 69, 0.2);
    transform: translateY(-2px);
}

.agenda-card-header {
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    border-bottom: 1px solid #e3e6f0;
    padding: 1rem;
    border-radius: 0.5rem 0.5rem 0 0;
}

.agenda-card-body {
    padding: 0;
}

.agenda-tabs-section {
    background-color: #f8f9fa;
    border-bottom: 1px solid #e3e6f0;
    padding: 0.75rem 1rem 0.5rem;
}

.agenda-content-section {
    padding: 1rem;
    min-height: 200px;
}

.agenda-actions {
    background-color: #f8f9fa;
    border-top: 1px solid #e3e6f0;
    padding: 0.75rem 1rem;
    border-radius: 0 0 0.5rem 0.5rem;
}

/* Responsividade para telas pequenas */
@media (max-width: 576px) {
    .agenda-tabs .nav-link {
        font-size: 0.7rem;
        padding: 0.3rem 0.4rem;
    }

    .agenda-card-header {
        padding: 0.75rem;
    }

    .agenda-content-section {
        padding: 0.75rem;
        min-height: 180px;
    }

    .agenda-actions {
        padding: 0.5rem 0.75rem;
    }

    .agenda-actions .d-flex {
        flex-direction: column !important;
        gap: 0.5rem !important;
    }

    .agenda-actions .btn {
        font-size: 0.75rem;
        padding: 0.4rem 0.75rem;
        width: 100%;
        justify-content: center;
    }
}

/* Responsividade para telas XL (2 cards por linha) */
@media (min-width: 1200px) and (max-width: 1399px) {
    .row-cols-xl-2 .agenda-actions .d-flex {
        flex-direction: column !important;
        gap: 0.3rem !important;
    }

    .row-cols-xl-2 .agenda-actions .btn {
        width: 100%;
        justify-content: center;
        /* font-size: 0.75rem; */
        padding: 0.35rem 0.6rem;
    }
}

/* Responsividade para telas XXL (3 cards por linha) */
@media (min-width: 1400px) {
    .row-cols-xxl-3 .agenda-actions .btn {
        /* font-size: 0.75rem; */
        padding: 0.3rem 0.4rem;
    }
}

/* Responsividade para tablets em modo retrato */
@media (max-width: 768px) and (min-width: 577px) {
    .agenda-actions .d-flex {
        flex-direction: column !important;
        gap: 0.4rem !important;
    }

    .agenda-actions .btn {
        width: 100%;
        justify-content: center;
        padding: 0.5rem 1rem;
    }
}

@media (max-width: 480px) {
    .agenda-tabs .nav-link {
        font-size: 0.65rem;
        padding: 0.25rem 0.3rem;
    }

    .agenda-actions .btn {
        font-size: 0.75rem;
        padding: 0.35rem 0.6rem;
    }
}

/* Estilos customizados para as abas do formulário de visitas */
.visita-form .nav-tabs .nav-link {
    color: #6c757d;
    background-color: #f8f9fa;
    border: 1px solid #dee2e6;
    border-bottom-color: transparent;
}

.visita-form .nav-tabs .nav-link:hover,
.visita-form .nav-tabs .nav-link:focus {
    color: var(--corpadrao);
    background-color: #e9ecef;
    border-color: #dee2e6 #dee2e6 #fff;
    isolation: isolate;
}

.visita-form .nav-tabs .nav-link.active,
.visita-form .nav-tabs .nav-item.show .nav-link {
    color: var(--corpadrao);
    background-color: #fff;
    border-color: #dee2e6 #dee2e6 #fff;
    font-weight: 500;
}

.visita-form .nav-tabs {
    border-bottom: 1px solid #dee2e6;
}

/* Alinhamento vertical dos campos no formulário de visitas */
.visita-form .row .col-12 {
    display: flex;
    flex-direction: column;
}

.visita-form .row .col-12 .form-group {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.visita-form .row .col-12 .form-group label {
    margin-bottom: 0.5rem;
}

/* Garante que campos de altura diferente fiquem alinhados pelo topo */
.visita-form .row {
    align-items: flex-start;
}

/* Estilos para links de ordenação no histórico */
.historico-ordenacao {
    color: inherit !important;
    text-decoration: none !important;
    transition: color 0.2s ease;
}

.historico-ordenacao:hover {
    color: var(--bs-primary) !important;
    text-decoration: none !important;
}

.historico-ordenacao i {
    font-size: 0.8em;
    margin-left: 0.25rem;
}

.historico-ordenacao:hover i {
    color: var(--bs-primary) !important;
}

/* ========================================
   MÓDULO DE METAS - Estilos
   ======================================== */

/* Container e Grid da Listagem */
.meta-container {
    border: 1px solid #dee2e6;
    border-radius: 0.375rem;
    overflow: hidden;
    background: white;
}

.meta-header {
    display: grid;
    grid-template-columns: 22% 7% 24% 9% 9% 8% 10% 11%;
    gap: 1px;
    background-color: #f8f9fa;
    padding: 0.75rem 1rem;
    font-weight: 600;
    border-bottom: 2px solid #dee2e6;
}

.meta-row {
    display: grid;
    grid-template-columns: 22% 7% 24% 9% 9% 8% 10% 11%;
    gap: 1px;
    padding: 0.75rem 1rem;
    border-bottom: 1px solid #dee2e6;
    transition: background-color 0.2s;
}

.meta-row:hover {
    background-color: #f8f9fa;
}

.meta-row:last-child {
    border-bottom: none;
}

.btn-action {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

/* Container de Filtros */
.filtros-container {
    background: white;
    padding: 1.5rem;
    border-radius: 0.375rem;
    border: 1px solid #dee2e6;
    margin-bottom: 1.5rem;
}

/* Formulário de Projeção */
.form-projecao {
    background: white;
    padding: 2rem;
    border-radius: 0.375rem;
    border: 1px solid #dee2e6;
    max-width: 900px;
    margin: 0 auto;
}

.form-projecao .form-group {
    margin-bottom: 1.5rem;
}

.btn-group-actions {
    display: flex;
    gap: 1rem;
    justify-content: flex-end;
    margin-top: 2rem;
}

.btn-group-actions .btn {
    min-width: 140px;
}

/* Seção de Tipos de Produtos */
.tipos-produtos-section {
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #dee2e6;
}

/* Grid de Grupos de Produtos */
.grupos-produtos-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    margin-top: 1rem;
}

.grupo-checkbox {
    display: flex;
    align-items: center;
    padding: 1rem;
    border: 2px solid #dee2e6;
    border-radius: 0.375rem;
    background: white;
    transition: all 0.2s ease;
    cursor: pointer;
    margin: 0;
}

.grupo-checkbox:hover {
    background: #f8f9fa;
    border-color: #0d6efd;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.grupo-checkbox input[type="checkbox"] {
    margin: 0 0.75rem 0 0;
    cursor: pointer;
    width: 20px;
    height: 20px;
    flex-shrink: 0;
}

.grupo-checkbox span {
    cursor: pointer;
    user-select: none;
    flex: 1;
    line-height: 1.4;
    font-size: 1rem;
}

.grupo-checkbox span i {
    margin-right: 0.5rem;
    color: #6c757d;
}

.grupo-checkbox input[type="checkbox"]:checked+span {
    font-weight: 600;
    color: #0d6efd;
}

.grupo-checkbox input[type="checkbox"]:checked+span i {
    color: #0d6efd;
}

/* ========================================
   MÓDULO DE PROJEÇÃO DE VALORES - Estilos
   ======================================== */

/* Header da Projeção - Compacto */
.valores-header {
    margin-bottom: 1.5rem;
    padding-bottom: 0.75rem;
    border-bottom: 3px solid var(--corpadrao);
}

.valores-header h1 {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--corpadrao);
}

.valores-header .meta-info {
    margin-top: 0.25rem;
    font-size: 0.9rem;
    color: #6c757d;
}

/* Card de Total Geral - Compacto */
.total-geral-card {
    background: #f8f9fa;
    border: 2px solid var(--corpadrao);
    border-radius: 5px;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.total-geral-label {
    font-size: 0.95rem;
    color: #495057;
    font-weight: 600;
    margin: 0;
}

.total-geral-valor,
.total-geral-kg {
    font-size: 1.5rem;
    font-weight: 700;
    color: #28a745;
    margin: 0;
}

/* Card de Totais por Mês - Estilo Tabela */
.totais-mes-card {
    background: white;
    border: 1px solid #dee2e6;
    margin-bottom: 1rem;
    overflow-x: auto;
}

.totais-mes-card h5 {
    margin: 0;
    padding: 0.5rem 0.75rem;
    background: var(--corpadrao);
    color: white;
    font-size: 0.95rem;
    font-weight: 600;
}

.totais-mes-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0;
    border-top: 1px solid #dee2e6;
}

.total-mes-item {
    text-align: center;
    padding: 0.4rem 0.25rem;
    border-right: 1px solid #dee2e6;
    border-bottom: 1px solid #dee2e6;
}

.total-mes-item:last-child {
    border-right: none;
}

.total-mes-label {
    font-size: 0.7rem;
    color: #6c757d;
    font-weight: 600;
    margin-bottom: 0.2rem;
    display: block;
}

.total-mes-valor,
.total-mes-kg {
    font-size: 0.8rem;
    color: var(--corpadrao);
    font-weight: 700;
    display: block;
}

/* Cards de Tipo - Estilo Tabela */
.tipo-card {
    background: white;
    border: 1px solid #dee2e6;
    margin-bottom: 1.5rem;
    overflow: hidden;
}

.tipo-card-header {
    background: var(--corpadrao);
    color: white;
    padding: 0.5rem 0.75rem;
    font-weight: 600;
    font-size: 1rem;
}

.tipo-card-body {
    padding: 0;
}

/* Estilos para accordions com cores dinâmicas inline */
.tipo-card .accordion-button {
    font-weight: 600;
    font-size: 1.1rem;
    padding: 1rem 1.25rem;
    border: none;
}

.tipo-card .accordion-button:not(.collapsed) {
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.125);
}

.tipo-card .accordion-button:focus {
    box-shadow: none;
    border-color: rgba(0, 0, 0, 0.125);
}

.tipo-card .accordion-button .badge {
    font-size: 0.75rem;
    padding: 0.35em 0.65em;
}

/* Accordions de classificação com cores suaves */
.accordion-item .accordion-button {
    font-weight: 500;
    font-size: 1rem;
    padding: 0.75rem 1rem;
}

.accordion-item .accordion-button:not(.collapsed) {
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.1);
}

.accordion-item .accordion-button .badge {
    font-size: 0.7rem;
    padding: 0.3em 0.6em;
}

/* Seções de Classificação - Estilo Tabela */
.classificacao-section {
    border-bottom: 1px solid #dee2e6;
}

.classificacao-section:last-child {
    border-bottom: none;
}

.classificacao-titulo {
    font-weight: 600;
    color: white;
    background: var(--corsecundaria);
    padding: 0.4rem 0.75rem;
    margin: 0;
    font-size: 0.9rem;
}

/* Grid de Meses - Estilo Excel */
.meses-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0;
    padding: 0.5rem 0.75rem;
    background: #f8f9fa;
}

.mes-col {
    display: flex;
    flex-direction: column;
    padding: 0 2px;
}

/* Labels dos Campos */
.campo-label {
    font-size: 0.65rem;
    font-weight: 700;
    margin-bottom: 0.15rem;
    text-align: center;
    display: block;
}

.quantidade-label {
    color: #0d6efd;
    background: #e7f3ff;
    padding: 0.15rem 0.2rem;
    border-radius: 2px;
}

.valor-label {
    color: #008b8b;
    background: #f0fff0;
    padding: 0.15rem 0.2rem;
    border-radius: 2px;
    margin-top: 0.4rem;
}

/* Campos de Quantidade */
.quantidade-input {
    width: 100%;
    padding: 0.25rem 0.2rem;
    font-size: 0.8rem;
    text-align: right;
    border: 1px solid #ced4da;
    border-radius: 2px;
    background: #f0f8ff;
    transition: border-color 0.15s ease-in-out;
    margin-bottom: 0.3rem;
}

.quantidade-input:focus {
    border-color: #0d6efd;
    outline: 0;
    box-shadow: 0 0 0 2px rgba(13, 110, 253, 0.15);
    background: #e7f3ff;
}

/* Campos de Valor */
.valor-input {
    width: 100%;
    padding: 0.25rem 0.2rem;
    font-size: 0.8rem;
    text-align: right;
    border: 1px solid #ced4da;
    border-radius: 2px;
    background: white;
    transition: border-color 0.15s ease-in-out;
}

.valor-input:focus {
    border-color: var(--corpadrao);
    outline: 0;
    box-shadow: 0 0 0 2px rgba(0, 139, 139, 0.15);
    background: #fffef0;
}

/* Totalizadores - Estilo Excel */
.totalizadores {
    padding: 0.4rem 0.75rem;
    background: #e9ecef;
    border-top: 2px solid #dee2e6;
}

.totalizador {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.3rem 0;
}

.totalizador-label {
    font-weight: 600;
    color: #495057;
    font-size: 0.85rem;
}

.totalizador-valor {
    font-weight: 700;
    color: var(--corpadrao);
    font-size: 0.9rem;
    font-family: 'Courier New', monospace;
}

.total-tipo {
    background: #dee2e6;
    border-top: 2px solid #adb5bd;
}

.total-tipo .totalizador-label {
    font-size: 0.9rem;
}

.total-tipo .totalizador-valor {
    font-size: 1rem;
}

/* Ações do Footer - Compacto */
.acoes-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 1.5rem;
    padding: 1rem;
    background: #f8f9fa;
    border-top: 2px solid #dee2e6;
}

/* Responsividade */
@media (max-width: 1400px) {
    .meses-grid {
        grid-template-columns: repeat(6, 1fr);
    }

    .totais-mes-grid {
        grid-template-columns: repeat(6, 1fr);
    }
}

@media (max-width: 992px) {
    .meses-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .totais-mes-grid {
        grid-template-columns: repeat(4, 1fr);
    }

    .total-geral-valor {
        font-size: 1.25rem;
    }
}

@media (max-width: 768px) {
    .meses-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .totais-mes-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .valores-header h1 {
        font-size: 1.25rem;
    }

    .total-geral-valor {
        font-size: 1.1rem;
    }

    .acoes-footer {
        flex-direction: column;
        gap: 0.75rem;
    }

    .acoes-footer .btn {
        width: 100%;
    }
}

@media (max-width: 576px) {
    .meses-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .totais-mes-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ========================================
   Sistema de Auto-Save - Indicador Global
   ======================================== */

/* Indicador de status global fixo no topo */
.status-global-container {
    position: fixed;
    top: 60px;
    right: 20px;
    z-index: 1050;
    max-width: 400px;
    display: none;
    animation: slideInRight 0.3s ease;
}

.status-global-container .alert {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    border-radius: 0.5rem;
    font-size: 0.95rem;
    font-weight: 500;
}

/* Animação de entrada */
@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }

    to {
        transform: translateX(0);
        opacity: 1;
    }
}

/* Animação de spin para ícone "salvando" */
@keyframes spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.spin {
    animation: spin 1s linear infinite;
    display: inline-block;
}

/* Animação de sucesso */
@keyframes pulseSuccess {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(1);
    }
}

/* Animação de erro */
@keyframes shake {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}

/* Estilo do rodapé de ações */
.acoes-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2rem 0;
    margin-top: 2rem;
    border-top: 2px solid #dee2e6;
}

.acoes-footer .alert {
    flex: 1;
    max-width: 600px;
}

/* Colapso de seções de relatórios */
.secao-titulo-wrapper {
    cursor: pointer;
    user-select: none;
    position: relative;
    display: block;
    clear: both;
    overflow: visible;
    white-space: nowrap;
}

.secao-titulo-wrapper:hover {
    opacity: 0.9;
}

.secao-titulo-wrapper .icone-colapso {
    position: absolute;
    left: 10px;
    top: 28px;
    font-size: 18px;
    transition: none;
    z-index: 10;
    color: #333;
}

.secao-titulo-wrapper.collapsed .icone-colapso {
    transform: rotate(-90deg);
}

.secao-titulo-wrapper .agrup {
    float: left;
    white-space: normal;
}

.secao-conteudo {
    max-height: 0;
    overflow: hidden;
    clear: both;
    transition: none;
}

.secao-conteudo.show {
    max-height: 50000px;
}