/***************************************************************/
/*            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;
  width: 100%;
  width: calc(100% - 40px);
  border-bottom: 1px solid;
  border-color: #e7e7e8;
}

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

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


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

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

#tabelaPacientesPend 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;
}


#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;
}


#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;
  width: 200%;
  border-bottom: 1px solid;
  border-color: #e7e7e8;
  margin: 20px;
}


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

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


#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;
}

/* 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 */
}

/* 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_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;
  align-items: center;
  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%;
  animation: spin-big 1s linear infinite;
}

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