/***************************************************************/
/*            Pre Loader                                       */
/***************************************************************/

.preloader {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
}

.loader {
  border: 8px solid #f3f3f3;
  border-top: 8px solid #3498db;
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1s linear infinite;
}

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

/***************************************************************/
/*            Data Tables                                      */
/***************************************************************/


#usuario_adicionar_mensagem_cpf {
  display: none;
}

#paciente_adicionar_mensagem_cpf{
  display: none;
}

#paciente_adicionar_alerta_cpf{
  display: none;
}

#paciente_detalhes_mensagem_cpf{
  display: none;
}


/***************************************************************/
/*            Data Tables                                      */
/***************************************************************/
.h-200{
  height: 200px;
}

.h-400{
  height: 400px;
}

.h-380{
  height: 380px;
}


@media (min-width: 992px) {
  .h-200-desktop {
      height: 200px; /* Define a altura de 200 pixels apenas na versão desktop */
  }

   .h-300-desktop {
      height: 300px; /* Define a altura de 300 pixels apenas na versão desktop */
  }

   .h-350-desktop {
      height: 350px; /* Define a altura de 350 pixels apenas na versão desktop */
  }
}


.text-shadow {
  text-shadow: 5px 5px 10px rgba(255, 255, 255, 0.5); /* Define a sombra com deslocamento horizontal de 2px, deslocamento vertical de 2px, desfoque de 4px e cor preta com 50% de opacidade */
}


.text-stroke {
    -webkit-text-stroke: 1px black; /* Define um contorno preto com 1px de largura */
}

.title-span {
  display: inline-block;
  width: 180px;
  margin-bottom: 0px;
}

.title-span-200 {
  display: inline-block;
  width: 200px;
  margin-bottom: 0px;
}

.title-span-300 {
  display: inline-block;
  width: 300px;
  margin-bottom: 0px;
}

#tabelaUsuarios {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}


#tabelaUsuarios th,
#tabelaUsuarios td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaUsuarios th {
  font-weight: normal !important;
}




#tabelaPacientes {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}



/* Remove a linha que fica abaixo da tabela*/ 
#tabelaPacientes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientes_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaPacientes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}




#tabelaPacientesSemCartao {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}

/* Remove a linha que fica abaixo da tabela*/ 
#tabelaPacientesSemCartao_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientesSemCartao_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaPacientesSemCartao_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientesSemCPF {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}



/* Remove a linha que fica abaixo da tabela*/ 
#tabelaPacientesSemCPF_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientesSemCPF_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaPacientesSemCPF_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

#tabelaProrrogacoes {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}



/* Remove a linha que fica abaixo da tabela*/ 
#tabelaProrrogacoes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaProrrogacoes_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaProrrogacoes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

#tabelaProrrogacoes td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}



#tabelaPacientesSuspensos {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}



/* Remove a linha que fica abaixo da tabela*/ 
#tabelaPacientesSuspensos_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientesSuspensos_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaPacientesSuspensos_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

#tabelaPacientesSuspensos td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}


#tabelaPacientesMonitoramento {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}



/* Remove a linha que fica abaixo da tabela*/ 
#tabelaPacientesMonitoramento_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaPacientesMonitoramento_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaPacientesMonitoramento_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

#tabelaPacientesMonitoramento td {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#tabelaPacientesSemBeneficio {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaPacientesSemBeneficio th,
#tabelaPacientesSemBeneficio td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaPacientesSemBeneficio th {
  font-weight: normal !important;
}

#tabelaBeneficios {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaBeneficios th,
#tabelaBeneficios td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaBeneficios th {
  font-weight: normal !important;
}

#tabelaExportacoes {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaExportacoes th,
#tabelaExportacoes td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaExportacoes th {
  font-weight: normal !important;
}


#tabelaUnidades {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaUnidades th,
#tabelaUnidades td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaUnidades th {
  font-weight: normal !important;
}

#tabelaTransfPaciente {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaTransfPaciente th,
#tabelaTransfPaciente td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaTransfPaciente th {
  font-weight: normal !important;
}

#tabelaTransfGeral{
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaTransfGeral th,
#tabelaTransfGeral td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaTransfGeral th {
  font-weight: normal !important;
}

#tabelaMonitoramento{
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaMonitoramento th,
#tabelaMonitoramento td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaMonitoramento th {
  font-weight: normal !important;
}


#tabelaProrrogacao {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaProrrogacao th,
#tabelaProrrogacao td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaProrrogacao th {
  font-weight: normal !important;
}


#tabelaBeneficiosMensal {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

#tabelaBeneficiosMensal th,
#tabelaBeneficiosMensal td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaBeneficiosMensal th {
  font-weight: normal !important;
}


#tabelaRelatorioPacientes {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}

table.dataTable thead tr th {
    word-wrap: break-word;
    word-break: break-all;
}

/* Remove a linha que fica abaixo da tabela*/ 
#tabelaRelatorioPacientes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaRelatorioPacientes_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaRelatorioPacientes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}




#tabelaRelatorioBeneficios {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  /*margin: 20px;*/
  table-layout: fixed; 
  white-space: nowrap; 
}


/* Remove a linha que fica abaixo da tabela*/ 
#tabelaRelatorioBeneficios_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}


#tabelaRelatorioBeneficios_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}


#tabelaRelatorioBeneficios_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

#tabelaLogAlteracoes {
  border-collapse: collapse;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  table-layout: fixed;
  white-space: nowrap;
}

#tabelaLogAlteracoes_wrapper {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

#tabelaLogAlteracoes_wrapper .dataTables_scrollBody {
  border: none !important;
  padding: 0px !important;
  margin: 0px !important;
}

.dataTables_scroll .dtfc-has-left{
  padding: 0px !important;
  margin: 0px !important;
}


/* Para o body */
.dtfc-fixed-left, .dtfc-fixed-right {
  background-color: #fff !important;
  z-index: 3 !important;
}

.dtfc-fixed-left{
  left: 0px;
}

/* Para o header específico */
.DTFC_LeftHeadWrapper table,
.DTFC_LeftBodyWrapper table {
  background-color: #fff !important;
}

/* Garantindo que o <th> fixo fique acima do conteúdo rolado */
th.dtfc-fixed-left {
  position: sticky;
  background-color: #f4f3f3 !important;
  z-index: 4 !important;
  box-shadow: 2px 0 5px rgba(0, 0, 0, 0.05); /* sombra sutil */
  left: 0px;
}

/* Garante fundo sólido nas colunas fixas */
.dtfc-fixed-left, .dtfc-fixed-right {
  background-color: #fff !important;
  z-index: 3 !important;
}

/* Avoid bleeding visual artifacts */
.dtfc-fixed-left tbody, .dtfc-fixed-right tbody {
  background-color: #fff !important;
}

/* Remove leftover borda ou sombra */
.dtfc-fixed-left::after, .dtfc-fixed-right::before {
  content: none !important;
}

#tabelaRelatorioPacientes th {
  font-weight: normal !important;
}

/* details-control text-center sorting_1*/


table.dataTable thead th{
  font-weight: normal !important;
  border: none;
}

#tabelaRelatorioTransf {
  border-collapse: collapse;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}


#tabelaRelatorioTransf th,
#tabelaRelatorioTransf td {
  border-color: #e7e7e8;
  padding: 8px;
}

#tabelaRelatorioTransf th {
  font-weight: normal !important;
}





.w-250{
  width: 250px;
}

.w-260{
  width: 260px;
}


div.dataTables_wrapper div.dataTables_filter,
div.dataTables_wrapper div.dataTables_length {
  margin-bottom: 20px;
}


.dataTables_wrapper div.dataTables_length {
margin-left: 20px ;
}

div.dataTables_wrapper div.dataTables_filter{
margin-right: 20px ;
}

.dataTables_wrapper div.dataTables_length input {
width: 300px;
border-radius: 5px;
}

.dataTables_wrapper div.dataTables_length select {
width: 70px;
border-radius: 5px;
text-align: right;
}

.dataTables_wrapper div.dataTables_filter input:focus,
.dataTables_wrapper div.dataTables_length select:focus {
border-color: #005A92 !important;
outline: #005A92 !important;
}

div.dataTables_wrapper div.dataTables_info,
div.dataTables_wrapper div.dataTables_paginate {
margin-top: 20px;
margin-bottom: 30px;
}

div.dataTables_wrapper div.dataTables_info {
margin-left: 25px;
}

div.dataTables_wrapper div.dataTables_paginate {
margin-right: 25px;
}

.dataTables_wrapper .dataTables_paginate .paginate_button{
border: none;
color: #666;
font-size: 13px;
}



.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
background: #e7e7e8 !important;
border: none;
color: #3a3541 !important;
opacity: 70% !important;
border-radius: 50%;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current {
background: #005A92;
border-radius: 50%;
border: none;
color: #fff !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:active {
border-color: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
background: #005A92 !important;
border-radius: 50% !important;
border: none;
color: #fff !important;
cursor: pointer;
opacity: 50% !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.previous:active,
.dataTables_wrapper .dataTables_paginate .paginate_button.next:active{
border-color: none !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.previous:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.next:hover {
background: #e7e7e8 !important;
border-radius: 10px !important;
color: #3a3541 !important;
opacity: 70% !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled,
.dataTables_wrapper .dataTables_paginate .paginate_button.previous.disabled:hover,
.dataTables_wrapper .dataTables_paginate .paginate_button.next.disabled:hover{
background: none !important;
color: #3a3541 !important;
opacity: 30% !important;
}

/***********************************************************************/

.btn-250 {
  width: 250px;
}

.btn-150 {
  width: 150px;
}

/* Acoes de pesquisa: nao comprimir texto/icone para caber na mesma linha. */
.table-filter-actions {
  flex-wrap: wrap;
  gap: .75rem;
}
.table-filter-actions > .btn,
.table-filter-actions > .btn-group {
  flex: 0 0 auto;
  margin: 0 !important;
}
.table-filter-actions .btn {
  min-height: 44px;
  white-space: nowrap;
}

/* DataTables scrollX ja cria sua propria area de rolagem. */
.table-responsive.datatable-scroll-container {
  overflow: visible;
  min-width: 0;
}
.tabela-adaptavel .dataTables_scrollBody {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scrollbar-width: auto;
}
.tabela-adaptavel .dataTables_scrollBody:focus-visible {
  outline: 2px solid #005a92;
  outline-offset: 2px;
}
.table-scroll-hint {
  font-size: .875rem;
  color: #595560;
  margin: .5rem 0;
}

@media (max-width: 767.98px) {
  .table-filter-actions {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    width: 100%;
  }
  .table-filter-actions > .btn-group {
    grid-column: 1 / -1;
  }
  .table-filter-actions .btn {
    width: 100%;
    margin: 0 !important;
  }
  .table-filter-actions .dropdown-menu {
    min-width: 100%;
  }
  div.dataTables_wrapper.tabela-adaptavel {
    padding-left: 0 !important;
    padding-right: 0 !important;
    min-width: 0;
  }
  div.dataTables_wrapper.tabela-adaptavel div.dataTables_length,
  div.dataTables_wrapper.tabela-adaptavel div.dataTables_filter,
  div.dataTables_wrapper.tabela-adaptavel div.dataTables_info,
  div.dataTables_wrapper.tabela-adaptavel div.dataTables_paginate {
    float: none;
    margin: 1rem 0;
    text-align: center;
    white-space: normal;
  }
  .tabela-adaptavel .dataTables_filter label {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem;
    width: 100%;
  }
  div.dataTables_wrapper.tabela-adaptavel .dataTables_filter input {
    flex: 1 1 160px;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    min-height: 44px;
  }
  .tabela-adaptavel .dataTables_length select {
    min-height: 44px;
  }
  .tabela-adaptavel .dataTables_paginate > span {
    display: inline-flex;
    flex-wrap: wrap;
    justify-content: center;
  }
}

/* Para o tamanho do botão de largura total na versão mobile */
.btn-full-width-mobile {
  width: 100%; /* Largura total */
}


.table th,
.table td {
  vertical-align: middle; /* Alinha verticalmente o conteúdo das células */
}

/* Classes para definir a largura das colunas em percentagem */
.col-3-p {
  width: 3%;
}

.col-5-p {
  width: 5%;
}

.col-10-p {
  width: 10%;
}

.col-15-p {
  width: 15%;
}

.col-20-p {
  width: 20%;
}

.col-25-p {
  width: 25%;
}

.col-30-p {
  width: 30%;
}

.col-35-p {
  width: 35%;
}

.col-40-p {
  width: 40%;
}

.col-45-p {
  width: 45%;
}

.col-50-p {
  width: 50%;
}

.col-55-p {
  width: 55%;
}

.col-60-p {
  width: 60%;
}

.col-65-p {
  width: 65%;
}

.col-70-p {
  width: 70%;
}

.col-75-p {
  width: 75%;
}

.col-80-p {
  width: 80%;
}

.col-85-p {
  width: 85%;
}

.col-30-f {
  width: 30px;
}


.col-acoes {
  width: 50px;
  text-align: center;
}

.col-center {
  text-align: center;
}

.col-left {
  text-align: left;
}

.col-right {
  text-align: right;
}



.no-bullet {
  list-style-type: none;
  margin: 0;
  padding: 0;
  text-align: left;
}

.no-margin{
  margin: 0;
  padding: 0;
  text-align: left;
}

.margin-10{
  margin: 10px;
  padding: 0;
  text-align: left;
}

.pula-linha{
  padding-top: 1.5rem !important;
}

/******************************************************/

/* Cor do hover */
.select2-container .select2-selection--single:hover,
.select2-container--open .select2-selection--single:hover {
    background-color: #005A92; /* Cor desejada */
}

/* Cursor quando desabilitado */
.select2-container--disabled .select2-selection--single {
    cursor: default !important; /* Cursor normal */
}

.select2-results__option:hover {
  background-color: #005A92; /* Cor desejada */
  color: #fff; /* Cor do texto para destacar */
}


.select2-results__option[aria-selected=true]:hover,
.select2-results__option[aria-selected=false]:hover {
    background-color: #005A92 !important; /* Cor de fundo desejada */
    color: #fff !important; /* Cor do texto desejada */
}


.select2-container--default .select2-results__option[aria-selected=true]:first-child,
.select2-container--default .select2-results__option[aria-selected=false]:first-child {
    background-color: #005A92 !important; /* Cor de fundo desejada */
    color: #fff !important; /* Cor do texto desejada */
}

.select2-container--default .select2-results__option[aria-selected=true] {
  background-color: #005A92 !important; /* Cor de fundo desejada */
  color: #fff !important; /* Cor do texto desejada */
}

/************************************************************/

.cursor-none {
  cursor: default;
}

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

.spinner {
  display: flex; /* Adicionado para usar o flexbox */
  justify-content: center; /* Centraliza horizontalmente */
  position: absolute; /* Tornar o spinner posicionado absolutamente */
  transform: translate(-50%, -50%); /* Centralizar completamente */
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  border-top: 2px solid #005A92;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

.spinner-alert {
  display: inline-block;
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  border-top: 2px solid #005A92;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-left: 10px; /* Ajuste o espaço entre o spinner e o texto da mensagem conforme necessário */
  vertical-align: middle; /* Alinhar verticalmente com o texto da mensagem */
}



.spinner-large {
  display: inline-block;
  border: 2px solid #fff;
  border-top: 2px solid #005A92;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-left: 10px; /* Ajuste o espaço entre o spinner e o texto da mensagem conforme necessário */
  width: 150px; /* tamanho maior */
  height: 150px; /* tamanho maior */
  border-width: 4px; /* borda maior */
}

.spinner-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(255, 255, 255, 0.8);
  display: flex;
  justify-content: center;
  padding-top: 80px;
  z-index: 1000; /* Certifique-se de que esteja acima da tabela */
}

/*******************************************************************/

/* Estilos para inputs e selects obrigatórios */
.form-floating-outline input[required]:not([type="password"]),
.form-floating-outline select[required] {
    padding-right: 40px; /* Espaço para o asterisco */
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="red" viewBox="0 0 24 24"><text x="50%" y="50%" text-anchor="middle" dy=".3em" font-size="18">*</text></svg>');
    background-repeat: no-repeat;
    background-position: calc(100% - 10px) center; /* Centralizar verticalmente e afastar da borda direita */
    background-size: 25px; /* Tamanho do asterisco */
}

/* Posiciona o asterisco antes do ícone nativo do calendário. */
.form-floating-outline input[type="date"][required] {
  padding-right: 1rem;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="red" viewBox="0 0 24 24"><text x="50%" y="50%" text-anchor="middle" dy=".3em" font-size="18">*</text></svg>');
  background-repeat: no-repeat;
  background-position: calc(100% - 42px) center;
  background-size: 25px;
}

.form-floating-outline input[type="date"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  flex: 0 0 auto;
  margin: 0;
  padding: 2px;
  width: 22px;
  height: 22px;
}

/* Classe para ocultar o asterisco */
.form-floating-outline input.hide-asterisk::after,
.form-floating-outline password.hide-asterisk::after,
.form-floating-outline select.hide-asterisk::after{
  content: none; /* Não exibir conteúdo após o input */
}

.disabled-btn-transf {
  pointer-events: none; /* Impede que o botão seja clicável */
  cursor: not-allowed; /* Altera o cursor para not-allowed */
}

/* Esconder as setas do input number */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

input[type=number] {
  -moz-appearance: textfield;
}

#cpf_alert a {
  text-decoration: underline; /* Remover o sublinhado padrão */
}

#cpf_alert a:hover {
  text-decoration: none; /* Adicionar sublinhado ao passar o mouse */
  color: crimson;
}

#cpf_warning a {
  text-decoration: underline; /* Remover o sublinhado padrão */
}

#cpf_warning a:hover {
  text-decoration: none; /* Adicionar sublinhado ao passar o mouse */
  color: #FFC107;;
}

#cpf_alert_det a {
  text-decoration: underline; /* Remover o sublinhado padrão */
}

#cpf_alert_det a:hover {
  text-decoration: none; /* Adicionar sublinhado ao passar o mouse */
  color: crimson;
}

#email_alert a {
  text-decoration: underline; /* Remover o sublinhado padrão */
}

#email_alert a:hover {
  text-decoration: none; /* Adicionar sublinhado ao passar o mouse */
  color: crimson;
}




.filtro {
  padding: 0 20 0 20;
  display: flex;
  flex-wrap: wrap; /* Permite que os itens quebrem linha se necessário */
  justify-content: right; /* Centraliza horizontalmente */
  align-items: center; /* Centraliza verticalmente */
}

.filtro .form-control,
.filtro .btn {
  height: 38px; /* Define a altura */
  padding: 0.375rem 0.75rem; /* Ajusta o padding */
  font-size: 0.875rem; /* Ajusta o tamanho da fonte */
  line-height: 1.5; /* Centraliza o texto verticalmente */
}


.tooltip {
  z-index: 1050; /* Certifique-se de que o tooltip está acima de outros elementos */
}

.alert-primary .form-check-input {
  margin-right: 6px;
}

.read-term-link {
  text-decoration: underline;
  cursor: pointer;
}

.read-term-link:hover {
  text-decoration: none;
}

/* Aplica o asterisco aos campos Select2 marcados como obrigatórios */
.select2-container.required::after {
  content: '*';           /* O conteúdo do pseudo-elemento é o asterisco */
  color: red;             /* Cor vermelha para destacar que é um campo obrigatório */
  position: absolute;     /* Posicionamento absoluto dentro do contêiner relativo */
  right: 8px;             /* Posiciona à direita, com uma pequena margem */
  top: 0;                 /* Alinha ao topo */
  bottom: 0;              /* Alinha à base (estica para preencher a altura) */
  margin: auto;           /* Centraliza verticalmente */
  font-size: 16px;        /* Tamanho do texto */
  height: 20px;           /* Altura necessária para a centralização vertical */
  line-height: 20px;      /* Altura da linha para centralização do texto */
}

/* Garantindo que o contêiner do Select2 tenha posição relativa */
.select2-container {
  position: relative;
}

/* Adiciona um asterisco aos campos obrigatórios do Select2 */
.select2-container--default .select2-selection--single .select2-required:before {
  content: "*";
  color: red;
  padding-right: 4px;
}

/* Garante que o asterisco seja exibido mesmo quando o Select2 está aberto */
.select2-container--open .select2-selection--single .select2-required:before {
  content: "*";
  color: red;
  padding-right: 4px;
}



.card-filter {
  -ms-flex: 1 1 auto;
      flex: 1 1 auto;
  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
  color: var(--bs-card-color);
}

.spinner-overlay-card {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.75);
  z-index: 10;
  display: flex;
  justify-content: center;
  border-radius: 0.5rem;
}

.spinner-large {
  width: 200px;
  height: 200px;
  border: 6px solid #ddd;
  border-top: 6px solid #005A92;
  border-radius: 50%;
  margin-top: 250px;
  animation: spin-big 1s linear infinite;
}

@keyframes spin-big {
  to { transform: rotate(360deg); }
}

/* Reduzir o espaço interno que está desalinhando */
.paciente-detalhe-container {
  padding-left: 1rem;
  padding-right: 1rem;
  width: 100%;
  margin: 0; /* Garante que não centralize */
}

/* Opcional: ajusta layout flexível para manter alinhamento */
.paciente-detalhe-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
}

.spinner-centralizado {
    width: 1.5rem;
    height: 1.5rem;
    border: 0.2em solid #005A92;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border .75s linear infinite;
    display: inline-block;
    vertical-align: middle;
}

@keyframes spinner-border {
    to { transform: rotate(360deg); }
}

/*****************************************************/

.btn-icon-toggle {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50%;
    padding: 0;
    border: 1px solid #005A92;
    color: #005A92;
    background-color: transparent;
    font-weight: bold;
    line-height: 1;
    text-align: center;
}

.btn-icon-toggle:hover {
    box-shadow: none !important;
    background-color: none !important;
    color: #427842 !important;
    border-color: #427842 !important;
}

.btn-icon-toggle:active,
.btn-icon-toggle:focus {
    box-shadow: none !important;
    background-color: none !important;
    border-color: #427842 !important;
}

/*******************************************************************/
/*   Menu lateral: nomes longos de submenu em duas linhas          */
/*   (o tema corta com reticencias e nomes como "Beneficios -      */
/*   lista complementar" ficavam ilegiveis)                        */
/*******************************************************************/

.menu-vertical .menu-sub .menu-item .menu-link > div:not(.badge) {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.2;
}
