/* core/static/core/css/finplus-forms.css */
/* FINPLUS FORMS – sem pré-definições de largura
   Mantém compatibilidade com classes já existentes .finsy-form */

.finsy-form .form-check {
  margin-top: .15rem;
}

.finsy-form .form-label {
  margin-bottom: .35rem;
  font-weight: 600;
}

.finsy-form .card-body {
  padding-left: 1rem;
  padding-right: 1rem;
}

.finsy-form input[type="text"],
.finsy-form input[type="number"],
.finsy-form input[type="email"],
.finsy-form input[type="tel"],
.finsy-form input[type="date"],
.finsy-form input[type="search"],
.finsy-form select,
.finsy-form textarea {
  min-width: 0;
}

/* Blindagem visual do campo Data e demais widgets do formulário:
   mantém o mesmo recorte arredondado dos outros campos do FinPlus. */
.finsy-form .form-control,
.finsy-form .form-select,
.finsy-form textarea.form-control,
.finsy-form input[type="text"],
.finsy-form input[type="number"],
.finsy-form input[type="email"],
.finsy-form input[type="tel"],
.finsy-form input[type="date"],
.finsy-form input[type="search"],
.finsy-form select,
.finsy-form textarea {
  border-radius: .5rem !important;
}

.finsy-form input[type="email"] {
  text-transform: none !important;
}

/* Select2/cliente em formulários financeiros:
   evita que razão social + CNPJ estoure a linha e empurre botões laterais. */
.finsy-form .select2-container {
  min-width: 0 !important;
  max-width: 100% !important;
}

.finsy-form .select2-container .select2-selection--single {
  min-width: 0 !important;
  overflow: hidden !important;
}

.finsy-form .select2-container .select2-selection__rendered {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.finsy-form .select2-container + .btn,
.finsy-form .select2-container + a.btn,
.finsy-form .select2-container + button.btn {
  flex: 0 0 auto;
}

/* Correção FinPlus: campo Pessoa/Cliente com texto longo não pode quebrar layout financeiro. */
.finsy-form .finplus-pessoa-toolbar,
#finLancForm .finplus-pessoa-toolbar {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .35rem;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.finsy-form .finplus-pessoa-toolbar .finplus-pessoa-select,
#finLancForm .finplus-pessoa-toolbar .finplus-pessoa-select {
  min-width: 0 !important;
  width: 100% !important;
}

.finsy-form .finplus-pessoa-toolbar.finplus-pessoa-has-value,
#finLancForm .finplus-pessoa-toolbar.finplus-pessoa-has-value {
  grid-template-columns: minmax(0, 1fr);
}

.finsy-form .finplus-pessoa-toolbar.finplus-pessoa-has-value #btnPessoaRapida,
#finLancForm .finplus-pessoa-toolbar.finplus-pessoa-has-value #btnPessoaRapida {
  display: none !important;
}

.finsy-form .finplus-pessoa-toolbar .select2-container,
#finLancForm .finplus-pessoa-toolbar .select2-container {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.finsy-form .finplus-pessoa-toolbar .select2-selection__rendered,
#finLancForm .finplus-pessoa-toolbar .select2-selection__rendered {
  display: block !important;
  max-width: 100% !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}



/* Select2 base fallback — evita que o <select> original apareça abaixo do campo quando o CSS externo falha ou demora a carregar. */
select.select2-hidden-accessible,
select.js-pessoa-ajax.select2-hidden-accessible {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

select.js-pessoa-ajax[data-fp-select2-hidden="1"] {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* Select2 AJAX de Pessoa — mantém o X de limpar e o nome selecionado na mesma linha. */
.select2-container.finplus-pessoa-select2,
.input-group .select2-container.finplus-pessoa-select2,
.finplus-pessoa-select .select2-container.finplus-pessoa-select2,
.finplus-pessoa-toolbar .select2-container.finplus-pessoa-select2 {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.select2-container.finplus-pessoa-select2 .select2-selection--single {
  height: calc(1.5em + .6rem + 2px) !important;
  min-height: calc(1.5em + .6rem + 2px) !important;
  border: 1px solid #b3c0cc !important;
  border-radius: .5rem !important;
  background-color: #fff !important;
  padding: 0 .5rem !important;
  display: flex !important;
  align-items: center !important;
  overflow: hidden !important;
}

.select2-container.finplus-pessoa-select2 .select2-selection--single .select2-selection__rendered {
  display: flex !important;
  align-items: center !important;
  gap: .35rem !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: 100% !important;
  padding: 0 1.45rem 0 0 !important;
  line-height: 1.2 !important;
  color: #212529 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

.select2-container.finplus-pessoa-select2 .select2-selection--single .select2-selection__clear {
  position: static !important;
  float: none !important;
  order: -1 !important;
  flex: 0 0 auto !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 .15rem 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  line-height: 1 !important;
  color: #212529 !important;
  background: transparent !important;
}

.select2-container.finplus-pessoa-select2 .select2-selection--single .select2-selection__placeholder {
  color: #6c757d !important;
}

.select2-container.finplus-pessoa-select2 .select2-selection--single .select2-selection__arrow {
  top: 0 !important;
  right: .35rem !important;
  height: 100% !important;
}
