/* =========================================
   Select2 com aparência Bootstrap 5
   (altura, borda, foco, disabled, validação)
   ========================================= */

/* Variáveis próximas do BS5 (fallback se não existir) */
:root{
  --s2-bs5-height: calc(1.5em + .75rem + 2px); /* input padrão */
  --s2-bs5-padding-y: .375rem;
  --s2-bs5-padding-x: .75rem;
  --s2-bs5-border-radius: .375rem;
}

/* Container ocupa 100% quando usado com .w-100 ou em col */
.select2-container{ width: 100% !important; }

/* ========== Single ========== */
.select2-container .select2-selection--single{
  height: var(--s2-bs5-height);
  padding: 0;
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: var(--bs-border-radius, var(--s2-bs5-border-radius));
  background-color: var(--bs-body-bg, #fff);
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.select2-container .select2-selection--single .select2-selection__rendered{
  line-height: calc(var(--s2-bs5-height) - 2px);
  padding-left: var(--bs-input-padding-x, var(--s2-bs5-padding-x));
  padding-right: calc(var(--bs-input-padding-x, var(--s2-bs5-padding-x)) + 1.75rem); /* espaço da seta */
  color: var(--bs-body-color, #212529);
}

.select2-container .select2-selection--single .select2-selection__placeholder{
  color: var(--bs-secondary-color, #6c757d);
}

.select2-container .select2-selection--single .select2-selection__arrow{
  height: calc(var(--s2-bs5-height) - 2px);
  right: .5rem;
}

.select2-container .select2-selection--single .select2-selection__clear{
  margin-right: 2rem;
}

/* Foco (igual input BS5) */
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
  border-color: var(--bs-primary, #0d6efd);
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
}

/* Disabled */
.select2-container--default.select2-container--disabled .select2-selection--single{
  background-color: var(--bs-secondary-bg, #e9ecef);
  opacity: 1;
  cursor: not-allowed;
}

/* ========== Multiple ========== */
.select2-container .select2-selection--multiple{
  min-height: var(--s2-bs5-height);
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: var(--bs-border-radius, var(--s2-bs5-border-radius));
  background-color: var(--bs-body-bg, #fff);
  padding: .25rem .25rem; /* parecido com form-control */
  transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out;
}

.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple{
  border-color: var(--bs-primary, #0d6efd);
  box-shadow: 0 0 0 .25rem rgba(13,110,253,.25);
}

.select2-container .select2-selection--multiple .select2-selection__choice{
  background-color: var(--bs-secondary-bg, #e9ecef);
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: .25rem;
  padding: .15rem .5rem;
  margin-top: .25rem;
  margin-left: .25rem;
  color: var(--bs-body-color, #212529);
}

.select2-container .select2-selection--multiple .select2-selection__choice__remove{
  margin-right: .35rem;
  border-right: 0;
}

/* Caixa de busca dentro do multiple */
.select2-container .select2-selection--multiple .select2-search__field{
  margin-top: .25rem;
  margin-left: .25rem;
  padding: .15rem .25rem;
  font-family: inherit;
}

/* Disabled (multiple) */
.select2-container--default.select2-container--disabled .select2-selection--multiple{
  background-color: var(--bs-secondary-bg, #e9ecef);
  cursor: not-allowed;
}

/* ========== Dropdown ========== */
.select2-container--default .select2-dropdown{
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: var(--bs-border-radius, var(--s2-bs5-border-radius));
  box-shadow: var(--bs-box-shadow, 0 .5rem 1rem rgba(0,0,0,.15));
  overflow: hidden;
}

.select2-container--default .select2-search--dropdown .select2-search__field{
  border: 1px solid var(--bs-border-color, #ced4da);
  border-radius: var(--bs-border-radius, var(--s2-bs5-border-radius));
  padding: var(--s2-bs5-padding-y) var(--s2-bs5-padding-x);
  outline: 0;
}

.select2-container--default .select2-results__option{
  padding: .375rem .75rem;
}

.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable{
  background-color: var(--bs-primary, #0d6efd);
  color: #fff;
}

.select2-container--default .select2-results__option--selected{
  background-color: rgba(13,110,253,.10);
}

/* ========== Estados de validação (BS5) ========== */
/* Se você colocar is-valid / is-invalid no select original, o Select2 fica com a mesma borda */
select.is-valid + .select2-container .select2-selection{
  border-color: var(--bs-success, #198754) !important;
}
select.is-valid + .select2-container--focus .select2-selection,
select.is-valid + .select2-container--open .select2-selection{
  box-shadow: 0 0 0 .25rem rgba(25,135,84,.25) !important;
}

select.is-invalid + .select2-container .select2-selection{
  border-color: var(--bs-danger, #dc3545) !important;
}
select.is-invalid + .select2-container--focus .select2-selection,
select.is-invalid + .select2-container--open .select2-selection{
  box-shadow: 0 0 0 .25rem rgba(220,53,69,.25) !important;
}

/* Placeholder/clear alinhados */
.select2-container--default .select2-selection--single .select2-selection__rendered{
  display: flex;
  align-items: center;
}
