/* input(4811,80): run-time error CSS1019: Unexpected token, found '}'
input(4811,81): run-time error CSS1019: Unexpected token, found '`'
input(4811,82): run-time error CSS1019: Unexpected token, found ')'
input(4811,83): run-time error CSS1019: Unexpected token, found ','
input(4812,25): run-time error CSS1031: Expected selector, found '`'
input(4812,25): run-time error CSS1025: Expected comma or open brace, found '`' */
.select2-results .filho {
    padding-left: 10px;
}

.select2-results .pai {
    font-weight: 600;
}

.select2-result-icon {
    font-size: 26px;
    line-height: 13px;
    vertical-align: text-top;
}

tr.arvore-pai {
    background-color: #f9f9f9 !important;
}

    tr.arvore-pai td {
        border-bottom: none !important;
    }

tr.arvore-filho {
    background-color: #fff !important;
}

    tr.arvore-filho td {
        border: none !important;
    }

.label-checkbox {
    margin-left: 5px;
}

.glyphicon {
    font-weight: 900;
}

.input-search-group {
    position: relative;
    float: right;
}

    .input-search-group i {
        font-size: 25px;
    }

.cabecalho-filtros {
    width: 100%;
    padding: 0 !important;
    margin: 0 !important;
}


    .cabecalho-filtros ul.navbar-right {
        list-style: none;
    }


    .cabecalho-filtros .btn-filtros {
        margin-right: -15px;
        padding-right: 0;
    }

.coluna-filtros {
    border-left: 1px solid #ddd;
    margin-top: -5px;
    padding-top: 5px;
    padding-bottom: 25px;
    /*position: fixed;*/
}



.linha-filtros {
    position: fixed;
    display: inline-block;
    box-shadow: 0 4px 20px 0 rgba(0, 0, 0, .2);
    border-color: rgba(0,0,0,.05);
    z-index: 2;
    width: 30%;
    right: 36px;
    top: 250px;
    background-color: #fff;
    opacity: .4;
    cursor: all-scroll;
    padding-bottom: 20px !important;
    transition: opacity .2s ease-out;
    -moz-transition: opacity .2s ease-out;
    -webkit-transition: opacity .2s ease-out;
    -o-transition: opacity .2s ease-out;
}

    .linha-filtros a.btn-close {
        position: absolute;
        right: 0;
        top: 0;
        font-size: 30px;
        color: #ccc;
    }

    .linha-filtros .title {
        margin-bottom: 15px !important;
        margin-top: 10px !important;
    }

    .linha-filtros:hover {
        opacity: 1;
    }

.hover-opacity {
    opacity: 1;
}

/* Painel de filtros "Completo" (Contas a Pagar/Receber): ~13 controles → mais largo e rolável, e OPACO
   quando aberto. Um painel translúcido (opacity:.4) por cima da grade fazia o usuário "clicar através"
   dele: o clique caía no próprio painel, então (a) o handler de fechar-ao-clicar-fora não disparava e
   (b) os cliques na paginação por baixo eram engolidos (paginação "às vezes não navegava"). Escopado
   nesta classe para NÃO afetar as ~21 telas que usam .linha-filtros. No mobile a largura 300px !important
   da media query (max-width:767px) prevalece. */
.linha-filtros.linha-filtros-completo {
    width: 42%;
    max-height: calc(100vh - 280px);
    overflow-y: auto;
    opacity: 1 !important;
}

@media (min-width:768px) and (max-width:1366px) {

    #GraficoAtendimentos {
        height: 249px !important;
    }

    #DropdownSelecionarRecurso {
        right: 348px !important;
    }

    .fc-center .pre-loader {
        position: absolute;
        top: 13%;
        width: 0;
        height: 0;
        padding-top: 0;
        padding-bottom: 0;
    }
}

.loader-page {
    padding-top: 30px;
    position: fixed;
    width: 100%;
    height: calc(100vh);
    padding-bottom: 30px;
}

.mascarar-valor {
    text-align: right;
}

label.error {
    display: none !important;
}

.tab-danger {
    border-top: 2px solid rgba(239, 98, 98, 0.5) !important;
}

    .tab-danger a {
        background-color: rgba(239, 98, 98, 0.2);
    }

.disabled-days, .fc-nonbusiness {
    background: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 8px, #f0f0f0 8px, #f0f0f0 16px);
    cursor: not-allowed;
}

.dropdown-filter {
    margin-top: 10px;
    width: 300px;
    padding: 10px 10px 15px 10px;
}

    .dropdown-filter:after {
        border-bottom: 8px solid #fff;
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        top: -8px;
        content: "";
        display: inline-block;
        right: 42px;
        margin-left: -6px;
        position: absolute;
    }

    .dropdown-filter:before {
        border-bottom: 8px solid #000;
        border-left: 8px solid transparent;
        border-right: 8px solid transparent;
        top: -8px;
        content: "";
        display: inline-block;
        right: 42px;
        margin-left: -6px;
        position: absolute;
    }

.angle-down, .angle-up {
    font-size: 19px;
    vertical-align: inherit;
    line-height: 0;
}

.mobile-only {
    display: none;
}

.title-mobile {
    margin: -5px 0 20px 0;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
    display: none;
}

.accordion .panel .panel-heading .panel-title {
    background-color: #f5f5f5;
}

.td-footer {
    padding-top: 15px !important;
    padding-bottom: 0 !important;
    white-space: nowrap;
}

input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0px 1000px #f9f9f9 inset !important;
}

.grid-bloco .col-md-6, .grid-bloco .col-md-3 {
    background-color: #f9f9f9;
    padding-left: 19px;
    border-left: 1px solid #ddd;
}

.grid-bloco .row {
    margin: 8px 19px;
    -webkit-box-shadow: 0px 1px 5px rgba(0,0,0,.3);
    box-shadow: 0px 1px 5px rgba(0,0,0,.3);
}

.grid-bloco h4 {
    font-weight: 600;
}

#QtdNotificacoes:empty {
    display: none;
}

#QtdNotificacoes {
    padding: 2px 5px;
    text-shadow: 0 1px rgba(0,0,0,.2);
    position: absolute;
    top: 8px;
    right: 0;
    font-size: 12px;
    font-weight: 300;
}

#ListagemLembretesDia li {
    margin-left: -19px;
    cursor: pointer;
    padding-bottom: 5px;
}

#GraficoAtendimentos {
    height: 270px;
}

.botao-grid-direita {
    vertical-align: middle;
    float: right;
}

#ListagemLembretesDia .botao-grid-direita {
    visibility: hidden;
}


.deslocar-direita {
    padding-left: 27px;
}

    .deslocar-direita:hover .botao-grid-direita {
        visibility: visible;
    }

    .deslocar-direita:hover .botao-grid-direita {
        visibility: visible;
    }


/* Segunda linha da célula de forma de pagamento (aba Financeiro do atendimento): operadora,
   parcelas e código de autorização do cartão, para conferência sem abrir o popover.
   A TIPOGRAFIA continua sendo o padrão do projeto (`text-muted small`) — esta regra só resolve o
   LAYOUT: os botões Editar/Excluir moram na MESMA célula e são `.botao-grid-direita` (float: right),
   então sem o `clear` a linha secundária subiria para o lado deles e colidiria com o lápis. */
.detalhe-linha-pagamento {
    clear: both;
    display: block;
    margin-top: 2px;
    word-break: break-word;
}

.cal-notes li .botao-grid-direita {
    padding-left: 4px;
    font-size: 15px;
}

.cal-notes li:hover .botao-grid-direita {
    visibility: visible !important;
}

.cal-notes .pre-loader-tabela {
    background: none !important;
}

    .cal-notes .pre-loader-tabela .container-pre-loader {
        width: 190px !important;
    }

#MenuPrincipal .sub-menu h3 {
    color: #fff;
    border-bottom: 1px solid #6d6b6b;
    margin: 0 25px;
    padding-bottom: 12px;
    padding-top: 25px;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 10px;
}

.am-left-sidebar #MenuPrincipal > li > a,
.am-left-sidebar #MenuPrincipal > li > a span {
    font-weight: 500;
}

.am-left-sidebar #MenuPrincipal .sub-menu > li > a,
.am-left-sidebar #MenuPrincipal .sub-menu > li > a span {
    font-weight: 500;
}

/* Baseline GLOBAL do ícone SVG: fora da sidebar (abas, breadcrumb, títulos de painel
   que clonam o HTML do menu) ele escala com o texto como uma fonte — nunca "explode".
   As regras da sidebar abaixo têm specificity maior e sobrescrevem para 27px/20px. */
svg.icon-svg {
    width: 1em;
    height: 1em;
    flex-shrink: 0;
    vertical-align: -0.125em;
    stroke: currentColor;
}

.am-left-sidebar #MenuPrincipal .sub-menu > li > a {
    display: flex;
    align-items: center;
    gap: 10px;
}

.am-left-sidebar #MenuPrincipal .sub-menu > li > a > i.icon {
    flex-shrink: 0;
    width: 22px;
    min-width: 22px;
    margin-right: 0;
    text-align: center;
}

.am-left-sidebar #MenuPrincipal .sub-menu > li > a > svg.icon-svg {
    flex-shrink: 0;
    width: 20px;
    min-width: 20px;
    height: 20px;
    color: inherit;
    stroke: currentColor;
}

#MenuPrincipal .sub-menu h3 span {
    display: flex;
    align-items: center;
    gap: 10px;
}

#MenuPrincipal .sub-menu h3 i.icon {
    flex-shrink: 0;
    width: 22px;
    min-width: 22px;
    text-align: center;
}

.am-left-sidebar #MenuPrincipal .sub-menu > li.title {
    font-weight: 500;
}

.header-dropdown {
    float: right;
}

.date .text-danger, .date .text-success {
    display: inline !important;
}

.widget-list li.active {
    background-color: #f9f9f9;
}

.widget-list li a span {
    display: none;
}

.widget-list li.active a span {
    display: inline;
    font-weight: 900;
    float: right;
    right: 10px;
    font-size: 25px;
}

.col-md-4.tree {
    padding-top: 15px;
}

    .col-md-4.tree:nth-child(4),
    .col-md-4.tree:nth-child(8),
    .col-md-4.tree:nth-child(16) {
        clear: both;
    }

.am-checkbox.tree-parent span {
    font-size: 18px;
    font-weight: 600;
    margin-left: 4px !important;
}

.am-checkbox.tree-child span {
    font-size: 14px;
    font-weight: 300;
    margin-left: 5px;
}


ul.tree-childs {
    list-style: none;
    margin-left: -28px;
}

.am-checkbox.tree {
    height: 35px;
}

    .am-checkbox.tree label {
        cursor: pointer;
    }

.icon-tree {
    position: absolute;
}

    .icon-tree i {
        font-size: 60px;
    }

.am-splash-screen #toast-container {
    padding-left: 0 !important;
}

.font-600 {
    font-weight: 600 !important;
}

input, textarea {
    text-transform: uppercase;
}

#FormLogin input {
    text-transform: none;
}

[data-exibir|=False] {
    display: none !important;
}

.highlight {
    background-color: #FFFF88;
}

.no-padding-v {
    padding-bottom: 0 !important;
    padding-top: 0 !important;
}

.no-padding-h {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

#MenuPrincipal a {
    cursor: pointer;
}

.fechar-aba {
    position: absolute;
    right: 0;
    top: 0;
}

#AbaPrincipal > li > .fechar-aba {
    position: absolute;
    right: 6px;
    top: 10px;
    color: #fff;
    cursor: pointer;
    font-size: 16px;
}

#AbaPrincipal > li.active > .fechar-aba:hover {
    font-weight: 600;
    color: #000 !important;
}

#AbaPrincipal > li > .fechar-aba:hover {
    font-weight: 600;
    color: #666 !important;
}

#AbaPrincipal > li.active > .fechar-aba {
    color: #bbb;
}

.pre-loader, .pre-loader-tabela {
    background-color: #fff;
    width: 100%;
    z-index: 1030;
    height: 100%;
    text-align: center;
    padding-top: 12%;
    padding-bottom: 15%;
}

.pre-loader-container-aba {
    background-color: #fff;
    width: 100%;
    z-index: 1030;
    text-align: center;
    height: calc(100vh - 40px);
    margin-top: -10px;
}

.pre-loader .container-pre-loader, .pre-loader-tabela .container-pre-loader {
    width: 250px;
    text-align: center;
    margin: 0 auto;
}

.pre-loader-container-aba .container-pre-loader {
    width: 250px;
    text-align: center;
    margin: 0 auto;
    top: calc(50% - 30px);
    position: absolute;
    left: calc(50% - 125px);
}


.table-responsive .pre-loader-tabela {
    padding-top: 1.5%;
    padding-bottom: 3%;
}

.md-modal .pre-loader {
    -webkit-box-shadow: 0px 2px 5px 0px #000;
    -ms-box-shadow: 0px 2px 5px 0px #000;
    box-shadow: 0px 2px 5px 0px #000;
}

.fc-center .pre-loader {
    top: 15.5%;
}

    .fc-center .pre-loader .container-pre-loader {
        width: 150px;
    }


.pre-loader-btn-primary {
    -webkit-animation: progress-bar-stripes 2s linear infinite;
    -moz-animation: progress-bar-stripes 2s linear infinite;
    -ms-animation: progress-bar-stripes 2s linear infinite;
    -o-animation: progress-bar-stripes 2s linear infinite;
    animation: progress-bar-stripes 2s linear infinite;
    background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    -ms-background-size: 40px 40px;
    background-size: 40px 40px;
    color: #fff;
    text-align: center;
    -webkit-transition: width .6s ease;
    -moz-transition: width .6s ease;
    -ms-transition: width .6s ease;
    -o-transition: width .6s ease;
    transition: width .6s ease;
}

.pre-loader-btn-danger {
    -webkit-animation: progress-bar-stripes 2s linear infinite;
    -moz-animation: progress-bar-stripes 2s linear infinite;
    -ms-animation: progress-bar-stripes 2s linear infinite;
    -o-animation: progress-bar-stripes 2s linear infinite;
    animation: progress-bar-stripes 2s linear infinite;
    background-color: #f17979 !important;
    border-color: #f17979 !important;
    background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    -ms-background-size: 40px 40px;
    background-size: 40px 40px;
    color: #fff;
    text-align: center;
    -webkit-transition: width .6s ease;
    -moz-transition: width .6s ease;
    -ms-transition: width .6s ease;
    -o-transition: width .6s ease;
    transition: width .6s ease;
}

.pre-loader-btn-warning {
    -webkit-animation: progress-bar-stripes 2s linear infinite;
    -moz-animation: progress-bar-stripes 2s linear infinite;
    -ms-animation: progress-bar-stripes 2s linear infinite;
    -o-animation: progress-bar-stripes 2s linear infinite;
    animation: progress-bar-stripes 2s linear infinite;
    background-color: #D89B46 !important;
    border-color: #D89B46 !important;
    background-image: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    background-image: linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
    -ms-background-size: 40px 40px;
    background-size: 40px 40px;
    color: #fff;
    text-align: center;
    -webkit-transition: width .6s ease;
    -moz-transition: width .6s ease;
    -ms-transition: width .6s ease;
    -o-transition: width .6s ease;
    transition: width .6s ease;
}


.paginacao a {
    cursor: pointer;
}

.ui-dialog-titlebar {
    font-size: 18px;
    font-weight: 300;
    padding: 14px 0 14px 10px;
    -ms-text-shadow: 0 1px rgba(0,0,0,.2);
    text-shadow: 0 1px rgba(0,0,0,.2);
}

.ui-dialog-titlebar-close {
    border: none;
    background: none;
    position: absolute;
    top: -7px !important;
    right: 10px;
    text-shadow: 0 1px rgba(0,0,0,.2);
    font-size: 35px;
}

.ui-dialog-titlebar-buttonpane {
    float: right !important;
    position: relative !important;
    right: auto !important;
    margin: -6px 10px !important;
}



.dialog-container {
    box-shadow: 0px 11px 20px 0px rgba(0,0,0,.1);
    position: absolute;
    background-color: #fff;
}

    .dialog-container .panel {
        margin-bottom: 0;
    }

.ui-dialog:focus {
    outline: 0;
}

.ui-dialog {
    z-index: 1700;
    margin-bottom: 20px;
}

#DialogAlterarFeriado.ui-dialog,
#DialogAlterarFeriado.ui-dialog-content {
    z-index: 1701 !important;
}

#DialogAlterarFeriado.ui-dialog ~ .ui-widget-overlay {
    z-index: 1700 !important;
}

#dialog-extend-fixed-container .ui-dialog.ui-widget {
    position: static !important;
    width: auto !important;
    margin-left: 15px !important;
}

.form-footer {
    border-top: 1px solid #e5e5e5;
    padding: 15px;
    text-align: right;
    font-size: 1.15em;
}

.p-l-0 {
    padding-left: 0
}

.p-l-20 {
    padding-left: 20px !important;
}

.table > tbody > tr > td:first-child, .table > thead > tr > th:first-child, .p-l-20 {
    padding-left: 20px;
}

.table > tbody > tr > td:last-child, .table > thead > tr > th:last-child, .table > tfoot > tr > td:last-child {
    padding-right: 20px;
}

.table-bordered > thead > tr > th:first-child {
    padding-left: 10px !important;
}

.table.table-hover tbody tr {
    cursor: pointer;
}

.paginacao {
    float: right;
    padding-right: 20px;
}

.info-paginacao {
    float: left;
    padding: 11px 20px;
    padding-top: 1px;
    margin-top: 10px;
    padding-bottom: 23px;
}

.col-md-4 .info-paginacao, .col-md-4 .paginacao {
    float: none;
    text-align: center;
}


.col-md-4 .paginacao {
    padding: 0;
    margin-top: -10px;
}

.col-md-4 .texto-paginacao {
    display: none;
}

.text-100 {
    font-weight: 100 !important;
}

.text-300 {
    font-weight: 300 !important;
}

.text-400 {
    font-weight: 400 !important;
}

.text-500 {
    font-weight: 500 !important;
}

.text-600 {
    font-weight: 600 !important;
}

.md-content .table > tbody > tr > td {
    padding: 6px 10px;
    font-size: 14px;
}

.table > tfoot > tr > td {
    border-bottom: none;
}

#DropdownSelecionarRecurso {
    position: absolute;
    min-width: 150px;
    margin-top: 6px;
    right: 364px;
}

.dropdown-calendario {
    width: 200px;
    text-align: left;
}


.table .pre-loader-tabela {
    padding-top: 5%;
    padding-bottom: 10%;
}

.form-control.input-validation-error {
    border: 2px solid #f17979;
}

    .form-control.input-validation-error:focus {
        -webkit-box-shadow: 0px 0px 1px 2px #f17979;
        -ms-box-shadow: 0px 0px 1px 2px #f17979;
        box-shadow: 0px 0px 1px 2px #f17979;
        border-color: #fff;
    }

.md-modal {
    display: none;
}

.template-select2 h4 {
    font-weight: 400;
}

.select2-search button {
    width: 30px;
    margin-top: -2px;
    height: 28px;
    margin-left: 5px;
    padding-top: 4px;
}

.select2-error {
    border: 2px solid #f17979 !important;
}

.select2-container--open .select2-error {
    border: 2px solid #fff !important;
}

.ui-widget-overlay {
    position: fixed;
    width: 100%;
    height: 100%;
    background-color: #000;
    top: 0;
    -ms-opacity: .50;
    opacity: .50;
    -webkit-filter: Alpha(Opacity=50);
    -moz-filter: Alpha(Opacity=50);
    -o-filter: Alpha(Opacity=50);
    filter: Alpha(Opacity=50);
    z-index: 1699;
}

.ui-icon-minus {
    color: #fff;
    margin-top: 6px !important;
}

.ui-icon-newwin {
    color: #fff;
    margin-top: -2px !important;
}

.ui-button:hover, .ui-icon:hover {
    color: #666;
    text-shadow: 1px 1px 1px #fff;
}

.text-baseline {
    vertical-align: text-bottom;
}

.fc-slats tr:not(.disabled-days):hover {
    background-color: #f5f5f5;
}

.contexto-form {
    border-bottom: 1px solid #f0f0f0;
    margin: 20px 7px !important;
    padding-bottom: 10px;
    font-size: 22px;
    margin-bottom: 15px !important;
}

    .contexto-form i {
        font-size: 25px;
        vertical-align: middle;
    }


#AbaPrincipal > li > a > svg.icon-svg {
    width: 18px;
    height: 18px;
    min-width: 18px;
    vertical-align: middle;
    margin-right: 3px;
}

.nav.navbar-nav.am-nav-right li a i {
    font-size: 21px;
    vertical-align: sub;
    padding-right: 3px;
}

.half-width {
    width: 64%;
    max-width: none;
    left: 18%;
    margin-left: 25px;
}

.large-width {
    width: 90%;
    max-width: 960px;
    left: 50%;
    margin-left: 0;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
}

/* Diagnóstico Financeiro — manter padrão de dialog; apenas melhora legibilidade de detalhes longos. */
#ModalDiagnosticoFinanceiroLista .diagnostico-financeiro-detalhe,
#ModalDiagnosticoFinanceiroResumo small,
#ModalDiagnosticoCfazLista .diagnostico-financeiro-detalhe,
#ModalDiagnosticoCfazResumo small,
#ModalDiagnosticoRadioMemoryLista .diagnostico-financeiro-detalhe,
#ModalDiagnosticoRadioMemoryResumo small {
    color: inherit;
    opacity: 1;
    word-break: break-word;
    overflow-wrap: anywhere;
}

/* Largo como o fluxo “Incluir Atendimento” (~95% da área útil), mas limitado ao viewport (evita estourar a tela). */
.md-modal.large-width.modal-caixa-resumo-atendimento-largura-dialog {
    width: min(95vw, 1400px);
    max-width: calc(100vw - 48px);
    box-sizing: border-box;
}

.small-width {
    width: 60%;
    max-width: none;
    left: 20%;
    margin-left: 25px;
}

.min-width {
    width: 30% !important;
    max-width: none;
    margin-left: 25px;
    margin: 0 35%;
}

.label-required:after {
    content: " *";
    color: #ef6262;
    position: relative;
    font-size: 19px;
    top: 3px;
    line-height: 1px;
}

/* Endereço opcional por parâmetro da empresa: o asterisco vem de ModelMetadata.IsRequired
   (CustomHtmlGenerator / LabelRequiredTagHelper), que é cache por tipo e não varia por request — a
   EnderecoViewModel é compartilhada com Dados da Empresa e NFS-e. Some só no bloco marcado. */
[data-endereco-opcional="true"] .label-required:after {
    content: "";
}

#MenuContextoAgendamento {
    display: none;
    z-index: 400;
    position: fixed;
}

    #MenuContextoAgendamento .dropdown-menu {
        display: block;
    }


        #MenuContextoAgendamento .dropdown-menu > li > a {
            padding: 9px;
        }

.toast-message i {
    font-size: 45px;
    position: absolute;
    left: 10px;
    top: 27px;
}

.tr-child td:first-child {
    padding-left: 10px !important;
}

    .tr-child td:first-child i {
        font-size: 20px;
        line-height: 1px;
        vertical-align: sub;
        margin-right: -8px;
    }

.btn-show-tr-child td:first-child i {
    font-weight: 600;
    font-size: 14px;
    vertical-align: top;
}

.btn-show-tr-child {
    color: #555;
}

.titulo-agendamento-calendario {
    float: left;
    padding-right: 10px;
}

.status-agendamento-calendario {
    float: right;
    padding-left: 10px;
    position: absolute;
    right: 2px;
    top: 1px;
    font-size: 16px;
}

    .status-agendamento-calendario i {
        font-weight: 900 !important;
    }

.legenda-calendario span {
    vertical-align: middle;
    font-size: 12px;
    padding-right: 15px;
    float: left;
    line-height: 15px;
}

.legenda-calendario i {
    font-size: 20px;
}


.popover-calendario {
    font-size: 14px;
    line-height: 1.7em;
}

    .popover-calendario i {
        vertical-align: middle;
    }

.form h3 {
    margin: 0;
}

.tab-container {
    margin: 0 -20px;
}

.select2-container--open {
    z-index: 1999;
}

.bloco-resumo-pagamento {
    padding: 25px 0;
}

.dropdown-menu li {
    border-bottom: 1px solid #f0f0f0;
}

    .dropdown-menu li:last-child {
        border-bottom: none;
    }


.btn-xs {
    font-weight: 100;
}

.fechar-popover {
    cursor: pointer;
    font-size: 18px;
    position: absolute;
    right: 8px;
    top: 6px;
}

.tab-corpo {
    padding: 0 27px;
    margin: 0 -27px;
}

    .tab-corpo .nav-tabs > li {
        background-color: #f7f7f7;
        border-left: 1px solid #e0e0e0;
        border-right: 1px solid #e0e0e0;
    }

    .tab-corpo .form-footer {
        margin: 0 -30px;
    }

    .tab-corpo .panel-default {
        margin: 0 !important;
    }


.popup {
    display: none;
    position: absolute;
    width: 300px;
    padding: 10px 20px 15px 20px;
}

    /*.popup:after {
        position: absolute;
        top: -5px;
        left: 10px;
        display: inline-block;
        border-right: 6px solid transparent;
        border-bottom: 6px solid #fff;
        border-left: 6px solid transparent;
        content: '';
    }

    .popup:before {
        position: absolute;
        top: -6px;
        left: 9px;
        display: inline-block;
        border-right: 7px solid transparent;
        border-bottom: 7px solid #fff;
        border-left: 7px solid transparent;
        border-bottom-color: rgba(0, 0, 0, 0.2);
        content: '';
    }*/

    .popup .form-popup {
        padding: 5px;
    }

.popup-right {
    display: none;
    position: absolute;
    width: 200px;
    padding: 10px 20px 15px 20px;
}

    .popup-right:after {
        position: absolute;
        top: -5px;
        right: 10px;
        display: inline-block;
        border-right: 6px solid transparent;
        border-bottom: 6px solid #fff;
        border-left: 6px solid transparent;
        content: '';
    }

    .popup-right:before {
        position: absolute;
        top: -6px;
        right: 9px;
        display: inline-block;
        border-right: 7px solid transparent;
        border-bottom: 7px solid #fff;
        border-left: 7px solid transparent;
        border-bottom-color: rgba(0, 0, 0, 0.2);
        content: '';
    }

.popup-top-right .form-popup {
    padding: 5px;
}

.btn-fechar-popup {
    position: absolute;
    right: 6px;
    top: 0px;
    cursor: pointer;
    color: #555;
    font-size: 16px;
}

.btn-fechar-modal {
    color: #fff;
    font-size: 32px;
    position: absolute;
    right: 10px;
    top: 4px;
    cursor: pointer;
}

    .btn-fechar-modal:hover {
        color: #666;
    }

/* Cadastro do questionário de conformidade: conserta o <select> pequeno CORTADO.

   Causa medida no tema (style.css): `select.input-sm` recebe `height: 30px` E `line-height: 30px`,
   e `.input-sm` acrescenta `padding: 5px 9px`. Com `box-sizing: border-box`, a área de conteúdo
   sobra em 30 − 10 (padding) − 2 (borda) = 18px, mas a linha de texto pede 30px — o texto do
   "Aplica-se ao NÃO CONFORME" saía cortado pela metade na base.

   `line-height: normal` + centralização por padding é o que o próprio tema faz para <input>
   pequeno (`.input-sm { line-height: 1.5 }`); o valor 30px só existe no ramo do select.

   ESCOPADO de propósito. A regra do tema é global e há 4 outros `select.form-control.input-sm` no
   projeto (Workbench e Buscar Parcela da conciliação bancária, Padrões do ativo imobilizado) com o
   MESMO defeito latente — corrigir globalmente é a correção certa, mas muda a aparência de telas
   que não foram medidas aqui. Ver .claude/spec/conformidade-clinica.md. */
.conformidade-motivo select.input-sm {
    line-height: normal;
    padding-top: 0;
    padding-bottom: 0;
}

/* Overlay exclusivo do modal de conferência de etapa (checklist).
   Não usar .md-overlay pelo mesmo motivo do overlay abaixo: o seletor `.md-show ~ .md-overlay` do
   tema é disparado por QUALQUER modal aberto na página.
   z-index abaixo do modal (10021) e acima do dialog do atendimento — a conferência tem de PARECER
   bloqueante, porque ela é: a etapa não avança sem responder. */
.md-overlay-checklist-etapa {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 10020;
    display: none;
    opacity: 1;
    background: rgba(0, 0, 0, 0.5);
}

/* Overlay exclusivo do modal de caixa fechado — não usar .md-overlay (evita .md-show ~ .md-overlay cobrir outros modais). */
.md-overlay-cancelamento-caixa-fechado {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 10000;
    display: none;
    opacity: 1;
    background: rgba(0, 0, 0, 0.5);
}


.tab-invalid {
    background-color: #f17979 !important;
}


.btn-invalid {
    border: 1px solid #ed4b4b;
    border-left: 1px solid #ed4b4b;
}

.container-filtro-grid {
    float: right;
    width: 35%;
    display: inline-flex;
}

.acoes-checkbox {
    transform: rotate(180deg);
    float: left;
    margin-left: 15px;
    margin-top: -10px;
    margin-right: 5px;
}

    .acoes-checkbox i {
        font-size: 50px;
        color: #ddd;
    }


.tr-error {
    background-color: rgba(239, 98, 98, 0.15) !important;
}

.tr-success {
    background-color: rgba(92, 184, 92, 0.15) !important;
}


.tr-cancel {
    background-color: #f1f1f1 !important;
    color: #ccc;
}

.tr-estorno-compensatorio {
    background-color: #fce8ee !important;
}

.tr-estorno-compensatorio .fv2-mv-icone-estorno-compensatorio {
    color: #e91e63;
    margin-right: 4px;
    font-size: 16px;
    vertical-align: middle;
    line-height: 1;
}

.tr-estorno-compensatorio .fv2-mv-msg-estorno-compensatorio {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.35;
    color: #d9534f;
    font-weight: 700;
}

.tr-estorno-compensatorio .fv2-mv-msg-estorno-icone {
    color: #d9534f;
    font-size: 13px;
    vertical-align: middle;
}

.fv2-mv-detalhe-estorno-compensatorio {
    background-color: #fce8ee;
    border: 1px solid #f1b6c8;
    border-radius: 4px;
    margin-left: 0;
    margin-right: 0;
    padding-top: 8px;
    padding-bottom: 4px;
}

.fv2-mv-detalhe-estorno-descricao {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
    color: #d9534f;
    font-weight: 700;
}


.table-error, .table-error tfoot {
    border: 1px solid #f8bcbc !important;
}

    .table-error thead tr th:first-child {
        border-left: 1px solid #f17979;
    }

    .table-error thead tr th:last-child {
        border-right: 1px solid #f17979;
    }

    .table-error tbody tr td:first-child {
        border-left: 1px solid #f17979;
    }

    .table-error tbody tr td:last-child {
        border-right: 1px solid #f17979;
    }

.ui-dialog .table > tbody > tr > td:first-child {
    padding-left: 10px;
}

.ui-dialog .table > tbody > tr > td:last-child {
    padding-right: 10px;
}

.nowrap {
    white-space: nowrap;
}

.carregar-url {
    cursor: pointer;
}

.title {
    font-size: 21px;
}

    .title i {
        font-size: 25px;
        vertical-align: middle;
    }

.flip-vertical {
    -moz-transform: scaleY(-1);
    -o-transform: scaleY(-1);
    -webkit-transform: scaleY(-1);
    transform: scaleY(-1);
    filter: FlipV;
    -ms-filter: "FlipV";
    display: inline-block;
}

.tab-corpo .tab-content {
    padding: 5px 8px 0 8px;
}

.input-busca {
    width: 290px;
    float: right;
}

.icon-input {
    color: #888;
    position: absolute;
    margin-top: 7px;
    right: 5px;
}

.label-custom {
    width: 100%;
    min-height: 70px;
    background-color: #f7f7f7;
    padding: 5px;
    cursor: pointer;
}

    .label-custom:hover {
        background-color: #fafafa;
    }

    .label-custom.label-disabled {
        cursor: not-allowed;
        background-color: #fafafa;
    }



    .label-custom .radio-left {
        float: left;
        padding: 1px 6px;
        min-height: 70px;
    }


    .label-custom .label-titulo {
        font-weight: 400;
        font-size: 16px;
        display: block;
    }


    .label-custom .label-descricao {
        font-weight: 300;
        font-size: 11px;
        display: block;
        white-space: normal;
    }

.contexto-form-secundario {
    font-size: 13px;
    font-weight: 400;
    color: #797979;
    margin: 10px 0 5px 15px;
    text-transform: uppercase;
}

/* Rodapé de e-mail do cartão de Local de Entrega. Fica FORA do <label> (o label ativa o radio, o
   que roubaria o foco do input de edição), então repete o fundo do cartão e o estado de :hover para
   os dois lerem como uma caixa só — a linha divisória é o que separa "endereço" de "e-mail". */
/* O cartão inteiro (label + rodapé) é que precisa ter os 70px do padrão — não o label sozinho, senão
   quem tem e-mail fica ~28px mais alto que os vizinhos. A min-height sai também do .radio-left, que
   é quem de fato impõe a altura (o label só a acompanha).

   Condicionado a .com-rodape-email (classe que o JS liga junto com o rodapé): a classe do cartão vem
   fixa do Razor, mas o rodapé só é injetado depois de escolher um profissional COM endereço — sem a
   condição, o cartão "Consultório" nasceria ~24px mais baixo que os vizinhos, e voltaria a encolher
   sempre que o profissional escolhido não tivesse endereço. */
.cartao-endereco-entrega.com-rodape-email .label-custom,
.cartao-endereco-entrega.com-rodape-email .label-custom .radio-left {
    min-height: 46px;
}

.cartao-endereco-entrega.com-rodape-email .label-custom {
    padding-bottom: 6px;
}

/* Fora do media query: abaixo de 992px os cartões empilham e as colunas deste tema só têm padding
   LATERAL — sem a margem, o rodapé cinza de um encosta no label cinza do seguinte e os dois viram
   um bloco só, sem divisa. */
.cartao-endereco-entrega .label-custom {
    margin-bottom: 0;
}

.cartao-endereco-entrega {
    margin-bottom: 10px;
}

.cartao-endereco-entrega:hover .label-custom,
.cartao-endereco-entrega:hover .rodape-email-endereco {
    background-color: #fafafa;
}

.rodape-email-endereco {
    background-color: #f7f7f7;
    border-top: 1px solid #ececec;
    padding: 6px 8px 8px;
    font-size: 11px;
    font-weight: 300;
    line-height: 1.5;
    overflow-wrap: break-word;
    word-break: break-word;
}

    .rodape-email-endereco .visor-email-endereco {
        display: block;
        color: #797979;
    }

        .rodape-email-endereco .visor-email-endereco i.icon {
            margin-right: 5px;
            font-size: 12px;
            vertical-align: -1px;
        }

    /* Sem e-mail é PENDÊNCIA — é o estado que o lápis existe para resolver. */
    .rodape-email-endereco .visor-email-endereco.sem-email {
        color: #c9302c;
        font-style: italic;
    }

    .rodape-email-endereco .btn-editar-email-endereco {
        cursor: pointer;
        margin-left: 6px;
        color: #337ab7;
        opacity: .6;
    }

    .cartao-endereco-entrega:hover .btn-editar-email-endereco,
    .rodape-email-endereco .btn-editar-email-endereco:hover {
        opacity: 1;
    }

    .rodape-email-endereco .editor-email-endereco {
        display: block;
        white-space: nowrap;
    }

        .rodape-email-endereco .editor-email-endereco .campo-email-endereco {
            display: inline-block;
            width: calc(100% - 56px);
            height: 26px;
            padding: 2px 6px;
            font-size: 11px;
            vertical-align: middle;
        }

        .rodape-email-endereco .editor-email-endereco .btn {
            width: 24px;
            padding: 3px 0;
            text-align: center;
            vertical-align: middle;
        }

/* Cartões de endereço adicional da MESMA linha com a mesma altura (endereço de 1 e de 2 linhas
   convivem). Só a lista de endereços adicionais, que É um .row: o
   #ContainerListagemLocalEntrega NÃO é — é um div sem float cujos filhos flutuam para a mesma
   fileira do cartão Consultório, e virar flex criaria um BFC que quebraria a fileira em duas.
   Dentro do media query porque neste tema `col-md-*` não tem width nem float abaixo de 992px: com
   flex incondicional as colunas ficariam espremidas lado a lado no tablet em vez de empilhar. */
@media (min-width: 992px) {
    .lista-enderecos-profissional {
        display: flex;
        flex-wrap: wrap;
    }

        .lista-enderecos-profissional > div {
            display: flex;
            flex-direction: column;
        }

            .lista-enderecos-profissional > div > .label-custom {
                flex: 1 1 auto;
            }
}

/* Acima de 2 linhas de cartões a lista rola em vez de empurrar o formulário para baixo. O teto
   acompanha a altura do cartão COM rodapé de e-mail (~76px + 10px de margem), senão a 2ª fileira
   já nasceria cortada em vez de sinalizar que há mais abaixo. */
.lista-enderecos-com-scroll {
    max-height: 190px;
    overflow-y: auto;
}

.label-help {
    cursor: help;
}

    .label-help i {
        font-weight: 500;
        color: #000;
    }

.tooltip-info {
    color: #5bc0de;
    cursor: help;
    margin-left: 4px;
    font-size: 14px;
}

.label-error {
    background-color: #fad6d6 !important;
}

.label-etiquetas .radio-left {
    float: left;
    padding: 1px 6px;
}

.label-etiquetas {
    width: 100%;
    min-height: 30px;
    background-color: #f7f7f7;
    padding: 5px;
    cursor: pointer;
    border: 1px solid #ddd;
}

    .label-etiquetas:hover {
        background-color: #fafafa;
    }

    .label-etiquetas .label-titulo {
        font-size: 20px;
        color: #fff;
        text-shadow: 0 0 1px #000;
        font-weight: 400;
        display: block;
        text-align: center;
    }

#AbaPaginaInicial {
    width: 100px !important;
}

@media (min-width:768px) and (max-width:991px) {
    .form-group .col-md-1, .form-group .col-md-2, .form-group .col-md-3, .form-group .col-md-4,
    .form-group .col-md-5, .form-group .col-md-6, .form-group .col-md-7, .form-group .col-md-8,
    .form-group .col-md-9, .form-group .col-md-10, .form-group .col-md-11, .form-group .col-md-12 {
        margin-bottom: 20px !important;
    }

    .cabecalho-filtros .btn-filtros {
        margin-right: 5px;
        padding-right: 0;
    }

    .coluna-filtros {
        border: none;
        border-top: 1px solid #ddd;
    }

    .input-search-group {
        clear: both;
        width: 100% !important;
        margin-top: 10px;
    }

        .input-search-group .input-busca {
            width: 100%;
        }
}

@media (max-width: 767px) {

    .linha-filtros {
        width: 300px !important;
    }

    #toast-container {
        padding: 10px;
        width: 100%;
    }

        #toast-container.toast-bottom-center > div, #toast-container.toast-top-center > div {
            width: 100%;
        }

    ul.pagination li {
        display: none;
    }

        ul.pagination li.prev, ul.pagination li.next {
            display: inline;
        }

    .paginacao {
        float: none;
        padding: 0;
        text-align: center;
    }

    .input-search-group {
        clear: both;
        width: 100%;
        margin-top: 10px;
    }

        .input-search-group .input-busca {
            width: 100%;
        }

    .coluna-filtros {
        border: none;
    }

    .cabecalho-filtros .btn-filtros {
        margin-right: -15px;
        padding-right: 0;
    }

    #DropdownSelecionarRecurso {
        position: static !important;
    }

    .evo-colorind, .evo-colorind-ie, .evo-colorind-ff {
        top: 37px !important;
    }


    #AbaPrincipal > li {
        width: 100% !important;
    }

        #AbaPrincipal > li a span {
            -webkit-mask-image: none !important;
        }


    .dropdown-menu li {
        border-bottom: 1px solid #555;
    }

    .tab-dropdown .dropdown-menu li {
        border-bottom: 1px solid #f0f0f0;
    }

    .dropdown-menu .label-tab {
        display: inline;
    }

    .pre-loader-container-aba {
        height: calc(100vh - 101px);
    }

    .mobile-only {
        display: block;
    }

    .title-mobile {
        display: block;
    }

    .min-width {
        width: 100% !important;
    }

    .md-modal {
        position: absolute !important;
        top: -3px;
    }

    .input-search-group {
        clear: both;
        width: 100% !important;
        margin-top: 10px;
    }

    #AbaPaginaInicial {
        width: 100% !important;
    }

    #MenuNotificacoes {
        display: none;
    }

    .panel-heading .title {
        font-size: 18px;
    }

    .header-dropdown {
        float: inherit;
        margin-top: 10px;
    }

        .header-dropdown .select2-container {
            width: 100% !important;
        }

    .btn span, .label-tab {
        display: none;
    }

    .dropdown-menu .label-tab {
        display: inline;
    }

    .ui-button span {
        display: inline !important;
    }

    .table > thead > tr > th:nth-child(10):not(.show-mobile),
    .table > thead > tr > th:nth-child(9):not(.show-mobile),
    .table > thead > tr > th:nth-child(8):not(.show-mobile),
    .table > thead > tr > th:nth-child(7):not(.show-mobile),
    .table > thead > tr > th:nth-child(6):not(.show-mobile),
    .table > thead > tr > th:nth-child(5):not(.show-mobile),
    .table > thead > tr > th:nth-child(4):not(.show-mobile),
    .table > thead > tr > th:nth-child(3):not(.show-mobile),
    .table > thead > tr > th:nth-child(2):not(.show-mobile) {
        display: none;
    }

    .table > tbody > tr > td:nth-child(10):not(.show-mobile),
    .table > tbody > tr > td:nth-child(9):not(.show-mobile),
    .table > tbody > tr > td:nth-child(8):not(.show-mobile),
    .table > tbody > tr > td:nth-child(7):not(.show-mobile),
    .table > tbody > tr > td:nth-child(6):not(.show-mobile),
    .table > tbody > tr > td:nth-child(5):not(.show-mobile),
    .table > tbody > tr > td:nth-child(4):not(.show-mobile),
    .table > tbody > tr > td:nth-child(3):not(.show-mobile),
    .table > tbody > tr > td:nth-child(2):not(.show-mobile) {
        display: none;
    }



    #TabelaProcedimentosAtendimento th:nth-child(2) {
        display: none;
    }

    #TabelaProcedimentosAtendimento td:nth-child(2) {
        display: none;
    }

    #TabelaProcedimentosAtendimentoDetalhar th:nth-child(2) {
        display: none;
    }

    #TabelaProcedimentosAtendimentoDetalhar td:nth-child(2) {
        display: none;
    }

    .table td.coluna-acoes, .table th.coluna-acoes {
        display: table-cell;
    }

    .hide-mobile {
        display: none;
    }

    .ui-dialog {
        top: 70px !important;
        left: 2% !important;
        width: 96% !important;
    }

    .nav-tabs > li a {
        min-width: 30px !important;
    }

    label {
        margin-top: 7px;
    }

    .fc-toolbar .fc-right {
        float: left;
        margin-top: 10px;
        clear: both;
    }

    .status-agendamento-calendario {
        display: none;
    }

    .ui-dialog-title span {
        display: none;
    }
}


input[type="number"] {
    padding: .2rem;
    padding-left: 12px;
}

.evento-datepicker::after {
    content: '*';
    color: #A74444 !important;
    position: absolute;
    margin-top: -4px;
    font-size: 22px;
    font-weight: bold;
}

.widget-calendar span.event-name {
    white-space: normal;
    width: 74%;
}

.widget-calendar span.hour {
    width: 26%;
}

.widget-calendar .am-checkbox-xs label {
    width: 100%;
}

.widget-calendar .cal-container .cal-notes ul li span {
    vertical-align: top;
    padding-top: 2px;
}

.navbar-right.am-icons-nav li a:hover .text-content, .navbar-right.am-icons-nav li a:hover .date {
    color: #fff !important;
}


#ContainerRemarcacaoAgendamento .datetimepicker {
    top: 100% !important;
}

.tabela-historico-caixa-ABERTURA {
    display: none !important;
}

.tabela-caixa {
    border-top: none !important;
}

    .tabela-caixa > tbody > tr > td:first-child {
        padding-left: 10px !important;
    }

    .tabela-caixa > thead > tr > th {
        border: none !important;
    }

.tabela-etiquetas td {
    padding: 35px 0 !important;
}


.tabela-etiquetas h3 {
    margin-top: -3px;
}

.tabela-etiquetas td {
    width: 50% !important;
}

.cabecalho-mes {
    padding: 0 10px !important;
}

    .cabecalho-mes .btn-mes-anterior i, .cabecalho-mes .btn-mes-posterior i {
        font-size: 35px;
        vertical-align: middle;
        line-height: 0;
    }



.text-RECEITA {
    color: #61A398;
}

.text-DESPESA {
    color: #A74444;
}

.popup-busca {
    margin-top: 10px;
    right: 5px;
    padding: 15px;
}

    .popup-busca:before {
        position: absolute;
        top: -8px;
        right: 10px;
        display: inline-block;
        border-right: 7px solid transparent;
        border-bottom: 7px solid #fff;
        border-left: 7px solid transparent;
        border-bottom-color: rgba(0, 0, 0, 0.2);
        content: '';
    }

    .popup-busca:after {
        position: absolute;
        top: -7px;
        right: 10px;
        display: inline-block;
        border-right: 7px solid transparent;
        border-bottom: 7px solid #fff;
        border-left: 7px solid transparent;
        content: '';
    }


.multicoluna .fc-bg table tr td:nth-child(odd), .multicoluna .fc-row.fc-widget-header .fce-col-header.col-1 {
    background: #fff;
}


.fce-col-header.col-1, .fce-col-header.col-0 {
    border-top: 1px solid #f0f0f0;
}

.fce-col-header.col-1 {
    border-left: 1px solid #f0f0f0;
}

::-webkit-input-placeholder {
    color: #ccc !important;
    font-weight: 300;
}

::-moz-placeholder {
    color: #ccc !important;
    font-weight: 300;
}

:-ms-input-placeholder {
    color: #ccc !important;
    font-weight: 300;
}

input:-moz-placeholder {
    color: #ccc !important;
    font-weight: 300;
}

.quadrado-categoria {
    background-color: #fff;
    width: 10px;
    height: 10px;
    margin-right: 3px;
    display: inline-block;
}

.operacao-TRANSFERENCIA {
    display: inline-block !important;
}

.operacao-CHEQUE {
    display: inline-block !important;
}

.linha-filho td {
    padding-top: 5px !important;
    padding-bottom: 5px !important;
}

.saldo-negativo {
    background-color: rgba(167, 68, 68,.7) !important;
    text-shadow: 0 1px rgba(0,0,0,.2);
    color: #fff;
}

.saldo-positivo {
    background-color: rgba(97, 163, 152,.7) !important;
    text-shadow: 0 1px rgba(0,0,0,.2);
    color: #fff;
}

.conta-EM.ABERTO {
    color: #A74444;
}

.conta-PAGA, .envio-ENVIADO, .envio-ENTREGU, .envio-OK {
    color: #61A398 !important;
}

.envio-AGENDADA, .envio-AGUARDANDO.ENVIO {
    color: #D89B46 !important;
}

.envio-CANCELADA {
    color: #ddd !important;
}

.widget-head .tools a.btn-filter {
    font-size: 20px;
}

.linha-checkbox-envio-sms-Agendada {
    display: block !important;
}

.dropdown-menu > li > a.active:before {
    font-family: 'Stroke 7';
    content: "\e6ca";
    font-size: 18px;
    margin-left: -17px;
    padding-top: 8px;
    vertical-align: sub;
}

.icone-extrato.operacao-DESPESA {
    color: #ff7d78;
    font-size: 20px;
    line-height: 1em;
}

.icone-extrato.operacao-RECEITA {
    color: #00c39d;
    font-size: 20px;
    line-height: 1em;
}

.icone-extrato.operacao-TRANSFERENCIA {
    color: #ccc;
    font-size: 20px;
    line-height: 1em;
}


.icone-obs-list {
    font-size: 14px;
    position: absolute;
    margin-left: 5px;
    display: none;
    margin-top: 1px;
}

.fc-fake-event {
    background: repeating-linear-gradient(45deg, #f9f9f9, #f9f9f9 8px, #f0f0f0 8px, #f0f0f0 16px); /*rgba(167,68,68,.2);*/
    box-shadow: none;
    border: none;
    border-radius: 0;
    margin: -2px;
    right: 0% !important;
}

    .fc-fake-event:hover {
        box-shadow: none;
        cursor: not-allowed;
    }

.rotate-90 {
    -moz-transform: rotate(-90.0deg);
    -o-transform: rotate(-90.0deg);
    -webkit-transform: rotate(-90.0deg);
    transform: rotate(-90.0deg);
    white-space: nowrap;
    width: 17px;
    font-weight: 600;
    margin-top: 35px;
}


.feriado:hover {
    cursor: not-allowed;
    background-color: rgba(236, 75, 75, 0.498039);
    opacity: 1;
}

.text-xs, .text-xs i {
    font-size: 13px !important;
}

[data-status|="AGUARDANDO ENVIO"] .atualizar,
[data-status|="FINALIZADA"] .atualizar,
[data-status|="AGUARDANDO PROCESSAMENTO PREFEITURA"] .imprimir,
[data-status|="AGUARDANDO ENVIO"] .imprimir,
[data-status|="CANCELADA"] .atualizar,
[data-status|="CANCELADA"] .imprimir,
[data-status|="ENVIADO"],
[data-status|="ENTREGUE"],
[data-status|="N�O RECEBIDA"],
[data-status|="SEM COBERTURA"],
[data-status|="LISTA NEGRA"],
[data-status|="N�MERO INV�LIDO"],
[data-status|="CONTE�DO N�O PERMITIDO"],
[data-status|="MENSAGEM EXPIRADA"],
[data-status|="ERRO"],
[data-status|="AGUARDANDO OPERADORA"],
[data-status|="ENVIADO PARA OPERADORA"],
[data-status|="LOGIN INV�LIDO"] {
    display: none !important;
}

.iframe-nfse {
    width: 100%;
    min-height: 460px;
    border: none;
    margin-top: -100px;
}

.container-iframe {
    overflow: hidden;
    border-top: 1px solid #a6c9e2;
    border-radius: 5px;
}

.no-text-transform {
    text-transform: none !important;
}

@media (min-width:768px) {
    .fix-header-agenda {
        position: fixed;
        top: 137px;
        z-index: 999;
        left: 134px;
        right: 33px;
    }

        .fix-header-agenda th {
            background-color: #fff !important;
        }

            .fix-header-agenda th:first-child {
                background-color: transparent !important;
            }
}

.texto-observacao:before {
    content: "- "
}

.recorrente-false {
    display: none;
}

.recorrente-true {
    display: initial;
    border: thin solid #8dcadf;
    border-radius: 50%;
    width: 20px;
    height: 10px;
    padding: 0 3px;
    font-size: 9px;
    vertical-align: middle;
    color: #8dcadf;
}


.text-normal {
    text-transform: none
}


.container-label-error label {
    color: #f17979;
    font-weight: 600;
}

.container-label-error .am-radio input[type=radio] + label:before {
    border: 2px solid #f17979;
}

/* Linhas de detalhe do resultado (CPF, telefone): cada uma é ícone + texto. Os glifos do
   Streamline têm larguras diferentes (s7-id é mais largo que s7-phone), então sem largura fixa
   o texto de cada linha começa num x diferente e as linhas saem desalinhadas entre si. */
.template-select2 h5 {
    display: flex;
    align-items: center;
    margin: 2px 0;
}

.template-select2 h5 i {
    vertical-align: bottom;
    flex: 0 0 18px;
    width: 18px;
    text-align: center;
    margin-right: 6px;
}

.alert-info {
    color: #fff;
    background-color: #8dcadf;
    border-color: #8dcadf;
    padding: 1em;
}

/* Aba Financeiro — Detalhar atendimento: aviso de baixa (fundo amarelo visível no tema). */
.alert.alert-atendimento-financeiro-baixa {
    color: #856404;
    background-color: #fff3cd;
    border: 1px solid #ffc107;
    padding: 12px 15px;
    border-radius: 4px;
    margin-bottom: 12px;
}

    .alert.alert-atendimento-financeiro-baixa .icon {
        color: #856404;
    }

.alert h3 {
    margin-top: .4em;
    margin-bottom: 0;
}

.display-block {
    display: block
}

.btn-alterar-valor-exame {
    position: absolute;
    margin-top: -3px;
    margin-left: 5px;
}

/* Centraliza a �rea de visualiza��o do FastReport */
.f-webreport-holder {
    width: auto !important;
    max-width: fit-content !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
}

/* Garante que o preview interno n�o expanda 100% */
.f-webreport {
    display: inline-block !important;
    text-align: left !important; /* mant�m o texto alinhado corretamente */
}

/* ============================================
   KANBAN STYLES
   ============================================ */

.kanban-container {
    width: 100%;
    overflow-x: auto;
    padding: 10px 0;
}

.kanban-board {
    display: flex;
    gap: 15px;
    min-height: 500px;
    padding-bottom: 20px;
}

.kanban-column {
    flex: 0 0 250px;
    min-width: 250px;
    max-width: 250px;
    background-color: #f5f5f5;
    border-radius: 6px;
    display: flex;
    flex-direction: column;
}

.kanban-column-header {
    padding: 12px 15px;
    border-radius: 6px 6px 0 0;
    color: #fff;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
}

.kanban-column-header .icon {
    font-size: 18px;
}

.kanban-column-title {
    flex: 1;
}

.kanban-column-count {
    background-color: rgba(255, 255, 255, 0.3);
    color: #fff;
    font-size: 12px;
    padding: 3px 8px;
    border-radius: 12px;
    font-weight: 600;
}

.kanban-column-body {
    flex: 1;
    padding: 10px;
    overflow-y: auto;
    max-height: calc(100vh - 350px);
    min-height: 400px;
}

.kanban-card {
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    margin-bottom: 10px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.2s ease;
}

.kanban-card:hover {
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15);
}

.kanban-card-header {
    padding: 10px 12px;
    border-bottom: 1px solid #f0f0f0;
    background-color: #fafafa;
    border-radius: 6px 6px 0 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.kanban-card-header strong {
    font-size: 14px;
    color: #333;
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 180px;
}

.kanban-card-header small {
    color: #888;
    font-size: 11px;
}

.kanban-card-body {
    padding: 10px 12px;
}

.kanban-card-body p {
    margin: 0 0 6px 0;
    font-size: 12px;
    color: #555;
}

.kanban-card-body p .icon {
    width: 16px;
    display: inline-block;
    color: #888;
}

.kanban-card-docs,
.kanban-card-exames,
.kanban-card-obs {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #eee;
}

.kanban-card-docs small,
.kanban-card-exames small,
.kanban-card-obs small {
    font-size: 11px;
    color: #666;
    display: block;
    word-wrap: break-word;
}

.kanban-card-footer {
    padding: 8px 12px;
    border-top: 1px solid #f0f0f0;
    background-color: #fafafa;
    border-radius: 0 0 6px 6px;
    display: flex;
    gap: 5px;
    justify-content: flex-end;
}

.kanban-card-footer .btn {
    font-size: 11px;
    padding: 4px 8px;
}

/* Kanban card - versão compacta */
.kanban-card-compact {
    padding: 8px 10px;
    margin-bottom: 6px;
}

.kanban-card-compact .kanban-card-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    background: none;
    border: none;
    padding: 0;
    margin: 0 0 4px 0;
}

.kanban-card-compact .kanban-card-topo strong {
    font-size: 13px;
    color: #333;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 170px;
    line-height: 1.2;
}

.kanban-card-compact .kanban-card-topo small {
    color: #888;
    font-size: 10px;
    flex-shrink: 0;
}

.kanban-card-compact .kanban-card-rodape-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    font-size: 11px;
    color: #888;
}

.kanban-card-compact .kanban-card-data {
    color: #888;
    font-size: 11px;
}

.kanban-card-compact .kanban-card-unidade {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: #f2f7dd;
    color: #6b8519;
    border: 1px solid #c4d88a;
    padding: 1px 6px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 600;
}

.kanban-card-compact .kanban-card-unidade .icon {
    font-size: 10px;
}

.kanban-card-compact .kanban-card-footer {
    margin-top: 6px;
    padding: 6px 0 0 0;
    background: none;
    border-top: 1px solid #f0f0f0;
    border-radius: 0;
    gap: 4px;
    justify-content: flex-end;
}

.kanban-card-compact .kanban-card-footer .btn {
    padding: 2px 8px;
    font-size: 10px;
    line-height: 1.2;
}

.kanban-card-footer .btn-avancar {
    background-color: #5cb85c;
    border-color: #5cb85c;
}

.kanban-card-footer .btn-avancar:hover {
    background-color: #449d44;
    border-color: #449d44;
}

.kanban-card-footer .btn-cancelar {
    background-color: #d9534f;
    border-color: #d9534f;
}

.kanban-card-footer .btn-cancelar:hover {
    background-color: #c9302c;
    border-color: #c9302c;
}

.btn-mostrar-mais {
    margin-top: 10px;
    font-size: 12px;
    color: #666;
}

.btn-mostrar-mais:hover {
    background-color: #e0e0e0;
}

/*
   Eleva o Z-Index do Modal Bootstrap para ficar acima de componentes do tema como Header Fixo e Menus (.md-modal usa 1702)
*/
.modal {
    z-index: 10050 !important;
}

.modal-backdrop {
    z-index: 10040 !important;
}

.select2-container--open {
    z-index: 10060 !important;
}

/* O modal Bootstrap usa z-index 10050; o #toast-container default do tema (1998) ficava atrás
   dele e o toastr não era visível durante feedbacks de submit em modal. Sobe acima de tudo. */
#toast-container {
    z-index: 10080 !important;
}

/* Animação genérica de spinner para indicadores de loading (botões de submit em modais). */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .kanban-board {
        flex-direction: column;
    }

    .kanban-column {
        flex: 0 0 auto;
        min-width: 100%;
        max-width: 100%;
    }

    .kanban-column-body {
        max-height: 300px;
    }
}

/* ============================================
   Kanban - Modal de Detalhes
   ============================================ */

.kanban-detalhe-container {
    padding: 10px;
}

.kanban-detalhe-secao {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 15px;
}

.kanban-detalhe-secao h5 {
    margin: 0 0 12px 0;
    padding-bottom: 8px;
    border-bottom: 1px solid #e0e0e0;
    color: #333;
    font-weight: 600;
    font-size: 14px;
}

.kanban-detalhe-secao h5 .icon {
    margin-right: 8px;
    color: #337ab7;
}

.kanban-detalhe-info p {
    margin: 0 0 8px 0;
    font-size: 13px;
    color: #555;
}

.kanban-detalhe-info p:last-child {
    margin-bottom: 0;
}

.kanban-detalhe-info p strong {
    color: #333;
}

/* Kanban - Detalhe visual (novo layout) */
.kanban-detalhe-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 12px;
    padding: 14px 16px;
    margin-bottom: 12px;
    background: linear-gradient(135deg, #f6faf0 0%, #eaf2d3 100%);
    border: 1px solid #c4d88a;
    border-radius: 8px;
}

.kanban-detalhe-paciente-nome {
    font-size: 18px;
    font-weight: 700;
    color: #2c3e50;
    margin-bottom: 4px;
}

.kanban-detalhe-paciente-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 12px;
    color: #5a6c7d;
}

.kanban-detalhe-paciente-meta .icon {
    margin-right: 4px;
    color: #6b8519;
}

.kanban-detalhe-cabecalho-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 6px;
}

.kanban-detalhe-cabecalho-meta .badge {
    font-size: 12px;
    padding: 5px 10px;
}

.kanban-detalhe-meta-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
    gap: 8px;
    margin-bottom: 14px;
    padding: 10px 12px;
    background: #fafbfc;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
}

.kanban-detalhe-meta-grid > div {
    display: flex;
    flex-direction: column;
}

.kanban-detalhe-meta-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
}

.kanban-detalhe-meta-valor {
    font-size: 13px;
    font-weight: 600;
    color: #333;
}

.kanban-detalhe-secao-purple { border-left: 4px solid #8e44ad; }
.kanban-detalhe-secao-blue { border-left: 4px solid #2980b9; }
.kanban-detalhe-secao-cyan { border-left: 4px solid #16a085; }
.kanban-detalhe-secao-pink { border-left: 4px solid #e91e63; }
.kanban-detalhe-secao-green { border-left: 4px solid #6b8519; }
.kanban-detalhe-secao-emerald { border-left: 4px solid #27ae60; }
.kanban-detalhe-secao-gray { border-left: 4px solid #95a5a6; }

.kanban-detalhe-mini-titulo {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    margin: 10px 0 6px 0;
    font-weight: 600;
}

.kanban-detalhe-mini-titulo:first-child {
    margin-top: 0;
}

/* Checklist de exames solicitados (lista numerada destacada) */
.kanban-detalhe-checklist {
    margin: 0;
    padding-left: 0;
    counter-reset: kanban-checklist;
    list-style: none;
}

.kanban-detalhe-checklist li {
    counter-increment: kanban-checklist;
    position: relative;
    padding: 8px 10px 8px 38px;
    margin-bottom: 6px;
    background: #f7faf0;
    border: 1px solid #d7e4a8;
    border-radius: 6px;
    font-size: 13px;
    line-height: 1.4;
    color: #2a2a2a;
}

.kanban-detalhe-checklist li::before {
    content: counter(kanban-checklist);
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    background: #6b8519;
    color: #fff;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.kanban-detalhe-texto {
    font-size: 13px;
    color: #555;
    margin: 0 0 8px 0;
}

.kanban-detalhe-finalidade {
    background-color: #f6effa;
    border: 1px solid #e0d3eb;
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 13px;
    color: #5d3470;
    margin-top: 8px;
}

.kanban-detalhe-finalidade strong {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
    color: #6c3483;
}

.kanban-detalhe-obs-livre {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 10px 12px;
}

/* Badges em listas */
.kanban-detalhe-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 4px;
}

.kanban-detalhe-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid;
    font-size: 12px;
    font-weight: 500;
    background: #f5f5f5;
    color: #333;
    border-color: #ddd;
    line-height: 1.4;
}

.kanban-detalhe-badge .icon {
    margin-right: 4px;
    font-size: 12px;
}

.kanban-detalhe-badge.badge-purple { background:#f3e7f9; color:#6c3483; border-color:#d6b3ea; }
.kanban-detalhe-badge.badge-blue { background:#e7f1fb; color:#1c5687; border-color:#b0d0ec; }
.kanban-detalhe-badge.badge-cyan { background:#e6f7f4; color:#0f6655; border-color:#a3dfd2; }
.kanban-detalhe-badge.badge-pink { background:#fce8ee; color:#a51e4e; border-color:#f1b6c8; }
.kanban-detalhe-badge.badge-amber { background:#fdf3da; color:#8a6500; border-color:#f0dca0; }
.kanban-detalhe-badge.badge-emerald { background:#e3f5e8; color:#1b6e3a; border-color:#aedbb9; }
.kanban-detalhe-badge.badge-gray { background:#eef0f3; color:#4a5763; border-color:#cdd3da; }
.kanban-detalhe-badge.kanban-detalhe-badge-unidade { background:#a7c83c; color:#fff; border-color:#8fac2f; }

/* Quadrantes odontograma */
.kanban-detalhe-grid-quadrantes {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px;
    margin-top: 4px;
}

.kanban-detalhe-quadrante {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 8px 10px;
}

.kanban-detalhe-quadrante-titulo {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #888;
    margin-bottom: 6px;
}

.kanban-detalhe-dentes {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.kanban-detalhe-dente {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 700;
    border-radius: 5px;
    border: 1px solid #e0e0e0;
    background: #f7f7f7;
    color: #b0b0b0;
}

.kanban-detalhe-dente.ativo {
    background: #a7c83c;
    color: #fff;
    border-color: #8fac2f;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.kanban-detalhe-subtitulo {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    margin: 14px 0 6px 0;
    font-weight: 600;
}

/* Kanban - Notas */
.kanban-notas-container {
    margin-bottom: 15px;
}

.kanban-notas-lista {
    max-height: 250px;
    overflow-y: auto;
    margin-bottom: 15px;
}

.kanban-nota-item {
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-left: 3px solid #337ab7;
    border-radius: 4px;
    padding: 10px;
    margin-bottom: 10px;
}

.kanban-nota-item:last-child {
    margin-bottom: 0;
}

.kanban-nota-header {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

.kanban-nota-usuario {
    font-weight: 600;
    font-size: 12px;
    color: #333;
}

.kanban-nota-usuario .icon {
    color: #337ab7;
    margin-right: 4px;
}

.kanban-nota-data {
    font-size: 11px;
    color: #888;
}

.kanban-nota-data .icon {
    margin-right: 4px;
}

.kanban-nota-header .btn-remover-nota {
    margin-left: auto;
    padding: 2px 6px;
    font-size: 10px;
}

.kanban-nota-texto {
    font-size: 13px;
    color: #555;
    line-height: 1.5;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.kanban-adicionar-nota {
    margin-top: 15px;
    padding-top: 15px;
    border-top: 1px dashed #e0e0e0;
}

.kanban-adicionar-nota .form-group {
    margin-bottom: 10px;
}

.kanban-adicionar-nota textarea {
    resize: vertical;
    min-height: 60px;
}

.kanban-adicionar-nota small {
    display: block;
    margin-top: 5px;
}

/* Cursor pointer para cards clicáveis */
.kanban-card {
    cursor: pointer;
}

/* ============================================
   Kanban - Drag and Drop
   ============================================ */

/* Card arrastável */
.kanban-card-draggable {
    cursor: grab;
}

.kanban-card-draggable:active {
    cursor: grabbing;
}

/* Card sendo arrastado */
.kanban-card-dragging {
    opacity: 0.5;
    transform: rotate(3deg);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

/* Coluna que pode receber o drop */
.kanban-column-drop-allowed .kanban-column-body {
    border: 2px dashed #5cb85c;
    border-radius: 4px;
    background-color: rgba(92, 184, 92, 0.05);
}

/* Coluna com drag over (mouse sobre ela) */
.kanban-column-drag-over .kanban-column-body {
    border: 2px solid #5cb85c;
    background-color: rgba(92, 184, 92, 0.15);
}

/* Indicador visual de área de drop */
.kanban-column-drag-over .kanban-column-header {
    box-shadow: 0 0 10px rgba(92, 184, 92, 0.5);
}

/* Tooltip visual para indicar arrasto */
.kanban-card-draggable::before {
    content: '';
    position: absolute;
    top: 50%;
    left: -8px;
    width: 4px;
    height: 30px;
    background: repeating-linear-gradient(
        0deg,
        #ccc,
        #ccc 2px,
        transparent 2px,
        transparent 4px
    );
    border-radius: 2px;
    transform: translateY(-50%);
    opacity: 0;
    transition: opacity 0.2s ease;
}

.kanban-card-draggable:hover::before {
    opacity: 1;
}

/* Posicionar o card como relative para o ::before funcionar */
.kanban-card {
    position: relative;
}

/* CRM Dentista Timeline */
.crm-timeline { position: relative; padding: 10px 0; }
.crm-timeline-date { text-align: center; margin: 15px 0 10px; }
.crm-timeline-date span { background: #f5f5f5; padding: 3px 12px; border-radius: 10px; font-size: 11px; color: #999; font-weight: 600; text-transform: uppercase; }
.crm-timeline-item { display: flex; gap: 12px; margin-bottom: 12px; position: relative; }
.crm-timeline-item:not(:last-child):before { content: ''; position: absolute; left: 16px; top: 35px; bottom: -12px; width: 2px; background: #e8e8e8; }
.crm-timeline-icon { width: 35px; height: 35px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.crm-timeline-icon i { font-size: 16px; color: #fff; }
.crm-timeline-content { flex: 1; min-width: 0; background: #f9f9f9; border-radius: 6px; padding: 10px 14px; border: 1px solid #eee; }
.crm-timeline-header { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.crm-timeline-label { font-size: 12px; font-weight: 600; color: #555; text-transform: uppercase; }
.crm-timeline-time { font-size: 11px; color: #aaa; margin-left: auto; }
.crm-timeline-delete { opacity: 0; transition: opacity 0.2s; padding: 0; }
.crm-timeline-item:hover .crm-timeline-delete { opacity: 1; }
.crm-timeline-body p { margin: 4px 0 2px; font-size: 13px; color: #333; white-space: pre-wrap; }
.crm-timeline-body small { font-size: 11px; }

/* Anotação type buttons */
.crm-nota-tipos { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 10px; }
.crm-nota-tipos .btn { padding: 4px 10px; font-size: 11px; border-radius: 20px; }
.crm-nota-tipos .btn.active { box-shadow: 0 0 0 2px rgba(51,122,183,0.5); }

/* ==========================================================================
   Financeiro V2 — Conciliação
   ========================================================================== */

/* Espaçamentos internos dos 3 modais "Importar/Nova conciliação"
   (Cartão / Bancária / Convênio). Escopado via classe na raiz do form
   para evitar vazar para outros modais .dialog-container. */
.fv2-conc-importar { padding: 18px 22px; }
.fv2-conc-importar .form-group { margin-bottom: 14px; }
.fv2-conc-importar .form-group:last-child { margin-bottom: 0; }
.fv2-conc-importar .alert { margin-bottom: 14px; padding: 10px 14px; }
.fv2-conc-importar .row + .row { margin-top: 12px; }

/* Aviso "Operadoras sem caixa banco" — listagem rica e ações alinhadas. */
.fv2-conc-aviso-config { margin-bottom: 18px; padding: 14px 18px; }
.fv2-conc-aviso-cabecalho { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.fv2-conc-aviso-cabecalho i { font-size: 18px; color: #000; }
.fv2-conc-aviso-cabecalho strong { font-size: 14px; }
.fv2-conc-aviso-config p { margin: 6px 0 8px; }
.fv2-conc-aviso-lista { margin: 0 0 10px 0; padding-left: 22px; column-count: 2; column-gap: 24px; }
.fv2-conc-aviso-lista li { break-inside: avoid; padding: 1px 0; }
.fv2-conc-aviso-acoes { margin-top: 10px; }
@media (max-width: 768px) { .fv2-conc-aviso-lista { column-count: 1; } }

/* Lista interna de modais (substitui ul style="margin-bottom: 0;"). */
.fv2-conc-lista { margin: 6px 0 0 0; padding-left: 20px; }
.fv2-conc-lista li { padding: 2px 0; }

/* Rodapé de ações dos modais (Cancelar + Confirmar). */
.fv2-conc-acoes { margin-top: 16px; padding-top: 12px; border-top: 1px solid #eee; }
.fv2-conc-acoes .btn + .btn { margin-left: 6px; }

/* Dicas de formato no modal de importação. */
.fv2-conc-dica { margin-bottom: 0; }

/* Input de arquivo + ajuda. */
.fv2-conc-arquivo { padding: 6px; }
.fv2-conc-help { display: block; margin-top: 4px; }

/* Barra de progresso de upload. */
.fv2-conc-progresso .progress { margin-bottom: 6px; }

/* Tabelas roláveis dentro de modais (Buscar Parcela, Vincular Repasse). */
.fv2-conc-tabela-rolavel { max-height: 360px; overflow-y: auto; border: 1px solid #e5e5e5; border-radius: 3px; }
.fv2-conc-tabela-rolavel .table { margin-bottom: 0; }
.fv2-conc-tabela-vinculo { max-height: 380px; }
.fv2-conc-thead-fixo { position: sticky; top: 0; background: #f5f5f5; z-index: 1; }
.fv2-conc-col-check { width: 40px; }
.fv2-conc-vazio { padding: 20px; }

/* Tabela comparativa (Ver Diferença). */
.fv2-conc-tabela-comparativo { margin-bottom: 16px; }

/* Toolbar do Vincular Repasse. */
.fv2-conc-vinc-toolbar { margin-bottom: 10px; }
.fv2-conc-vinc-totais .label { margin-left: 8px; }

/* Resumo do lote (Finalizar Lote). */
.fv2-conc-resumo-lote { margin-bottom: 14px; }
.fv2-conc-resumo-lote .panel-body { padding: 12px 16px; }

/* Detalhe — cabeçalho e meta-dados. */
.fv2-conc-detalhe-cabecalho .panel-body { padding: 16px 20px; }
.fv2-conc-meta { margin-bottom: 4px; }
.fv2-conc-meta-valor { margin-top: 2px; }
.fv2-conc-meta-quebra { word-break: break-all; }
.fv2-conc-divisor { margin: 16px 0; }
.fv2-conc-detalhe-acoes { padding-top: 4px; }
.fv2-conc-status-lote { font-size: 12px; padding: 4px 8px; }

/* KPIs do Detalhe. */
.fv2-conc-kpis { margin-top: 16px; }
.fv2-conc-kpis > [class^="col-"], .fv2-conc-kpis > [class*=" col-"] { margin-bottom: 12px; }
.fv2-conc-kpi-card { margin-bottom: 0; }
.fv2-conc-kpi-card .panel-body { padding: 12px; }
.fv2-conc-kpi-valor { margin: 4px 0 0; }

/* Bloco de Totais. */
.fv2-conc-totais .panel-body { padding: 14px 20px; }

/* Tabs + tabela de itens. */
.fv2-conc-tabs-panel { margin-top: 16px; }
.fv2-conc-tabs-panel .panel-heading { padding: 8px 12px; }
.fv2-conc-aviso-sobras { margin: 12px; }
.fv2-conc-col-acoes { white-space: nowrap; }
.fv2-conc-label-origem { font-size: 10px; }

/* Listagem de Operadoras de Cartão (tela reusada como destino do aviso). */
.fv2-conc-checkbox-inativos { position: absolute; top: 35px; color: #777; }

/* ========================================================================
   Toolbar de ações dos Detalhes de Conciliação (Bancária / Cartão / Convênio)
   Resolve botões grudados ao quebrar linha. Substitui `.btn-space` semântico
   por `gap: 8px` real do flexbox, mantendo alinhamento à direita.
   ======================================================================== */
.fv2-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
    align-items: center;
}
.fv2-toolbar-actions > .btn,
.fv2-toolbar-actions > .btn-group { margin: 0; }

/* Espaçamento semântico entre botões (usado nas toolbars do Cartão/Bancária/Convênio).
   Sem esta regra o `.btn-space` é classe morta fora do bundle de produção. */
.btn-space { margin-left: 8px; }
.btn-space:first-child { margin-left: 0; }

/* ========================================================================
   Filtros Select2 do Workbench (Conciliar múltiplos)
   ------------------------------------------------------------------------
   `component.css:651-654` aplica `line-height: 36px` + `text-transform: uppercase`
   globalmente nos selects Select2. Combinado com border 2px + 2px e height 39px,
   a área útil é 35px < line-height 36px → descenders das letras ('p', 'g', 'j',
   minúsculas em geral) são cortados pela borda inferior. Aqui usamos uma classe
   identificadora aplicada apenas nos 2 filtros do Workbench para sobrescrever
   sem afetar outros Select2 do sistema.
   ======================================================================== */
.fv2-workbench-filtro + .select2-container .select2-selection__rendered {
    line-height: 35px;
    text-transform: none;
    /* Garante reticência elegante quando o texto exceder a largura do container
       (caso típico: opções tipo "04/05/2026 · R$ 1.234,56" na coluna Linha da
       tabela de docs). Sem isso, Select2 corta o texto seco no meio. */
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}

/* Alinhamento das tabelas do Workbench — vertical-align middle nas células
   (linhas com checkbox + select inline + input precisam ficar todos no centro
   da linha). Header também herda para não destoar. */
.fv2-workbench-tabela > thead > tr > th,
.fv2-workbench-tabela > tbody > tr > td {
    vertical-align: middle;
}
.fv2-workbench-tabela > tbody > tr > td .select2-container {
    /* Select2 herda altura natural — alinha com a linha 35px do filtro. */
    vertical-align: middle;
    /* Garante largura mínima para acomodar "DD/MM/YYYY · R$ X.XXX,XX" (~22 chars) */
    min-width: 220px;
}

/* GAP 4 (rodada 6) — destaque visual para docs/linhas com conciliação parcial anterior
   (ValorPago > 0 nos docs ou ValorAplicado > 0 nas linhas). Fundo amarelo claro alerta
   o operador de que está vendo apenas o saldo restante e que o registro já recebeu
   baixa/aplicação parcial em sessão prévia. */
.fv2-workbench-tabela > tbody > tr.fv2-doc-com-parcial-anterior > td,
.fv2-workbench-tabela > tbody > tr.fv2-linha-com-parcial-anterior > td {
    background: #fff8e1;
}
.fv2-workbench-tabela > tbody > tr.fv2-doc-com-parcial-anterior:hover > td,
.fv2-workbench-tabela > tbody > tr.fv2-linha-com-parcial-anterior:hover > td {
    background: #fff3c4;
}
.fv2-icone-info-parcial,
.fv2-icone-info-parcial-linha,
.fv2-icone-info-distribuicao {
    cursor: help;
    margin-left: 4px;
    font-size: 13px;
}

/* Rodada 7 — célula "Vem da linha" quando há distribuição automática FIFO (várias
   linhas pagando 1 doc). Visual verde claro para sinalizar que sistema resolveu
   automaticamente — operador não precisa configurar nada. */
.fv2-celula-distribuida {
    background: #e8f5e9;
    color: #2e7d32;
}
.fv2-celula-distribuida strong {
    color: #1b5e20;
}
.fv2-celula-distribuida .icon.s7-shuffle {
    margin-right: 4px;
}

/* Rodada 7 — célula "Vem da linha" quando linhas marcadas não cobrem o valorAplicado
   do doc. Visual vermelho claro alerta o operador. Linha inteira do <tr> também ganha
   fundo via .fv2-doc-cobertura-insuficiente. */
.fv2-celula-falta-cobertura {
    background: #ffebee;
    color: #c62828;
}
.fv2-celula-falta-cobertura strong {
    color: #b71c1c;
}
.fv2-workbench-tabela > tbody > tr.fv2-doc-cobertura-insuficiente > td {
    background: #ffebee;
}
.fv2-workbench-tabela > tbody > tr.fv2-doc-cobertura-insuficiente:hover > td {
    background: #ffcdd2;
}
/* Quando o doc tem tanto parcial anterior quanto cobertura insuficiente, mistura — usa cobertura (mais grave). */
.fv2-workbench-tabela > tbody > tr.fv2-doc-com-parcial-anterior.fv2-doc-cobertura-insuficiente > td {
    background: #ffebee;
}

/* CSS abrangente para QUALQUER select2 dentro da tabela do Workbench — não depende
   do irmão adjacente .fv2-workbench-filtro (que pode não casar em alguns layouts).
   Corrige line-height (descenders cortados), text-transform (uppercase forçado pelo
   tema), e adiciona ellipsis para text excedente. */
.fv2-workbench-tabela .select2-selection--single .select2-selection__rendered {
    line-height: 35px !important;
    text-transform: none !important;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    padding-right: 28px;  /* reserva espaço para o caret de Select2 (.select2-selection__arrow tem width 20px) */
}

/* Fallback para casos em que Select2 não foi aplicado (ainda) — garante que o <select>
   nativo dentro da tabela do Workbench também tenha altura/line-height adequada para
   não cortar descenders. Aplica-se brevemente entre o render do HTML e a inicialização
   do Select2. */
.fv2-workbench-tabela select.js-select-linha-doc {
    height: 32px;
    line-height: 1.5;
    padding: 4px 8px;
}

/* ========================================================================
   Modal "Tratar diferença" — presets categorizados (Conciliar múltiplos)
   ------------------------------------------------------------------------
   Grid 2 colunas com 6 botões grandes (Tarifa, IOF, Juros, Desconto, Saldo
   p/ próxima, Outro). Operador escolhe o preset e os detalhes aparecem.
   ======================================================================== */
.fv2-presets-intro {
    margin-bottom: 12px;
}
.fv2-presets-ajuste {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin: 0 0 16px 0;
}
.fv2-preset-btn {
    padding: 14px 16px;
    border: 2px solid #e0e0e0;
    border-radius: 6px;
    background: #fff;
    text-align: left;
    cursor: pointer;
    transition: all 0.15s ease;
    display: flex;
    flex-direction: column;
    gap: 4px;
    font-family: inherit;
}
.fv2-preset-btn:hover {
    border-color: #4caf50;
    background: #f7fffa;
}
.fv2-preset-btn.active {
    border-color: #4caf50;
    background: #e8f5e9;
    box-shadow: 0 2px 6px rgba(76, 175, 80, 0.2);
}
.fv2-preset-btn i {
    font-size: 22px;
    color: #4caf50;
}
.fv2-preset-btn strong {
    font-size: 14px;
    color: #333;
}
.fv2-preset-btn small {
    color: #777;
    font-size: 12px;
    line-height: 1.3;
}
/* Variação visual para "Saldo p/ próxima sessão" — amarelo (warning) */
.fv2-preset-btn[data-codigo="SaldoAberto"] i { color: #ff9800; }
.fv2-preset-btn[data-codigo="SaldoAberto"]:hover { border-color: #ff9800; background: #fff8e1; }
.fv2-preset-btn[data-codigo="SaldoAberto"].active { border-color: #ff9800; background: #fff3e0; box-shadow: 0 2px 6px rgba(255, 152, 0, 0.2); }
/* Variação visual para "Outro" — cinza */
.fv2-preset-btn[data-codigo="Outro"] i { color: #757575; }
.fv2-preset-btn[data-codigo="Outro"]:hover { border-color: #757575; background: #f5f5f5; }
.fv2-preset-btn[data-codigo="Outro"].active { border-color: #757575; background: #eeeeee; box-shadow: 0 2px 6px rgba(117, 117, 117, 0.2); }

/* Estilo das células "Vem da linha" (auto-atribuição quando há 1 linha marcada) */
.fv2-celula-vem-da-linha.fv2-celula-auto {
    font-style: italic;
}
.fv2-celula-vem-da-linha.fv2-celula-auto i {
    margin-right: 4px;
}

/* ========================================================================
   Modais da Conciliação Financeira (Cartão / Bancária / Convênio)
   Aplicado via dialogClass: "fv2-conc-dialog" pelo ConciliacaoDialogHelpers.
   Resolve: header gigante, "Close" textual, tabela interna estourando,
   FUNDO TRANSPARENTE (no projeto, .ui-dialog não tem background-color
   definido — só o titlebar), botões empilhados torto.
   ======================================================================== */
.fv2-conc-dialog.ui-dialog {
    max-width: 95vw;
    background-color: #fff;
    border: 1px solid #d9d9d9;
    border-radius: 4px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}
.fv2-conc-dialog .ui-dialog-titlebar {
    font-size: 14px;
    padding: 10px 14px;
    line-height: 1.3;
    position: relative;
    padding-right: 34px;   /* reserva espaço para o botão fechar (X) dentro do header */
}
.fv2-conc-dialog .ui-dialog-title {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    margin: 0;
    padding-right: 24px;   /* título não passa por baixo do X */
}
.fv2-conc-dialog .ui-dialog-titlebar-close {
    width: 22px;
    height: 22px;
    right: 10px;
    top: 50% !important;   /* override do tema base (top:-7px !important) — centraliza no header */
    margin: -11px 0 0 0;
    padding: 0;
    text-indent: -9999px;     /* esconde texto "Close" se sprite não cobrir */
    overflow: hidden;
}
.fv2-conc-dialog .ui-dialog-titlebar-close:before {
    content: "\00d7";          /* × */
    display: block;
    text-indent: 0;
    font-size: 22px;
    line-height: 22px;
    text-align: center;
    color: #fff;
    font-weight: 400;
}
.fv2-conc-dialog .ui-dialog-titlebar-close .ui-icon {
    display: none;             /* substituído pelo ::before acima */
}
.fv2-conc-dialog .ui-dialog-content {
    padding: 16px 18px;
    max-height: calc(100vh - 200px);
    overflow-y: auto;
    /* Fundo sólido: o tema do projeto não define background no .ui-dialog/.ui-dialog-content,
       então sem isso o conteúdo fica transparente e a tela atrás vaza por entre os elementos
       do form (vide screenshot do bug "modal Finalizar lote"). */
    background-color: #fff;
}
.fv2-conc-dialog .fv2-conc-tabela-rolavel {
    max-height: calc(100vh - 380px);
    overflow-y: auto;
}
.fv2-conc-dialog .fv2-conc-acoes {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #e0e0e0;
    text-align: right;
}
.fv2-conc-dialog .fv2-conc-acoes .btn { margin-left: 8px; }

/* jQuery UI Dialog renderiza buttons em `.ui-dialog-buttonpane` com .ui-button default
   (cinza pequeno). Quando passamos `class: "btn btn-success"` ele MANTÉM as classes UI.
   Resultado: botão fica com bordas/padding/fundo conflitantes. O fix abaixo neutraliza o
   tema jQuery UI dentro de .fv2-conc-dialog deixando apenas Bootstrap .btn vencer. */
.fv2-conc-dialog .ui-dialog-buttonpane {
    background: #fafafa;
    border-top: 1px solid #e0e0e0;
    margin: 0;
    padding: 12px 18px;
    text-align: right;
}
.fv2-conc-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
    float: none;
    display: inline-flex;
    gap: 8px;
}
.fv2-conc-dialog .ui-dialog-buttonpane button.ui-button.btn {
    /* Neutraliza overrides do tema jQuery UI nos botões — deixa só Bootstrap .btn vigorar. */
    background-image: none;
    border: 1px solid transparent;
    border-radius: 4px;
    font-family: inherit;
    font-weight: 600;
    margin: 0;
    padding: 6px 14px;
    text-shadow: none;
}
.fv2-conc-dialog .ui-dialog-buttonpane button.ui-button.btn .ui-button-text {
    padding: 0;
    line-height: 1.5;
}
.fv2-conc-dialog .alert { margin-bottom: 14px; }
.fv2-conc-dialog .form-group { margin-bottom: 14px; }
.fv2-conc-dialog table.table { margin-bottom: 0; }
.fv2-conc-dialog table.table th { font-size: 12px; }

/* Garante backdrop opaco cobrindo toda a viewport. O .ui-widget-overlay base do projeto
   (custom.css linha 776) já tem background:#000/opacity:.50; aqui só forçamos o z-index
   abaixo do dialog para evitar elementos da tela com z-index alto vazarem por cima. */
.ui-widget-overlay.ui-front { z-index: 1699 !important; }
.fv2-conc-dialog.ui-dialog { z-index: 1700 !important; }

/* Caso especial — dialog jQuery UI aberto SOBRE um modal Bootstrap (.modal z-index 10050,
   ex.: modal "Série de Recorrência" em Documentos Financeiros). Aplicado via
   dialogClass="fv2-dialog-acima-modal" pelo JS (NÃO via CSS global) para não afetar outros
   dialogs que usam .dialog-container e seguem no z-index padrão do tema jQuery UI. */
.fv2-dialog-acima-modal.ui-dialog { z-index: 10070 !important; }
.fv2-dialog-acima-modal.ui-dialog ~ .ui-widget-overlay { z-index: 10060 !important; }
/* Z-index do Select2 dropdown SOMENTE quando dentro do modal de Conciliação Bancária.
   Aplicado via dropdownCssClass + containerCssClass nas inicializações de Select2 da view
   FinanceiroV2ConciliacaoBancariaDetalheView. Escopo restrito para não afetar outras telas
   (Pacientes, Atendimentos, CRM continuam usando z-index default 1052). */
.select2-container.fv2-conc-bancaria-select-container,
.select2-dropdown.fv2-conc-bancaria-select-dropdown { z-index: 2000 !important; }

/* === Kanban Contas a Pagar V2 ============================================================
   Estende o padrão .kanban-* base com 5 colunas estilo "funil" inspirado no mock recebido
   (Pendentes → Simular → Aprovação → Confirmados → Caixas). Reaproveita classes neutras
   .kanban-board / .kanban-column / .kanban-card / .kanban-card-dragging quando possível.
   ========================================================================================= */
.kanban-fv2-container { padding: 8px 0 24px; }
.kanban-fv2-board {
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 8px;
    padding: 0 4px;
    overflow-x: auto;
    min-height: 70vh;
}
.kanban-fv2-board .kanban-column {
    flex: 1 1 0;
    min-width: 270px;
    background: #fdfdfd;
    border-radius: 4px;
    border: 1px solid #e6e6e6;
    display: flex;
    flex-direction: column;
}
.kanban-fv2-board .kanban-column-header {
    background: #f4f5f7;
    border-bottom: 1px solid #e6e6e6;
    padding: 12px 14px;
    color: #333;
}
.kanban-fv2-board .kanban-column-title {
    font-size: 16px;
    font-weight: 600;
    color: #2d2d2d;
}
.kanban-fv2-board .kanban-column-subtitle {
    font-size: 12px;
    color: #6c757d;
    margin-top: 2px;
}
.kanban-fv2-board .kanban-column-body {
    flex: 1;
    padding: 10px;
    overflow-y: auto;
    max-height: calc(100vh - 230px);
}
.kanban-fv2-board .kanban-column-footer {
    border-top: 1px solid #e6e6e6;
    padding: 8px 10px;
    background: #fafafa;
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.kanban-fv2-board .kanban-btn-acao {
    display: inline-block;
    width: 100%;
    background: #5cb85c;
    color: #fff;
    border: none;
    border-radius: 3px;
    padding: 8px 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    margin-bottom: 4px;
}
.kanban-fv2-board .kanban-btn-acao:hover { background: #4cae4c; color: #fff; }
.kanban-fv2-board .kanban-btn-acao:disabled,
.kanban-fv2-board .kanban-btn-acao[disabled] {
    background: #cfd4cf;
    cursor: not-allowed;
}
.kanban-fv2-board .kanban-btn-load-more {
    font-size: 12px;
    color: #337ab7;
    text-align: center;
    text-decoration: none;
}

/* Card padrão */
.kanban-fv2-board .kanban-card {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-left: 3px solid #b6b6b6;
    border-radius: 3px;
    padding: 10px 12px;
    margin-bottom: 8px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    cursor: grab;
    transition: box-shadow 0.15s;
}
.kanban-fv2-board .kanban-card:hover { box-shadow: 0 2px 6px rgba(0,0,0,0.12); }
.kanban-fv2-board .kanban-card-dragging { opacity: 0.5; }
.kanban-fv2-board .kanban-column-drag-over { background: #f0f8ff; }
.kanban-fv2-board .kanban-subgrupo-drag-over { background: #f0f8ff; outline: 2px dashed #5bc0de; }

.kanban-fv2-board .kanban-card-titulo {
    font-weight: 600;
    color: #222;
    font-size: 14px;
    line-height: 1.25;
}
.kanban-fv2-board .kanban-card-pessoa {
    font-size: 12px;
    color: #555;
    text-transform: uppercase;
    margin-bottom: 4px;
}
.kanban-fv2-board .kanban-card-info {
    font-size: 12px;
    color: #666;
    line-height: 1.4;
}
.kanban-fv2-board .kanban-card-rodape {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 8px;
    padding-top: 6px;
    border-top: 1px dashed #eee;
    font-size: 12px;
}
.kanban-fv2-board .kanban-card-valor {
    font-weight: 600;
    color: #2c3e50;
}
.kanban-fv2-board .kanban-card-badge-atrasado {
    color: #c0392b;
    font-weight: 500;
}
.kanban-fv2-board .kanban-card-badge-pendente {
    color: #6c757d;
}
.kanban-fv2-board .kanban-card--atrasado {
    border-left-color: #c0392b;
}
.kanban-fv2-board .kanban-card-confirmado {
    border-left-color: #27ae60;
    cursor: default;
}
.kanban-fv2-board .kanban-card-confirmado-data {
    color: #27ae60;
    font-weight: 500;
}

/* Sub-grupos da coluna Aprovação */
.kanban-fv2-board .kanban-subgrupo { margin-bottom: 12px; }
.kanban-fv2-board .kanban-subgrupo-header {
    font-size: 11px;
    text-transform: uppercase;
    color: #888;
    font-weight: 600;
    padding: 4px 6px;
    border-bottom: 1px solid #eee;
    margin-bottom: 6px;
}
.kanban-fv2-board .kanban-subgrupo-body { min-height: 40px; }
.kanban-fv2-board [data-subgrupo="aprovado"] .kanban-card { border-left-color: #27ae60; }
.kanban-fv2-board [data-subgrupo="emAprovacao"] .kanban-card { border-left-color: #f0ad4e; }

/* Coluna Caixas (readonly) */
.kanban-fv2-board .kanban-column--readonly .kanban-card { cursor: default; }
.kanban-fv2-board .kanban-card-caixa {
    background: #fffef5;
    border-left-color: #d4a017;
}
.kanban-fv2-board .kanban-card-caixa[data-tem-simulacao="true"] {
    background: #fff8e1;
    border-left-color: #f39c12;
}
.kanban-fv2-board .kanban-card-caixa-linha {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 13px;
    line-height: 1.6;
}
.kanban-fv2-board .kanban-card-caixa-label { color: #555; }
.kanban-fv2-board .kanban-card-caixa-valor { font-weight: 600; }
.kanban-fv2-board .kanban-saldo--positivo { color: #2980b9; }
.kanban-fv2-board .kanban-saldo--negativo { color: #c0392b; }
.kanban-fv2-board .kanban-saldo--alerta { color: #d35400; }
.kanban-fv2-board .kanban-saldo-previsto--piorou { color: #c0392b; }

/* Card simulado com mini-select de caixa */
.kanban-fv2-board .kanban-card-simulado {
    border-left-color: #5bc0de;
    background: #f4fafe;
}
.kanban-fv2-board .kanban-card-simulado-caixa-select {
    margin: 6px 0;
    font-size: 12px;
    height: 28px;
    padding: 2px 6px;
}

/* Estado vazio das colunas */
.kanban-fv2-board .kanban-empty-state {
    text-align: center;
    padding: 24px 12px;
    color: #999;
}
.kanban-fv2-board .kanban-simular-instrucao {
    text-align: center;
    color: #777;
    padding: 16px 8px;
}
.kanban-fv2-board .kanban-simular-instrucao .icon {
    font-size: 32px;
    color: #999;
    display: block;
    margin: 0 auto 8px;
}
.kanban-fv2-board .kanban-simular-instrucao p { margin: 0 0 8px; font-size: 13px; }

/* Toggle Kanban/Lista no header da página */
.js-fv2-toggle-visualizacao .btn-group .btn { padding: 4px 12px; }

/* ============================================================
   MARCA RADIO SIMPLES — Menu lateral (royal #151428 + roxo da marca)
   Cores oficiais: royal #151428 / soft #1d1b36 · roxo #801dec/#9840f2/#c682fd
   ============================================================ */
.am-left-sidebar,
.am-left-sidebar:before { background-color: #151428 !important; }

.am-left-sidebar .sidebar-elements > li { border-bottom-color: #221f3d !important; }

.am-left-sidebar .sidebar-elements > li > a { color: #c9c4e0 !important; }
.am-left-sidebar .sidebar-elements > li > a:hover { background-color: #1d1b36 !important; color: #ffffff !important; }

/* Ícones SVG (line icons) dos itens-pai da sidebar — herdam a cor do link (incl. hover/active) */
.am-left-sidebar .sidebar-elements > li > a > svg.icon-svg {
    display: block;
    width: 27px;
    height: 27px;
    margin: 0 auto;
    color: inherit;
    stroke: currentColor;
    vertical-align: middle;
    transition: transform .15s ease;
}
.am-left-sidebar .sidebar-elements > li > a:hover > svg.icon-svg { transform: translateY(-1px); }

.am-left-sidebar .sidebar-elements > li.active > a,
.am-left-sidebar .sidebar-elements > li.open > a {
    background: linear-gradient(90deg, rgba(152,64,242,.30), rgba(152,64,242,0)) !important;
    border-left: 3px solid #9840f2 !important;
    padding-left: 12px !important;
    color: #ffffff !important;
}

/* Logo: a marca agora é um <img> no markup (_MenuPrincipal.cshtml); aqui só a borda. */
.am-left-sidebar .am-logo { border-bottom: 1px solid #221f3d !important; }

/* Scrollbar do menu na cor royal */
.am-left-sidebar::-webkit-scrollbar-track { background-color: #151428 !important; }

/* ===== Sub-menu / flyout no estilo Radio Simples (royal + roxo) ===== */
.am-left-sidebar .sidebar-elements > li > ul,
.am-left-sidebar .sidebar-elements > li > ul.sub-menu { background-color: #1d1b36 !important; }

.am-left-sidebar .sidebar-elements > li > ul > li.title,
.am-left-sidebar .sidebar-elements > li > ul > li.sub-title,
#MenuPrincipal .sub-menu h3 { color: #ffffff !important; border-bottom-color: #2e2a4d !important; }

.am-left-sidebar .sidebar-elements > li > ul > li > a,
.am-left-sidebar .sidebar-elements > li > ul > li > a span,
#MenuPrincipal .sub-menu > li > a,
#MenuPrincipal .sub-menu > li > a span { color: #c9c4e0 !important; }

.am-left-sidebar .sidebar-elements > li > ul > li > a:hover,
#MenuPrincipal .sub-menu > li > a:hover {
    background-color: rgba(152,64,242,.18) !important;
    color: #ffffff !important;
}

/* hover do item-pai: flyout mantém o tom royal (não cinza) */
.am-left-sidebar .sidebar-elements > li:hover { background-color: #1d1b36 !important; }

/* scrollbar do flyout */
.am-left-sidebar .sidebar-elements > li > ul.sub-menu::-webkit-scrollbar-track,
.am-left-sidebar .sidebar-elements > li > ul.sub-menu::-webkit-scrollbar { background-color: #1d1b36 !important; }
.am-left-sidebar .sidebar-elements > li > ul.sub-menu::-webkit-scrollbar-thumb { background-color: #3a3560 !important; }

/* ============================================================
   Rodapé do menu lateral: notificações + usuário (descidos do header)
   Sidebar vira coluna flex: conteúdo rola, rodapé fixo no fim (telas pequenas ok).
   ============================================================ */
.am-left-sidebar { display: flex !important; flex-direction: column !important; overflow: visible !important; }
.am-left-sidebar > .content { flex: 1 1 auto; overflow-y: auto; overflow-x: hidden; min-height: 0; }
.am-left-sidebar > .content::-webkit-scrollbar { width: 6px; }
.am-left-sidebar > .content::-webkit-scrollbar-thumb { background: #3a3560; border-radius: 6px; }
.am-left-sidebar > .am-sidebar-footer { flex: 0 0 auto; position: relative; z-index: 1100; }

/* dropdowns do rodapé acima de tudo + ícone svg do sino no tamanho dos demais */
.am-sidebar-footer .dropdown-menu { z-index: 1100; }
.am-sidebar-footer .sf-bell .icon-svg { width: 23px; height: 23px; }

.am-sidebar-footer { background: #151428; border-top: 1px solid #221f3d; }
.am-sidebar-footer .nav { margin: 0; padding: 0; float: none; }
.am-sidebar-footer .nav > li { list-style: none; float: none; position: relative; }

/* sino de notificações */
.am-sidebar-footer .sf-bell {
    display: flex; flex-direction: column; align-items: center; gap: 3px;
    padding: 11px 6px; color: #c9c4e0; text-decoration: none; position: relative;
}
.am-sidebar-footer .sf-bell:hover, .am-sidebar-footer .sf-bell:focus { background: #1d1b36; color: #fff; }
.am-sidebar-footer .sf-bell .icon { font-size: 22px; line-height: 1; }
.am-sidebar-footer .sf-label { font-size: 10px; font-weight: 600; }
.am-sidebar-footer #QtdNotificacoes {
    position: absolute; top: 5px; right: 26px;
    min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px;
    background: #EF4444 !important; color: #fff; font-size: 10px; font-weight: 700;
    line-height: 17px; text-align: center; box-shadow: 0 0 0 2px #151428;
}

/* usuário — seção colorida chamativa */
.am-sidebar-footer .sf-user {
    display: flex; flex-direction: column; align-items: center; gap: 6px;
    padding: 13px 6px; text-decoration: none;
    background: linear-gradient(135deg, #9840f2 0%, #801dec 100%);
}
.am-sidebar-footer .sf-user:hover, .am-sidebar-footer .sf-user:focus { filter: brightness(1.08); color: #fff; }
.am-sidebar-footer .sf-avatar {
    width: 38px; height: 38px; border-radius: 50%;
    background: rgba(255,255,255,.22); color: #fff;
    display: flex; align-items: center; justify-content: center;
    font-weight: 800; font-size: 14px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.35);
}
.am-sidebar-footer .sf-name {
    color: #fff; font-size: 11px; font-weight: 600; text-align: center; line-height: 1.1;
    max-width: 92px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.am-sidebar-footer .sf-caret { color: rgba(255,255,255,.85); font-size: 12px; }

/* dropdowns do rodapé abrem para cima/direita (saindo do sidebar estreito) */
.am-sidebar-footer .dropdown-menu {
    top: auto; bottom: 0; left: 100%; right: auto; margin: 0 0 0 8px;
    border: 1px solid #e5e7eb; box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

/* Menu do usuário (rodapé) no tema royal, igual aos submenus */
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu {
    background: #1d1b36; border: 1px solid #2e2a4d; border-radius: 8px;
    box-shadow: 0 16px 40px rgba(0,0,0,.45); min-width: 200px; padding: 6px 0;
}
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu > li > a { color: #c9c4e0; padding: 9px 16px; }
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu > li > a:hover { background: rgba(152,64,242,.18); color: #fff; }
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu > li > a .icon { color: #c682fd; margin-right: 8px; }
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu .divider { background: #2e2a4d; margin: 6px 0; }

/* Sino/usuário: estados hover/focus/active/open sem o cinza do Bootstrap (.nav>li>a:focus{bg:#eee}) */
.am-sidebar-footer .sf-bell:hover,
.am-sidebar-footer .sf-bell:focus,
.am-sidebar-footer .sf-bell:active,
.am-sidebar-footer li.open > .sf-bell {
    background-color: #1d1b36 !important;
    color: #fff !important;
}
.am-sidebar-footer .sf-user:hover,
.am-sidebar-footer .sf-user:focus,
.am-sidebar-footer .sf-user:active,
.am-sidebar-footer li.open > .sf-user {
    background: linear-gradient(135deg, #a557f5 0%, #8a2bf0 100%) !important;
    color: #fff !important;
}

/* Remove linhas brancas entre itens do menu do usuário (bordas/box-shadow/seta herdados) */
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu > li,
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu > li > a {
    border: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
}
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu .divider {
    background-color: #2e2a4d !important;
    height: 1px !important;
    margin: 6px 12px !important;
    border: 0 !important;
}
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu:before,
.am-sidebar-footer #MenuUsuarioSidebar .dropdown-menu:after { display: none !important; }

/* ============================================================
   Suporte — botão flutuante de ajuda + modal de chamados
   ============================================================ */
#BtnAjudaFlutuante {
    position: fixed; right: 24px; bottom: 24px; z-index: 1200;
    width: 56px; height: 56px; border: none; border-radius: 50%;
    background: linear-gradient(135deg, #5f7da3 0%, #7a98bf 100%);
    color: #fff; box-shadow: 0 8px 24px rgba(95,125,163,.45);
    cursor: pointer; transition: transform .15s ease, box-shadow .15s ease;
    display: flex; align-items: center; justify-content: center;
}
#BtnAjudaFlutuante:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 12px 30px rgba(95,125,163,.55); }
#BtnAjudaFlutuante:active { transform: scale(.97); }
#BtnAjudaFlutuante i { font-size: 26px; line-height: 1; }

/* Abas */
#ModalSuporte .suporte-tabs {
    list-style: none; margin: 0 0 18px 0; padding: 0; display: flex; gap: 4px;
    border-bottom: 1px solid #e5e7eb;
}
#ModalSuporte .suporte-tab {
    padding: 10px 16px; cursor: pointer; font-weight: 600; font-size: 13px;
    color: #64748b; border-bottom: 2px solid transparent; margin-bottom: -1px;
    transition: color .15s, border-color .15s;
}
#ModalSuporte .suporte-tab:hover { color: #4f6d92; }
#ModalSuporte .suporte-tab.active { color: #4f6d92; border-bottom-color: #4f6d92; }
#ModalSuporte .suporte-tab i { margin-right: 4px; }

#ModalSuporte .suporte-ajuda-texto { color: #64748b; font-size: 13px; margin-bottom: 14px; }

/* Dropzone */
#ModalSuporte .suporte-dropzone {
    border: 2px dashed #cbd5e1; border-radius: 8px; padding: 22px; text-align: center;
    color: #64748b; cursor: pointer; transition: border-color .15s, background .15s;
    display: flex; flex-direction: column; align-items: center; gap: 4px;
}
#ModalSuporte .suporte-dropzone:hover,
#ModalSuporte .suporte-dropzone.dragover { border-color: #7a98bf; background: rgba(122,152,191,.08); }
#ModalSuporte .suporte-dropzone i { font-size: 28px; color: #7a98bf; }
#ModalSuporte .suporte-dropzone small { color: #94a3b8; font-size: 11px; }

/* Lista de anexos selecionados (chips) */
#ModalSuporte .suporte-anexos-lista { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
#ModalSuporte .suporte-anexo-chip {
    display: inline-flex; align-items: center; gap: 8px; max-width: 100%;
    background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 6px; padding: 6px 10px; font-size: 12px;
}
#ModalSuporte .suporte-anexo-chip .nome { max-width: 220px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#ModalSuporte .suporte-anexo-chip .remover { cursor: pointer; color: #ef4444; font-weight: 700; border: none; background: none; }
#ModalSuporte .suporte-anexo-thumb { width: 28px; height: 28px; object-fit: cover; border-radius: 4px; }

/* Lista de chamados */
#ModalSuporte .suporte-lista-carregando,
#ModalSuporte .suporte-lista-vazia { text-align: center; color: #94a3b8; padding: 28px 8px; font-size: 13px; }
#ModalSuporte table.suporte-tabela { width: 100%; font-size: 13px; border-collapse: collapse; }
#ModalSuporte table.suporte-tabela th { text-align: left; color: #64748b; font-size: 11px; text-transform: uppercase; padding: 6px 8px; border-bottom: 1px solid #e5e7eb; }
#ModalSuporte table.suporte-tabela td { padding: 8px; border-bottom: 1px solid #f1f5f9; vertical-align: middle; }
#ModalSuporte .suporte-badge { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; white-space: nowrap; }
/* Uma cor por coluna do board (Backlog → Done). */
#ModalSuporte .suporte-badge.aberto { background: #e2e8f0; color: #475569; }      /* Aberto (Backlog) */
#ModalSuporte .suporte-badge.analise { background: #dbeafe; color: #1e40af; }     /* Em análise (Ready) */
#ModalSuporte .suporte-badge.andamento { background: #fef3c7; color: #92400e; }   /* Em andamento (In progress) */
#ModalSuporte .suporte-badge.revisao { background: #ede9fe; color: #6d28d9; }     /* Aguardando publicação (In review) */
#ModalSuporte .suporte-badge.finalizado { background: #dcfce7; color: #166534; }  /* Finalizado (Done) */
#ModalSuporte .suporte-cat { color: #4f6d92; font-weight: 600; }
#ModalSuporte table.suporte-tabela tbody tr:hover { background: #f8fafc; }

/* Título clicável (abre o detalhe in-app) — visual de link, semântica de botão */
#ModalSuporte .suporte-link-detalhe {
    border: none; background: none; padding: 0; margin: 0; text-align: left;
    color: #4f6d92; font-weight: 600; font-size: 13px; cursor: pointer; text-decoration: none;
}
#ModalSuporte .suporte-link-detalhe:hover,
#ModalSuporte .suporte-link-detalhe:focus { text-decoration: underline; }
#ModalSuporte .suporte-link-detalhe:focus-visible { outline: 2px solid #7a98bf; outline-offset: 2px; }

/* Detalhe do chamado (resumo in-app) */
#ModalSuporte .suporte-detalhe { font-size: 13px; }
#ModalSuporte .suporte-detalhe .suporte-voltar { margin-bottom: 14px; }
#ModalSuporte .suporte-detalhe-cabecalho { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
#ModalSuporte .suporte-detalhe-numero { color: #94a3b8; font-weight: 700; }
#ModalSuporte .suporte-detalhe-titulo { margin: 0 0 8px; font-size: 16px; color: #1e293b; font-weight: 700; }
#ModalSuporte .suporte-detalhe-meta { display: flex; flex-wrap: wrap; gap: 14px; color: #64748b; font-size: 12px; margin-bottom: 16px; }
#ModalSuporte .suporte-detalhe-secao { margin-bottom: 16px; }
#ModalSuporte .suporte-detalhe-secao h5 { font-size: 11px; text-transform: uppercase; color: #94a3b8; letter-spacing: .04em; margin: 0 0 6px; }
#ModalSuporte .suporte-detalhe-descricao { white-space: pre-wrap; word-break: break-word; margin: 0; color: #334155; line-height: 1.5; }
#ModalSuporte .suporte-detalhe-vazio { color: #94a3b8; font-style: italic; margin: 0; }
#ModalSuporte .suporte-detalhe-anexos { display: flex; flex-wrap: wrap; gap: 10px; }
#ModalSuporte .suporte-detalhe-anexo-img img { width: 72px; height: 72px; object-fit: cover; border-radius: 6px; border: 1px solid #e2e8f0; display: block; }
#ModalSuporte .suporte-detalhe-anexo-arq {
    display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px;
    background: #f1f5f9; border: 1px solid #e2e8f0; border-radius: 6px; color: #4f6d92; text-decoration: none;
}
#ModalSuporte .suporte-detalhe-anexo-arq:hover { background: #e2e8f0; }
#ModalSuporte .suporte-detalhe-anexo-img:focus-visible,
#ModalSuporte .suporte-detalhe-anexo-arq:focus-visible { outline: 2px solid #7a98bf; outline-offset: 2px; }

/* Botão fechar (X) no header */
#ModalSuporte .suporte-fechar {
    position: absolute; top: 14px; right: 16px; z-index: 2;
    border: none; background: none; color: #fff; opacity: .85;
    font-size: 18px; line-height: 1; cursor: pointer; padding: 4px;
}
#ModalSuporte .suporte-fechar:hover { opacity: 1; }

/* Contador de caracteres */
#ModalSuporte .suporte-contador { display: block; text-align: right; color: #94a3b8; font-size: 11px; margin-top: 3px; }

/* Foco acessível em abas e dropzone */
#ModalSuporte .suporte-tab:focus,
#ModalSuporte .suporte-dropzone:focus { outline: 2px solid #7a98bf; outline-offset: 2px; }

/* Estado de erro ao carregar "Meus chamados" */
#ModalSuporte .suporte-lista-erro { text-align: center; color: #64748b; padding: 24px 8px; font-size: 13px; }
#ModalSuporte .suporte-lista-erro i,
#ModalSuporte .suporte-lista-vazia i { display: block; font-size: 34px; margin-bottom: 6px; color: #cbd5e1; }
#ModalSuporte .suporte-lista-erro i { color: #f59e0b; }
#ModalSuporte .suporte-lista-erro p,
#ModalSuporte .suporte-lista-vazia p { margin: 0 0 10px; }

/* Canal alternativo: WhatsApp no rodapé do modal (à esquerda; ações à direita) */
#ModalSuporte .modal-footer .suporte-whatsapp {
    float: left; display: inline-flex; align-items: center; gap: 6px;
    height: 38px; padding: 0 14px; border-radius: 6px;
    background: #25D366; color: #fff; font-weight: 600; font-size: 13px;
    text-decoration: none; transition: background .15s, box-shadow .15s;
}
#ModalSuporte .modal-footer .suporte-whatsapp:hover,
#ModalSuporte .modal-footer .suporte-whatsapp:focus {
    background: #1ebe5a; color: #fff; box-shadow: 0 4px 12px rgba(37,211,102,.4);
}
#ModalSuporte .modal-footer .suporte-whatsapp:focus { outline: 2px solid #128C7E; outline-offset: 2px; }
#ModalSuporte .suporte-whatsapp-icone { width: 18px; height: 18px; flex: none; }
#ModalSuporte .suporte-footer-acoes { display: inline-flex; gap: 8px; }

/* Chat interno (Simples Bot em iframe) — aba da Central de Ajuda */
.suporte-badge-nao-lidas {
    display: inline-block; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 10px;
    background: #ef4444; color: #fff; font-size: 11px; font-weight: 700; line-height: 20px; text-align: center;
}
.suporte-badge-nao-lidas[hidden] { display: none; }
#BtnAjudaFlutuante .suporte-badge-nao-lidas { position: absolute; top: -4px; right: -4px; }
#ModalSuporte .suporte-tab .suporte-badge-nao-lidas { margin-left: 6px; vertical-align: middle; }
/* O chat precisa de mais largura que os formulários de chamado (duas colunas dentro do iframe).
   Centralizado pelo MESMO caminho de .large-width (left 50% + translateX), e não por "left + width"
   somados à mão: .md-modal traz left: 1.5% e .half-width traz left: 18% + margin-left: 25px, e
   herdar metade desses valores empurrava o modal para fora e fazia a página ganhar rolagem lateral.

   A altura fica no PAINEL, não no .modal-body: o corpo tem padding próprio e a barra de abas acima,
   então calcular 100vh menos um chute de cabeçalho/rodapé estourava a janela em telas baixas. */
#ModalSuporte.suporte-modo-chat {
    width: 92%;
    max-width: 1180px;
    left: 50%;
    margin-left: 0;
    top: 5%;
    -webkit-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
}
#ModalSuporte .suporte-aba-chat {
    display: flex;
    flex-direction: column;
    height: 62vh;
    min-height: 320px;
    max-height: 700px;
}
#ModalSuporte #SuporteChatIframe { flex: 1 1 auto; width: 100%; min-height: 0; border: 0; border-radius: 6px; background: #f8fafc; }
#ModalSuporte .suporte-chat-carregando,
#ModalSuporte .suporte-chat-aviso { color: #64748b; font-size: 13px; padding: 24px; text-align: center; }
#ModalSuporte .suporte-chat-aviso a { margin-left: 6px; }

/* A barra de conversas do chat interno, no rodapé — as abinhas do MSN. Fora do modal: ela existe
   justamente para quando a Central de Ajuda está fechada. A abinha PISCA enquanto há mensagem não
   lida e se acalma quando a conversa é aberta, mas continua na barra para voltar depois. */
.suporte-chat-barra {
    position: fixed;
    left: 112px;            /* depois do menu lateral (100px), para não cobrir item nenhum */
    right: auto;            /* sem right: a barra tem a largura das abinhas, não a da tela */
    bottom: 0;
    z-index: 1201;
    display: none;
    align-items: flex-end;
    gap: 4px;
    max-width: calc(100vw - 220px);   /* sobra o canto direito para o botão de Ajuda */
    overflow-x: auto;
    padding: 0;
}
/* A visibilidade é por CLASSE, não por .show() do jQuery: ele grava display:block no estilo inline,
   o flex se perde e a abinha estica pela largura inteira da tela. */
.suporte-chat-barra.visivel { display: flex; }
.suporte-aba-chat-barra {
    display: flex; align-items: center; gap: 4px;
    flex: 0 0 auto;         /* a abinha tem o tamanho do nome; nunca estica */
    cursor: pointer;        /* a abinha inteira abre a conversa */
    background: #fff; color: #334155;
    border: 1px solid #cbd5e1; border-bottom: 0;
    border-radius: 8px 8px 0 0;
    padding: 6px 8px;
    box-shadow: 0 -4px 14px rgba(15,23,42,.16);
}
.suporte-aba-chat-barra.ativa { background: #5f7da3; border-color: #5f7da3; color: #fff; }
.suporte-aba-chat-barra.piscando { animation: suportePiscar 1.1s ease-in-out infinite; border-color: #f59e0b; color: #fff; }
@keyframes suportePiscar {
    0%, 100% { background-color: #5f7da3; }
    50% { background-color: #f59e0b; }
}
.suporte-aba-abrir { display: flex; align-items: center; gap: 6px; min-width: 0; }
.suporte-aba-chat-barra:focus-visible { outline: 2px solid #f59e0b; outline-offset: 2px; }
.suporte-aba-inicial {
    flex: none; width: 20px; height: 20px; border-radius: 50%;
    background: rgba(148,163,184,.28); color: inherit;
    font-size: 10px; font-weight: 700; line-height: 20px; text-align: center;
}
.suporte-aba-nome { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; font-weight: 700; }
.suporte-aba-contador {
    flex: none; background: #ef4444; color: #fff; border-radius: 9px;
    font-size: 10px; font-weight: 700; padding: 0 5px; line-height: 16px;
}
.suporte-aba-fechar {
    flex: none; border: 0; background: transparent; color: inherit; cursor: pointer;
    width: 18px; height: 18px; line-height: 16px; padding: 0; border-radius: 4px; font-size: 13px; font-weight: 700;
}
.suporte-aba-fechar:hover { background: rgba(148,163,184,.3); }

/* Responsivo — em telas pequenas o modal ocupa quase toda a largura e o FAB encolhe */
@media (max-width: 767px) {
    #ModalSuporte.half-width { width: 94%; left: 3%; margin-left: 0; }
    #ModalSuporte.suporte-modo-chat { width: 96%; top: 2%; }
    #ModalSuporte .suporte-aba-chat { height: 68vh; max-height: none; }
    #BtnAjudaFlutuante { width: 48px; height: 48px; right: 16px; bottom: 16px; }
    /* Abaixo de 768px o menu vira gaveta e sai da frente: a barra encosta na borda. */
    .suporte-chat-barra { left: 8px; max-width: calc(100vw - 88px); }
    .suporte-aba-nome { max-width: 80px; }
    #BtnAjudaFlutuante i { font-size: 22px; }
    #ModalSuporte .suporte-anexo-chip .nome { max-width: 140px; }
    #ModalSuporte .modal-footer .suporte-whatsapp { float: none; display: flex; justify-content: center; margin-bottom: 8px; }
    #ModalSuporte .suporte-footer-acoes { display: flex; justify-content: flex-end; }
}

/* ============================================================
   Login — ícones SVG (padrão sidebar), linha inferior, cantos retos
   ============================================================ */
.login-container .rs-login-group {
    margin: 0;
    padding: 0;
}

.login-container .panel-default .panel-body .form-group .rs-login-input {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-top: 20px;
    padding: 10px 14px;
    background-color: #f9f9f9;
    border: 0;
    border-bottom: 2px solid #ddd;
    border-radius: 0;
    transition: border-color .15s ease, background-color .15s ease;
}

.login-container .panel-default .panel-body .form-group .rs-login-input:focus-within {
    background-color: #f5f2fa;
    border-bottom-color: #9840f2;
}

.login-container .panel-default .panel-body .form-group .rs-login-input__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 28px;
    min-width: 28px;
    height: 36px;
    color: #9840f2;
}

.login-container .panel-default .panel-body .form-group .rs-login-input__icon .icon-svg {
    display: block;
    width: 22px;
    height: 22px;
    stroke: currentColor;
    vertical-align: middle;
}

.login-container .panel-default .panel-body .form-group .rs-login-input__control,
.login-container .panel-default .panel-body .form-group .rs-login-input .form-control {
    flex: 1 1 auto;
    width: 100%;
    min-width: 0;
    height: 36px;
    padding: 0 0 0 8px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #151428;
    font-family: Raleway, sans-serif;
    font-size: 14px;
    font-weight: 500;
}

.login-container .panel-default .panel-body .form-group .rs-login-input__control:focus,
.login-container .panel-default .panel-body .form-group .rs-login-input .form-control:focus {
    outline: none;
    box-shadow: none;
}

.login-container .panel-default .panel-body .form-group .rs-login-input__control::placeholder,
.login-container .panel-default .panel-body .form-group .rs-login-input .form-control::placeholder {
    color: #a3a2a2;
}

.login-container .panel-default .panel-body .form-group .rs-login-input.parsley-error {
    border-bottom-color: #f49090;
    background-color: #fff8f8;
}

.login-container .panel-default .panel-body .form-group .input-group {
    border-bottom: 0;
    padding: 0;
    margin-top: 0;
    background-color: transparent;
}

.login-container .panel-default .panel-body .form-group.rs-login-actions {
    padding-top: 50px;
    margin-top: 0;
}

.login-container .rs-login-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 0;
    font-family: Raleway, sans-serif;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.login-container .rs-login-btn__icon {
    width: 18px;
    height: 18px;
    stroke: currentColor;
}

.login-container .rs-login-alert {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    padding: 10px 12px;
    background-color: #fff5f5;
    border: 0;
    border-left: 3px solid #e74c3c;
    border-radius: 0;
}

.login-container .rs-login-alert__icon {
    display: flex;
    flex-shrink: 0;
    align-items: center;
    color: #e74c3c;
}

.login-container .rs-login-alert__icon .icon-svg {
    width: 18px;
    height: 18px;
    stroke: currentColor;
}

.login-container .rs-login-alert__texto {
    color: #c0392b;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
}

#ModalLogin .login-container .panel-default {
    padding: 32px 20px 28px;
}

#ModalLogin .login-container .panel-default .panel-body .form-group.rs-login-actions {
    padding-top: 44px;
}

/* Variantes contextuais de .label (paleta Bootstrap 3).
   O projeto migrou para Bootstrap 5, que removeu o componente .label (virou .badge/.bg-*),
   mas o markup ainda usa "label label-*" (chips de Situação, Exige credenciais, Código TISS,
   etc. em ~23 telas). A regra-base .label{color:#fff} (style.css) permaneceu, mas as
   variantes .label-* deixaram de existir em qualquer CSS carregado → o texto ficava branco
   sem fundo, invisível sobre o fundo claro das tabelas. Restaurar os backgrounds (aditivo:
   nada define essas classes hoje) devolve o contraste correto sem afetar outros componentes. */
.label-default { background-color: #777; }
.label-primary { background-color: #337ab7; }
.label-success { background-color: #5cb85c; }
.label-info    { background-color: #5bc0de; }
.label-warning { background-color: #f0ad4e; }
.label-danger  { background-color: #d9534f; }

/* Prontuário de paciente */
.prontuario-paciente .panel-body {
    padding-bottom: 15px;
}

.prontuario-paciente .prontuario-cabecalho {
    display: flex;
    gap: 24px;
    align-items: flex-start;
}

.prontuario-paciente .prontuario-foto {
    flex: 0 0 128px;
    width: 128px;
    height: 128px;
    border-radius: 8px;
    overflow: hidden;
    background: #f4f5f7;
    border: 1px solid #e6e6e6;
    display: flex;
    align-items: center;
    justify-content: center;
}

.prontuario-paciente .prontuario-foto img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.prontuario-paciente .prontuario-foto--padrao img {
    object-fit: contain;
    padding: 18px;
}

.prontuario-paciente .prontuario-identidade {
    flex: 1;
    min-width: 0;
}

.prontuario-paciente .prontuario-identidade .form-group {
    margin-bottom: 12px;
}

.prontuario-paciente .prontuario-identidade h3 {
    margin: 0;
    font-size: 22px;
    font-weight: 400;
    line-height: 1.3;
}

.prontuario-paciente .prontuario-identidade h3 .btn {
    margin-left: 8px;
    margin-top: -4px;
    vertical-align: middle;
}

.prontuario-paciente .prontuario-campo-leitura {
    background-color: #f5f5f5;
    cursor: default;
}

.prontuario-paciente textarea.prontuario-campo-leitura {
    resize: none;
}

.prontuario-paciente .prontuario-identidade p {
    margin: 0;
    font-size: 14px;
}

.prontuario-paciente .prontuario-observacao {
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid #eee;
}

/* Segmentos do detalhar atendimento em modo somente-leitura (prontuário) */
.prontuario-paciente > .prontuario-segmento,
.prontuario-paciente .prontuario-segmento-linha {
    margin-bottom: 20px;
    padding-bottom: 20px;
    border-bottom: 1px solid #e6e6e6;
}

.prontuario-paciente > .prontuario-segmento:last-child,
.prontuario-paciente .prontuario-segmento-linha:last-child {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
}

.prontuario-paciente .prontuario-segmento-titulo {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: #555;
}

.prontuario-paciente .prontuario-segmento-titulo .icon {
    margin-right: 6px;
    color: #337ab7;
}

.prontuario-paciente .prontuario-segmento .form-group {
    margin-bottom: 12px;
}

.prontuario-paciente .prontuario-segmento .form-group:last-child {
    margin-bottom: 0;
}

.prontuario-paciente .prontuario-observacao p {
    white-space: pre-wrap;
    color: #555;
}

.prontuario-paciente .tab-container {
    margin-top: 30px;
}

.prontuario-paciente .nav-tabs .badge {
    font-weight: 500;
    background: #e8e8e8;
    color: #555;
    margin-left: 4px;
}

.prontuario-paciente .nav-tabs .active .badge,
.prontuario-paciente .nav-tabs .nav-link.active .badge {
    background: #337ab7;
    color: #fff;
}

.prontuario-paciente .prontuario-toolbar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 0 12px;
    overflow: visible;
}

.prontuario-paciente .prontuario-toolbar label {
    margin: 0;
    font-weight: 500;
    color: #777;
    flex-shrink: 0;
}

.prontuario-paciente .prontuario-toolbar select {
    width: 200px;
    min-width: 200px;
    flex: 0 0 200px;
    height: 34px;
    line-height: 1.4;
    padding: 4px 28px 4px 10px;
}

.prontuario-paciente .prontuario-vazio {
    text-align: center;
    padding: 48px 16px;
    color: #999;
}

.prontuario-paciente .prontuario-vazio .icon {
    font-size: 36px;
    display: block;
    margin-bottom: 8px;
}

.prontuario-paciente .prontuario-vazio p {
    margin: 0;
}

.prontuario-paciente .tab-content,
.prontuario-paciente .tab-content > .tab-pane {
    overflow: visible;
}

.prontuario-paciente .tab-content .alert {
    margin: 12px 20px 0;
}

.prontuario-paciente .tab-content .table {
    margin-bottom: 0;
}

.prontuario-paciente tr.prontuario-anexo-destaque > td {
    background-color: #d9edf7;
    color: #333;
}

.prontuario-paciente tr.arvore-filho .icon.s7-angle-right {
    margin-right: 4px;
    color: #888;
}

.prontuario-preview-anexo {
    padding: 12px 24px 20px;
}

.prontuario-preview-anexo-figura {
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    max-height: calc(100vh - 240px);
    background: #f4f5f7;
    border: 1px solid #e6e6e6;
}

.prontuario-preview-anexo-figura img {
    max-width: 100%;
    max-height: calc(100vh - 240px);
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}

.prontuario-preview-anexo-acoes {
    padding: 16px 4px 4px;
    text-align: right;
}

.prontuario-paciente .prontuario-auditoria {
    position: relative;
    padding: 16px 20px 8px 12px;
}

.prontuario-paciente .prontuario-auditoria-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    position: relative;
    padding: 0 0 20px;
    border-bottom: 0;
}

.prontuario-paciente .prontuario-auditoria-item:not(:last-child)::before {
    content: "";
    position: absolute;
    left: 11px;
    top: 26px;
    bottom: 0;
    width: 2px;
    background: #d0d7de;
}

.prontuario-paciente .prontuario-auditoria-checkpoint {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: #337ab7;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px #337ab7;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    z-index: 1;
    margin-top: 2px;
}

.prontuario-paciente .prontuario-auditoria-checkpoint .icon {
    font-size: 12px;
    line-height: 1;
    margin: 0;
}

.prontuario-paciente .prontuario-auditoria-item--criado .prontuario-auditoria-checkpoint {
    background: #5cb85c;
    box-shadow: 0 0 0 2px #5cb85c;
}

.prontuario-paciente .prontuario-auditoria-item--excluido .prontuario-auditoria-checkpoint {
    background: #d9534f;
    box-shadow: 0 0 0 2px #d9534f;
}

.prontuario-paciente .prontuario-auditoria-conteudo {
    flex: 1;
    min-width: 0;
    background: #f9fafb;
    border: 1px solid #eee;
    border-radius: 6px;
    padding: 10px 14px;
}

.prontuario-paciente .prontuario-auditoria-cabecalho {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    color: #333;
    margin-bottom: 0;
}

.prontuario-paciente .prontuario-auditoria-cabecalho time {
    font-weight: 600;
    color: #555;
}

.prontuario-paciente .prontuario-auditoria-campos {
    margin: 8px 0 0;
    padding-left: 18px;
    color: #555;
}

.prontuario-paciente .prontuario-auditoria-campos li {
    margin-bottom: 4px;
}

@media (max-width: 767px) {
    .prontuario-paciente .prontuario-cabecalho {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .prontuario-paciente .prontuario-identidade {
        width: 100%;
    }
}

/* ========================================================================
   Barra de filtros da grade de Convênios (Views/Convenio/_Partial/_Listar.cshtml).
   A busca padrão (.input-busca) é 290px FIXOS + float:right, desenhada para flutuar
   sozinha na borda do painel — o que vale nas listagens sem dropdown. Aqui ela divide
   a linha com o select de Tipo e o checkbox, então dentro da coluna estoura a largura
   e desalinha os vizinhos; neste escopo ela passa a ocupar a coluna, em fluxo.
   Também neutraliza o font-size: 21px que .title impõe a tudo que está dentro dele
   (era o que fazia rótulo e checkbox saírem em corpo de título).
   Escopado de propósito: .input-search-group/.input-busca são usadas por 66 views.
   ======================================================================== */
.linha-filtros-convenio {
    margin-top: 15px;
    font-size: 14px;
}

    .linha-filtros-convenio .input-search-group,
    .linha-filtros-convenio .input-busca {
        float: none;
        width: 100%;
    }

    /* Espaço para a lupa não cobrir o texto digitado. */
    .linha-filtros-convenio .input-busca {
        padding-right: 34px;
    }

    /* .icon-input é absolute SEM "top": no padrão flutuante ela se apoia na posição
       estática ao lado do input. Sem o float, o input vira bloco e a lupa cairia para
       a linha de baixo — aqui ela é centrada explicitamente na altura do campo. */
    .linha-filtros-convenio .icon-input {
        top: 50%;
        margin-top: 0;
        transform: translateY(-50%);
    }

    /* Vence o "display: inline" de .am-checkbox-xs; o padding centra o checkbox
       contra a altura de 34px do .form-control ao lado. */
    .linha-filtros-convenio .checkbox-filtro-convenio {
        display: block;
        padding-top: 8px;
        color: #777;
    }

/* ==========================================================================
   Parâmetros da empresa — sub-abas, cards e alinhamento dos campos
   ========================================================================== */

/* Sub-abas dentro de uma aba (Dados da Empresa > Parâmetros). Pills de propósito:
   um segundo nav-tabs empilhado embaixo do nav-tabs externo fica ambíguo sobre qual
   nível está ativo. */
.nav-subabas {
    margin-bottom: 20px;
    border-bottom: 1px solid #f0f0f0;
    padding-bottom: 10px;
}

    .nav-subabas > li > a {
        padding: 7px 14px;
        font-size: 13px;
        color: #777;
    }

        .nav-subabas > li > a > i.icon {
            font-size: 17px;
            vertical-align: middle;
            margin-right: 3px;
        }

    .nav-subabas > li.active > a,
    .nav-subabas > li.active > a:hover,
    .nav-subabas > li.active > a:focus {
        font-weight: 600;
    }

/* O tema dá `background/padding/border-top/margin-top:-1px` a TODO .tab-content (style.css), e o
   container interno precisa da classe para o plugin de tabs do Bootstrap 3 esconder/mostrar os panes
   (`.tab-content > .tab-pane`). Sem neutralizar, o aninhamento herdava uma borda solta 20px abaixo dos
   pills e um deslocamento de 1px. O separador único é o border-bottom de .nav-subabas. */
.tab-content-subabas {
    padding: 0 !important;
    border-top: 0 none;
    margin-top: 0;
    background: transparent;
}

    .tab-content-subabas > .tab-pane > .panel:last-child {
        margin-bottom: 0;
    }

/* Sub-abas da aba Financeiro (Dados da Empresa): respiro no fundo do conteúdo.
   O .tab-content-subabas zera o padding global (compartilhado com Parâmetros). */
.fv2-aba-financeiro-subabas {
    padding-bottom: 20px !important;
}

/* Alinhamento dos campos de parâmetro.
   O problema que isto resolve: rótulo longo ("Pagamento misto: emitir nota única com o valor total?")
   quebra em 2-3 linhas dentro de col-md-3 e empurra o PRÓPRIO campo para baixo, desalinhando-o do
   vizinho de rótulo curto na MESMA linha. Com float não há como alinhar pela base; com
   align-items:flex-end os campos ficam na mesma linha de base independentemente do rótulo.

   O media query NÃO é opcional: neste tema `col-md-*` só recebe `width` e `float` dentro de
   `min-width:992px` (style.css), então abaixo disso a coluna é bloco 100% e EMPILHA. Como flex item ela
   passaria a ser dimensionada pelo conteúdo e os 3-4 campos ficariam lado a lado, espremidos, em tablet
   e celular — pior do que antes de existir esta classe. */
@media (min-width: 992px) {
    .row-parametros {
        display: flex;
        flex-wrap: wrap;
        align-items: flex-end;
    }

        .row-parametros > [class*="col-"] {
            margin-bottom: 15px;
            /* Flex item nasce com min-width:auto e NÃO encolhe abaixo do min-content. O col dos campos
               R$ tem input-group (display:table: addon + input size=20) com min-content de ~250px, que
               empata com 25% do container útil — sem isto a linha estoura para a direita, ao contrário
               do float, onde o excesso só sangrava dentro da própria coluna. Mesmo remédio do padrão de
               KPIs full-width da skill html-css-radio-simples. */
            min-width: 0;
            float: none;
        }

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

/* =========================================================================
   Conferência de Emissão NFS-e (Financeiro › Fiscal › Conferência)
   ========================================================================= */

/* Cor da ABA inativa. O tema comentou a cor de link (`a { /*color: #7a98bf;*/ }`), então o navegador
   aplica o default — e `href="#"` conta como VISITADO, o que pintava a aba de roxo ao lado da ativa
   azul. Cor explícita nos três estados resolve, e o `href` fica (é ele que dá foco por teclado). */
.js-conferencia-nfse-abas > li > a {
    color: #5a6a7a;
    font-weight: 600;
}

.js-conferencia-nfse-abas > li > a:hover,
.js-conferencia-nfse-abas > li > a:focus {
    background-color: #eef1f4;
    color: #34495e;
}

.js-conferencia-nfse-abas > li.active > a,
.js-conferencia-nfse-abas > li.active > a:hover,
.js-conferencia-nfse-abas > li.active > a:focus {
    color: #fff;
}

/* Contador nas ABAS (nav-pills). O `.badge` do tema traz `background-color: #777` E
   `text-shadow: 0px 1px 1px #000` — a sombra preta sobre um número de 11px vira um bloco escuro
   borrado, ilegível. Aqui a sombra sai e a cor acompanha o estado da aba: sobre o azul da ativa
   (#7a98bf) um branco translúcido; na inativa, cinza claro com texto escuro.

   Neutro de propósito: estes números dizem "quantos itens há na outra aba", não gravidade. Cor de
   severidade já existe nos KPIs e nos badges de cada linha — repeti-la aqui viraria ruído. */
.js-conferencia-nfse-abas .badge {
    background-color: #e4e7ea;
    color: #5a6a7a;
    text-shadow: none;
    padding: 3px 7px;
    border-radius: 10px;
    font-weight: 600;
    margin-left: 4px;
}

.js-conferencia-nfse-abas > li.active > a .badge {
    background-color: rgba(255, 255, 255, 0.3);
    color: #fff;
}

/* Divergência de VALOR (soma das notas != valor da fatura). */
.conferencia-nfse-divergente > td {
    background-color: #fdf8ee;
}

.conferencia-nfse-divergente > td:first-child {
    box-shadow: inset 3px 0 0 0 #f0ad4e;
}

/* PENDÊNCIA (sem nota / nota cancelada). Fundo tênue em vez de texto vermelho: as pendências já vêm no
   topo e o badge da coluna Situação é quem nomeia o problema — a linha só precisa ser localizável ao
   rolar. A borda esquerda é o que sobrevive ao `table-striped`, que alterna o fundo.

   A especificidade é DELIBERADAMENTE maior (classe repetida) porque uma linha pode ser pendência E
   divergente ao mesmo tempo, e aí o vermelho da pendência tem de vencer. Depender da ordem no arquivo
   faria a regra se inverter no dia em que alguém reorganizasse o CSS. */
.conferencia-nfse-pendente.conferencia-nfse-pendente > td {
    background-color: #fdf3f3;
}

.conferencia-nfse-pendente.conferencia-nfse-pendente > td:first-child {
    box-shadow: inset 3px 0 0 0 #d9534f;
}

/* =========================================================================
   Modelo da discriminação NFS-e (Empresas Emissoras › Dados Fiscais › Discriminação)
   ========================================================================= */

/* A paleta tinha 52 botões cinzas idênticos numa parede única, rotulados com o NOME TÉCNICO
   (`Paciente.Nome`), sem busca. Agora o botão exibe o rótulo humano, o token vai no tooltip e o
   grupo fica numa coluna fixa à esquerda — o alinhamento é o que faz a lista ser varrível. */
.grupo-discriminacao {
    margin-bottom: 5px;
    display: table;
    width: 100%;
}

    .grupo-discriminacao > .rotulo-grupo-discriminacao {
        display: table-cell;
        width: 100px;
        min-width: 100px;
        vertical-align: top;
        padding-top: 4px;
        font-size: 12px;
    }

    .grupo-discriminacao > .chips-discriminacao {
        display: table-cell;
        vertical-align: top;
    }

/* Sem `text-transform` aqui de propósito: a regra global de caixa alta do tema (`custom.css`,
   `input, textarea`) NÃO alcança botão — medido varrendo todos os blocos com `uppercase` em
   wwwroot/css/*.css. O `no-text-transform` da textarea e do campo de busca é que é obrigatório. */
.chip-discriminacao {
    margin: 0 3px 3px 0;
}

    .chip-discriminacao > sup {
        font-size: 9px;
    }

/* O painel do modelo salva por action própria (o textarea não tem `name`), então o rodapé com o
   interruptor e o botão precisa ficar visualmente destacado do formulário do cadastro em volta —
   senão o operador clica em "Salvar Alterações" achando que gravou o modelo. */
.rodape-discriminacao {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e8e8e8;
}

/* Estado do modelo: a linha vive no DOM justamente porque toast não sobrevive — PopupSucesso chama
   toastr.clear() antes de exibir, então um aviso de pendência seria apagado pelo "Sucesso!" do submit
   do cadastro. Mesma razão do #PainelEstadoRetencoes na emissão manual. */
#PainelEstadoModeloDiscriminacao {
    margin-bottom: 10px;
}

    #PainelEstadoModeloDiscriminacao > i.icon {
        margin-right: 4px;
        vertical-align: -2px;
    }

/* Prévia: os blocos são <pre> gerados pelo JS a partir do texto que o SERVIDOR resolveu. */
.previa-discriminacao-texto {
    white-space: pre-wrap;
    word-break: break-word;
    margin-bottom: 8px;
    font-size: 12px;
    max-height: 200px;
    overflow-y: auto;
}

.previa-discriminacao-secundaria {
    background: transparent;
    border-style: dashed;
    color: #888;
}
