﻿
@font-face {
    font-family: Montserrat;
    font-weight: 400;
    src: url(".../fonts/Montserrat-Regular.eot?") format("eot"), url("../fonts/Montserrat-Regular.woff") format("woff"), url("../fonts/Montserrat-Regular.ttf") format("truetype"), url("../fonts/Montserrat-Regular.svg#Montserrat") format("svg");
}

@font-face {
    font-family: Montserrat;
    font-weight: 700;
    src: url("../fonts/Montserrat-Bold.eot?") format("eot"), url("../fonts/Montserrat-Bold.woff") format("woff"), url("../fonts/Montserrat-Bold.ttf") format("truetype"), url("../fonts/Montserrat-Bold.svg#Montserrat") format("svg");
}

#ajudaSuporteSubmenu li a span {
    width: 10px;
}

.ui-state-full {
    flex: 1;
    display: inline-flex;
    overflow: auto;
    padding: 0px;
    margin: 0px;
    width: 100%;
    overflow-x: auto;
}

.ui-state-default {
    height: 160px;
    display: inline-flex;
    padding: 0px;
    margin: 0px;
}

    .ui-state-default > .draggable {
        border-radius: 10px;
        width: 150px !important;
        height: 150px !important;
        padding: 0em;
        margin: 0px 10px 10px 0px;
        float: left;
        background-color: white;
        border: 1px solid #6E6D70;
        color: #6E6D70;
        display: flex;
        justify-content: center;
        align-items: center;
    }

.form-control > icon-form-control {
    font-family: 'icomoon', 'Second Font name'
}


.table > tbody > tr > td {
    vertical-align: middle;
}

.table > tfoot > tr > td {
    vertical-align: middle;
    padding: 8px 10px;
}

.table > thead > tr > th {
    vertical-align: middle;
    padding: 8px 10px 8px 10px;
}

a.navbar-brand {
    white-space: normal;
    text-align: center;
    word-break: break-all;
}

.container-fluid {
    padding-top: 5px;
    padding-bottom: 5px;
}

    .container-fluid > border {
        border: 1px solid #cecece;
    }

/* Provide sufficient contrast against white background */
a {
    color: #0366d6;
}
/*Serve para aplicar cor fundo na coluna de nota de entrada na central, apenas é aplicado essa class quando for adicionado a class via JS na função AplicarMercadoria em Central.js*/
.aplicar-fundo-verde {
    background-color: rgb(137, 232, 148) !important; /* Altere para a cor desejada */
}

.aplicar-fundo-vermelho {
    background-color: red !important; /* Cor vermelha */
    color: black !important;
}

.btn-radius {
    border-top-right-radius: 5px !important;
    border-bottom-right-radius: 5px !important;
}
/*Estilo para estrela do botão de relatorios*/
.btn-favorito {
    color: #FFD43B;
    min-width: 27px;
    max-width: 27px;
    cursor: pointer;
}
/*Estilo para estrela da aba relatorios*/
.img-star {
    min-height: 19px;
    max-height: 19px;
}
/*Estrela de favoritar no topo do relatorio aberto*/
.btn-favorito-topo {
    cursor: pointer;
    font-size: 1.75rem;
    color: #ccc;
    transition: color 0.15s ease-in-out;
}

.btn-favorito-topo:hover {
    color: #FFD43B;
}

.btn-favorito-topo.favorito-ativo {
    color: #FFD43B;
}

.btn-primary {
    background-color: #f8f9fa;
    border: 1px solid #0366d6;
    border-radius: 1px;
    color: #0366d6;
}

.btn-success {
    background-color: #f8f9fa;
    border: 1px solid #2ea44f;
    border-radius: 1px;
    color: #2ea44f;
}

.btn-danger {
    background-color: #f8f9fa;
    border: 1px solid #e62143;
    border-radius: 1px;
    color: #e62143;
}

.btn-secondary {
    background-color: #f8f9fa;
    border: 1px solid #6E6D70;
    border-radius: 1px;
    color: #6E6D70;
}

.btn-warning {
    background-color: #f8f9fa;
    border: 1px solid #ffbf00;
    border-radius: 1px;
    color: #ffbf00;
}

    .btn-warning:hover {
        color: white;
    }

.btn-info {
    background-color: #f8f9fa;
    border: 1px solid #36A9AE;
    border-radius: 1px;
    color: #36A9AE;
}

.btn-link span {
    color: inherit !important;
}

.btn-link i {
    color: inherit !important;
}

.bg-table-tfoot {
    /*background-color: #8e8d8d;*/
    background-color: #5e5d5d;
    color: white;
    border: 1px solid #6E6D70;
}


.nav-pills .nav-link.active, .nav-pills .show > .nav-link {
    color: #fff;
    background-color: #1b6ec2;
    border-color: #1861ac;
}

/* NAVBAR DETAILS */
.noo-navbar-wrapper {
    width: 100%;
    height: 5vh;
}

.noo-navbar {
    list-style: none;
    padding: 0;
    margin: 0;
}

    .noo-navbar li.noo-navbar-item:not(:first-child) {
        border-left: 2px solid black;
    }

.noo-navbar-item {
    display: inline-block;
    /*padding: 5px 5vw;*/
    font-size: 15px;
}

    .noo-navbar-item a div {
        width: 15vw;
        height: 5vh;
        display: flex;
        justify-content: center;
        align-items: center;
    }

@media only screen and (min-width: 768px) and (max-width: 1024px) {
    .noo-navbar-item {
        font-size: 12px;
    }
}

@media only screen and (min-width: 0px) and (max-width: 768px) {
    .noo-navbar-wrapper {
        height: auto
    }

    .noo-navbar-item {
        display: block;
    }

        .noo-navbar-item a div, .noo-navbar img {
            width: 100%;
        }

    .noo-navbar li.noo-navbar-item:not(:first-child) {
        border-left: 0;
        border-top: 2px solid black;
    }
}
/* -------------- */

/* Sticky footer styles
-------------------------------------------------- */

@media (min-width: 768px) {
    .input-group .btn-block {
        width: auto;
    }

    .input-group:has(.btn-block) {
        width: auto;
        display: inline-block;
    }

    html {
        font-size: 16px;
    }

    .vertical-center {
        min-height: 100%; /* Fallback for browsers do NOT support vh unit */
        min-height: calc(100vh - 65px); /* These two lines are counted as one :-)       */

        display: flex;
        align-items: center;
    }
}

.border-top {
    border-top: 1px solid #e5e5e5;
}

.border-bottom {
    border-bottom: 1px solid #e5e5e5;
}

.box-shadow {
    box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .05);
}

button.accept-policy {
    font-size: 1rem;
    line-height: inherit;
}

/* Sticky footer styles
-------------------------------------------------- */
html {
    position: relative;
    min-height: 100vh;
    overflow-y: hidden;
}

body {
    /* Margin bottom by footer height */
    background-image: url('/img/fundo.jpg');
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    background-attachment: fixed;
    overflow-y: hidden;
}

html,
body {
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    z-index: 0;
}

.footer {
    background-color: #f4f4f4;
    padding: 5px;
    width: 100%;
    position: fixed;
    left: 0;
    bottom: 0;
    height: 40px;
    z-index: 100;
    box-sizing: border-box;
}

/* Modais opt-in do padrão visual: cabeçalho e ações nunca ficam fora da viewport. */
.modal.show .modal-dialog:has(.modal-padrao-cadastro) {
    max-height: calc(100vh - 16px);
    margin-top: 8px;
    margin-bottom: 8px;
}

.modal.show .modal-dialog .modal-content.modal-padrao-cadastro {
    max-height: calc(100vh - 16px);
    display: flex;
    flex-direction: column;
}

.modal.show .modal-dialog .modal-content.modal-padrao-cadastro .modal-body {
    min-height: 0;
    overflow-y: auto;
}

#FooterPrincipal {
    font-size: 12.6px;
}

#FooterPrincipal i {
    font-size: 12.6px;
}

#loader {
    position: fixed;
    left: 0;
    top: 0;
    width: 100vw;
    height: 100vh;
    z-index: 99999;
    background-color: rgb(249,249,249);
    border-radius: 0;
}

.bg-c-blue {
    background: #007bff; /*linear-gradient(45deg, #002D80, #B4ACFF);*/
}

.bg-c-blue2 {
    background: linear-gradient(45deg, #004696, #3DECFF);
}

.bg-c-blue3 {
    background: linear-gradient(45deg, #002249, #00A698);
}

.bg-c-green {
    background: #20e485; /*linear-gradient(45deg, #2BBA26, #19F78C);*/
}

.bg-c-yellow {
    background: #e8b549;
}

.bg-c-brown {
    background: linear-gradient(45deg, #402015, #E65C00);
}

.bg-c-red {
    background: #FF004D;
}

.bg-c-pink {
    background: linear-gradient(45deg, #FF00BB, #FFA5EC);
}

.bg-c-pink2 {
    background: linear-gradient(45deg, #AD336D, #F8997D);
}

.bg-c-purple {
    background: #b65eee;
}

.bg-c-silver {
    background: #9c9999;
}

.bg-c-orange {
    background: #FFA500;
}

.bg-dashboard {
    background: #66577d;
}

.bg-c-carbon {
    background: #808080;
}

.card {
    -webkit-box-shadow: 0 1px 2.94px 0.06px rgba(4,26,55,0.16);
    box-shadow: 0 1px 2.94px 0.06px rgba(4,26,55,0.16);
    border: none;
    border-radius: 0px;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
}

.card-block {
    padding: 25px;
}

.order-card {
    color: #fff;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    min-height: 100%;
}

    .order-card:hover {
        animation-duration: 0.25s;
        transform: scale(1.02);
        box-shadow: 0 14px 28px rgba(0,0,0,0.25), 0 10px 10px rgba(0,0,0,0.22);
    }

.expansive-card {
    padding-top: 0 !important;
    height: 0px !important;
    opacity: 0;
    display: none;
    transform: translate(0%, -100%);
}

.multi-button {
    z-index: -1;
    position: absolute;
    top: 1.25rem;
    left: 1.25rem;
    border-radius: 100%;
    width: 0rem;
    height: 0rem;
    transform: translate(-50%, -50%);
    transition: .25s cubic-bezier(0.25, 0, 0, 1);
}

.draggable:hover .btn-secondary {
    opacity: 1;
}

.draggable > .btn-secondary {
    border: none;
    border-radius: 8px;
    opacity: 0;
    height: 50px;
    width: 50px;
}

.container-button:hover > .multi-button {
    width: 8rem;
    height: 8rem;
    z-index: 0;
}

    .container-button:hover > .multi-button > .single-button {
        opacity: 1;
        transition: opacity .25s ease-in-out;
    }

.single-button {
    display: grid;
    place-items: center;
    position: absolute;
    width: 2rem;
    height: 2rem;
    border: none;
    border-radius: 100%;
    transform: translate(-50%, -50%);
    cursor: pointer;
    transition: .25s cubic-bezier(0.25, 0, 0, 1);
    box-shadow: 0 0 0rem -.25rem #000000;
    color: #ffffff;
    opacity: 0;
}

    .single-button:hover {
        box-shadow: 0 0 1rem -.25rem #000000;
    }

    .single-button:first-child:nth-last-child(1) {
        left: 25%;
        top: 25%;
    }

.order-card i {
    font-size: 26px;
}

.dashboard-card-simples-block {
    min-height: 82px;
    padding: 12px 10px 10px;
}

.dashboard-card-comparativo-block {
    min-height: 82px;
    padding: 12px 10px 10px;
}

.dashboard-card-simples-block .card-title,
.dashboard-card-comparativo-block .card-title {
    margin-bottom: 8px;
}

.dashboard-card-simples-block h5:last-child,
.dashboard-card-comparativo-block h5:last-child {
    margin-bottom: 0;
}

.f-left {
    float: left;
}

.f-right {
    float: right;
}

.navbar-nav li:hover > ul.dropdown-menu {
    display: block;
}

.dropdown-submenu {
    position: relative;
}

    .dropdown-submenu > .dropdown-menu {
        top: 0;
        left: 100%;
        margin-top: -9px;
    }

/* rotate caret on hover */
.dropdown-menu > li > a:hover:after {
    text-decoration: underline;
    transform: rotate(-90deg);
}


.expand-button {
    position: relative;
}

.accordion-toggle .expand-button:after {
    content: '-';
    font-size: 22px;
}

.accordion-toggle.collapsed .expand-button:after {
    content: '+';
    font-size: 22px;
}

.float {
    position: fixed;
    bottom: 20px;
    right: 20px;
    background-color: #25d366;
    color: #FFF;
    border-radius: 50px;
    font-size: 20px;
    box-shadow: 2px 2px 3px #999;
    z-index: 100;
    padding-left: 15px;
    padding-right: 15px;
}

.wpp-float {
    margin-top: 16px;
}

/* ---------------------------------------------------
    FOOTBAR STYLE
----------------------------------------------------- */

.float-footer {
    position: fixed;
    width: 100%;
    bottom: 0;
    z-index: 100;
}

.wpp-footer {
    width: 40px;
    height: 35px;
    position: fixed;
    display: flex;
    align-items: center;
    overflow: hidden;
    padding: 0px;
    cursor: pointer;
    transition: all .4s;
    border-radius: 10px;
    z-index: 100;
    bottom: 2px;
    right: 5px;
}

    .wpp-footer .wpp-icon {
        position: absolute;
        width: 50px;
        height: 50px;
        display: flex;
        justify-content: center;
        align-items: center;
        color: #25d366;
        border-radius: 10px;
        margin-right: 10px;
        transition: all .4s;
    }

    .wpp-footer:hover {
        width: 280px;
        border-radius: 10px;
        color: black;
        background-color: #25d366;
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.26);
    }

    .wpp-footer span {
        transform: translate(60px);
        color: white;
        font-weight: bold;
        font-size: medium;
        white-space: nowrap;
    }

    .wpp-footer:hover .wpp-icon {
        background: white;
        box-shadow: 0 0 20px rgba(0, 0, 0, 0.26);
        color: rgb(59, 59, 59);
    }

.cookie-footer {
    box-shadow: 0.25rem 0 0.75rem rgb(0 0 0 / 50%);
    justify-content: space-between;
    align-items: center;
    transition: all 0.3s;
    display: none;
    padding: 0 1rem;
}

/* ---------------------------------------------------
    SIDEBAR STYLE
----------------------------------------------------- */

.wrapper {
    display: flex;
    width: 100%;
    align-items: stretch;
    min-height: 0;
    height: 100vh;
    max-height: 100vh;
    overflow: hidden;
}

.lista-itens-menu {
    overflow-y: hidden;
    height: calc(100vh - 98px);
    overflow-x: hidden;
}

#sidebar {
    width: var(--largura-sidebar-recolhida);
    color: #fff;
    transition: all 0.3s;
}

/* Durante carregamento do módulo, evita o estado transitório da sidebar
   enquanto a tela nova ainda está sendo carregada */
body.carregando-conteudo #sidebar,
body.carregando-conteudo #sidebar.expanded,
body.carregando-conteudo #content {
    transition: none !important;
}

body.carregando-conteudo #sidebar:not(.sidebar-fixed).expanded {
    width: var(--largura-sidebar-recolhida) !important;
}

@media (max-width: 768px) {
    .lista-itens-menu {
        overflow-y: auto;
        -webkit-overflow-scrolling: touch; /* Suaviza o scroll no iOS */
    }
}

#sidebar.expanded, .sidebar-fixed {
    width: 270px !important;
}

    #sidebar.expanded span,
    .sidebar-fixed span {
        display: inline-block !important;
    }

#sidebar:hover .lista-itens-menu {
    overflow-y: auto; /* Ativa o scroll no hover */
}

#sidebar a {
    display: inline-block;
    white-space: nowrap;
}

#sidebar i {
    width: 50px;
    font-size: 25px;
    text-align: center;
    vertical-align: middle;
}

/* Tipografia compacta opt-in para telas revisadas. Não usa zoom, escala ou transform. */
.tela-padrao-compacta {
    --fonte-tela-base: 13px;
    --fonte-tela-titulo: 18px;
    --fonte-tela-secao: 15px;
    --fonte-tela-auxiliar: 12px;
    font-size: var(--fonte-tela-base);
}

.tela-padrao-compacta .form-control,
.tela-padrao-compacta .custom-select,
.tela-padrao-compacta .input-group-text,
.tela-padrao-compacta .btn,
.tela-padrao-compacta .nav-link,
.tela-padrao-compacta .dropdown-item,
.tela-padrao-compacta .table,
.tela-padrao-compacta .dataTables_wrapper,
.tela-padrao-compacta label {
    font-size: var(--fonte-tela-base);
}

.tela-padrao-compacta .titulo-pagina-compacto {
    font-size: var(--fonte-tela-titulo);
}

.tela-padrao-compacta .icone-pagina-compacto {
    width: auto;
    height: 42px !important;
    object-fit: contain;
    padding-right: 8px !important;
}

.tela-padrao-compacta .titulo-secao-compacto {
    font-size: var(--fonte-tela-secao);
}

.tela-padrao-compacta .texto-auxiliar-compacto {
    font-size: var(--fonte-tela-auxiliar);
}

.tela-padrao-compacta .btn,
.tela-padrao-compacta .fc-button {
    white-space: nowrap;
}

/* Padrão compacto opt-in para telas principais com grid. */
.grid-padrao-compacto {
    min-height: 0;
    font-size: var(--fonte-tela-base, 13px);
}

#ConteudoPrincipal[data-area-tela="cadastros"] .btn,
#ConteudoPrincipal[data-area-tela="cadastros"] .fc-button,
#ConteudoPrincipal[data-area-tela="grid-compacta"] .btn,
#ConteudoPrincipal[data-area-tela="grid-compacta"] .fc-button {
    white-space: nowrap;
}

.grid-padrao-compacto.pagina-container {
    height: calc(100vh - 100px);
}

.grid-padrao-compacto .row:has(#AccordionFiltros) {
    min-height: 46px;
    align-items: center;
    flex-wrap: nowrap;
}

.grid-padrao-compacto .row:has(#AccordionFiltros) > .cabecalho-identificacao-compacta {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    max-width: none;
    width: auto;
}

.grid-padrao-compacto .row:has(#AccordionFiltros) > .cabecalho-identificacao-compacta + [class*="col-"] {
    flex: 1 1 auto;
    max-width: none;
}

.grid-padrao-compacto .cabecalho-identificacao-compacta :is(h4, h5) {
    flex: 0 0 auto;
    margin-bottom: 0;
    white-space: nowrap;
}

.grid-padrao-compacto .row:has(#AccordionFiltros) img[height="60"] {
    width: auto;
    height: 42px;
    padding-right: 8px !important;
}

.grid-padrao-compacto .row:has(#AccordionFiltros) h5 {
    margin-bottom: 0;
    font-size: 18px;
}

/* Cabeçalho compacto também nas listagens de Cadastro sem filtro superior. */
#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > .row:has(img):has(h4, h5) img[height="60"],
#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > form > .row:has(img):has(h4, h5) img[height="60"] {
    width: auto;
    height: 42px;
    padding-right: 8px !important;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > h5,
#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > form > h5,
#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > .row:has(img):has(h4, h5) :is(h4, h5),
#ConteudoPrincipal[data-area-tela="cadastros"] .grid-padrao-compacto > form > .row:has(img):has(h4, h5) :is(h4, h5) {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 24px;
}

.grid-padrao-compacto #AccordionFiltros .card-header {
    padding: 5px 7px;
}

/* A barra fechada expõe somente os controles; a borda pertence ao painel suspenso. */
.tela-padrao-compacta.grid-padrao-compacto .filtro-barra-sem-borda > .card {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.tela-padrao-compacta.grid-padrao-compacto .filtro-barra-sem-borda > .card > .card-header {
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}

.grid-padrao-compacto #AccordionFiltros #Filtro,
.grid-padrao-compacto #AccordionFiltros .input-group > .input-group-append > .btn,
.grid-padrao-compacto #AccordionFiltros #FiltrosButton {
    min-height: 36px;
    height: 36px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 13px;
}

.grid-padrao-compacto #AccordionFiltros #FiltrosButton {
    padding-right: 10px;
    padding-left: 10px;
}

/*
 * Contrato reutilizável para pesquisa compacta.
 * Os seletores de #AccordionFiltros mantêm as telas legadas no mesmo padrão
 * enquanto elas são migradas para a classe semântica filtro-pesquisa-compacto.
 */
.grid-padrao-compacto .filtro-pesquisa-compacto .card-header,
.filtro-pesquisa-compacto > .card-header,
#AccordionFiltros > .card > .card-header,
#AccordionFiltros.card > .card-header {
    padding: 5px 7px;
}

.grid-padrao-compacto .filtro-pesquisa-compacto .card-header .input-group,
.filtro-pesquisa-compacto > .card-header .input-group,
#AccordionFiltros > .card > .card-header .input-group,
#AccordionFiltros.card > .card-header .input-group {
    flex-wrap: nowrap;
    justify-content: flex-end;
    width: 100%;
}

.grid-padrao-compacto .filtro-pesquisa-compacto .form-control,
.grid-padrao-compacto .filtro-pesquisa-compacto .input-group-append > .btn,
.filtro-pesquisa-compacto > .card-header .form-control,
.filtro-pesquisa-compacto > .card-header .input-group-append > .btn,
#AccordionFiltros > .card > .card-header .form-control,
#AccordionFiltros > .card > .card-header .input-group-append > .btn,
#AccordionFiltros.card > .card-header .form-control,
#AccordionFiltros.card > .card-header .input-group-append > .btn {
    min-height: 36px;
    height: 36px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 13px;
}

.filtro-pesquisa-compacto .card-header .btn,
#AccordionFiltros > .card > .card-header .btn,
#AccordionFiltros.card > .card-header .btn {
    min-height: 36px;
    height: 36px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 13px;
    white-space: nowrap;
}

/* Controles do painel expandido seguem a mesma densidade do cabeçalho. */
.filtro-pesquisa-compacto [id^="CollapseFiltros"] .form-control,
.filtro-pesquisa-compacto [id^="CollapseFiltros"] .select2-container,
.filtro-pesquisa-compacto [id^="CollapseFiltros"] .select2-selection--single,
#AccordionFiltros [id^="CollapseFiltros"] .form-control,
#AccordionFiltros [id^="CollapseFiltros"] .select2-container,
#AccordionFiltros [id^="CollapseFiltros"] .select2-selection--single {
    min-height: 36px !important;
    height: 36px !important;
    font-size: 13px;
}

.filtro-pesquisa-compacto [id^="CollapseFiltros"] .input-group > .select2-container .select2-selection--single,
#AccordionFiltros [id^="CollapseFiltros"] .input-group > .select2-container .select2-selection--single {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

.filtro-pesquisa-compacto [id^="CollapseFiltros"] label,
#AccordionFiltros [id^="CollapseFiltros"] label {
    font-size: 13px;
    white-space: nowrap;
}

.grid-padrao-compacto .filtro-pesquisa-compacto .input-group > .pesquisa-principal-compacta {
    flex: 0 0 262px;
    width: 262px;
    min-width: 262px;
    max-width: 262px;
}

/* O campo principal não participa do crescimento do painel expandido. */
#AccordionFiltros > .card > .card-header .input-group > input#Filtro,
#AccordionFiltros.card > .card-header .input-group > input#Filtro {
    flex: 0 0 262px;
    width: 262px;
    min-width: 262px;
    max-width: 262px;
}

@media (max-width: 575.98px) {
    .grid-padrao-compacto .filtro-pesquisa-compacto .input-group > .pesquisa-principal-compacta {
        flex: 1 1 0;
        width: auto;
        min-width: 0;
        max-width: none;
    }
}

/*
 * Grade comum dos filtros avançados. A largura do rótulo é calculada pelo
 * maior texto completo do painel; o valor permanece igual em todos os campos.
 */
#AccordionFiltros.filtro-painel-responsivo {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    margin-left: auto;
    overflow: visible;
    position: relative;
    transition: none !important;
}

/* A barra fechada Ã© composta somente por pesquisa+lupa e pelo botÃ£o
   independente de filtros. Esta classe Ã© aplicada tambÃ©m em accordions
   legados que nÃ£o possuem o wrapper .card. */
#AccordionFiltros.filtro-painel-responsivo .filtro-barra-padrao {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    min-width: 0;
    width: 100%;
}

#AccordionFiltros.filtro-painel-responsivo .filtro-barra-padrao > .input-group {
    flex: 0 1 auto;
    margin-bottom: 0;
    min-width: 0;
}

#AccordionFiltros.filtro-painel-responsivo .filtro-barra-padrao > #FiltrosButton {
    flex: 0 0 auto;
    margin: 0;
}

#AccordionFiltros.filtro-painel-responsivo.filtro-painel-legado {
    background: transparent;
    border: 0;
    box-shadow: none;
}

#AccordionFiltros.filtro-painel-responsivo > .card,
#AccordionFiltros.filtro-painel-responsivo.card {
    overflow: visible;
    position: relative;
}

#AccordionFiltros.filtro-painel-responsivo [id^="CollapseFiltros"] {
    background: #fff;
    border: 1px solid var(--noo-border);
    border-radius: 10px;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .14);
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    width: min(1056px, calc(100vw - 306px));
    z-index: 1040;
    max-height: calc(100vh - 120px);
    overflow-x: hidden;
    overflow-y: auto;
}

#AccordionFiltros.filtro-painel-responsivo [id^="CollapseFiltros"] > .card-body {
    display: block;
}

#AccordionFiltros.filtro-painel-responsivo.filtro-painel-duas-colunas [id^="CollapseFiltros"] {
    width: min(696px, calc(100vw - 306px));
}

/* Painéis com apenas um campo: preservam a largura útil do controle e não
   deixam uma área vazia desproporcional ao abrir os filtros. */
#AccordionFiltros.filtro-painel-responsivo.filtro-painel-uma-coluna [id^="CollapseFiltros"] {
    width: min(397px, calc(100vw - 306px));
}

#AccordionFiltros .filtros-grid-responsiva.filtros-grid-uma-coluna {
    grid-template-columns: minmax(0, 1fr);
}

#AccordionFiltros.filtro-painel-responsivo > .card,
#AccordionFiltros.filtro-painel-responsivo.card {
    width: 100%;
    transition: none !important;
}

/*
 * A Manutenção de Vendas possui uma grid legada sem pagina-body. O filtro
 * avançado pode ativar a rolagem vertical do conteúdo; reservar a canaleta
 * impede que pesquisa, lupa e botão deslizem 10px durante a abertura.
 */
#ConteudoPrincipal:has(.manutencao-venda-page) {
    scrollbar-gutter: stable;
}

#AccordionFiltros .filtros-grid-responsiva {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: stretch !important;
}

#AccordionFiltros .filtros-grid-responsiva.filtros-grid-duas-colunas {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

/*
 * Telas antigas agrupam cada faixa de filtros em .row. As linhas não podem
 * virar células da grade: somente cada input-group representa uma célula.
 */
#AccordionFiltros .filtros-grid-responsiva > .row,
#AccordionFiltros .filtros-grid-responsiva > .form-inline {
    display: contents !important;
}

#AccordionFiltros .filtros-grid-responsiva > *,
#AccordionFiltros .filtros-grid-responsiva .filtro-campo-responsivo {
    min-width: 0;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#AccordionFiltros .filtro-campo-responsivo {
    display: flex;
    flex-wrap: nowrap;
}

/*
 * Campos de filtro formam uma única peça: raio de 12px somente nas
 * extremidades externas e junções internas retas. O segundo seletor cobre o
 * filtro próprio do Fluxo de Caixa, que usa outro identificador de accordion.
 */
#AccordionFiltros .input-group > .form-control,
#AccordionFiltros .input-group > .custom-select,
#AccordionFiltros .input-group > input,
#AccordionFiltros .input-group > select,
#FluxoVgAccordionFiltros .input-group > .form-control,
#FluxoVgAccordionFiltros .input-group > .custom-select,
#FluxoVgAccordionFiltros .input-group > input,
#FluxoVgAccordionFiltros .input-group > select {
    border-radius: 0 !important;
}

#AccordionFiltros .input-group > .form-control:first-child,
#AccordionFiltros .input-group > .custom-select:first-child,
#AccordionFiltros .input-group > input:first-child,
#AccordionFiltros .input-group > select:first-child,
#FluxoVgAccordionFiltros .input-group > .form-control:first-child,
#FluxoVgAccordionFiltros .input-group > .custom-select:first-child,
#FluxoVgAccordionFiltros .input-group > input:first-child,
#FluxoVgAccordionFiltros .input-group > select:first-child {
    border-bottom-left-radius: 12px !important;
    border-top-left-radius: 12px !important;
}

#AccordionFiltros .input-group > .form-control:last-child,
#AccordionFiltros .input-group > .custom-select:last-child,
#AccordionFiltros .input-group > input:last-child,
#AccordionFiltros .input-group > select:last-child,
#FluxoVgAccordionFiltros .input-group > .form-control:last-child,
#FluxoVgAccordionFiltros .input-group > .custom-select:last-child,
#FluxoVgAccordionFiltros .input-group > input:last-child,
#FluxoVgAccordionFiltros .input-group > select:last-child {
    border-bottom-right-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

/*
 * O Input Tag Helper inclui um hidden __Invariant depois de date/datetime-local.
 * O controle visível continua sendo a extremidade direita do campo composto.
 */
#AccordionFiltros .input-group > input.form-control:has(+ input[type="hidden"][name="__Invariant"]),
#FluxoVgAccordionFiltros .input-group > input.form-control:has(+ input[type="hidden"][name="__Invariant"]) {
    border-bottom-right-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

#AccordionFiltros .input-group > .input-group-prepend:first-child > .input-group-text:first-child,
#AccordionFiltros .input-group > .input-group-prepend:first-child > .btn:first-child,
#FluxoVgAccordionFiltros .input-group > .input-group-prepend:first-child > .input-group-text:first-child,
#FluxoVgAccordionFiltros .input-group > .input-group-prepend:first-child > .btn:first-child {
    border-bottom-left-radius: 12px !important;
    border-bottom-right-radius: 0 !important;
    border-top-left-radius: 12px !important;
    border-top-right-radius: 0 !important;
}

#AccordionFiltros .input-group > .input-group-append:last-child > .input-group-text:last-child,
#AccordionFiltros .input-group > .input-group-append:last-child > .btn:last-child,
#FluxoVgAccordionFiltros .input-group > .input-group-append:last-child > .input-group-text:last-child,
#FluxoVgAccordionFiltros .input-group > .input-group-append:last-child > .btn:last-child {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 12px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 12px !important;
}

#AccordionFiltros .input-group > .select2-container .select2-selection,
#FluxoVgAccordionFiltros .input-group > .select2-container .select2-selection {
    border-radius: 0 !important;
}

#AccordionFiltros .input-group > .select2-container:first-child .select2-selection,
#FluxoVgAccordionFiltros .input-group > .select2-container:first-child .select2-selection {
    border-bottom-left-radius: 12px !important;
    border-top-left-radius: 12px !important;
}

#AccordionFiltros .input-group > .select2-container:last-child .select2-selection,
#FluxoVgAccordionFiltros .input-group > .select2-container:last-child .select2-selection,
#FluxoVgAccordionFiltros .fluxo-vg-period-value:last-child .custom-select {
    border-bottom-right-radius: 12px !important;
    border-top-right-radius: 12px !important;
}

#AccordionFiltros .filtro-campo-responsivo .input-group-prepend,
#AccordionFiltros .filtro-campo-responsivo .input-group-text {
    flex: 0 0 var(--filtro-rotulo-largura, 120px);
    width: var(--filtro-rotulo-largura, 120px) !important;
    max-width: var(--filtro-rotulo-largura, 120px) !important;
    white-space: nowrap;
}

#AccordionFiltros .filtro-campo-responsivo > .form-control,
#AccordionFiltros .filtro-campo-responsivo > .select2-container,
#AccordionFiltros .filtro-campo-responsivo > input,
#AccordionFiltros .filtro-campo-responsivo > select {
    flex: 1 1 0;
    width: 0 !important;
    min-width: 0 !important;
    max-width: none !important;
}

#AccordionFiltros .filtro-pesquisa-compacto > [id^="CollapseFiltros"] > .card-body {
    padding: 7px;
}

#AccordionFiltros .filtro-pesquisa-compacto [id^="CollapseFiltros"] .input-group {
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

#AccordionFiltros .filtro-acoes-padrao {
    align-items: center;
    border-top: 1px solid var(--noo-border);
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin-top: 8px;
    padding-top: 8px;
    width: 100%;
    grid-column: 1 / -1;
}

/* Benefícios Fiscais: listagem simples sem painel avançado e modal de cadastro. */
.beneficio-fiscal-page .beneficio-fiscal-grid-container {
    margin-bottom: 0;
}

.beneficio-fiscal-page .pagina-footer {
    margin-top: 8px;
}

.beneficio-fiscal-page .beneficio-fiscal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
}

/* Perfil Tributário: o tipo de inclusão compõe a própria barra de ações. */
.perfil-tributario-page .perfil-tributario-grid-container {
    margin-bottom: 0;
}

.perfil-tributario-page .pagina-footer {
    margin-top: 8px;
}

.perfil-tributario-page .perfil-tributario-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
}

/* Inclusão federal: o formulário ocupa somente a área útil e preserva a barra
 * de ações acima do rodapé global, sem sobreposição. */
.perfil-tributario-federal-page .pagina-body {
    padding-bottom: 0;
}

.perfil-tributario-federal-page .pagina-body > h5:first-of-type {
    margin: 0;
}

.perfil-tributario-federal-page .pagina-body > h5:not(:first-of-type) {
    margin: 0 0 8px;
}

.perfil-tributario-federal-page .pagina-body > hr {
    margin: 8px 0;
}

.perfil-tributario-federal-page .pagina-body > .row {
    margin-right: -4px;
    margin-left: -4px;
}

.perfil-tributario-federal-page .pagina-body > .row > [class*="col-"] {
    padding-right: 4px;
    padding-left: 4px;
}

.perfil-tributario-federal-page .pagina-body .form-group {
    margin-bottom: 8px;
}

.perfil-tributario-federal-page .pagina-body > .row:has(+ hr) .form-group {
    margin-bottom: 0;
}

.perfil-tributario-federal-page .pagina-footer {
    margin-top: 8px;
}

.perfil-tributario-federal-page .perfil-tributario-federal-acoes {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
}

.perfil-tributario-federal-page .perfil-tributario-federal-acoes .btn {
    white-space: nowrap;
}

/* Select2 e ação de limpar compõem um único campo de Natureza. */
.perfil-tributario-federal-page .perfil-tributario-federal-natureza {
    flex-wrap: nowrap;
}

.perfil-tributario-federal-page .perfil-tributario-federal-natureza > .select2-container {
    flex: 1 1 auto;
    min-width: 0;
}

.perfil-tributario-federal-page .perfil-tributario-federal-natureza > .select2-container .select2-selection--single {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.perfil-tributario-federal-page .perfil-tributario-federal-natureza > .input-group-append > .btn {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

.perfil-tributario-page .perfil-tributario-tipo {
    flex: 0 1 440px;
    margin: 0;
}

.perfil-tributario-page .perfil-tributario-tipo .form-control,
.perfil-tributario-page .perfil-tributario-tipo .input-group-text,
.perfil-tributario-page .perfil-tributario-acoes > .btn {
    box-sizing: border-box;
    height: 36px;
    min-height: 36px;
}

#BeneficioForm .modal-body {
    padding: 8px 15px;
}

#BeneficioForm .modal-body .form-group {
    margin-bottom: 0;
}

#BeneficioForm .modal-body > .row + .row {
    margin-top: 8px;
}

#BeneficioForm .modal-footer {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

@media (max-width: 1365.98px) {
    #AccordionFiltros.filtro-painel-responsivo [id^="CollapseFiltros"] {
        width: min(696px, calc(100vw - 306px));
    }

    #AccordionFiltros.filtro-painel-responsivo.filtro-painel-uma-coluna [id^="CollapseFiltros"] {
        width: min(397px, calc(100vw - 306px));
    }

    #AccordionFiltros .filtros-grid-responsiva {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767.98px) {
    #AccordionFiltros.filtro-painel-responsivo [id^="CollapseFiltros"] {
        width: calc(100vw - 16px);
    }

    #AccordionFiltros.filtro-painel-responsivo.filtro-painel-uma-coluna [id^="CollapseFiltros"] {
        width: calc(100vw - 16px);
    }

    #AccordionFiltros .filtros-grid-responsiva {
        grid-template-columns: minmax(0, 1fr);
    }
}

.grid-padrao-compacto table.dataTable > thead > tr > th,
.grid-padrao-compacto table.dataTable > thead > tr > td,
.grid-padrao-compacto table.dataTable > tbody > tr > td {
    padding-top: 4px;
    padding-bottom: 4px;
}

/* O DataTables usa content-box nas células: 32px + 8px de padding = linha mínima de 40px. */
.grid-padrao-compacto table.dataTable > tbody > tr > td {
    height: 32px;
}

/*
 * O DataTables centraliza a tabela do scrollBody com margin:auto. Durante a
 * transição da sidebar, o wrapper já acompanha a nova largura, mas a tabela
 * ainda conserva por alguns quadros a medida anterior e se desloca para o
 * centro. Manter o corpo ancorado à esquerda faz ele acompanhar o cabeçalho
 * continuamente; a sincronização final continua responsável pelas larguras.
 */
.grid-padrao-compacto .dataTables_scrollBody table.dataTable {
    margin-right: 0;
    margin-left: 0;
}

.grid-padrao-compacto table.dataTable > thead > tr > th,
.grid-padrao-compacto table.dataTable > thead > tr > td {
    text-align: left !important;
}

.grid-padrao-compacto table.dataTable > thead > tr > th.coluna-selecao-grid,
.grid-padrao-compacto table.dataTable > thead > tr > td.coluna-selecao-grid {
    text-align: center !important;
    padding-right: 8px !important;
    padding-left: 8px !important;
}

.grid-padrao-compacto .btn {
    min-width: max-content;
    white-space: nowrap;
}

.grid-padrao-compacto .dataTables_wrapper .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    column-gap: 5px;
    white-space: nowrap;
    font-size: 13px;
    min-height: 32px;
    height: 32px;
    padding: 4px 9px;
}

.grid-padrao-compacto .dataTables_wrapper .coluna-acao-grid {
    box-sizing: border-box;
    width: var(--largura-coluna-acao, 56px) !important;
    min-width: var(--largura-coluna-acao, 56px) !important;
    max-width: var(--largura-coluna-acao, 56px) !important;
}

.dataTables_wrapper .coluna-selecao-grid {
    box-sizing: border-box !important;
    max-width: 42px !important;
    min-width: 42px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center !important;
    vertical-align: middle !important;
    width: 42px !important;
}

.dataTables_wrapper .coluna-selecao-grid input[type="checkbox"] {
    display: block;
    margin: 0 auto !important;
}

.grid-padrao-compacto .dataTables_wrapper .coluna-acao-grid .btn[aria-label="Editar"] {
    box-sizing: border-box;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
}

.grid-padrao-compacto .dataTables_wrapper .btn.btn-acao-icone-grid {
    box-sizing: border-box;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
}

/* Permite aplicar a geometria aprovada em grids locais que usam apenas a tipografia compacta. */
.tela-padrao-compacta .dataTables_wrapper .coluna-acao-grid {
    box-sizing: border-box;
    width: var(--largura-coluna-acao, 56px) !important;
    min-width: var(--largura-coluna-acao, 56px) !important;
    max-width: var(--largura-coluna-acao, 56px) !important;
}

.tela-padrao-compacta .dataTables_wrapper .btn.btn-acao-icone-grid {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    min-height: 32px;
    height: 32px;
    padding: 4px 9px;
    white-space: nowrap;
}

.exportacao-balanca-page .pagina-header img {
    width: auto;
    height: 42px;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card {
    width: 397px;
    max-width: 100%;
    margin-left: auto;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card:has(#CollapseFiltros.show),
.exportacao-balanca-page .exportacao-balanca-filtros-card.filtros-abertos {
    width: min(696px, 100%);
}

.exportacao-balanca-page .exportacao-balanca-filtros-card .card-header {
    padding: 5px 7px;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card .input-group {
    flex-wrap: nowrap;
    justify-content: flex-end;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card #Filtro {
    flex: 0 0 262px;
    width: 262px;
    min-width: 262px;
    max-width: 262px;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card #Filtro,
.exportacao-balanca-page .exportacao-balanca-filtros-card .input-group-append > .btn,
.exportacao-balanca-page .exportacao-balanca-filtros-card #FiltrosButton,
.exportacao-balanca-page .exportacao-balanca-filtros-card #CollapseFiltros .form-control {
    min-height: 36px;
    height: 36px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 13px;
}

.exportacao-balanca-page .exportacao-balanca-filtros-card #FiltrosButton {
    padding-right: 10px;
    padding-left: 10px;
}

.exportacao-balanca-page table.dataTable > thead > tr > th,
.exportacao-balanca-page table.dataTable > thead > tr > td {
    padding-top: 4px;
    padding-bottom: 4px;
    white-space: nowrap;
}

.exportacao-balanca-page table.dataTable > tbody > tr > td {
    padding-top: 4px;
    padding-bottom: 4px;
}

.exportacao-balanca-page .pagina-body {
    overflow-y: hidden;
}

.exportacao-balanca-page .pagina-header {
    margin-bottom: 8px;
    padding-bottom: 8px;
}

.exportacao-balanca-page .exportacao-balanca-grid-secao .form-group {
    margin-bottom: 0;
}

.exportacao-balanca-page .exportacao-balanca-grid-secao + .exportacao-balanca-grid-secao {
    margin-top: 8px;
}

.exportacao-balanca-page .exportacao-balanca-grid-titulo {
    display: block;
    margin-bottom: 8px;
}

.exportacao-balanca-page .exportacao-balanca-modelo-acoes {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    margin: 0;
    padding: 0;
    width: auto;
    white-space: nowrap;
}

.exportacao-balanca-page .pagina-footer > .form-inline {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
}

.exportacao-balanca-page .exportacao-balanca-modelo-acoes > .form-control {
    flex: 0 0 220px;
    width: 220px;
    min-width: 220px;
    max-width: 220px;
}

.exportacao-balanca-page .exportacao-balanca-modelo-acoes > .input-group-append {
    flex: 0 0 auto;
}

.exportacao-balanca-page .exportacao-balanca-modelo-acoes .btn {
    white-space: nowrap;
}

.grid-padrao-compacto .dataTables_wrapper:not(.grid-geometria-pronta) {
    visibility: hidden;
}

/* A ocultação transitória é exclusiva da grid principal. DataTables em abas
   possuem geometria local e não participam do cálculo automático de altura. */
.grid-padrao-compacto .tab-pane .dataTables_wrapper {
    visibility: visible;
}

.grid-padrao-compacto .pagina-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: flex-start;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding-top: 8px;
    white-space: nowrap;
}

.grid-padrao-compacto .pagina-footer > .row,
.grid-padrao-compacto .pagina-footer .form-inline,
.grid-padrao-compacto .pagina-footer .d-flex {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-start;
    margin: 0;
}

.grid-padrao-compacto .pagina-footer [class*="col-"] {
    flex: 0 0 auto;
    max-width: none;
    padding: 0;
    width: auto;
}

.grid-padrao-compacto .pagina-footer .input-group {
    flex: 0 0 auto;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
    width: auto;
}

.grid-padrao-compacto .pagina-footer .btn {
    flex: 0 0 auto;
    margin: 0;
    width: auto;
}

/* Unidades Federativas: mantém o contrato visual de 8px também na view legada. */
.container-fluid.border.bg-white.grid-padrao-compacto.uf-index-page > form > .uf-cabecalho-row {
    margin-bottom: 8px !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.uf-index-page .uf-grid-row .form-group {
    margin-bottom: 0 !important;
}

/* Municípios: aplica a mesma geometria de 8px da listagem de UF. */
.container-fluid.border.bg-white.grid-padrao-compacto.municipio-index-page > form > .municipio-cabecalho-row {
    margin-bottom: 8px !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.municipio-index-page .municipio-grid-row .form-group {
    margin-bottom: 0 !important;
}

/* Motivos de Cancelamento: geometria canônica entre cabeçalho, grid e ações. */
.container-fluid.border.bg-white.grid-padrao-compacto.motivo-cancelamento-index-page > form > .motivo-cancelamento-cabecalho-row {
    margin-bottom: 8px !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.motivo-cancelamento-index-page .motivo-cancelamento-grid-row .form-group {
    margin-bottom: 0 !important;
}

/* Departamentos: geometria canônica entre cabeçalho, grid e ações. */
.container-fluid.border.bg-white.grid-padrao-compacto.departamento-index-page > form > .departamento-cabecalho-row {
    margin-bottom: 8px !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.departamento-index-page .departamento-grid-row .form-group {
    margin-bottom: 0 !important;
}

/* Empresas: espaçamento compacto entre cabeçalho, grid e ações. */
.container-fluid.border.bg-white.grid-padrao-compacto.empresa-index-page > .empresa-index-cabecalho {
    margin-bottom: 8px !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.empresa-index-page .empresa-index-grid .form-group {
    margin-bottom: 0 !important;
}

.container-fluid.border.bg-white.grid-padrao-compacto.empresa-index-page .empresa-index-footer {
    justify-content: flex-start;
}

/* Padrão compacto do menu Ajuda e Suporte. */
.ajuda-suporte-page {
    min-height: 0;
    padding: 10px 12px !important;
}

.ajuda-suporte-page.pagina-container {
    height: calc(100vh - 100px);
}

.ajuda-suporte-page .ajuda-suporte-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 8px 12px;
    min-height: 52px;
    margin-bottom: 6px;
    padding: 4px 2px 6px;
}

.ajuda-suporte-header-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 42px;
}

.ajuda-suporte-header-title > img {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    object-fit: contain;
}

.ajuda-suporte-header-title > .ajuda-suporte-header-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    font-size: 22px;
    line-height: 1;
    color: var(--noo-grid-header-border);
}

.artigo-conteudo-header {
    display: flex;
    align-items: center;
    gap: 8px;
}

.artigo-conteudo-header > .ajuda-suporte-artigo-icon {
    color: var(--noo-grid-header-border);
    font-size: 16px;
    line-height: 1;
}

.ajuda-suporte-header-title h5 {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 24px;
    white-space: nowrap;
}

.ajuda-filtro-card {
    width: 397px;
    max-width: 100%;
    margin-left: auto;
    border-radius: 14px;
}

.base-conhecimento-page .ajuda-filtro-card {
    width: 590px;
}

.ajuda-filtro-card .card-header {
    padding: 5px 7px;
}

.ajuda-filtro-card .input-group {
    flex-wrap: nowrap;
    width: 100%;
}

.ajuda-filtro-card .form-control,
.ajuda-filtro-card .input-group-append > .btn {
    min-height: 36px;
    height: 36px;
    padding-top: 4px;
    padding-bottom: 4px;
    font-size: 13px;
}

.ajuda-filtro-card .pesquisa-principal-compacta {
    flex: 0 0 262px;
    width: 262px;
    min-width: 262px;
    max-width: 262px;
}

.base-conhecimento-page .base-conhecimento-tipo-consulta {
    flex: 1 1 190px;
    min-width: 170px;
}

.base-conhecimento-page .pagina-body {
    overflow-x: hidden;
}

.base-conhecimento-navegacao {
    min-width: 0;
}

.base-conhecimento-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.base-conhecimento-tabs .nav-item {
    flex: 0 0 auto;
}

.base-conhecimento-tabs .nav-link {
    background: transparent;
    border: 1px solid var(--noo-border);
    box-shadow: none !important;
    min-height: 36px;
    padding: 7px 12px;
    text-decoration: none !important;
    white-space: nowrap;
}

.base-conhecimento-tabs .nav-link.active {
    background: var(--noo-grid-header);
    border-color: var(--noo-grid-header-border);
    box-shadow: none !important;
    color: var(--noo-grid-header-text);
}

.base-conhecimento-conteudo > .tab-pane {
    padding: 6px;
    border-radius: 0 0 12px 12px;
}

.base-conhecimento-accordion .card {
    margin-bottom: 4px;
    overflow: hidden;
    border-radius: 12px;
}

.base-conhecimento-accordion-toggle {
    display: flex;
    align-items: center;
    gap: 7px;
    width: 100%;
    min-height: 40px;
    padding: 7px 12px;
    color: var(--noo-text, #172235);
    text-align: left;
    background: #fff;
    border: 0;
    font-size: 15px;
    font-weight: 600;
}

.base-conhecimento-accordion-toggle:hover,
.base-conhecimento-accordion-toggle:focus {
    color: #0d6efd;
    background: #f8fafc;
    outline: 0;
}

.base-conhecimento-artigos {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    padding: 6px 10px;
}

.base-conhecimento-artigos .artigo-link {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    width: 100%;
    min-width: 0;
    padding: 6px 8px;
    text-align: left;
    white-space: normal;
}

.base-conhecimento-artigos .artigo-link .fa {
    margin-top: 2px;
    font-size: 16px;
}

.artigo-conteudo-header,
.artigo-conteudo-footer {
    padding: 8px 2px;
    border-bottom: 1px solid var(--noo-border);
}

.artigo-conteudo {
    overflow-anchor: none;
}

.artigo-conteudo-footer {
    border-top: 1px solid var(--noo-border);
    border-bottom: 0;
}

.artigo-iframe-container iframe {
    display: block;
    min-height: 280px;
}

.nota-versao-page .pagina-body {
    overflow: hidden;
}

.nota-versao-page #AccordionFiltros.filtro-painel-responsivo:not(:has(#CollapseFiltros.show)):not(:has(#CollapseFiltros.collapsing)) {
    flex-basis: 397px;
    width: 397px;
    max-width: 100%;
    margin-left: auto;
}

.nota-versao-page #AccordionFiltros > #CollapseFiltros > .card-body {
    padding: 7px;
}

.nota-versao-page .dataTables_wrapper .coluna-acao-grid {
    --largura-coluna-acao: 56px;
}

.nota-versao-detalhes-texto {
    margin-right: 8px;
    margin-left: 8px;
    overflow-wrap: anywhere;
    white-space: pre-line;
}

.privacidade-conteudo h5 {
    margin-top: 10px;
    margin-bottom: 6px;
    font-size: 15px;
}

.privacidade-conteudo p,
.privacidade-conteudo li {
    line-height: 1.45;
}

.privacidade-cookie-configuracao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.privacidade-cookie-configuracao .form-control {
    flex: 0 0 112px;
    width: 112px;
    margin-bottom: 6px;
}

.contrato-uso-conteudo {
    line-height: 1.45;
}

.contrato-uso-page #Contrato {
    margin-right: 0;
    margin-left: 0;
}

.contrato-uso-page #Contrato > .col-12 {
    padding-right: 0;
    padding-left: 0;
}

.contrato-uso-acoes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-bottom: 0;
}

.downloads-page .pagina-body {
    overflow-x: hidden;
    overflow-y: auto;
}

.downloads-page .downloads-conteudo {
    padding: 8px 10px 10px;
}

.downloads-page .downloads-grupo {
    padding: 8px;
    background-color: #f8f9fa;
    border: 1px solid #e2e7ee;
    border-radius: 12px;
}

.downloads-page .downloads-grupo + .downloads-grupo {
    margin-top: 8px;
}

.downloads-page .downloads-grupo-titulo {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 7px;
    color: #26364d;
    font-size: 13px;
    font-weight: 700;
    line-height: 18px;
}

.downloads-page .downloads-grupo-titulo > span {
    width: 16px;
    color: #0069d9;
    text-align: center;
}

.downloads-page .downloads-cards {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    grid-auto-rows: 1fr;
    gap: 8px;
}

.downloads-page .download-card {
    min-width: 0;
    min-height: 168px;
    height: 100%;
    padding: 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background-color: #fff;
    border: 1px solid #dce3ec;
    border-radius: 10px;
    box-shadow: 0 2px 6px rgba(38, 54, 77, .05);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.downloads-page .download-card:hover {
    border-color: #a9c9f2;
    box-shadow: 0 4px 10px rgba(38, 54, 77, .09);
}

.downloads-page .download-card-conteudo {
    min-width: 0;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: center;
    gap: 7px;
}

.downloads-page .download-card-logo {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px;
    background-color: #f3f6fa;
    border-radius: 10px;
}

.downloads-page .download-card-logo-pdv {
    padding: 2px;
}

.downloads-page .download-card-logo img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.downloads-page .download-card-nome {
    width: 100%;
    min-width: 0;
    min-height: 32px;
    margin: 0;
    color: #192b45;
    font-size: 12px;
    font-weight: 700;
    line-height: 16px;
    overflow-wrap: anywhere;
    text-align: center;
    white-space: normal;
    word-break: break-word;
}

.downloads-page .download-card-versao {
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
    color: #34445a;
    font-size: 12px;
    font-weight: 600;
    line-height: 16px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.downloads-page .download-card-rodape {
    min-width: 0;
    margin-top: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.downloads-page .download-card-botao {
    min-width: 82px;
    height: 30px;
    flex: 0 0 auto;
    margin: 0;
    padding: 0 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 600;
    line-height: 28px;
    text-decoration: none;
    white-space: nowrap;
}

.downloads-page .download-card-botao:hover {
    text-decoration: none;
}

@media (max-width: 1100px), (max-height: 768px) {
    .downloads-page .downloads-conteudo {
        padding: 6px 8px 8px;
    }

    .downloads-page .downloads-grupo {
        padding: 6px;
    }

    .downloads-page .downloads-grupo + .downloads-grupo {
        margin-top: 6px;
    }

    .downloads-page .downloads-grupo-titulo {
        margin-bottom: 5px;
        font-size: 12px;
        line-height: 16px;
    }

    .downloads-page .downloads-cards {
        gap: 6px;
    }

    .downloads-page .download-card {
        min-height: 148px;
        padding: 8px;
    }

    .downloads-page .download-card-conteudo {
        gap: 5px;
    }

    .downloads-page .download-card-logo {
        width: 56px;
        height: 56px;
        flex-basis: 56px;
        padding: 4px;
    }

    .downloads-page .download-card-logo-pdv {
        width: 56px;
        flex-basis: 56px;
        padding: 1px;
    }

    .downloads-page .download-card-nome {
        min-height: 28px;
        font-size: 11px;
        line-height: 14px;
    }

    .downloads-page .download-card-versao {
        font-size: 11px;
        line-height: 14px;
    }

    .downloads-page .download-card-rodape {
        margin-top: 5px;
        gap: 3px;
    }

    .downloads-page .download-card-botao {
        min-width: 58px;
        height: 28px;
        padding: 0 6px;
        gap: 3px;
        font-size: 11px;
        line-height: 26px;
    }
}

@media (max-width: 900px) {
    .downloads-page .downloads-cards {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .downloads-page .downloads-cards {
        grid-template-columns: 1fr;
    }
}

.sobre-conteudo .form-group {
    margin-bottom: 0;
}

.sobre-logo-container {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 118px;
}

.sobre-logo {
    width: auto;
    max-width: min(360px, 90%);
    max-height: 118px;
    object-fit: contain;
}

.sobre-conteudo p {
    margin-bottom: 8px;
}

.sobre-conteudo .text-center a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0 4px;
}

@media (max-width: 767.98px) {
    .ajuda-filtro-card,
    .base-conhecimento-page .ajuda-filtro-card {
        width: 100%;
        margin-left: 0;
    }

    .ajuda-filtro-card .pesquisa-principal-compacta {
        flex: 1 1 0;
        width: auto;
        min-width: 120px;
        max-width: none;
    }
}

.relatorio-index-page .pagina-body .form-group {
    margin-bottom: 0;
}

.relatorio-index-page .pagina-footer .relatorio-acoes-tipo {
    margin-left: 8px !important;
}

.relatorio-index-page #TabelaFavoritos,
.relatorio-index-page #RelatorioTabela {
    width: 100%;
    margin-bottom: 0;
    font-size: 13px;
    table-layout: fixed;
}

.relatorio-index-page #TabelaFavoritos td,
.relatorio-index-page #RelatorioTabela td {
    padding-top: 8px;
    padding-bottom: 8px;
    vertical-align: middle;
}

.relatorio-index-page tr.item-relatorio > td {
    box-sizing: border-box;
    min-width: 0 !important;
    max-width: none !important;
    padding-right: 10px;
    padding-left: 10px;
}

.relatorio-index-page tr.item-relatorio > td:nth-child(5),
.relatorio-index-page tr.item-relatorio > td:nth-child(6),
.relatorio-index-page tr.item-relatorio > td:nth-child(7) {
    text-align: center;
}

.relatorio-index-page tr.item-relatorio h6 {
    margin-bottom: 2px;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.relatorio-index-page tr.item-relatorio .btn-acao-icone-grid {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 35px !important;
    min-width: 35px !important;
    max-width: 35px !important;
    height: 32px;
    padding: 4px 9px;
}

.ncm-page .ncm-auditoria-scroll {
    min-height: 160px;
    overflow-x: hidden;
    overflow-y: auto;
    padding-right: 4px;
}

#sidebar.expanded i,
.sidebar-fixed i {
    width: 45px;
}

#sidebar span {
    display: none;
    vertical-align: middle;
}

#sidebar:hover span, .sidebar-fixed span {
    /*display: inline-block !important;

            flavio
        */
}

#sidebar.active {
    margin-left: calc(var(--largura-sidebar-recolhida) * -1);
}

#sidebar .sidebar-header {
    /*
        padding-left: 15px;
        padding-top: 5px;
        padding-bottom: 8px;
        */
    padding: 7.5px;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    height: var(--altura-cabecalho-principal);
    min-height: var(--altura-cabecalho-principal);
    box-sizing: border-box;
}

.sidebar-header #ImgLogoCabecalho {
    margin-left: 12px;
}

#sidebar ul.components {
    border-bottom: 1px solid #563d7c;
}

#sidebar ul p {
    color: #fff;
    padding: 10px;
}

#sidebar ul li a {
    padding: 10px 2px;
    font-size: 14px;
    display: block;
    color: #fff;
}

    #sidebar ul li a span {
        margin-left: 4px;
        margin-right: 9px;
    }

#sidebar ul li:hover > a, #sidebar ul li:hover > div {
    color: #fff;
}

#sidebar ul li:focus > a, #sidebar ul li:focus > div {
    color: #fff;
}

#sidebar ul li.active > a, a[aria-expanded="true"] {
    color: #fff;
}

#sidebar-lock {
    height: 100%;
    color: #212529;
    cursor: pointer;
}

a[data-toggle="collapse"] {
    position: relative;
}

.dropdown-toggle i {
    transition: transform 0.3s ease-in-out;
}

.favorito-item a {
    cursor: pointer;
}

    .favorito-item a:hover {
        text-decoration: underline !important;
    }

.modulo-item {
    display: flex !important;
    align-items: center;
    justify-content: center;
}

    .modulo-item a {
        width: 90%;
        white-space: nowrap;
    }

    .modulo-item div {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 10%;
        cursor: pointer;
        align-self: stretch;
    }

        .modulo-item div span {
            font-size: medium;
        }

    .modulo-item a span {
        width: 10px;
    }

/* Alfinete fixado nos Favoritos (amarelo) */
.fa-thumbtack.fixado {
    color: #f1c40f !important;
}

/* Balançada ao clicar no alfinete */
@keyframes thumbtackShake {
    0%, 100% {
        transform: rotate(0);
    }

    20% {
        transform: rotate(-18deg);
    }

    40% {
        transform: rotate(14deg);
    }

    60% {
        transform: rotate(-10deg);
    }

    80% {
        transform: rotate(6deg);
    }
}

.fa-thumbtack.thumbtack-shake {
    display: inline-block;
    animation: thumbtackShake 0.4s ease;
}

#sidebar ul ul a {
    font-size: 1.0em !important;
    padding-left: 23px !important;
}

#sidebar ul ul ul a {
    font-size: 1.0em !important;
    padding-left: 53px !important;
}


/* ---------------------------------------------------
    CONTENT STYLE
----------------------------------------------------- */

#content {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%; /*calc(100% - 250px);    */
    min-height: 0;
    height: 100vh;
    max-height: 100vh;
    box-sizing: border-box;
    padding-left: 5px;
    padding-right: 5px;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#CabecalhoPrincipal {
    flex-shrink: 0;
}

#ConteudoCalculadora {
    flex-shrink: 0;
}

/* ---------------------------------------------------
    MEDIAQUERIES
----------------------------------------------------- */

@media (max-width: 768px) {

    #ConteudoPrincipal {
        /*left: 0;
        position: fixed;*/
    }

    #sidebar {
        margin-left: calc(var(--largura-sidebar-recolhida) * -1);
        z-index: 999;
    }

    #content {
        width: 100%;
        min-height: 0;
        height: 100vh;
        max-height: 100vh;
        padding-left: 5px;
        padding-right: 5px;
        display: flex;
        flex-direction: column;
        overflow: hidden;
        transition: all 0.3s;
    }

    #sidebar.active {
        margin-left: 0;
    }

    #sidebarCollapse span {
        display: none;
    }

    .fc-toolbar.fc-header-toolbar {
        display: flex;
        flex-direction: column;
    }

        .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk:nth-child(1) {
            order: 3;
            margin: 5px;
        }

        .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk:nth-child(2) {
            order: 1;
        }

        .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk:nth-child(3) {
            order: 2;
        }
}

.dataTables_scrollHeadInner, .table:not(.dataTable) {
    width: 100% !important;
}

.modal-body {
    max-height: calc(100vh - 210px);
    overflow-y: auto;
    overflow-x: clip;
}

/* Modais internos das telas de Cadastro seguem a mesma densidade compacta da tela de origem. */
.modal-padrao-cadastro .modal-title {
    font-size: var(--fonte-tela-secao, 15px);
}

.modal-padrao-cadastro .modal-body > .row,
.modal-padrao-cadastro .modal-body .container-fluid > .row {
    margin-right: -4px;
    margin-left: -4px;
}

.modal-padrao-cadastro .modal-body > .row > [class*="col-"],
.modal-padrao-cadastro .modal-body .container-fluid > .row > [class*="col-"] {
    padding-right: 4px;
    padding-left: 4px;
}

.modal-padrao-cadastro .modal-body .form-group {
    margin-bottom: 8px;
}

.modal-padrao-cadastro .form-control:not(textarea),
.modal-padrao-cadastro .custom-select,
.modal-padrao-cadastro .input-group-text,
.modal-padrao-cadastro .select2-container,
.modal-padrao-cadastro .select2-selection--single,
.modal-padrao-cadastro .select2-selection--multiple {
    min-height: 36px !important;
    height: 36px !important;
    border-radius: 12px;
    font-size: 13px;
}

.modal-padrao-cadastro .select2-selection--multiple {
    overflow-y: auto;
}

.modal-padrao-cadastro .input-group > .input-group-prepend:first-child > .input-group-text,
.modal-padrao-cadastro .input-group > .input-group-prepend:first-child > .btn {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.modal-padrao-cadastro .input-group > .form-control:not(:first-child),
.modal-padrao-cadastro .input-group > .custom-select:not(:first-child),
.modal-padrao-cadastro .input-group > .select2-container:not(:first-child) .select2-selection--single {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.modal-padrao-cadastro .input-group > .form-control:not(:last-child),
.modal-padrao-cadastro .input-group > .custom-select:not(:last-child),
.modal-padrao-cadastro .input-group > .select2-container:not(:last-child) .select2-selection--single {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* O helper de data pode gerar um input hidden __Invariant depois do campo.
   Esse elemento técnico não deve remover o arredondamento visual da direita. */
.modal-padrao-cadastro .input-group > input.form-control[type="date"]:not(:has(~ .input-group-append)),
.modal-padrao-cadastro .input-group > input.form-control[type="datetime-local"]:not(:has(~ .input-group-append)) {
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

.modal-padrao-cadastro .input-group > .input-group-append:last-child > .btn,
.modal-padrao-cadastro .input-group > .input-group-append:last-child > .input-group-text {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.modal-padrao-cadastro .modal-footer {
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

/* Campo com ações contextuais: select/input e botões constituem uma única
   unidade visual, sem frestas nem raios internos. */
.campo-acao-composto {
    gap: 0 !important;
    min-width: 0;
}

.campo-acao-composto > .flex-fill {
    min-width: 0;
}

.campo-acao-composto > .flex-fill > .form-control,
.campo-acao-composto > .flex-fill > .select2-container .select2-selection--single {
    border-bottom-right-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

.campo-acao-composto > .flex-shrink-0 {
    gap: 0 !important;
    margin-left: 0 !important;
}

.campo-acao-composto > .flex-shrink-0 .btn {
    border-radius: 0;
    margin-left: 0 !important;
}

.campo-acao-composto > .flex-shrink-0 .btn:last-child {
    border-bottom-right-radius: 12px;
    border-top-right-radius: 12px;
}

.modal-padrao-cadastro .modal-footer .btn,
.modal-padrao-cadastro .modal-footer .btn-group {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
    white-space: nowrap;
}

/* Remove grades legadas que afastavam as ações da borda direita do modal. */
.modal-padrao-cadastro .modal-footer :is(.row, .form-inline, .d-flex, .input-group, [class*="col-"]):not(.btn-group) {
    display: contents;
}

/*
 * Modais de manutenção do EFD: os blocos são separados pela régua externa
 * de 8px. A margem dos form-group não participa do cálculo para evitar a
 * soma com o gap do corpo e com o padding do rodapé.
 */
.efd-manutencao-modal-form .efd-manutencao-modal-body {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.efd-manutencao-modal-form .efd-manutencao-modal-body > .row {
    margin-right: -4px;
    margin-left: -4px;
}

.efd-manutencao-modal-form .efd-manutencao-modal-body > .row > [class*="col-"] {
    padding-right: 4px;
    padding-left: 4px;
}

.efd-manutencao-modal-form .efd-manutencao-campos {
    row-gap: 8px;
}

.efd-manutencao-modal-form .efd-manutencao-modal-body .form-group {
    margin-bottom: 0;
}

.efd-manutencao-modal-form .modal-footer {
    gap: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
}

.efd-manutencao-modal-form .modal-footer > * {
    margin: 0;
}


.login-cadastro-container {
    max-width: 400px;
    margin: auto;
    margin-top: 50px;
    padding: 20px;
    border: 1px solid #d4d4d4;
    border-radius: 5px;
    background-color: #fff;
    box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
}

#ConteudoPrincipal {
    flex: 1 1 auto;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    margin-top: -10px;
}

input.form-control {
    border-color: #ccc; /* Cor da borda */
}

input.form-control {
    border-radius: 5px; /* Borda arredondada */
}

input.form-control {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}

input.form-control {
    transition: border-color 0.2s ease-in-out; /* Transição suave */
}

    input.form-control:focus {
        border-color: #007bff; /* Cor da borda ao focar */
    }

select.form-control {
    border-color: #ccc; /* Cor da borda */
    border: 1px solid #ccc; /* Cor da borda */
}

select.form-control {
    border-radius: 5px; /* Borda arredondada */
}

select.form-control {
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}

select.form-control {
    transition: border-color 0.2s ease-in-out; /* Transição suave */
}

    select.form-control:focus {
        border-color: #007bff; /* Cor da borda ao focar */
    }


.btn {
    border-radius: 5px; /* Borda arredondada */
}

.btn {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}

.btn {
    transition: background-color 0.2s ease-in-out; /* Transição suave */
}

    .btn:hover {
        background-color: #8cc0f5; /* Cor de fundo ao passar o mouse */
    }


.nav-link {
    color: black; /* Cor do texto dos links */
    font-size: 16px;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
    color: #555; /* Cor do texto dos links ao passar o mouse ou focar */
}

.select2-container {
    border-color: #ccc; /* Cor da borda */
    border: 1px solid #ccc; /* Cor da borda */
    border-radius: 5px; /* Borda arredondada */
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* Sombra sutil */
}

.bg-table-thead {
    background-color: #747171;
}

.nav-tabs-container {
    overflow-x: auto; /* Adiciona rolagem horizontal */
    white-space: nowrap; /* Impede que os itens quebrem em várias linhas */
    scroll-behavior: smooth;
}

.nav-tabs {
    display: flex; /* Altera para um layout flexível */
    flex-wrap: nowrap; /* Impede que os itens quebrem em várias linhas */
    overflow-x: auto; /* Adiciona rolagem horizontal */
    overflow-y: hidden;
}

    .nav-tabs .nav-item {
        flex: 0 0 auto; /* Permite que os itens tenham largura automática */
    }

.font-weight-bold {
    color: #666567;
}

.bg-table-thead {
    color: white;
}

.borda-grafico {
    padding: 5px;
    height: 100%;
    border: 1px solid #ccc; /* Cor e espessura da borda */
}

#dbReceitasFinanceiro .apexcharts-canvas {
    border: 0px; /* Cor e espessura da borda */
}

#dbDespesasFinanceiro .apexcharts-canvas {
    border: 0px; /* Cor e espessura da borda */
}

@media (max-width: 576px) {
    #DREFinanceiroTabela th, #DREFinanceiroTabela td {
        min-width: 100px; /* Defina o tamanho mínimo desejado */
    }
}

.custom-file, .custom-file-input, .custom-file-label {
    cursor: pointer;
}

    .custom-file-label::after {
        content: '...';
        background-color: white;
        border: 0.5px solid black;
        cursor: pointer;
    }

.empresa-imagem-btn-meio {
    border-radius: 0 !important;
}

.empresa-certificado-btn-meio {
    border-radius: 0 !important;
}

.custo-maior {
    color: #d9534f; /* Vermelho */
    font-weight: bold;
}

.custo-menor {
    color: #5cb85c; /* Verde */
    font-weight: bold;
}

@keyframes slideInRightBounce {
    0% {
        transform: translateX(100%);
        opacity: 0;
    }

    60% {
        transform: translateX(-30px);
        opacity: 1;
    }

    80% {
        transform: translateX(20px);
    }

    100% {
        transform: translateX(0);
    }
}

.slide-in-right {
    animation: slideInRightBounce 0.6s ease-out;
}

.text-ellipsis {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
    width: 100%;
}

#CabecalhoPrincipal {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-right: 0 !important;
    flex-wrap: nowrap;
    height: var(--altura-cabecalho-principal);
    min-height: var(--altura-cabecalho-principal);
    box-sizing: border-box;
}

#CabecalhoPrincipal > .container-fluid {
    flex-wrap: nowrap;
    min-width: 0;
}

.topo-opcoes-card {
    border: 1px solid #ccc;
    border-radius: .6rem;
    background-color: #f8f9fa;
    padding: .3rem .6rem;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    min-width: 0;
}

.select-box {
    border: 0;
    border-radius: 0;
    background-color: transparent;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    height: 49px;
    min-width: 0;
}

@media (max-width: 1199.98px) {
    #CabecalhoPrincipal #MenuTopoCollapse {
        flex-basis: auto;
        flex-grow: 0;
    }

    #CabecalhoPrincipal #MenuTopoCollapse.show,
    #CabecalhoPrincipal #MenuTopoCollapse.collapsing {
        position: absolute;
        top: 100%;
        right: 10px;
        left: auto;
        width: min(420px, calc(100vw - 20px));
        height: auto !important;
        max-height: calc(100vh - 72px);
        padding: 8px;
        background-color: #fff;
        border: 1px solid #dee2e6;
        border-radius: 0 0 .5rem .5rem;
        box-shadow: 0 6px 14px rgba(0, 0, 0, .16);
        overflow-y: auto;
        overflow-x: hidden;
        transition: none;
        -webkit-overflow-scrolling: touch;
        z-index: 10000;
    }

    .topo-opcoes-card {
        border: 0;
        border-radius: 0;
        background-color: transparent;
        padding: 0;
        display: flex;
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .select-box {
        border: 1px solid #ccc;
        border-radius: .6rem;
        background-color: #f8f9fa;
        padding: .3rem .6rem;
        flex-direction: column;
        align-items: center;
        height: auto;
        margin-right: 0;
        margin-top: 0;
        max-width: 100%;
        overflow: visible;
    }

    #MenuTopoCollapse .notificacoes-topo-nav,
    #MenuTopoCollapse .usuario-topo-nav {
        width: 100%;
        margin-top: 8px;
        padding: 0;
    }

        .select-box > div,
        .select-box select,
        .select-box .select2-container {
            width: 100% !important;
            min-width: 0 !important;
            max-width: 100% !important;
        }

        .select-box .select-box-modern {
            width: 100%;
            max-width: 390px;
            margin-left: auto;
            margin-right: auto;
            padding-right: 0 !important;
            box-sizing: border-box;
        }

        #MenuTopoCollapse #IdEmpresaFiltro + .select2-container {
            margin-left: 0 !important;
            margin-right: 0 !important;
        }

        #MenuTopoCollapse .notificacoes-topo-nav,
        #MenuTopoCollapse .usuario-topo-nav {
            width: 100%;
            justify-content: flex-start;
            margin-top: 8px;
            flex-direction: column;
            flex-wrap: nowrap;
            white-space: nowrap;
            gap: 8px;
        }

            #MenuTopoCollapse .notificacoes-topo-nav > li,
            #MenuTopoCollapse .usuario-topo-nav > li {
                width: 100%;
                margin-right: 0 !important;
            }

            #MenuTopoCollapse .usuario-topo-nav > li#navbarNavDropdown {
                display: block;
            }

        #MenuTopoCollapse #LinkMensagensInternasTopo,
        #MenuTopoCollapse #navbarDropdownMenuLink {
            min-height: 38px;
        }

        #MenuTopoCollapse .notificacoes-topo-nav .dropdown {
            width: 100%;
        }

            #MenuTopoCollapse .notificacoes-topo-nav .dropdown > a {
                width: 100%;
                display: flex;
                justify-content: space-between;
            }

    #MenuTopoCollapse #navbarDropdownMenuLink {
        width: 100%;
        display: flex;
        justify-content: space-between;
        background-color: #fff;
        border: 1px solid #dee2e6;
        border-radius: .45rem;
        padding: .35rem .5rem;
    }

    #MenuTopoCollapse #LinkMensagensInternasTopo {
        justify-content: flex-start;
        gap: 3px;
        padding-left: 8px;
        padding-right: 8px;
    }

    #MenuTopoCollapse.show #TopoMensagensInternasTexto,
    #MenuTopoCollapse.collapsing #TopoMensagensInternasTexto {
        display: inline-block !important;
    }

    #MenuTopoCollapse #navbarNavDropdown.show .dropdown-menu {
        position: static !important;
        float: none;
        width: 100%;
        max-height: 42vh;
        overflow-y: auto;
        overflow-x: hidden;
        margin-top: 6px;
        transform: none !important;
        -webkit-overflow-scrolling: touch;
    }

    #CabecalhoPrincipal {
        /* default menor que 768 */
        flex-direction: row;
        height: var(--altura-cabecalho-principal);
        z-index: 9999;
        padding-right: 10px;
        flex-wrap: nowrap;
    }

        /* Se o menu está ABERTO (não colapsado), queremos outro tamanho */
        #CabecalhoPrincipal .navbar-collapse.show ~ & {
            height: 200px;
        }

    .nome-usuario {
        margin-right: 20px;
        width: 100%;
    }

    #navbarNavDropdown {
        z-index: 9999;
    }

    #btnCollapse {
        margin-right: 10px;
    }

    #navbarDropdownMenuLink {
        width: 100%;
        z-index: 9999 !important;
    }
}

.select-modern {
    border: 1px solid #ccc;
    border-radius: .4rem;
    padding: .5rem .5rem;
    font-size: 1rem;
    line-height: 1;
    background-color: #ffffff;
    transition: box-shadow 0.2s, border-color 0.2s;
    margin-right: .5rem;
    width: 300px;
}

    .select-modern:last-child {
        margin-right: 0;
    }

    .select-modern:hover {
        box-shadow: inset 0 0 3px rgba(0,0,0,0.2);
        border-color: #007bff;
    }

.select2-container--open {
    z-index: 9999 !important;
}

#ModalEmpresa,
#ModalEmpresaQrCode,
#ModalEmpresaIe,
#MercadoriaOrdemFlagModal,
#CentralOrdemFlagModal,
#imageModal {
    z-index: 20000 !important;
}

.modal-backdrop.show {
    z-index: 19990 !important;
}


#IdEmpresaFiltro + .select2-container--default .select2-selection--single {
    height: 37px !important;
    border-radius: 0.4rem !important;
    display: flex;
    align-items: center;
    padding: 0px 00px !important;
}

    #IdEmpresaFiltro + .select2-container--default .select2-selection--single .select2-selection__rendered {
        line-height: 22px !important;
        font-size: 1rem !important;
    }

    #IdEmpresaFiltro + .select2-container--default .select2-selection--single .select2-selection__arrow {
        height: 20px !important;
    }

#IdEmpresaFiltro + .select2 .select2-selection__rendered {
    white-space: normal !important;
    line-height: 0.5 !important;
    font-size: 0.75rem !important;
    margin: 0px 15px 2px 00px !important;
    padding: 5px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


#IdEmpresaFiltro + .select2 .select2-selection__rendered small {
    display: block;
    line-height: 0.9 !important;
    font-size: 0.7rem !important;
    margin: 0 !important;
    padding: 0 !important;
}

#select2-IdEmpresaFiltro-results .select2-results__option {
    padding-top: 2px !important;
    padding-bottom: 2px !important;
    line-height: 1.1 !important;
    font-size: 0.8rem !important;
}


.modal.modal-full {
    position: fixed !important; /* Permite z-index funcionar */
}

.modal-dialog.modal-full {
    width: 95% !important;
    max-width: 95% !important;
    height: 95vh !important;
    max-height: 95vh !important;
    margin: 0 auto;
    position: relative !important; /* Mantém contexto */
}

    .modal-dialog.modal-full .modal-content {
        height: 100%;
        max-height: 100%;
        display: flex;
        flex-direction: column;
    }

    /* header e footer fixos, sem flex */
    .modal-dialog.modal-full .modal-header,
    .modal-dialog.modal-full .modal-footer {
        flex-shrink: 0;
    }

    /* AQUI vai o scroll */
    .modal-dialog.modal-full .modal-body {
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        overflow-x: hidden;
        padding: 0 1rem; /* ou o padding que você quiser */
    }

    /* Conteúdo de abas normal, SEM height e SEM flex */
    .modal-dialog.modal-full .tab-content {
        /* nada de height, nada de flex aqui */
    }

    .modal-dialog.modal-full .tab-pane {
        /* nada de height, nada de flex, nada de vh */
    }



.col-mercadoria-sidebar {
    height: 100%;
    max-height: 100%;
    overflow-y: auto;
}

.modal-body .tabela-scroll-modal {
    display: block;
    overflow-x: auto;
    border-collapse: collapse;
}

    .modal-body .tabela-scroll-modal thead,
    .modal-body .tabela-scroll-modal tbody {
        display: table;
        width: 100%;
        table-layout: fixed;
    }

    .modal-body .tabela-scroll-modal thead {
        width: 100%;
    }

/*flavio*/
/* =========================================================
   CAMADA VISUAL MODERNA - aplicar no final do arquivo
   ========================================================= */

:root {
    --altura-cabecalho-principal: 60px;
    --largura-sidebar-recolhida: 54px;
    --noo-bg-soft: #f4f7fb;
    --noo-border: #e6ebf2;
    --noo-border-strong: #d7dee8;
    --noo-text: #243040;
    --noo-text-soft: #6b7280;
    --noo-grid-success: rgb(96, 246, 146);
    --noo-grid-warning: rgb(253, 253, 150);
    --noo-grid-danger: rgb(255, 105, 97);
    --noo-grid-info: rgb(0, 174, 219);
    --noo-grid-neutral: rgb(200, 162, 200);
    --noo-grid-success-soft: rgb(226, 253, 236);
    --noo-grid-warning-soft: rgb(255, 255, 238);
    --noo-grid-danger-soft: rgb(255, 228, 227);
    --noo-grid-info-soft: rgb(209, 240, 249);
    --noo-grid-neutral-soft: rgb(245, 238, 245);
    --noo-grid-success-text: #18251d;
    --noo-grid-warning-text: #292700;
    --noo-grid-danger-text: #3f1714;
    --noo-grid-info-text: #003744;
    --noo-grid-neutral-text: #35263d;
    --noo-shadow-sm: 0 4px 12px rgba(15, 23, 42, 0.05);
    --noo-shadow-md: 0 10px 26px rgba(15, 23, 42, 0.08);
    --noo-shadow-lg: 0 18px 40px rgba(15, 23, 42, 0.12);
    --noo-radius-sm: 10px;
    --noo-radius-md: 16px;
    --noo-radius-lg: 22px;
}

.container-fluid.border.bg-white,
.container-fluid.bg-white,
.container-fluid.border {
    background: linear-gradient(180deg, rgba(255,255,255,0.96) 0%, rgba(245,248,252,0.95) 100%);
    border: 1px solid var(--noo-border) !important;
    border-radius: var(--noo-radius-lg);
    box-shadow: var(--noo-shadow-md);
}

/* Corrige o seletor antigo errado */
.container-fluid > .border {
    border: 1px solid #cecece;
}

/* Cards com cara moderna */
.card {
    border: 1px solid var(--noo-border);
    border-radius: var(--noo-radius-md);
    box-shadow: var(--noo-shadow-sm);
    overflow: hidden;
}

    .card:hover {
        box-shadow: var(--noo-shadow-md);
    }

.card-header {
    background: linear-gradient(180deg, #ffffff 0%, #f7f9fc 100%);
    border-bottom: 1px solid var(--noo-border);
    padding: 14px 18px;
    font-weight: 700;
    color: var(--noo-text);
}

.card-block,
.card-body {
    padding: 10px;
}

/* Inputs e selects */
input.form-control,
select.form-control,
textarea.form-control {
    border: 1px solid var(--noo-border-strong);
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.04);
    transition: all 0.2s ease-in-out;
    min-height: 42px;
    color: var(--noo-text);
    background-color: #fff;
}

    input.form-control:hover,
    select.form-control:hover,
    textarea.form-control:hover {
        border-color: #b9c5d3;
        box-shadow: 0 3px 10px rgba(0,0,0,0.05);
    }

    input.form-control:focus,
    select.form-control:focus,
    textarea.form-control:focus {
        border-color: #7ab8ff;
        box-shadow: 0 0 0 0.18rem rgba(0, 123, 255, 0.15);
        background-color: #fff;
    }

/* Select2 alinhado ao visual */
.select2-container {
    border: none !important;
    box-shadow: none !important;
    border-radius: 12px !important;
}

    .select2-container .select2-selection--single,
    .select2-container .select2-selection--multiple {
        min-height: 42px !important;
        border: 1px solid var(--noo-border-strong) !important;
        border-radius: 12px !important;
        box-shadow: 0 1px 2px rgba(0,0,0,0.04);
        transition: all 0.2s ease-in-out;
        display: flex !important;
        align-items: center !important;
        background: #fff !important;
    }

.select2-container.select2-container--disabled .select2-selection--single,
.select2-container.select2-container--disabled .select2-selection--multiple {
    background: #e9ecef !important;
    cursor: not-allowed !important;
    box-shadow: none !important;
}

        .select2-container .select2-selection--single:hover,
        .select2-container .select2-selection--multiple:hover {
            border-color: #b9c5d3 !important;
            box-shadow: 0 3px 10px rgba(0,0,0,0.05);
        }

.select2-container--focus .select2-selection--single,
.select2-container--focus .select2-selection--multiple,
.select2-container--open .select2-selection--single,
.select2-container--open .select2-selection--multiple {
    border-color: #7ab8ff !important;
    box-shadow: 0 0 0 0.18rem rgba(0, 123, 255, 0.15) !important;
}

/* Modais compactos usam a mesma altura dos demais campos. Esta regra fica
   depois do Select2 global para impedir que o mínimo de 42px prevaleça. */
.modal-padrao-cadastro .select2-container .select2-selection--single,
.modal-padrao-cadastro .select2-container .select2-selection--multiple {
    height: 36px !important;
    min-height: 36px !important;
}

/* Campos do menu Fiscal usam a altura compacta de 36px. O Select2 global
   possui mínimo de 42px, portanto a família fiscal precisa sobrescrevê-lo. */
.efd-fiscal-page .select2-container--bootstrap4 .select2-selection--single,
.efd-contribuicao-page .select2-container--bootstrap4 .select2-selection--single,
.sintegra-page .select2-container--bootstrap4 .select2-selection--single,
.gestao-tributaria-campo .select2-container--bootstrap4 .select2-selection--single {
    height: 36px !important;
    min-height: 36px !important;
}

.efd-fiscal-page .select2-container--bootstrap4 .select2-selection--multiple,
.efd-contribuicao-page .select2-container--bootstrap4 .select2-selection--multiple,
.sintegra-page .select2-container--bootstrap4 .select2-selection--multiple,
.gestao-tributaria-campo .select2-container--bootstrap4 .select2-selection--multiple {
    min-height: 36px !important;
}

.efd-fiscal-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered,
.efd-contribuicao-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered,
.sintegra-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered,
.gestao-tributaria-campo .select2-container--bootstrap4 .select2-selection--single .select2-selection__rendered {
    line-height: 34px !important;
}

.efd-fiscal-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow,
.efd-contribuicao-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow,
.sintegra-page .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow,
.gestao-tributaria-campo .select2-container--bootstrap4 .select2-selection--single .select2-selection__arrow {
    height: 34px !important;
}

.select2-dropdown {
    border: 1px solid var(--noo-border) !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: var(--noo-shadow-lg);
}

/* Botões mais elegantes sem quebrar a identidade */
.btn {
    border-radius: 12px !important;
    box-shadow: 0 3px 10px rgba(0,0,0,0.08);
    transition: all 0.18s ease-in-out;
    font-weight: 600;
    min-height: 38px;
    padding: 0.45rem 0.95rem;
}

    .btn:hover {
        transform: translateY(-1px);
        box-shadow: 0 8px 18px rgba(0,0,0,0.12);
    }

/* Corrige o hover genérico que deixava tudo azul claro */
.btn-primary:hover {
    background-color: #0366d6;
    border-color: #0366d6;
    color: #fff;
}

.btn-success:hover {
    background-color: #2ea44f;
    border-color: #2ea44f;
    color: #fff;
}

.btn-danger:hover {
    background-color: #e62143;
    border-color: #e62143;
    color: #fff;
}

.btn-secondary:hover {
    background-color: #6E6D70;
    border-color: #6E6D70;
    color: #fff;
}

.btn-warning:hover {
    background-color: #ffbf00;
    border-color: #ffbf00;
    color: #fff;
}

.btn-info:hover {
    background-color: #36A9AE;
    border-color: #36A9AE;
    color: #fff;
}

.btn-link:hover {
    transform: none;
    box-shadow: none;
    background: transparent;
}

/* Badges e pequenos elementos */
.badge {
    border-radius: 999px;
    padding: 0.45em 0.8em;
    font-weight: 600;
}

/* Tabelas mais bonitas */
.table {
    background: rgba(255,255,255,0.94);
    border-radius: 14px;
    overflow: clip;
    margin-bottom: 0;
}



.table-hover tbody tr {
    transition: background-color 0.15s ease, transform 0.15s ease;
}

    .table-hover tbody tr:hover {
        background-color: #f8fbff;
    }

/* Cabeçalhos de tabela menos pesados */
.bg-table-thead {
    background: linear-gradient(90deg, #5e6470 0%, #4c5563 100%) !important;
    color: white !important;
    border: 1px solid #545d69 !important;
}

.bg-table-thead-sub {
    background: linear-gradient(90deg, #9aa0a8 0%, #868d97 100%) !important;
    color: white !important;
    border: 1px solid #7f8791 !important;
}

.bg-table-tfoot {
    background: linear-gradient(90deg, #5d6066 0%, #4c4f56 100%) !important;
    color: white !important;
    border: 1px solid #53565d !important;
}

/* Alertas */
.alert {
    border: 1px solid transparent;
    border-radius: 14px;
    box-shadow: var(--noo-shadow-sm);
}

/* Modais */
.modal-content {
    border: 1px solid var(--noo-border);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--noo-shadow-lg);
}

.modal-header {
    border-bottom: 1px solid var(--noo-border);
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    padding: 14px 18px;
}

.modal-footer {
    border-top: 1px solid var(--noo-border);
    background: #fbfcfe;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.modal-footer > * {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    white-space: nowrap;
}

/*
 * Rodapés legados de modal ainda recebem classes de coluna/centralização.
 * A coluna não pode participar do flex vertical do modal: ela criava área
 * elástica e alterava a posição das ações. O rodapé institucional mantém
 * somente a sua altura, ações naturais e alinhamento à direita.
 */
.modal-footer:is(.col, .col-bg, [class*="col-"]) {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    text-align: initial;
}

.modal-body {
    max-height: calc(100vh - 210px);
    overflow-y: auto;
    overflow-x: clip;
}

/* Navbar / header */
#CabecalhoPrincipal {
    border-radius: 0 0 18px 18px;
    box-shadow: 0 8px 18px rgba(0,0,0,0.08);
}

.nav-link {
    color: #1f2937;
    font-weight: 500;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
    color: #0d6efd;
}



/* Accordion e caixas */
.accordion .card {
    border-radius: 16px;
    overflow: hidden;
}

/* Login container */
.login-cadastro-container {
    max-width: 400px;
    margin: auto;
    margin-top: 50px;
    padding: 24px;
    border: 1px solid var(--noo-border);
    border-radius: 18px;
    background: rgba(255,255,255,0.95);
    box-shadow: var(--noo-shadow-lg);
    backdrop-filter: blur(6px);
}

/* Scroll bonito */
::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

::-webkit-scrollbar-track {
    background: rgba(0,0,0,0.04);
    border-radius: 999px;
}

::-webkit-scrollbar-thumb {
    background: rgba(100, 116, 139, 0.45);
    border-radius: 999px;
}

    ::-webkit-scrollbar-thumb:hover {
        background: rgba(71, 85, 105, 0.65);
    }

/* Textos */
.font-weight-bold {
    color: #4b5563;
}

/* Pequeno polimento nas abas */
.nav-tabs {
    gap: 4px;
    border-bottom: 1px solid var(--noo-border);
}

    .nav-tabs .nav-link {
        border-radius: 12px 12px 0 0;
        border: 1px solid transparent;
        box-shadow: none;
        font-weight: 600;
        text-decoration: none;
    }

        .nav-tabs .nav-link:hover {
            background: rgba(255,255,255,0.65);
            border-color: transparent;
        }

        .nav-tabs .nav-link.active {
            background: #fff;
            border-color: var(--noo-border) var(--noo-border) #fff;
            color: #0d6efd;
            box-shadow: none;
            font-weight: 700;
            text-decoration: none;
        }

/* Mobile */
@media (max-width: 768px) {
    .container-fluid.border.bg-white,
    .container-fluid.bg-white,
    .container-fluid.border {
        border-radius: 16px;
        padding: 16px !important;
    }

    .card {
        border-radius: 14px;
    }

    .modal-content {
        border-radius: 16px;
    }
}

.pagina-tab-container {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 562px); /* ajuste conforme header do sistema */
}

.pagina-container {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 105px); /* ajuste conforme header do sistema */
}

.pagina-header {
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--noo-border);
}

/* Cabeçalho canônico das listagens: ícone compacto, título e busca na mesma
   linha, separados da grid por 8px. */
.grid-padrao-compacto .pagina-body > .pagina-listagem-header,
.grid-padrao-compacto > form > .pagina-listagem-header {
    align-items: center;
    border-bottom: 1px solid var(--noo-border);
    margin-bottom: 8px;
    padding-bottom: 8px;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header img,
.grid-padrao-compacto > form > .pagina-listagem-header img {
    flex: 0 0 24px;
    height: 24px !important;
    object-fit: contain;
    padding-right: 0 !important;
    width: 24px;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header h5,
.grid-padrao-compacto > form > .pagina-listagem-header h5 {
    font-size: 18px;
    line-height: 24px;
    margin: 0 0 0 8px;
    white-space: nowrap;
}

/* Geometria externa canônica das listagens: cabeçalho, grid e barra de ações sempre
   ficam separados exclusivamente por 8px, sem as margens de 15/16px do grid
   legado do Bootstrap. */
.grid-padrao-compacto .pagina-body > .pagina-listagem-header,
.grid-padrao-compacto > form > .pagina-listagem-header {
    margin-left: -4px;
    margin-right: -4px;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header > [class*="col-"],
.grid-padrao-compacto > form > .pagina-listagem-header > [class*="col-"] {
    padding-left: 4px;
    padding-right: 4px;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header + .row,
.grid-padrao-compacto > form > .pagina-listagem-header + .row {
    /* A linha de paginação pertence à grid. Antes do divisor da barra de
       ações há sempre uma única distância externa de 8px. */
    margin-bottom: 8px;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header + .row .form-group,
.grid-padrao-compacto > form > .pagina-listagem-header + .row .form-group {
    margin-bottom: 0;
}

.grid-padrao-compacto .pagina-body > .pagina-listagem-header + .row table,
.grid-padrao-compacto > form > .pagina-listagem-header + .row table {
    margin-bottom: 0;
}

/*
 * Cabeçalho de páginas com abas. O identificador é um título estrutural e
 * permanece fora do tablist; somente as abas funcionais recebem aparência de
 * controle. A rolagem pertence exclusivamente à faixa de abas.
 */
.pagina-tabs-shell {
    align-items: stretch;
    display: flex;
    min-width: 0;
    width: 100%;
}

.pagina-tabs-title {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    color: inherit;
    display: flex;
    flex: 0 0 auto;
    font-size: 16px;
    font-weight: 700;
    gap: 6px;
    line-height: 24px;
    min-height: 41px;
    padding: 8px 12px 8px 0;
    white-space: nowrap;
}

.pagina-tabs-title > img {
    flex: 0 0 20px;
    height: 20px;
    object-fit: contain;
    width: 20px;
}

.pagina-tabs-shell > .nav-tabs,
.pagina-tabs-shell > .nav-tabs-container {
    flex: 1 1 auto;
    min-width: 0;
}

.pagina-tabs-shell > .nav-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
}

.pagina-tabs-shell > .nav-tabs > .nav-item {
    flex: 0 0 auto;
}

.pagina-tabs-shell > .nav-tabs .nav-link {
    font-size: 16px;
    line-height: 24px;
    white-space: nowrap;
}

/* Contrato visual compartilhado das telas de Gestão e Análise. */
.gestao-analise-page {
    padding: 10px 12px !important;
}

.gestao-analise-page .gestao-analise-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    min-height: 52px;
    margin-bottom: 6px;
    padding: 4px 2px 6px;
}

.gestao-analise-page .gestao-analise-header > .row {
    flex: 1 1 auto;
}

.gestao-analise-header-title {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 42px;
}

.gestao-analise-header-title > img,
.gestao-analise-header-icon {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    object-fit: contain;
}

.gestao-analise-header-title h5 {
    margin-bottom: 0;
    font-size: 18px;
    line-height: 24px;
    white-space: nowrap;
}

/*
 * Mantém o separador do cabeçalho também nas páginas legadas, que ainda não
 * utilizam a classe pagina-header. Páginas com um <hr> próprio são preservadas
 * para não criar uma linha duplicada.
 */
.pagina-body:not(:has(> hr)) > .row:not(.pagina-listagem-header):has(img):has(h4, h5),
.container-fluid.border.bg-white:not(.pagina-container):not(:has(> hr)) > .row:has(img):has(h4, h5),
.container-fluid.border.bg-white:not(.pagina-container) > form:not(:has(> hr)) > .row:has(img):has(h4, h5) {
    padding-bottom: 10px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--noo-border);
}

.pagina-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-gutter: stable;
    padding-right: 4px; /* evita cortar scrollbar */
    min-height: 0;
}

.pagina-footer {
    margin-top: auto;
    margin-right: 0;
    margin-left: 0;
    border-top: 1px solid var(--noo-border, #dbe3ea);
    padding-top: 8px;
}

/* Outras Entradas: todos os afastamentos externos entre os campos do painel
   suspenso seguem a unidade visual de 8px, sem herdar o gap compacto legado. */
.outras-entradas-index-page #CollapseFiltros > .card-body {
    padding: 8px;
}

.outras-entradas-index-page #CollapseFiltros .filtros-grid-responsiva {
    gap: 8px;
}

.grid-conteudo-pos-grid {
    margin-top: 8px;
}

/* Naturezas de Operação: cabeçalho, grid e ações seguem o intervalo de 8px. */
.natureza-operacao-index-page .pagina-body > .natureza-operacao-index-cabecalho {
    margin-bottom: 8px !important;
}

.natureza-operacao-index-page .natureza-operacao-index-grid .form-group {
    margin-bottom: 0 !important;
}

.natureza-operacao-index-page .natureza-operacao-index-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-start;
}

.natureza-operacao-index-page .natureza-operacao-empresa-origem {
    flex: 0 1 360px;
    margin: 0;
    min-width: 280px;
}

.natureza-operacao-index-page .natureza-operacao-empresa-origem .form-control,
.natureza-operacao-index-page .natureza-operacao-empresa-origem .select2-container {
    min-width: 0;
}

/* Modal de veículo: usa a grade compacta sem alterar modais não relacionados. */
#veiculoContent .veiculo-modal-body {
    padding: 8px;
}

#veiculoContent .veiculo-modal-body .tab-content {
    margin: 8px 0 0;
}

#veiculoContent .veiculo-modal-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0;
    border-bottom: 1px solid var(--noo-border, #dbe3ea);
}

#veiculoContent .veiculo-modal-tabs .nav-item {
    flex: 0 0 auto;
    margin: 0;
}

#veiculoContent .veiculo-modal-tabs .nav-link {
    align-items: center;
    background: #fff;
    border: 1px solid var(--noo-border, #dbe3ea);
    border-bottom-color: var(--noo-border, #dbe3ea);
    border-radius: 12px 12px 0 0;
    box-shadow: none !important;
    color: #4b5563;
    display: flex;
    font-size: 13px;
    gap: 5px;
    line-height: 20px;
    margin-bottom: -1px;
    min-height: 36px;
    padding: 6px 12px;
    white-space: nowrap;
}

#veiculoContent .veiculo-modal-tabs .nav-link:hover {
    background: #fff;
    border-color: var(--noo-border, #dbe3ea);
}

#veiculoContent .veiculo-modal-tabs .nav-link.active {
    background: var(--noo-grid-header) !important;
    border-color: var(--noo-grid-header-border, var(--noo-border, #dbe3ea)) !important;
    border-bottom-color: transparent !important;
    color: var(--noo-grid-header-text) !important;
    position: relative;
    z-index: 1;
}

#veiculoContent .veiculo-modal-body .veiculo-modal-tab-pane {
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

#veiculoContent .veiculo-modal-body .form-group {
    margin-bottom: 8px;
}

#veiculoContent .veiculo-modal-body .tab-pane .form-group:has(table) {
    margin-bottom: 0;
}

#veiculoContent .veiculo-modal-form .dataTables_scrollHead table {
    margin-bottom: 0 !important;
}

/* As grids internas do modal não participam da ocultação transitória da listagem principal. */
#veiculoContent .veiculo-modal-form .dataTables_wrapper {
    visibility: visible !important;
}

#veiculoContent .veiculo-modal-form .dataTables_scrollBody table.dataTable {
    margin-right: 0;
    margin-left: 0;
}

#veiculoContent .veiculo-modal-form .coluna-acao-veiculo,
#veiculoContent .veiculo-modal-form .coluna-acao-veiculo .btn {
    white-space: nowrap;
}

#veiculoContent .veiculo-modal-form .coluna-acao-veiculo .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
}

#veiculoContent .veiculo-api-titulo-secao {
    font-size: 15px;
    line-height: 20px;
    margin: 0 0 8px;
}

#veiculoContent .veiculo-api-historico-titulo {
    border-top: 1px solid var(--noo-border, #dbe3ea);
    margin-top: 8px;
    padding-top: 8px;
}

#veiculoContent .veiculo-modal-form table.dataTable > thead > tr > th,
#veiculoContent .veiculo-modal-form table.dataTable > thead > tr > td {
    font-size: 13px;
    line-height: 19.5px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

/* Cabeçalho composto da API de placas: duas faixas compactas no mesmo padrão da grid. */
#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas_wrapper .dataTables_scrollHead thead > tr > th,
#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas > thead > tr > th {
    height: 14px;
    line-height: 14px;
    padding-top: 0;
    padding-bottom: 0;
    white-space: nowrap;
}

#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas_wrapper .dataTables_scrollHead thead > tr > th[rowspan],
#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas > thead > tr > th[rowspan] {
    vertical-align: middle;
}

#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas_wrapper .dataTables_scrollHead thead > tr > th[colspan],
#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas > thead > tr > th[colspan] {
    border-left-color: transparent !important;
    text-align: center !important;
}

#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas_wrapper .dataTables_scrollHead thead > tr:last-child > th:first-child,
#veiculoContent .veiculo-modal-form #ListaHistoricoApiPlacas > thead > tr:last-child > th:first-child {
    border-left-color: transparent !important;
}

#veiculoContent .veiculo-modal-footer {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px;
}

#veiculoContent .veiculo-modal-footer .btn {
    margin: 0;
    white-space: nowrap;
}

.conferencia-caixa-resumo-faixa {
    border-top: 1px solid var(--noo-border);
    margin-top: 8px;
    padding-top: 8px;
}

.dfe-listagem-page .pagina-body:not(:has(> hr)) > .row.dfe-listagem-cabecalho:has(img):has(h4, h5) {
    margin-bottom: 8px;
}

.dfe-listagem-page .dfe-listagem-grid {
    margin-top: 0;
}



#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer,
#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer > .row,
#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .form-inline,
#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .d-flex {
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer-legado-cadastro {
    flex: 0 0 auto;
    min-width: 0;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer {
    display: flex;
    flex: 0 0 auto;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer > .row,
#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .form-inline,
#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .d-flex {
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    margin: 0;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer [class*="col-"] {
    width: auto;
    max-width: none;
    flex: 0 0 auto;
    padding: 0;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .input-group {
    width: auto;
    flex: 0 0 auto;
    margin: 0 !important;
    padding: 0 !important;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .pagina-footer .btn {
    width: auto;
    flex: 0 0 auto;
    margin: 0;
    white-space: nowrap;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar {
    display: flex;
    flex: 0 0 auto;
    min-width: 0;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-flex-8 {
    gap: 8px;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .input-group {
    width: auto;
    min-width: min(100%, 280px);
    margin: 0;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .form-control,
#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .input-group-text {
    min-height: 36px;
    height: 36px;
    border-radius: 12px;
    font-size: 13px;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .input-group-prepend .input-group-text {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .input-group-prepend + .form-control,
#ConteudoPrincipal[data-area-tela="cadastros"] .cadastro-conteudo-auxiliar .input-group-prepend + .custom-select {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}


.tab-full-content {
    display: flex;
    flex-direction: column;
    height: calc(100vh - 165px); /* ajuste conforme header do sistema */
}

.tab-pane.pagina-tab-container {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 0;
}

.tab-pane:not(.active) {
    display: none !important;
}

#POSTabela_wrapper .empresa-pos-table {
    min-width: 980px;
    margin-bottom: 0;
}

#POSTabela_wrapper .empresa-pos-numero-serie {
    min-width: 230px;
    white-space: nowrap;
}

#POSTabela_wrapper .empresa-pos-descricao {
    max-width: 180px;
    width: 180px;
}

#POSTabela_wrapper .empresa-pos-coluna-versao {
    min-width: 110px;
    white-space: nowrap;
}

#POSTabela_wrapper .empresa-pos-coluna-conteudo {
    width: 1%;
    white-space: nowrap;
}

.empresa-pos-container {
    padding: 14px;
}

/* Dados da Empresa: ações e grid interna seguem o espaçamento compacto. */
#EmpresaForm .empresa-editor-page .empresa-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 8px;
    justify-content: flex-start;
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
}

#EmpresaForm .empresa-editor-page .empresa-footer-acoes-principais,
#EmpresaForm .empresa-editor-page .empresa-footer-api-acoes {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    gap: 8px;
}

#EmpresaForm .empresa-editor-page .empresa-footer-api-acoes {
    margin-left: auto;
    min-width: 0;
}

#EmpresaForm .empresa-editor-page .empresa-codigo-api {
    flex: 0 1 380px;
    margin: 0;
    min-width: 280px;
}

#EmpresaForm .empresa-editor-page .empresa-codigo-api .form-control,
#EmpresaForm .empresa-editor-page .empresa-codigo-api .input-group-text {
    height: 42px;
    min-height: 42px;
}

#EmpresaForm .empresa-editor-page .empresa-codigo-api .form-control {
    background: #f7f9fb;
    border-radius: 11px 0 0 11px;
    font-size: 14px;
    padding-right: 12px;
    padding-left: 12px;
}

#EmpresaForm .empresa-editor-page .empresa-codigo-api-copiar {
    align-items: center;
    background: #708292;
    border-color: #708292;
    /* O tema geral arredonda todos os .btn com !important; aqui o botão
       precisa compartilhar a borda esquerda com o campo da chave. */
    border-radius: 0 11px 11px 0 !important;
    box-shadow: none;
    color: #fff;
    display: inline-flex;
    font-size: 14px;
    justify-content: center;
    min-width: 34px;
    padding: 0 8px;
}

#EmpresaForm .empresa-editor-page .empresa-codigo-api-copiar:hover,
#EmpresaForm .empresa-editor-page .empresa-codigo-api-copiar:focus {
    background: #627381;
    border-color: #627381;
    box-shadow: none;
    color: #fff;
}

/* IE com múltiplas inscrições: campo e ação devem formar um único grupo. */
#EmpresaForm .empresa-editor-page .empresa-ie-campo .form-control {
    border-radius: 11px;
    height: 42px;
    min-height: 42px;
}

#EmpresaForm .empresa-editor-page .empresa-ie-campo:has(.input-group-append) .form-control {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
}

#EmpresaForm .empresa-editor-page .empresa-ie-campo-abrir {
    align-items: center;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 11px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 11px !important;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    min-height: 42px;
    min-width: 42px;
    padding: 0;
    width: 42px;
}

/* Mercadoria do Adiantamento: Select2 e botão Limpar em um único grupo. */
#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria {
    flex-wrap: nowrap;
}

#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria > .select2-container {
    flex: 1 1 0;
    min-width: 0;
    width: auto !important;
}

#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria .select2-selection--single {
    border-bottom-right-radius: 0 !important;
    border-top-right-radius: 0 !important;
    height: 42px !important;
    min-height: 42px !important;
}

#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria .select2-selection__rendered {
    line-height: 40px !important;
}

#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria .select2-selection__arrow {
    bottom: auto !important;
    height: 40px !important;
    top: 1px !important;
}

#EmpresaForm .empresa-editor-page .empresa-adiantamento-mercadoria-limpar {
    align-items: center;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 11px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 11px !important;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    min-height: 42px;
    min-width: 42px;
    padding: 0;
    width: 42px;
}

/* Logo da aba Geral: o seletor de arquivo acompanha a altura dos demais campos. */
#EmpresaForm .empresa-editor-page .empresa-logo-campo .custom-file,
#EmpresaForm .empresa-editor-page .empresa-logo-campo .custom-file-input,
#EmpresaForm .empresa-editor-page .empresa-logo-campo .custom-file-label {
    height: 42px;
    min-height: 42px;
}

#EmpresaForm .empresa-editor-page .empresa-logo-campo .custom-file-label {
    align-items: center;
    border-bottom-left-radius: 11px;
    border-bottom-right-radius: 0;
    border-top-left-radius: 11px;
    border-top-right-radius: 0;
    display: flex;
    padding-bottom: 4px;
    padding-top: 4px;
}

#EmpresaForm .empresa-editor-page .empresa-logo-campo .custom-file-label::after {
    align-items: center;
    background: #f7f9fb;
    border: 0;
    border-left: 1px solid var(--noo-border, #dbe3ea);
    border-radius: 0 !important;
    color: inherit;
    display: flex;
    height: 40px;
    justify-content: center;
    padding: 0 10px;
}

#EmpresaForm .empresa-editor-page .empresa-logo-campo .empresa-imagem-btn-meio,
#EmpresaForm .empresa-editor-page .empresa-logo-campo-remover {
    align-items: center;
    display: inline-flex;
    height: 42px;
    justify-content: center;
    min-height: 42px;
    min-width: 42px;
    padding: 0;
    width: 42px;
}

#EmpresaForm .empresa-editor-page .empresa-logo-campo .empresa-imagem-btn-meio {
    border-radius: 0 !important;
}

#EmpresaForm .empresa-editor-page .empresa-logo-campo-remover {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 11px !important;
    border-top-left-radius: 0 !important;
    border-top-right-radius: 11px !important;
}

#EmpresaForm .empresa-editor-page table.dataTable > thead > tr > th,
#EmpresaForm .empresa-editor-page .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#EmpresaForm .empresa-editor-page .empresa-pos-acoes > div > div {
    padding-top: 8px;
}

/* Dados da Empresa: subtítulos internos da aba Entrada/Saída. */
#EmpresaForm .empresa-editor-page .empresa-subtitulo-separador {
    border: 0;
    border-top: 1px solid var(--noo-border, #dbe3ea);
    margin: 8px 0;
}

#EmpresaForm .empresa-editor-page .empresa-subtitulo-secao {
    align-items: center;
    color: inherit;
    display: flex;
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    gap: 6px;
    line-height: 20px;
    margin: 0 0 8px;
    padding: 0;
}

#EmpresaForm .empresa-editor-page .empresa-subtitulo-secao > .fa {
    flex: 0 0 14px;
    font-size: 14px;
    line-height: 20px;
    text-align: center;
}

.modal-subtitulo-secao {
    align-items: center;
    color: inherit;
    display: flex;
    font-family: inherit;
    font-size: 15px;
    font-weight: 400;
    gap: 6px;
    line-height: 20px;
    padding: 0;
}

.modal-subtitulo-secao > .fa {
    flex: 0 0 14px;
    font-size: 14px;
    line-height: 20px;
    text-align: center;
}

.modal-subtitulo-auxiliar {
    align-items: center;
    display: flex;
    gap: 6px;
}

.modal-subtitulo-auxiliar > .fa {
    flex: 0 0 auto;
}

/* Inscrições estaduais abertas a partir de Dados da Empresa. */
#ModalEmpresa .modal-dialog:has(.empresa-ie-list-form),
#ModalEmpresaIe .modal-dialog:has(.empresa-ie-endereco-form) {
    margin-top: 8px;
    margin-bottom: 8px;
    max-height: calc(100vh - 16px);
}

#IEForm .empresa-ie-modal-body,
#IeEnderecoForm .empresa-ie-modal-body {
    overflow: auto;
    padding: 8px 15px;
}

#IEForm .empresa-ie-grid {
    min-width: 0;
}

#IEForm .empresa-ie-modal-body .alert,
#IeEnderecoForm .empresa-ie-modal-body .alert {
    margin: 0;
}

#IEForm .empresa-ie-modal-body .alert.show + .empresa-ie-grid {
    margin-top: 8px;
}

#IEForm.empresa-ie-list-form table.dataTable > thead > tr > th,
#IEForm.empresa-ie-list-form .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#IEForm.empresa-ie-list-form table.dataTable > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
}

#IEForm.empresa-ie-list-form .empresa-ie-coluna-acao {
    width: 56px !important;
}

#IEForm.empresa-ie-list-form .empresa-ie-coluna-acao .btn {
    align-items: center;
    display: inline-flex;
    height: 32px;
    justify-content: center;
    min-width: 35px;
    padding-right: 8px;
    padding-left: 8px;
}

#IEForm .empresa-ie-modal-footer,
#IeEnderecoForm .empresa-ie-modal-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

#IEForm .empresa-ie-modal-footer .btn,
#IeEnderecoForm .empresa-ie-modal-footer .btn,
#IeEnderecoForm.empresa-ie-endereco-form .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

#IeEnderecoForm.empresa-ie-endereco-form .form-group {
    margin-bottom: 8px;
}

#IeEnderecoForm.empresa-ie-endereco-form .form-control,
#IeEnderecoForm.empresa-ie-endereco-form .input-group-text,
#IeEnderecoForm.empresa-ie-endereco-form .select2-selection {
    font-size: 13px;
    height: 36px;
    min-height: 36px;
}

#IeEnderecoForm.empresa-ie-endereco-form .select2-selection {
    border-radius: 12px;
}

/* Empresas Uso Adiantamento: tabela interna compacta na modal de empresa. */
#EmpresaAdiantamentoForm .empresa-adiantamento-modal-body {
    overflow-x: auto;
    padding: 8px 15px;
}

#EmpresaAdiantamentoForm .empresa-adiantamento-grid {
    min-width: 0;
}

#EmpresaAdiantamentoTabela {
    margin-bottom: 0;
    width: 100%;
}

#EmpresaAdiantamentoTabela > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#EmpresaAdiantamentoTabela > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
}

#EmpresaAdiantamentoTabela > tbody > tr > td:last-child {
    width: 100px;
}

#EmpresaAdiantamentoTabela .form-control {
    border-radius: 12px;
    font-size: 13px;
    height: 36px;
    min-height: 36px;
}

#ModalEmpresaContent:has(#EmpresaAdiantamentoForm) .empresa-adiantamento-modal-footer {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

#ModalEmpresaContent:has(#EmpresaAdiantamentoForm) .empresa-adiantamento-modal-footer .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

/* Ordem das colunas do Cadastro de Mercadorias. */
#MercadoriaOrdemForm .mercadoria-ordem-modal-body {
    overflow-x: auto;
    padding: 8px 15px;
}

#MercadoriaOrdemForm .mercadoria-ordem-grid {
    min-width: 0;
}

#MercadoriaOrdemForm .mercadoria-ordem-modal-body .alert {
    margin: 0;
}

#MercadoriaOrdemForm .mercadoria-ordem-modal-body .alert.show + .mercadoria-ordem-grid {
    margin-top: 8px;
}

#ListaOrdemMercadoria {
    margin-bottom: 0;
}

#ListaOrdemMercadoria > thead > tr > th,
#ListaOrdemMercadoria_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#ListaOrdemMercadoria > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
}

#ListaOrdemMercadoria .mercadoria-ordem-coluna-acao,
#ListaOrdemMercadoria_wrapper .mercadoria-ordem-coluna-acao {
    box-sizing: border-box;
    max-width: 56px !important;
    min-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    width: 56px !important;
}

#ListaOrdemMercadoria .mercadoria-ordem-coluna-acao .btn {
    align-items: center;
    display: inline-flex;
    height: 34px;
    justify-content: center;
    margin: 0;
    min-width: 34px;
    padding: 0;
    width: 34px;
    white-space: nowrap;
}

#MercadoriaOrdemForm .mercadoria-ordem-modal-footer {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

#MercadoriaOrdemForm .mercadoria-ordem-modal-footer .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

/* Ordem das colunas da Ordem de Serviço. */
#ModalEmpresaContent:has(#OrdemServicoOrdenacaoForm) #OrdemServicoOrdenacaoForm {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 8px 15px;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-grid {
    min-width: 0;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-modal-body .alert {
    margin: 0;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-modal-body .alert.show + .ordem-servico-ordenacao-grid {
    margin-top: 8px;
}

#ListaOrdemServicoOrdem {
    margin-bottom: 0;
}

#ListaOrdemServicoOrdem > thead > tr > th,
#ListaOrdemServicoOrdem_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#ListaOrdemServicoOrdem > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
}

#ListaOrdemServicoOrdem .ordem-servico-ordenacao-coluna-acao,
#ListaOrdemServicoOrdem_wrapper .ordem-servico-ordenacao-coluna-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
}

#ListaOrdemServicoOrdem .ordem-servico-ordenacao-coluna-acao .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-modal-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

#OrdemServicoOrdenacaoForm .ordem-servico-ordenacao-modal-footer .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

#POSTabela_wrapper .empresa-pos-paginacao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 48px;
    padding: 8px 0;
    border-bottom: 1px solid var(--noo-border);
}

#POSTabela_wrapper .dataTables_length,
#POSTabela_wrapper .dataTables_paginate {
    float: none;
    margin: 0;
    padding: 0;
}

#POSTabela_wrapper .dataTables_paginate .pagination {
    margin: 0;
}

.empresa-pos-acoes {
    margin-top: 0;
}

.empresa-pos-acoes > div > div {
    gap: 8px;
    padding-top: 12px;
}

.empresa-pos-adicionar {
    width: 220px;
}

/* Organização: a ação de exclusão permanece acoplada ao seletor. */
#modalOrganizacao .organizacao-exclusao-acao {
    flex-wrap: nowrap;
}

#modalOrganizacao .organizacao-exclusao-acao > select.form-control {
    flex: 1 1 auto;
    min-width: 0;
    height: 36px;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

#modalOrganizacao .organizacao-exclusao-acao > .input-group-append > .organizacao-exclusao-aplicar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    box-sizing: border-box;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    margin: 0;
    white-space: nowrap;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

/* Inclusão de PDV: seleção e ação formam um único campo composto. */
.empresa-pos-adicionar-campo {
    flex-wrap: nowrap;
}

.empresa-pos-adicionar-campo > #ModuloLicencaPosAdicionar {
    min-width: 0;
    height: 42px;
    border-right: 0;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.empresa-pos-adicionar-campo > .input-group-append > .empresa-pos-adicionar-botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 42px;
    min-width: 42px;
    height: 42px;
    margin: 0;
    padding: 0 !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    line-height: 1;
}

.empresa-pos-acao .btn {
    white-space: nowrap;
}

/* Edição do POS: modal compacto com abas, campos e ações no padrão institucional. */
#ModalEmpresaContent:has(#POSForm) {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 16px);
}

#POSForm {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

#POSForm .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 8px 15px;
    scrollbar-gutter: stable;
}

#POSForm .alert {
    margin: 0 0 8px;
}

#POSForm .pos-modal-tabs {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    margin: 0;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 0;
    border-bottom: 1px solid var(--noo-border, #dbe3ea);
}

#POSForm .pos-modal-tabs .nav-item {
    flex: 0 0 auto;
    margin: 0;
}

#POSForm .pos-modal-tabs .nav-link {
    align-items: center;
    background: #fff;
    border: 1px solid var(--noo-border, #dbe3ea);
    border-bottom-color: var(--noo-border, #dbe3ea);
    border-radius: 12px 12px 0 0;
    box-shadow: none !important;
    color: #4b5563;
    display: flex;
    font-size: 13px;
    line-height: 20px;
    margin-bottom: -1px;
    min-height: 36px;
    padding: 6px 12px;
    text-decoration: none !important;
    white-space: nowrap;
}

#POSForm .pos-modal-tabs .nav-link:hover {
    background: #fff;
    border-color: var(--noo-border, #dbe3ea);
}

#POSForm .pos-modal-tabs .nav-link.active {
    background: var(--noo-grid-header) !important;
    border-color: var(--noo-grid-header-border, var(--noo-border, #dbe3ea)) !important;
    border-bottom-color: transparent !important;
    box-shadow: none !important;
    color: var(--noo-grid-header-text) !important;
    position: relative;
    z-index: 1;
}

#POSForm .pos-modal-tab-content {
    margin: 8px 0 0;
}

#POSForm .pos-modal-tab-content > .tab-pane {
    border: 0 !important;
    border-radius: 0;
    box-shadow: none;
    padding: 0 !important;
}

#POSForm .pos-modal-tab-content > .tab-pane > .row {
    margin-right: -4px;
    margin-left: -4px;
}

#POSForm .pos-modal-tab-content > .tab-pane > .row > [class*="col-"] {
    padding-right: 4px;
    padding-left: 4px;
}

#POSForm .pos-modal-tab-content .form-group {
    margin-bottom: 8px;
}

#POSForm .pos-modal-tab-content .form-control,
#POSForm .pos-modal-tab-content .custom-select {
    min-height: 36px;
    height: 36px;
    font-size: 13px;
}

/* Pagamentos do POS: grid interna compacta, com a largura útil distribuída pela descrição. */
#POSForm .pos-pagamento-form-group {
    margin-bottom: 0;
}

#POSForm .pos-pagamento-grid {
    min-width: 0;
    overflow-x: auto;
}

#POSForm #PagamentoTabela {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
    table-layout: fixed;
}

#POSForm #PagamentoTabela > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#POSForm #PagamentoTabela > tbody > tr > td {
    min-height: 40px;
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: middle;
}

#POSForm #PagamentoTabela .pos-pagamento-coluna-ativo {
    box-sizing: border-box;
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

#POSForm #PagamentoTabela .pos-pagamento-coluna-descricao .form-control,
#POSForm #PagamentoTabela .pos-pagamento-coluna-ativo .form-control {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
}

/* Backups do POS: data usa o espaço restante e download mantém largura própria. */
#POSForm .pos-backup-form-group {
    margin-bottom: 0;
}

#POSForm .pos-backup-grid {
    min-width: 0;
    overflow-x: auto;
}

#POSForm #BackupTabela {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
    table-layout: fixed;
}

#POSForm #BackupTabela > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#POSForm #BackupTabela > tbody > tr > td {
    min-height: 40px;
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: middle;
}

#POSForm #BackupTabela .pos-backup-coluna-acao {
    box-sizing: border-box;
    width: 128px;
    min-width: 128px;
    max-width: 128px;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
}

#POSForm #BackupTabela .pos-backup-download {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

/* Teclado do POS: seleção de origem acoplada e grid interna sem altura fixa legada. */
#POSForm .pos-operacao-numero-campo {
    flex-wrap: nowrap;
}

#POSForm .pos-operacao-numero-campo > select.form-control {
    box-sizing: border-box;
    flex: 1 1 auto;
    min-width: 0;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

#POSForm .pos-operacao-numero-campo > .input-group-append {
    display: flex;
    width: 85px;
}

#POSForm .pos-operacao-numero-campo > .input-group-append > .form-control {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

#POSForm .pos-teclado-copiar-campo {
    flex-wrap: nowrap;
}

#POSForm .pos-teclado-copiar-campo > #NumeroPos {
    box-sizing: border-box;
    min-width: 0;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    border-right: 0;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

#POSForm .pos-teclado-copiar-campo > .input-group-append > .pos-teclado-copiar-botao {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    box-sizing: border-box;
    height: 36px !important;
    min-height: 36px !important;
    max-height: 36px !important;
    margin: 0;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    white-space: nowrap;
}

#POSForm .pos-teclado-grid-form-group {
    margin-bottom: 0;
}

#POSForm .pos-teclado-grid {
    min-width: 0;
    overflow: auto;
}

#POSForm #PosTecladoTabela {
    width: 100%;
    min-width: 0;
    margin-bottom: 0;
    table-layout: fixed;
}

#POSForm #PosTecladoTabela > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#POSForm #PosTecladoTabela > tbody > tr > td {
    min-height: 40px;
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: middle;
}

#POSForm #PosTecladoTabela .pos-teclado-coluna-tecla {
    box-sizing: border-box;
    width: 120px;
    min-width: 120px;
    max-width: 120px;
}

#POSForm #PosTecladoTabela .pos-teclado-coluna-tecla .form-control {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
}

#POSForm .pos-modal-footer {
    flex: 0 0 auto;
    gap: 8px;
    justify-content: space-between;
    margin: 0;
    padding: 8px 15px;
}

#POSForm .pos-modal-footer > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

#POSForm .pos-modal-footer .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    margin: 0 !important;
    white-space: nowrap;
}

@media (max-width: 767.98px) {
    #POSTabela_wrapper .empresa-pos-paginacao {
        align-items: flex-start;
        flex-direction: column;
    }

    #POSTabela_wrapper .dataTables_paginate {
        max-width: 100%;
        overflow-x: auto;
    }

    .empresa-pos-adicionar,
    .empresa-pos-acao,
    .empresa-pos-acao .btn {
        width: 100%;
    }
}

#CentralOrdemForm .modal-body {
    overflow-x: hidden;
}

#ListaOrdemCentral_wrapper,
#ListaOrdemCentral_wrapper .row {
    max-width: 100%;
    overflow-x: hidden;
}

#ListaOrdemCentral_wrapper table.config-central-grid {
    width: 100% !important;
    table-layout: fixed;
}

#ListaOrdemCentral.config-central-grid th,
#ListaOrdemCentral.config-central-grid td {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: middle;
}

#ListaOrdemCentral.config-central-grid th {
    text-align: left;
}

#ListaOrdemCentral.config-central-grid .config-central-coluna-acao,
#ListaOrdemCentral_wrapper .config-central-coluna-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
}

#ListaOrdemCentral.config-central-grid .config-central-acao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

#ListaOrdemCentral.config-central-grid .config-central-coluna {
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}

#ModalEmpresaContent:has(#ComprovantePOSForm) {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 48px);
}

#ComprovantePOSForm {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

#ComprovantePOSForm .modal-body {
    flex: 1 1 auto;
    max-height: calc(100vh - 190px);
    min-height: 0;
    overflow: auto;
    padding: 8px 15px;
}

#ComprovantePOSForm .comprovante-pos-table {
    width: 100%;
    min-width: 900px;
    margin-bottom: 0;
    table-layout: fixed;
}

#ComprovantePOSForm .comprovante-pos-table th,
#ComprovantePOSForm .comprovante-pos-table td {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#ComprovantePOSForm .comprovante-pos-table select {
    height: 36px;
    width: 100%;
    min-width: 0;
}

#ComprovantePOSForm .comprovante-pos-coluna-impressao {
    width: 185px;
}

#ComprovantePOSForm .comprovante-pos-coluna-vias {
    width: 80px;
}

#ComprovantePOSForm .comprovante-pos-coluna-cabecalho {
    width: 120px;
}

#ComprovantePOSForm .comprovante-pos-coluna-rodape {
    width: 120px;
}

#ComprovantePOSForm .comprovante-pos-coluna-acao {
    box-sizing: border-box;
    padding-left: 10px !important;
    padding-right: 10px !important;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    text-align: center;
    vertical-align: middle;
}

#ComprovantePOSForm .btn-comprovante-config {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

#ComprovantePOSForm .modal-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

#ComprovantePOSForm .modal-footer .btn {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    white-space: nowrap;
}

@media (max-width: 768px) {
    #ComprovantePOSForm .modal-body {
        overflow-x: hidden;
    }

    #ComprovantePOSForm .comprovante-pos-table {
        min-width: 0;
    }

    #ComprovantePOSForm .comprovante-pos-table,
    #ComprovantePOSForm .comprovante-pos-table thead,
    #ComprovantePOSForm .comprovante-pos-table tbody,
    #ComprovantePOSForm .comprovante-pos-table tr,
    #ComprovantePOSForm .comprovante-pos-table td {
        display: block;
        width: 100% !important;
    }

    #ComprovantePOSForm .comprovante-pos-table thead {
        display: none;
    }

    #ComprovantePOSForm .comprovante-pos-table tbody tr {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        padding: 10px 0;
        border-bottom: 1px solid #dee2e6;
    }

    #ComprovantePOSForm .comprovante-pos-table tbody td {
        border: 0;
        padding: 0;
    }

    #ComprovantePOSForm .comprovante-pos-table tbody td[data-label="Descrição"] {
        grid-column: 1 / -1;
        font-weight: 600;
    }

    #ComprovantePOSForm .comprovante-pos-table tbody td:last-child {
        grid-column: 1 / -1;
    }

    #ComprovantePOSForm .comprovante-pos-table tbody td::before {
        content: attr(data-label);
        display: block;
        margin-bottom: 3px;
        font-size: 0.75rem;
        font-weight: 700;
        color: #495057;
    }
}

.resumo-padrao-grid {
    margin-right: -4px;
    margin-left: -4px;
    margin-bottom: 0;
}

.resumo-padrao-grid > [class*="col-"] {
    padding-right: 4px;
    padding-left: 4px;
}

.resumo-padrao-grid .card-resumo {
    align-items: center;
    background: #fff;
    border: 1px solid #dfe6ee;
    border-left-width: 4px;
    border-radius: 9px;
    box-shadow: none;
    display: flex;
    gap: .45rem;
    min-height: 58px;
    min-width: 0;
    padding: .4rem .5rem;
    text-align: left;
}

.resumo-padrao-grid .card-resumo > .fa {
    align-items: center;
    border-radius: 7px;
    display: inline-flex;
    flex: 0 0 30px;
    font-size: 13px;
    height: 30px;
    justify-content: center;
    line-height: 1;
    margin: 0;
    padding: 0;
    width: 30px;
}

.resumo-padrao-grid .card-resumo-texto {
    flex: 1 1 auto;
    min-width: 0;
}

.resumo-padrao-grid .valor,
.resumo-padrao-grid .titulo {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.resumo-padrao-grid .valor {
    color: #1f2937;
    font-size: clamp(.78rem, .95vw, .92rem);
    font-weight: 700;
}

.resumo-padrao-grid .titulo {
    color: #64748b;
    font-size: .72rem;
}

/* Padrão de cards de resumo aplicado ao módulo Conciliação */
.conciliacao-pagina-body {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.pagina-body.conciliacao-pagina-body:not(:has(> hr)) > .row:has(img):has(h4, h5) {
    margin-bottom: 8px;
}

.pagina-body.conciliacao-pagina-body:not(:has(> hr)) > .row:has(#AccordionFiltros) {
    padding-bottom: 4px;
}

.conciliacao-convenio-page .pagina-body.conciliacao-pagina-body > .row:has(#AccordionFiltros) #AccordionFiltros,
.conciliacao-cheque-page .pagina-body.conciliacao-pagina-body > .row:has(#AccordionFiltros) #AccordionFiltros,
.conciliacao-cartao-page .pagina-body.conciliacao-pagina-body > .row:has(#AccordionFiltros) #AccordionFiltros,
.conciliacao-boleto-page .pagina-body.conciliacao-pagina-body > .row:has(#AccordionFiltros) #AccordionFiltros,
.conciliacao-bancaria-page .pagina-body.conciliacao-pagina-body > .row:has(#AccordionFiltros) #AccordionFiltros {
    position: relative;
    top: 5px;
}

.conciliacao-resumo-faixa {
    flex: 0 0 auto;
    margin-top: 8px;
    padding-top: 0;
    padding-bottom: 8px;
}

.conciliacao-convenio-estabilizando .conciliacao-convenio-grid,
.conciliacao-convenio-estabilizando .conciliacao-resumo-faixa,
.conciliacao-convenio-estabilizando > .pagina-footer {
    visibility: hidden;
}

.conciliacao-cheque-estabilizando .conciliacao-cheque-grid,
.conciliacao-cheque-estabilizando .conciliacao-resumo-faixa,
.conciliacao-cheque-estabilizando > .pagina-footer,
.conciliacao-boleto-estabilizando .conciliacao-boleto-grid,
.conciliacao-boleto-estabilizando .conciliacao-resumo-faixa,
.conciliacao-boleto-estabilizando > .pagina-footer,
.conciliacao-bancaria-estabilizando .conciliacao-bancaria-grid,
.conciliacao-bancaria-estabilizando .conciliacao-resumo-faixa,
.conciliacao-bancaria-estabilizando > .pagina-footer {
    visibility: hidden;
}

.conciliacao-summary-grid {
    margin-bottom: 0;
}

/* Conciliação de Cheque: Tipo e Lançar formam uma única ação contextual. */
.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo {
    align-items: stretch;
    flex-wrap: nowrap;
    gap: 0;
}

.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo > .input-group-prepend > .input-group-text,
.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo > .form-control,
.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo > .input-group-append > .btn {
    box-sizing: border-box;
    height: 38px;
    min-height: 38px;
    max-height: 38px;
}

.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo > .form-control {
    border-radius: 0 !important;
}

.conciliacao-cheque-page .conciliacao-cheque-lancamento-grupo > .input-group-append > .btn {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
    border-top-right-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}

.conciliacao-summary-grid .card-resumo {
    align-items: center;
    background: #fff;
    border: 1px solid #dfe6ee;
    border-left-width: 4px;
    border-radius: 9px;
    box-shadow: none;
    display: flex;
    gap: .45rem;
    min-height: 58px;
    min-width: 0;
    padding: .4rem .5rem;
    text-align: left;
    transition: all .15s ease;
}

    .conciliacao-summary-grid .card-resumo:hover {
        transform: none;
        box-shadow: none;
    }

.conciliacao-summary-grid .card-resumo > .fa {
    align-items: center;
    border-radius: 7px;
    display: inline-flex;
    flex: 0 0 30px;
    height: 30px;
    justify-content: center;
    font-size: 13px;
    line-height: 1;
    margin: 0;
    min-width: 30px;
    padding: 0;
    align-self: center;
    width: 30px;
}

.conciliacao-summary-grid .card-resumo > .card-resumo-texto {
    flex: 1 1 auto;
    min-width: 0;
}

.conciliacao-totais .conciliacao-total-card {
    flex: 0 0 360px;
    width: 360px;
    min-width: 360px;
}

.conciliacao-summary-grid .valor,
.conciliacao-summary-grid .titulo {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.conciliacao-summary-grid .valor {
    font-size: clamp(.78rem, .95vw, .92rem);
    font-weight: 700;
    line-height: 1;
}

.conciliacao-summary-grid .titulo {
    font-size: .72rem;
    margin-top: 2px;
    opacity: .9;
}

.conciliacao-summary-grid .card-resumo.selecionado {
    background: var(--noo-grid-info-soft);
    border-left-color: var(--noo-grid-info);
    color: var(--noo-grid-info-text);
}

.conciliacao-summary-grid .card-resumo.selecionado > .fa {
    background: var(--noo-grid-info);
    color: var(--noo-grid-info-text);
}

.conciliacao-summary-grid .card-resumo.pendente {
    background: var(--noo-grid-neutral-soft);
    border-left-color: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

.conciliacao-summary-grid .card-resumo.pendente > .fa {
    background: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

.conciliacao-summary-grid .card-resumo.hoje {
    background: var(--noo-grid-warning-soft);
    border-left-color: var(--noo-grid-warning);
    color: var(--noo-grid-warning-text);
}

.conciliacao-summary-grid .card-resumo.hoje > .fa {
    background: var(--noo-grid-warning);
    color: var(--noo-grid-warning-text);
}

.conciliacao-summary-grid .card-resumo.pago {
    background: var(--noo-grid-success-soft);
    border-left-color: var(--noo-grid-success);
    color: var(--noo-grid-success-text);
}

.conciliacao-summary-grid .card-resumo.pago > .fa {
    background: var(--noo-grid-success);
    color: var(--noo-grid-success-text);
}

.conciliacao-summary-grid .card-resumo.vencido {
    background: var(--noo-grid-danger-soft);
    border-left-color: var(--noo-grid-danger);
    color: var(--noo-grid-danger-text);
}

.conciliacao-summary-grid .card-resumo.vencido > .fa {
    background: var(--noo-grid-danger);
    color: var(--noo-grid-danger-text);
}

.conciliacao-summary-grid .card-resumo.saldo {
    background: var(--noo-grid-neutral-soft);
    border-left-color: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

.conciliacao-summary-grid .card-resumo.saldo > .fa {
    background: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

@media (max-height: 768px) {
    .conciliacao-summary-grid .card-resumo {
        min-height: 52px;
        padding: .32rem .42rem;
    }

    .conciliacao-summary-grid .card-resumo > .fa {
        flex: 0 0 30px;
        height: 30px;
        width: 30px;
        font-size: 13px;
    }
}

.conciliacao-legenda {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: .35rem;
}

.conciliacao-legenda > .input-group {
    margin-bottom: 0;
}

.conciliacao-legenda-badge {
    background: var(--noo-grid-warning);
    border: 0;
    border-radius: 8px;
    color: var(--noo-grid-warning-text);
    font-size: .78rem;
    min-height: 26px;
    padding: .2rem .5rem;
}

.conciliacao-legenda-badge label {
    margin: 0;
    white-space: nowrap;
}

.conciliacao-boleto-resumo {
    align-items: center;
    display: grid;
    gap: 8px;
    grid-template-columns: minmax(480px, 1fr) max-content;
    width: 100%;
}

.conciliacao-boleto-resumo-cards {
    min-width: 0;
}

.conciliacao-boleto-card-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.conciliacao-boleto-legenda {
    justify-content: flex-end;
}

.conciliacao-boleto-legenda .conciliacao-legenda-badge {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    white-space: nowrap;
}

@media (max-width: 1199.98px) {
    .conciliacao-boleto-resumo {
        grid-template-columns: minmax(0, 1fr);
    }

    .conciliacao-boleto-legenda {
        flex-wrap: wrap;
    }
}

@media (max-width: 767.98px) {
    .conciliacao-boleto-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .conciliacao-boleto-legenda {
        justify-content: flex-start;
    }
}

.conciliacao-legenda-badge.warning {
    background: var(--noo-grid-warning);
    color: var(--noo-grid-warning-text);
}

.conciliacao-legenda-badge.neutral {
    background: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

.conciliacao-legenda-badge.info {
    background: var(--noo-grid-info);
    color: var(--noo-grid-info-text);
}

.conciliacao-legenda-badge.danger {
    background: var(--noo-grid-danger);
    color: var(--noo-grid-danger-text);
}

.conciliacao-legenda-badge.semcategoria {
    background: var(--noo-grid-danger);
    color: var(--noo-grid-danger-text);
}

.conciliacao-legenda-badge.relacionada {
    background: var(--noo-grid-success);
    color: var(--noo-grid-success-text);
}

/* cores */

.card-resumo.positivo {
    background: var(--noo-grid-success-soft);
    border-left-color: var(--noo-grid-success);
}

.card-resumo.positivo > .fa { background: var(--noo-grid-success); color: var(--noo-grid-success-text); }

.card-resumo.negativo {
    background: var(--noo-grid-danger-soft);
    border-left-color: var(--noo-grid-danger);
}

.card-resumo.negativo > .fa { background: var(--noo-grid-danger); color: var(--noo-grid-danger-text); }

.card-resumo.minimo {
    background: var(--noo-grid-warning-soft);
    border-left-color: var(--noo-grid-warning);
}

.card-resumo.minimo > .fa { background: var(--noo-grid-warning); color: var(--noo-grid-warning-text); }

.card-resumo.maximo {
    background: var(--noo-grid-neutral-soft);
    border-left-color: var(--noo-grid-neutral);
}

.card-resumo.maximo > .fa { background: var(--noo-grid-neutral); color: var(--noo-grid-neutral-text); }

@media (max-height: 768px) {
    .resumo-padrao-grid .card-resumo {
        min-height: 52px;
        padding: .32rem .42rem;
    }
}

.resumo-financeiro .status-card {
    border-radius: 6px;
    padding: 10px 8px;
    text-align: center;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    transition: all .15s ease;
}

    .resumo-financeiro .status-card:hover {
        transform: translateY(-2px);
        box-shadow: 0 4px 10px rgba(0,0,0,0.12);
    }

.status-titulo {
    font-size: 12px;
    opacity: .9;
}

.status-valor {
    font-size: 18px;
    font-weight: 700;
}

/* cores */

.status-card.selecionado {
    background: var(--noo-grid-info);
    color: var(--noo-grid-info-text);
}

.status-card.pendente {
    background: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

.status-card.hoje {
    background: var(--noo-grid-warning);
    color: var(--noo-grid-warning-text);
}

.status-card.pago {
    background: var(--noo-grid-success);
    color: var(--noo-grid-success-text);
}

.status-card.vencido {
    background: var(--noo-grid-danger);
    color: var(--noo-grid-danger-text);
}

.status-card.saldo {
    background: var(--noo-grid-neutral);
    color: var(--noo-grid-neutral-text);
}

/* Compatibilidade das telas financeiras antigas já convertidas para o card canônico. */
.resumo-financeiro.conciliacao-summary-grid .status-card {
    border-radius: 9px;
    box-shadow: none;
    min-height: 58px;
    padding: .4rem .5rem;
    text-align: left;
}

.resumo-financeiro.conciliacao-summary-grid .status-card:hover {
    box-shadow: none;
    transform: none;
}

@media (max-height: 768px) {
    .resumo-financeiro.conciliacao-summary-grid .status-card {
        min-height: 52px;
        padding: .32rem .42rem;
    }
}

#RelatorioTabela tbody tr.item-relatorio:nth-of-type(odd) {
    background-color: #f9f9f9;
}

#RelatorioTabela tbody tr.item-relatorio:hover {
    background-color: #eef5ff;
}

#RelatorioTabela item-grupo-relatorio {
    background-color: #f9f9f9;
}

.avatar-navbar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid rgba(0,0,0,0.08);
}

.relatorio-execucao-page .relatorio-filtros-row,
.relatorio-execucao-page #AreaFiltros {
    min-width: 0;
}

.relatorio-execucao-page .relatorio-filtros-col,
.relatorio-execucao-page #AreaFiltros > [class*="col-"] {
    min-width: 0;
}

.relatorio-execucao-page #AreaFiltros > [class*="col-"] {
    flex: 0 0 100%;
    max-width: 100%;
}

@media (min-width: 768px) {
    .relatorio-execucao-page #AreaFiltros > [class*="col-"] {
        flex: 0 0 50%;
        max-width: 50%;
    }
}

@media (min-width: 1400px) {
    .relatorio-execucao-page #AreaFiltros > [class*="col-"] {
        flex: 0 0 33.333333%;
        max-width: 33.333333%;
    }
}

.relatorio-execucao-page .form-group,
.relatorio-execucao-page .form-control,
.relatorio-execucao-page .select2-container {
    max-width: 100%;
    min-width: 0;
}

.relatorio-execucao-page .select2-container {
    direction: ltr !important;
    text-align: left !important;
    width: 100% !important;
}

.relatorio-execucao-page .select2-selection {
    direction: ltr !important;
    text-align: left !important;
}

.relatorio-execucao-page .select2-selection--single .select2-selection__rendered,
.relatorio-execucao-page .select2-selection--single .select2-selection__placeholder {
    box-sizing: border-box;
    direction: ltr;
    display: block;
    flex: 1 1 auto;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    padding-right: 28px;
    text-align: left !important;
    text-overflow: ellipsis;
    white-space: nowrap;
    width: 100%;
}

.relatorio-execucao-page .select2-selection--multiple {
    display: block !important;
    min-height: calc(1.5em + .75rem + 2px);
    overflow: hidden;
}

.relatorio-execucao-page .select2-selection--multiple .select2-selection__rendered {
    display: block;
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    width: 100%;
}

.relatorio-execucao-page .select2-selection--multiple .select2-search.select2-search--inline {
    box-sizing: border-box;
    display: block !important;
    flex: none !important;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    min-width: 100% !important;
    width: 100% !important;
}

.relatorio-execucao-page .select2-selection--multiple .select2-search__field {
    box-sizing: border-box;
    direction: ltr;
    flex: 1 1 auto;
    max-width: 100% !important;
    min-width: 0;
    padding-left: .25rem;
    padding-right: .25rem;
    text-align: left !important;
    width: 100% !important;
}

.relatorio-execucao-page .select2-selection--multiple .select2-search__field::placeholder {
    direction: ltr;
    text-align: left !important;
}

#AreaFiltros .select2-container--bootstrap4 .select2-selection--multiple .select2-search--inline,
#AreaFiltros .select2-container--default .select2-selection--multiple .select2-search--inline {
    direction: ltr !important;
    display: block !important;
    flex: none !important;
    float: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    min-width: 100% !important;
    text-align: left !important;
    width: 100% !important;
}

#AreaFiltros .select2-container--bootstrap4 .select2-selection--multiple .select2-search__field,
#AreaFiltros .select2-container--default .select2-selection--multiple .select2-search__field {
    direction: ltr !important;
    display: block !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    text-align: left !important;
    width: 100% !important;
}

#AreaFiltros .select2-container.relatorio-select2-com-selecao:not(.select2-container--open) .select2-search.select2-search--inline {
    display: none !important;
}

.relatorio-execucao-page .select2-selection--multiple .select2-selection__choice {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.relatorio-select2-dropdown .select2-search--dropdown {
    padding: 4px;
}

.relatorio-select2-dropdown .select2-search__field {
    box-sizing: border-box;
    direction: ltr;
    max-width: 100%;
    min-width: 100%;
    padding-left: .75rem;
    padding-right: .75rem;
    text-align: left !important;
    width: 100% !important;
}

.relatorio-select2-dropdown .select2-search__field::placeholder {
    text-align: left;
}

.relatorio-select2-dropdown .select2-results__message {
    box-sizing: border-box;
    direction: ltr;
    max-width: 100%;
    overflow-wrap: anywhere;
    padding-left: .75rem;
    padding-right: .75rem;
    text-align: left !important;
    white-space: normal;
}

.relatorio-execucao-page .relatorio-carregar-col .form-group {
    margin-bottom: 1rem;
}

@media (max-width: 1199.98px) {
    .relatorio-execucao-page .relatorio-carregar-col {
        display: flex;
        justify-content: flex-end;
    }

    .relatorio-execucao-page .relatorio-carregar-col .form-group {
        width: 220px;
    }
}

@media (max-width: 575.98px) {
    .relatorio-execucao-page .relatorio-carregar-col,
    .relatorio-execucao-page .relatorio-carregar-col .form-group {
        width: 100%;
    }
}
/* Variáveis de mensagens: coluna de cópia segue a geometria fixa das ações de grid. */
.financeiro-notificacao-variaveis .financeiro-notificacao-variavel-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
}

.financeiro-notificacao-variaveis .financeiro-notificacao-variavel-copiar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

/* Tags de Contrato e Termo de Responsabilidade da Locação. */
.empresa-locacao-tags-grid .empresa-locacao-tags-acao,
#ListaLocacaoImpressaoFiltroTermo_wrapper .empresa-locacao-tags-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
}

.empresa-locacao-tags-grid .empresa-locacao-tags-copiar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

/* Tags dos termos de garantia da Ordem de Serviço. */
.empresa-os-termo-tags-grid .empresa-os-termo-tags-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
}

.empresa-os-termo-tags-grid .empresa-os-termo-tags-copiar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

/* Campo composto do tipo personalizado da Ordem de Serviço. */
.empresa-os-personalizada-campo {
    flex-wrap: nowrap;
    padding: 0;
}

.empresa-os-personalizada-campo > #FlagTipoPersonalizadaOs {
    flex: 0 0 74px;
    width: 74px;
    min-width: 74px;
    height: 42px;
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.empresa-os-personalizada-campo > input.form-control {
    min-width: 0;
    height: 42px;
    border-right: 0;
    border-radius: 0;
}

.empresa-os-personalizada-campo > .input-group-append > .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 42px;
    white-space: nowrap;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

/* Campos personalizados da Ordem de Serviço. */
.campos-os-grid .campos-os-coluna-acao,
#ListaCamposOs_wrapper .campos-os-coluna-acao {
    box-sizing: border-box;
    width: 56px !important;
    min-width: 56px !important;
    max-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
}

.campos-os-grid > thead > tr > th,
#ListaCamposOs_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

.campos-os-grid > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
}

.campos-os-grid .campos-os-editar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
    white-space: nowrap;
}

/* Arredondamento de preço via markup. */
#ModalEmpresa.preco-arredondamento-ajustando #ModalEmpresaContent {
    visibility: hidden;
}

#ModalEmpresaContent:has(#PrecoArredondamentoForm) {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 16px);
}

#PrecoArredondamentoForm {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

#PrecoArredondamentoForm .modal-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 8px 15px;
}

#PrecoArredondamentoForm .modal-body > .alert {
    margin: 0 0 8px;
}

#PrecoArredondamentoForm .preco-arredondamento-grid {
    min-width: 0;
}

#PrecoArredondamentoTabela {
    margin-bottom: 0;
}

#PrecoArredondamentoTabela > thead > tr > th,
#PrecoArredondamentoTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
}

#PrecoArredondamentoTabela > tbody > tr > td {
    height: 32px;
    padding-top: 4px;
    padding-bottom: 4px;
    vertical-align: middle;
}

#PrecoArredondamentoTabela .form-control {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    height: 36px;
    min-height: 36px;
    font-size: 13px;
}

#PrecoArredondamentoTabela .preco-arredondamento-coluna-acao,
#PrecoArredondamentoTabela_wrapper .preco-arredondamento-coluna-acao {
    box-sizing: border-box;
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
}

#PrecoArredondamentoTabela .preco-arredondamento-remover {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    max-height: 34px !important;
    margin: 0;
    padding: 0 !important;
    line-height: 1;
    border-radius: 6px !important;
}

#PrecoArredondamentoTabela .text-muted {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    line-height: 1;
    white-space: nowrap;
}

#PrecoArredondamentoForm .modal-footer {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

/* Perfil Tributário Estadual: a Classificação possui descrições longas; duas
 * colunas mais largas preservam o valor selecionado sem comprometer a leitura. */
.perfil-tributario-estadual-page #AccordionFiltros.filtro-painel-responsivo.filtro-painel-duas-colunas [id^="CollapseFiltros"] {
    width: min(920px, calc(100vw - 306px));
}

/* Natureza no filtro estadual: Select2 e limpar são um único campo composto. */
.perfil-tributario-estadual-page .perfil-tributario-estadual-natureza > .select2-container {
    flex: 1 1 0;
    min-width: 0;
}

.perfil-tributario-estadual-page .perfil-tributario-estadual-natureza > .select2-container .select2-selection--single {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.perfil-tributario-estadual-page .perfil-tributario-estadual-natureza > .input-group-append > .btn {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

/* Status da Central de Lançamentos: página compacta, sem redimensionar ou
 * deslocar a DataTable depois da primeira renderização. */
.central-status-page .central-status-grid-container {
    margin-bottom: 0;
}

.central-status-page .pagina-footer {
    margin-top: 8px;
}

.central-status-page .central-status-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

#ListaStatusCentral .central-status-coluna-acao,
#ListaStatusCentral_wrapper .central-status-coluna-acao {
    box-sizing: border-box;
    max-width: 56px !important;
    min-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
    width: 56px !important;
}

#ListaStatusCentral .central-status-editar {
    align-items: center;
    border-radius: 6px !important;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    white-space: nowrap;
    width: 34px !important;
}

#ListaStatusCentral > thead > tr > th,
#ListaStatusCentral_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

#ListaStatusCentral > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#modalStatusCentral .modal-content {
    overflow: hidden;
}

#modalStatusCentral .central-status-modal-body {
    padding: 8px 15px;
}

#modalStatusCentral .central-status-modal-body .row + .row {
    margin-top: 8px;
}

#modalStatusCentral .central-status-modal-body .form-group {
    margin-bottom: 0;
}

#modalStatusCentral .central-status-modal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

/* Status de Ordem de Produção: replica o padrão da Central de Lançamentos. */
.ordem-producao-status-page .ordem-producao-status-grid-container {
    margin-bottom: 0;
}

.ordem-producao-status-page .pagina-footer {
    margin-top: 8px;
}

.ordem-producao-status-page .ordem-producao-status-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

#ListaStatusOrdemProducao .ordem-producao-status-coluna-acao,
#ListaStatusOrdemProducao_wrapper .ordem-producao-status-coluna-acao {
    box-sizing: border-box;
    max-width: 56px !important;
    min-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
    width: 56px !important;
}

#ListaStatusOrdemProducao .ordem-producao-status-editar {
    align-items: center;
    border-radius: 6px !important;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    white-space: nowrap;
    width: 34px !important;
}

#ListaStatusOrdemProducao > thead > tr > th,
#ListaStatusOrdemProducao_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

#ListaStatusOrdemProducao > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#modalStatusOrdemProducao .modal-content {
    overflow: hidden;
}

#modalStatusOrdemProducao .ordem-producao-status-modal-body {
    padding: 8px 15px;
}

#modalStatusOrdemProducao .ordem-producao-status-modal-body .row + .row {
    margin-top: 8px;
}

#modalStatusOrdemProducao .ordem-producao-status-modal-body .form-group {
    margin-bottom: 0;
}

#modalStatusOrdemProducao .ordem-producao-status-modal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

/* Equipes: grid, filtros e modal no padrão visual das telas de cadastro. */
.funcionario-equipe-page .funcionario-equipe-grid-container {
    margin-bottom: 0;
}

.funcionario-equipe-page .pagina-footer {
    margin-top: 8px;
}

.funcionario-equipe-page .funcionario-equipe-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

.funcionario-equipe-page #ListaTabela .funcionario-equipe-coluna-acao,
.funcionario-equipe-page #ListaTabela_wrapper .funcionario-equipe-coluna-acao {
    box-sizing: border-box;
    max-width: 56px !important;
    min-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
    width: 56px !important;
}

.funcionario-equipe-page #ListaTabela .funcionario-equipe-editar {
    align-items: center;
    border-radius: 6px !important;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    white-space: nowrap;
    width: 34px !important;
}

.funcionario-equipe-page #ListaTabela > thead > tr > th,
.funcionario-equipe-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

.funcionario-equipe-page #ListaTabela > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#ModalEquipe .modal-content {
    overflow: hidden;
}

#ModalEquipe .funcionario-equipe-modal-body {
    padding: 8px 15px;
}

#ModalEquipe .funcionario-equipe-modal-body .row + .row {
    margin-top: 8px;
}

#ModalEquipe .funcionario-equipe-modal-body .form-group {
    margin-bottom: 0;
}

#ModalEquipe .funcionario-equipe-modal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    margin: 0;
    padding: 8px 15px;
}

/* Funcionários: listagem compacta, estável e alinhada às telas de cadastro. */
.funcionario-index-page .funcionario-index-grid-container {
    margin-bottom: 0;
}

.funcionario-index-page .pagina-footer {
    margin-top: 8px;
}

.funcionario-index-page .funcionario-index-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

.funcionario-index-page #ListaTabela .funcionario-index-coluna-acao,
.funcionario-index-page #ListaTabela_wrapper .funcionario-index-coluna-acao {
    box-sizing: border-box;
    max-width: 56px !important;
    min-width: 56px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
    text-align: center;
    vertical-align: middle;
    width: 56px !important;
}

.funcionario-index-page #ListaTabela .funcionario-index-editar {
    align-items: center;
    border-radius: 6px !important;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    white-space: nowrap;
    width: 34px !important;
}

.funcionario-index-page #ListaTabela > thead > tr > th,
.funcionario-index-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

.funcionario-index-page #ListaTabela > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

/* Portes: grid, ações e modal compactos conforme o padrão institucional. */
.porte-page .porte-cabecalho {
    align-items: center;
    margin-bottom: 8px;
}

.porte-page .porte-icone-titulo {
    flex: 0 0 20px;
    height: 20px;
    margin-right: 8px;
    object-fit: contain;
    width: 20px;
}

.porte-page .porte-grid-container {
    margin-bottom: 0;
}

.porte-page .pagina-footer {
    margin-top: 8px;
}

.porte-page .porte-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

.porte-page #ListaTabela .porte-coluna-acao,
.porte-page #ListaTabela_wrapper .porte-coluna-acao {
    width: 56px !important;
}

.porte-page #ListaTabela .porte-editar {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    width: 34px !important;
}

.porte-page #ListaTabela > thead > tr > th,
.porte-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

.porte-page #ListaTabela > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#modalPorte .porte-modal-body {
    padding: 8px 15px;
}

#modalPorte .porte-modal-body .row + .row {
    margin-top: 8px;
}

#modalPorte .porte-modal-body .form-group {
    margin-bottom: 0;
}

#modalPorte .porte-modal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 8px 15px;
}

/* Espécies e Raças: mesma geometria compacta validada em Portes. */
.especie-page .especie-cabecalho,
.raca-page .raca-cabecalho {
    align-items: center;
    margin-bottom: 8px;
}

.especie-page .especie-icone-titulo,
.raca-page .raca-icone-titulo {
    flex: 0 0 20px;
    height: 20px;
    margin-right: 8px;
    object-fit: contain;
    width: 20px;
}

.especie-page .especie-grid-container,
.raca-page .raca-grid-container {
    margin-bottom: 0;
}

.especie-page .pagina-footer,
.raca-page .pagina-footer {
    margin-top: 8px;
}

.especie-page .especie-acoes,
.raca-page .raca-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

.especie-page #ListaTabela .especie-coluna-acao,
.especie-page #ListaTabela_wrapper .especie-coluna-acao,
.raca-page #ListaTabela .raca-coluna-acao,
.raca-page #ListaTabela_wrapper .raca-coluna-acao {
    width: 56px !important;
}

.especie-page #ListaTabela .especie-editar,
.raca-page #ListaTabela .raca-editar {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    width: 34px !important;
}

.especie-page #ListaTabela > thead > tr > th,
.especie-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th,
.raca-page #ListaTabela > thead > tr > th,
.raca-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

.especie-page #ListaTabela > tbody > tr > td,
.raca-page #ListaTabela > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

/* Cadastro de animais: lista com geometria compacta e estável. */
.animal-index-page .animal-index-cabecalho {
    align-items: center;
    margin-bottom: 8px;
}

.animal-index-page .animal-index-icone-titulo {
    flex: 0 0 20px;
    height: 20px;
    margin-right: 8px;
    object-fit: contain;
    width: 20px;
}

.animal-index-page .animal-index-grid-container {
    margin-bottom: 0;
}

.animal-index-page #AccordionFiltros .filtros-grid-responsiva {
    grid-template-columns: minmax(0, 1fr) !important;
}

.animal-index-page .filtro-campo-responsivo {
    min-width: 0;
}

.animal-index-page .filtro-campo-responsivo .form-control {
    min-width: 0;
}

.animal-index-page .pagina-footer {
    margin-top: 8px;
}

.animal-index-page .animal-index-acoes {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    min-height: 40px;
    padding: 0;
}

.animal-index-page #ListaTabela .animal-index-coluna-acao,
.animal-index-page #ListaTabela_wrapper .animal-index-coluna-acao {
    width: 56px !important;
}

.animal-index-page #ListaTabela .animal-index-editar {
    align-items: center;
    box-sizing: border-box;
    display: inline-flex;
    height: 34px !important;
    justify-content: center;
    line-height: 1;
    margin: 0;
    max-height: 34px !important;
    max-width: 34px !important;
    min-height: 34px !important;
    min-width: 34px !important;
    padding: 0 !important;
    width: 34px !important;
}

.animal-index-page #ListaTabela > thead > tr > th,
.animal-index-page #ListaTabela_wrapper .dataTables_scrollHead table > thead > tr > th {
    font-size: 13px;
    line-height: 20px;
    padding-bottom: 4px;
    padding-top: 4px;
    text-align: left;
}

.animal-index-page #ListaTabela > tbody > tr > td {
    height: 40px;
    padding-bottom: 4px;
    padding-top: 4px;
    vertical-align: middle;
}

#modalEspecie .especie-modal-body,
#modalRaca .raca-modal-body {
    padding: 8px 15px;
}

#modalEspecie .especie-modal-body .row + .row,
#modalRaca .raca-modal-body .row + .row {
    margin-top: 8px;
}

#modalEspecie .especie-modal-body .form-group,
#modalRaca .raca-modal-body .form-group {
    margin-bottom: 0;
}

#modalEspecie .especie-modal-acoes,
#modalRaca .raca-modal-acoes {
    align-items: center;
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    padding: 8px 15px;
}

/* Tutor do Animal: rótulo e Select2 usam a mesma régua dos campos de resumo. */
.pagina-container.animal-layout .col-md-5 > label[for="IdTutor"] {
    display: block;
    line-height: inherit;
    margin-bottom: 0;
}
