.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--secondary);
  box-shadow: 0 0 0 .25rem rgba(var(--secondary-rgb), .25);
}

.form-check-input:checked {
  background-color: var(--secondary);
  border-color: var(--secondary);
}

.form-check:not(.form-switch) {
  padding-left: 1rem;

  & label {
    padding-left: .5em;
    user-select: none;
    -webkit-user-select: none;
  }
}

.form-check:not(.form-switch) .form-check-input {
  margin-left: -1rem;
}

.form-floating .ts-control {
  padding-top: 1.5rem;
  padding-bottom: .5rem;
}

.form-select-sm .ts-control {
  padding-block: .25rem;
}

.ts-wrapper.enhanced-select.focus .ts-dropdown .dropdown-input,
.ts-wrapper.enhanced-select.focus .ts-control,
.ts-wrapper.ajax-select.focus .ts-dropdown .dropdown-input,
.ts-wrapper.ajax-select.focus .ts-control {
  border-color: var(--secondary);
  box-shadow: 0 0 0 .25rem rgba(var(--secondary-rgb), .25);
}

.ajax-select {
  min-width: 250px;
}

.form-control:not(.search-input),
.form-select:not(.form-select-sm),
.ts-control {
  border-width: 0 !important;
  border-bottom-width: 1px !important;
  background-color: var(--neutral-semi-light);
  --bs-body-bg: var(--neutral-semi-light);
}

.form-floating {
  --bs-body-bg: var(--neutral-semi-light);
}

.form-floating.form-floating textarea {
  height: 10em;
}

@media (max-width: 768px) {

  .form-control,
  .form-select:not(.form-select-sm),
  .ts-control {
    padding: .56rem .75rem;
  }
}

.search-container {
  position: relative;
}

.search-input {
  padding-left: 35px;
}

.search-icon {
  position: absolute;
  top: 50%;
  left: 15px;
  transform: translateY(-50%);
  color: #888;
}

.input-group-text {
  border-top: 0;
  border-right: 0;
}

/* ── htmx loading / spinner states ── */

/* Form overlay while processing */
form[hx-post].htmx-request,
form[hx-put].htmx-request,
form[hx-patch].htmx-request,
form[hx-delete].htmx-request {
  position: relative;
  pointer-events: none;
}

form[hx-post].htmx-request::after,
form[hx-put].htmx-request::after,
form[hx-patch].htmx-request::after,
form[hx-delete].htmx-request::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, .55);
  z-index: 10;
  border-radius: var(--bs-border-radius);
}

/* Submit-button spinner */
form.htmx-request [type="submit"] {
  pointer-events: none;
  opacity: .75;
}

form.htmx-request [type="submit"]::after {
  content: "";
  display: inline-block;
  width: .85em;
  height: .85em;
  margin-left: .4em;
  vertical-align: -0.1em;
  border: .15em solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: htmx-spin .6s linear infinite;
}

@keyframes htmx-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Autocomplete */
.autocomplete-dropdown {
  display: none;
  z-index: 1050;
  max-height: 220px;
  overflow-y: auto;
  top: 100%;
  border: 1px solid #dee2e6;
  border-radius: 0.375rem;
  background: #fff;
}
.autocomplete-dropdown.show {
  display: block;
}
.autocomplete-dropdown .list-group-item {
  cursor: pointer;
}
.autocomplete-dropdown .list-group-item:hover {
  background-color: #f8f9fa;
}