body{ background:#f6f8fb; }
.card-header{ font-weight:600; }
.js-datatable{ width:100% }

/* Normaliza campos de formulário (inputs, selects, datas) */
.form-control,
.form-select {
  min-height: 42px;          /* mesma altura */
  padding: .5rem .75rem;     /* mesmo padding */
  font-size: 1rem;
  line-height: 1.5;
  border-radius: .375rem;    /* 6px */
}

/* Ajustes visuais do select do Bootstrap para parecer com input */
.form-select {
  background-position: right .75rem center;
  background-size: 16px 12px;
  -webkit-appearance: none;  /* padroniza em navegadores webkit */
  -moz-appearance: none;
  appearance: none;
}

/* Select múltiplo e com size>1 não deve ter seta grande */
.form-select[multiple],
.form-select[size]:not([size="1"]) {
  background-image: none;
  padding-right: .75rem;
  min-height: auto;
}

/* Campos de data/tempo costumam vir menores em alguns browsers */
input[type="date"].form-control,
input[type="datetime-local"].form-control,
input[type="time"].form-control {
  min-height: 42px;
}

/* Labels e espaçamento */
.form-label { font-weight: 500; }

/* Filtros de busca (locações) */
.filter-form .form-label { margin-bottom: .25rem; }
.filter-form .btn { min-height: 42px; }
.filter-form .input-date { min-width: 170px; } /* evita data “sumir” */
@media (max-width: 991.98px) {
  .filter-form .input-date { width: 100%; }   /* datas ocupam toda a coluna no mobile */
}

/* ====== Forms mais limpos e consistentes ====== */
.card {
  border-radius: .6rem;
  box-shadow: 0 1px 2px rgba(16,24,40,.04);
}

/* Títulos dos cards */
.card-header {
  background: #f8fafc;
  border-bottom: 1px solid #eef2f7;
  font-size: 1rem;
  padding: .75rem 1rem;
}

/* Form padrão */
.form-grid .form-label {
  font-weight: 600;
  color: #334155;         /* slate-700 */
  margin-bottom: .25rem;
}
.form-grid .form-control,
.form-grid .form-select {
  min-height: 44px;
  font-size: .95rem;
}

.form-grid .hint {
  font-size: .8rem;
  color: #64748b;
}

/* Linhas do form com respiro */
.form-grid .row + .row { margin-top: .35rem; }

/* Barra de ações à direita */
.form-actions {
  display: flex; gap: .5rem; justify-content: flex-end;
}

/* Filtros (card) */
.filter-form .card-body { padding: 1rem; }
.filter-form .form-label { margin-bottom: .25rem; }
.filter-form .btn { min-height: 40px; }
.filter-form .input-date { min-width: 180px; }

/* Ajustes responsivos */
@media (max-width: 991.98px){
  .filter-form .input-date { width: 100%; min-width: 0; }
}

/* Mantém inputs alinhados e evita "saltos" no filtro */
.filter-form .card-body { padding: 1rem 1rem 1.25rem; }
.filter-form .form-label { margin-bottom: .25rem; font-weight: 600; }
.filter-form .form-select,
.filter-form .form-control { min-height: 44px; }
.filter-form .input-date { min-width: 180px; }

@media (max-width: 767.98px){
  .filter-form .input-date { min-width: 0; width: 100%; }
}

/* Corrige resets que removem a imagem da .btn-close */
.modal .btn-close{
  background-image: var(--bs-btn-close-bg) !important;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1em 1em;
  opacity: .6;
}
.modal .btn-close:hover{ opacity: .9; }
