.table th, .table td {
  font-size: 12px; /* Reduz o tamanho da fonte */
  /* white-space: ; Impede a quebra de linha */
  padding: 5px; /* Reduz o espaçamento interno */
}

.table-title {
  font-size: 14px; /* Reduz o tamanho do título */
  font-weight: bold;
}

.card-header h5 {
  font-size: 14px; /* Reduz o tamanho do cabeçalho */
  margin-bottom: 0;
}

.panel-flat {
  padding: 10px; /* Ajusta o padding para reduzir o espaço interno */
}

.input-group, .form-control {
  font-size: 12px; /* Reduz o tamanho da fonte nos campos de entrada */
  padding: 3px; /* Ajusta o espaçamento interno */
  height: 25px; /* Ajusta a altura dos campos */
}

button {
  font-size: 12px; /* Reduz o tamanho do texto dos botões */
  padding: 5px 10px;
}

.flex-container {
  display: flex;
  flex-wrap: wrap; /* Permite que os elementos ajustem conforme o tamanho da tela */
  gap: 10px; /* Reduz a distância entre os elementos */
}

/* Oculta a radio button padrão */
input[type="radio"] {
  display: none;
}

/* Estiliza o label como um botão de radio */
input[type="radio"] + label {
  position: relative;
  padding-left: 30px;
  cursor: pointer;
  display: inline-block;
  line-height: 20px;
  font-size: 16px;
}


/* Cria o círculo externo da radio button */
input[type="radio"] + label::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  border: 2px solid #333;
  border-radius: 50%;
  background-color: white;
  transition: all 0.3s ease;
}

/* Quando a radio button está marcada */
input[type="radio"]:checked + label::before {
  background-color: #4caf50; /* Cor de fundo quando selecionado */
  border-color: #4caf50; /* Cor da borda quando selecionado */
}

/* Indicador interno da radio button */
input[type="radio"]:checked + label::after {
  content: '';
  position: absolute;
  left: 5px;
  top: 5px;
  width: 10px;
  height: 10px;
  background-color: white;
  border-radius: 50%;
  transition: all 0.3s ease;
}

/* Efeito de hover para realce */
input[type="radio"] + label:hover::before {
  border-color: #777;
}

td {
  text-align: center;
  vertical-align: middle;
}

/* Ajusta o alinhamento da radio button */
input[type="radio"] + label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px; /* Tamanho do botão */
  height: 20px;
}

/* Corrige a posição da radio dentro da célula */
.radio-container {
  display: flex;
  justify-content: center; /* Alinha horizontalmente */
  align-items: center; /* Alinha verticalmente */
}

.modal-dialog {
  max-width: 40%;  /* Define uma largura menor */
  width: 40%;  /* Ajusta a largura */
  max-height: 40%;
  height: 40%;
}

.modal-content {
  min-height: 50px; /* Define uma altura mínima */
  padding: 10px; /* Reduz o espaço interno */
}

.selected {
  background-color: #d1ecf1;
}


.swal-compact {
  font-size: 13px;
  padding: 10px;
}
.swal-icon-smaller {
  width: 60px !important;
  height: 60px !important;
  margin: 0 auto 10px auto;
}
.swal-icon-smaller {
  font-size: 30px !important;
  margin-top: 10px;
}
.swal-title-spacing {
  margin-top: 25px !important;
}
.swal2-icon-content{
  font-size: 50px !important
}
.swal2-icon{
  font-size: 20px !important
}
.is-invalid {
  border-color: red !important;}

input.error, select.error, textarea.error {
  border: 1px solid red;
  background-color: #ffecec;
}

/* Asterisco dos campos obrigatórios */
label abbr[title="Obrigatório"],
label abbr[title="required"],
label abbr[title]{
  color: red;
  text-decoration: none;   /* remove sublinhado do <abbr> */
  /*border-bottom: 0;        /* alguns temas põem border no abbr */
  /*margin-left: .25rem;*/
  font-weight: 700;        /* opcional: mais “forte” */
}

.alert-danger {
    --alert-color: red;
      font-weight: 700;
    --alert-bg: #fdecec;
    --alert-border-color: #f7a2a2;
    --alert-link-color: red;
    --alert-link-hover-color: red;
}

/* ===== Modais: rolagem vertical nas tabelas ===== */
#produtosModal .modal-table-container,
#classificacaoModal .modal-table-container {
  max-height: min(50vh, 420px);
  overflow-y: auto;
  overflow-x: auto;                 /* horizontal se necessário */
  border: 1px solid #dee2e6;
  border-radius: .25rem;
  -webkit-overflow-scrolling: touch;
}

/* Remove espaço extra dentro do contêiner rolável (modais) */
#produtosModal .modal-table-container .table,
#classificacaoModal .modal-table-container .table {
  margin-bottom: 0;
}

/* Cabeçalho fixo enquanto rola (modais) */
#produtosModal thead th,
#classificacaoModal thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 1px 0 rgba(0,0,0,.05);
}

/* ===== Tabela "Itens da nota" ===== */

/* Para funcionar bem dentro de flex */
.flex-container,
.flex-container > .card-body {
  min-width: 0; /* chave para scroll funcionar dentro do flex */
}

/* Wrapper da tabela com rolagem vertical + horizontal */
.itens-nota-wrap {
  /* altura / vertical */
  max-height: min(55vh, 520px);     /* ajuste a altura que preferir */
  overflow-y: auto;                  /* barra vertical */
  /* horizontal (mobile-first) */
  overflow-x: auto;                  /* mantém horizontal quando necessário */
  border: 1px solid #dee2e6;
  border-radius: .25rem;
  -webkit-overflow-scrolling: touch;
}

/* Evita espaço extra no fim da tabela (itens da nota) */
.itens-nota-wrap .table { margin-bottom: 0; }

/* Cabeçalho “grudado” enquanto rola (itens da nota) */
.itens-nota-wrap thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--bs-body-bg, #fff);
  box-shadow: 0 1px 0 rgba(0,0,0,.05);
}

/* --- Largura da tabela (mobile-first) ---
   Em telas menores: força min-width para habilitar scroll horizontal
   e evita que quebre o texto dentro das células. */
.itens-nota-wrap table {
  min-width: 1200px;   /* ajuste conforme quantidade de colunas */
  white-space: nowrap; /* evita quebra e garante scroll horizontal */
}

/* --- Em telas largas (≥ lg = 992px) ---
   Remove a necessidade de scroll horizontal:
   - permite a tabela ocupar 100% da largura
   - deixa quebrar texto dentro das células
   - desativa overflow-x para ocultar a barra */
@media (min-width: 992px) {
  .itens-nota-wrap {
    overflow-x: visible;            /* sem barra horizontal em tela larga */
  }
  .itens-nota-wrap table {
    min-width: 100%;
    white-space: normal;            /* pode quebrar linhas longas */
  }
}

/* Garantir overflow-x em tabelas responsivas nos cards (fallback geral) */
.card .table-responsive { overflow-x: auto; }

.btn-small-custom {
  font-size: 14px;     /* tamanho da fonte */
  padding: 1px 3px;    /* padding vertical e horizontal */
  height: 17px;        /* altura total do botão */
}

/* Reduz padding das células */
.table td, 
.table th {
  padding: 2px 4px;        /* vertical | horizontal */
  vertical-align: middle;   /* centraliza verticalmente */
  font-size: 12px;          /* reduz fonte */
}

td.vlr_numerico {
  text-align: right;
}
textarea.campo-justificativa {
  text-align: left ;
}


