.select2-container {
  max-width: 100%;
}

/* ── Select skeleton (before WFUiSelect init) ───────────────────────────── */

@keyframes wf-ui-select-skeleton-pulse {
  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.55;
  }
}

.form-group:has(
  > select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months)
) {
  position: relative;
}

.form-group:has(
    > select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months)
  )
  > select {
  border: 0;
  height: 32px;
  margin: 0;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 1;
}

.form-group:has(
    > select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months)
  )::after {
  animation: wf-ui-select-skeleton-pulse 1.2s ease-in-out infinite;
  background: var(--design-bg-subtle);
  border: 1px solid var(--design-border);
  border-radius: var(--design-border-radius);
  box-sizing: border-box;
  content: "";
  display: block;
  height: 32px;
  width: 100%;
}

select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months) {
  animation: wf-ui-select-skeleton-pulse 1.2s ease-in-out infinite;
  appearance: none;
  background: var(--design-bg-subtle);
  border: 1px solid var(--design-border);
  border-radius: var(--design-border-radius);
  box-sizing: border-box;
  color: transparent;
  min-height: 32px;
  pointer-events: none;
}

.form-group:has(
    > select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months)
  )
  select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months) {
  animation: none;
  background: transparent;
  border: 0;
}

.dark_theme
  .form-group:has(
    > select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months)
  )::after,
.dark_theme select:not(.wf-ui-select-ready):not(.select2-hidden-accessible):not(.flatpickr-monthDropdown-months) {
  background: var(--design-bg-muted);
  border-color: var(--design-border);
}

/* ── Field labels (Figma Group 656) ───────────────────────────────────── */

.form-group > label,
.form-group > .form-label {
  color: var(--design-text-primary);
  display: inline-block;
  font-size: 14px;
  font-weight: 600;
  line-height: 21px;
  margin: 0 0 4px;
}

.select2-container .select2-selection--single {
  min-height: 32px;
  height: 32px;
}

.select2-container--default .select2-selection--single {
  background-color: var(--design-bg-surface);
  border: 1px solid var(--design-border);
  border-radius: var(--design-border-radius);
  box-sizing: border-box;
  box-shadow: none;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--design-text-primary);
  font-size: 14px;
  font-weight: 400;
  line-height: 21px;
  padding: 5px 32px 6px 8px;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__placeholder {
  color: var(--design-text-muted);
  font-weight: 400;
}

.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  border-color: var(--design-primary);
  border-radius: var(--design-border-radius);
  outline: 0;
}

/* Поле залишається окремим від списку — не «зрізаємо» кути при відкритті */
.select2-container--default.select2-container--open.select2-container--below
  .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--below
  .select2-selection--multiple,
.select2-container--default.select2-container--open.select2-container--above
  .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--above
  .select2-selection--multiple {
  border-radius: var(--design-border-radius);
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow {
  align-items: center;
  display: flex;
  height: 24px;
  justify-content: center;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  width: 24px;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  b {
  display: none;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__arrow
  .wf-ui-select-chevron {
  color: var(--design-text-primary);
  display: block;
  line-height: 0;
  transition: transform 0.15s ease;
}

.select2-container--default.select2-container--open
  .select2-selection--single
  .select2-selection__arrow
  .wf-ui-select-chevron {
  transform: rotate(180deg);
}

/* Перебити legacy-стилі plugins/bs-select/bs-select.css */
.select2-container--default
  .select2-selection--single
  .select2-selection__rendered,
.select2-container .select2-selection--single .select2-selection__rendered {
  line-height: 21px;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__clear {
  align-items: center;
  color: var(--design-text-secondary);
  display: inline-flex;
  font-size: 0;
  height: 100%;
  justify-content: center;
  line-height: 0;
  margin-right: 28px;
  width: 28px;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__clear
  span {
  display: none;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__clear::before {
  background: currentColor;
  content: "";
  display: block;
  height: 14px;
  mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.05 3.05a.75.75 0 0 1 1.06 0L8 6.94l3.89-3.89a.75.75 0 1 1 1.06 1.06L9.06 8l3.89 3.89a.75.75 0 1 1-1.06 1.06L8 9.06l-3.89 3.89a.75.75 0 1 1-1.06-1.06L6.94 8 3.05 4.11a.75.75 0 0 1 0-1.06Z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3.05 3.05a.75.75 0 0 1 1.06 0L8 6.94l3.89-3.89a.75.75 0 1 1 1.06 1.06L9.06 8l3.89 3.89a.75.75 0 1 1-1.06 1.06L8 9.06l-3.89 3.89a.75.75 0 1 1-1.06-1.06L6.94 8 3.05 4.11a.75.75 0 0 1 0-1.06Z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  width: 14px;
}

.select2-container--default
  .select2-selection--single
  .select2-selection__clear:hover {
  color: var(--design-danger);
}

/* ── Multiple ──────────────────────────────────────────────────────────── */

.select2-container--default .select2-selection--multiple {
  align-items: center;
  background-color: var(--design-bg-surface);
  border: 1px solid var(--design-border);
  border-radius: var(--design-border-radius);
  box-sizing: border-box;
  display: flex;
  flex-wrap: wrap;
  height: auto;
  min-height: 32px;
  padding: 3px 8px;
  transition:
    background-color 0.15s ease,
    border-color 0.15s ease;
}

.select2-container--default.select2-container--focus
  .select2-selection--multiple,
.select2-container--default.select2-container--open
  .select2-selection--multiple {
  border-color: var(--design-primary);
  outline: 0;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__rendered {
  align-items: center;
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  gap: 4px 5px;
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__choice {
  align-items: center;
  background-color: var(--design-bg-subtle);
  border: 1px solid var(--design-border);
  border-radius: var(--design-border-radius);
  box-sizing: border-box;
  color: var(--design-text-primary);
  display: inline-flex;
  font-size: 14px;
  gap: 6px;
  line-height: 20px;
  margin: 0;
  max-width: 100%;
  min-height: 24px;
  overflow: hidden;
  padding: 1px 8px;
  position: relative;
  white-space: nowrap;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__display {
  overflow: hidden;
  text-overflow: ellipsis;
}

.select2-container--default .select2-selection__choice__remove,
.select2-container--default .select2-selection__clear {
  color: var(--design-danger);
}

.select2-container--default .select2-selection__choice__remove:hover,
.select2-container--default .select2-selection__choice__remove:focus,
.select2-container--default .select2-selection__clear:hover {
  background: transparent;
  border-color: transparent;
  color: var(--design-primary);
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__remove {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 0;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 16px;
  font-weight: 600;
  height: 20px;
  justify-content: center;
  line-height: 18px;
  margin: 0;
  order: 2;
  padding: 0;
  position: static;
  width: 14px;
}

.select2-container--default
  .select2-selection--multiple
  .select2-selection__clear {
  font-weight: 700;
  height: 20px;
  line-height: 20px;
  margin: 0 4px 0 0;
  order: -1;
  padding: 0;
}

.select2-container--default
  .select2-selection--multiple
  .select2-search--inline {
  display: inline-flex;
  flex: 1 1 120px;
  min-width: 80px;
}

.select2-container--default
  .select2-selection--multiple
  .select2-search--inline
  .select2-search__field {
  color: var(--design-text-primary);
  font-size: 14px;
  height: 24px;
  line-height: 24px;
  margin: 0;
  padding: 0;
  width: 100% !important;
}

.select2-container--default
  .select2-selection--multiple
  .select2-search--inline
  .select2-search__field::placeholder {
  color: var(--design-text-muted);
}

.select2-container--default.select2-container--disabled
  .select2-selection--single,
.select2-container--default.select2-container--disabled
  .select2-selection--multiple {
  background: var(--design-bg-subtle);
  border-color: var(--design-border);
  cursor: not-allowed;
}

.select2-container--default.select2-container--disabled
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--design-text-secondary);
}

.select2-container--default.select2-container--disabled
  .select2-selection--multiple
  .select2-selection__choice {
  background: transparent;
  border-color: transparent;
  color: var(--design-text-secondary);
}

.select2-container--default.select2-container--disabled
  .select2-selection__clear,
.select2-container--default.select2-container--disabled
  .select2-selection__choice__remove {
  display: none;
}

/* ── Dropdown (Figma Group 108 — пошук + список як одне ціле) ─────────── */

.select2-dropdown {
  background-color: var(--design-bg-surface);
  border: 0 !important;
  border-radius: var(--design-border-radius) !important;
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.15),
    0 1px 3px 1px rgba(0, 0, 0, 0.15);
  box-sizing: border-box;
  display: block;
  overflow: hidden;
  z-index: 1082;
}

/* Select2 за замовчуванням «пришиває» dropdown до поля — повертаємо окремий блок */
.select2-dropdown.select2-dropdown--below {
  border-top: 0 !important;
  border-top-left-radius: var(--design-border-radius) !important;
  border-top-right-radius: var(--design-border-radius) !important;
  margin-top: 4px;
}

.select2-dropdown.select2-dropdown--above {
  border-bottom: 0 !important;
  border-bottom-left-radius: var(--design-border-radius) !important;
  border-bottom-right-radius: var(--design-border-radius) !important;
  margin-bottom: 4px;
}

.select2-container--default .select2-search--dropdown {
  background: var(--design-bg-surface);
  display: block;
  padding: 0 !important;
  position: relative;
}

.select2-container--default .select2-search--dropdown::after {
  background: var(--design-border);
  bottom: 0;
  content: "";
  height: 1px;
  left: 0;
  position: absolute;
  right: 0;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  color: var(--design-text-primary);
  font-size: 14px;
  line-height: 16px;
  margin: 0;
  min-height: 32px;
  outline: none;
  padding: 8px 16px;
  width: 100% !important;
}

.select2-container--default
  .select2-search--dropdown
  .select2-search__field::placeholder {
  color: var(--design-text-muted);
}

.select2-container--default .select2-search--dropdown.select2-search--hide {
  display: none;
}

.select2-container--default .select2-results {
  background: var(--design-bg-surface);
  display: block;
  margin: 0;
  padding: 5px 0;
}

.select2-container--default .select2-results > .select2-results__options {
  max-height: 240px;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 4px;
  white-space: nowrap;
}

.select2-results__option {
  border-radius: var(--design-border-radius);
  color: var(--design-text-primary);
  font-size: 14px;
  line-height: 16px;
  margin: 0;
  min-height: 32px;
  padding: 8px;
}

.select2-container--default .select2-results__option--selected {
  background-color: var(--design-neutral-200);
  color: var(--design-text-primary);
}

.select2-container--default .select2-results__option--selected:hover {
  background-color: var(--design-neutral-300) !important;
}

.select2-container--default
  .select2-results__option--highlighted.select2-results__option--selectable {
  background-color: var(--design-bg-subtle);
  color: var(--design-text-primary);
}

.select2-container--default .select2-results__option--disabled {
  color: var(--design-text-muted);
}

/* ── Фільтри таблиць (layout multiple) ─────────────────────────────────── */

.wf_filters .select2-container--default .select2-selection--multiple {
  display: flex;
  align-items: center;
}

.wf_filters
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__rendered {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 4px 5px;
  width: 100%;
}

.wf_filters
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice {
  height: 24px;
  line-height: 20px;
  margin: 0;
}

/* ── Помилка (form-group.has-error / is-invalid) ─────────────────────────── */

.has-error .select2-container--default .select2-selection--single,
.has-error .select2-container--default .select2-selection--multiple,
.is-invalid + .select2-container--default .select2-selection--single,
.is-invalid + .select2-container--default .select2-selection--multiple,
select.is-invalid + .select2-container--default .select2-selection--single,
select.is-invalid + .select2-container--default .select2-selection--multiple {
  border-color: var(--design-danger);
}

.has-error > label,
.has-error > .form-label,
.form-group:has(select.is-invalid) > label,
.form-group:has(select.is-invalid) > .form-label {
  color: var(--design-danger);
}

.has-error .help-block,
.has-error .invalid-feedback,
.form-group:has(select.is-invalid) .help-block,
.form-group:has(select.is-invalid) .invalid-feedback {
  color: var(--design-danger);
  display: block;
  font-size: 12px;
  font-weight: 600;
  line-height: 12px;
  margin: 2px 0 0 8px;
}

/* ── Layout / page overrides ───────────────────────────────────────────── */

.modal .select2-container {
  width: 100% !important;
}

#wf_modal_add_reminder .select2-dropdown {
  min-width: auto !important;
}

#wf_modal_add_reminder .select2-results__options {
  scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
  scrollbar-width: thin;
}

#wf_modal_add_reminder .select2-results__options::-webkit-scrollbar {
  width: 6px;
}

#wf_modal_add_reminder .select2-results__options::-webkit-scrollbar-track {
  background: transparent;
}

#wf_modal_add_reminder .select2-results__options::-webkit-scrollbar-thumb {
  background-color: rgba(255, 255, 255, 0.2);
  border-radius: 3px;
}

#wf_modal_add_reminder
  .select2-results__options::-webkit-scrollbar-thumb:hover {
  background-color: rgba(255, 255, 255, 0.3);
}

.page_route_document_edit .select2.select2-container,
.page_route_documents .select2.select2-container,
.page_cars .select2.select2-container,
.page_crm_agreements .select2.select2-container,
.page_crm_contacts .select2.select2-container,
.page_crm_leads .select2.select2-container,
.page_crm_organization .select2.select2-container,
.page_crm_contact .select2.select2-container,
.page_crm_lead .select2.select2-container,
.page_crm_agreement .select2.select2-container,
.page_crm_agreements_funnel .select2.select2-container,
.page_crm_mails .select2.select2-container,
.page_crm_tasks .select2.select2-container,
.page_drivers .select2.select2-container,
.page_crm_report .select2.select2-container {
  width: 100% !important;
}

.wf_btn_crm_contacts_collapse_filters,
.wf_btn_crm_agreements_collapse_filters,
.wf_btn_crm_mails_collapse_filters,
.wf_btn_crm_tasks_collapse_filters,
.wf_btn_crm_commercial_offers_collapse_filters {
  display: inline-block;
  margin: -2px 0 0 7px;
}

.modal_edit_crm_agreement .modal_add_crm_contact_phones_wrapper {
  margin: 0 0 1rem 0;
}

.wf_select_dropdown_min_width {
  min-width: 10px !important;
}

.mail_page_signature_field_wrapper .select2-container {
  width: 100% !important;
}

.mail_page_signature_field_wrapper_flex {
  display: flex;
  gap: 8px;
}

.mail_page_signature_field_wrapper {
  width: 100%;
}

.wf_btn_mail_page_signature_set_default {
  white-space: nowrap;
}

.edit_mail_page_to_email_field_wrapper .select2-container,
.edit_mail_signature_page_default_field_wrapper .select2-container {
  width: 100% !important;
}

.edit_mail_page_to_email_field_wrapper
  .select2-container--default
  .select2-selection--multiple {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 5px;
  min-height: 32px;
  padding: 3px 8px;
}

.edit_mail_page_to_email_field_wrapper
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__rendered {
  display: flex;
  padding: 0;
}

.edit_mail_page_to_email_field_wrapper
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice {
  height: 24px;
  line-height: 20px;
  margin: 0;
}

.edit_mail_page_to_email_field_wrapper
  .select2-container--default
  .select2-search--inline {
  flex: 1 1 auto;
  min-width: 120px;
}

.edit_mail_page_to_email_field_wrapper
  .select2-container--default
  .select2-search--inline
  .select2-search__field {
  line-height: normal;
  margin-left: 0;
  margin-top: 0;
  width: 100% !important;
}

.page_crm
  .crm_item_edit_details
  .select2-container--disabled
  .select2-selection--single {
  background-color: var(--design-bg-surface);
  cursor: default;
}

.modal_add_crm_contact_phone_select2_dropdown {
  width: 225px !important;
}

.modal_edit_min .select2-container .select2-selection--single {
  min-height: 32px;
  height: 32px;
}

.modal_edit_min .select2-container .select2-selection--multiple {
  min-height: 32px;
}

.page_road_trains.modal-open .select2-results__option,
.page_conference.modal-open .select2-results__option {
  min-height: 28px;
}

.page_crm_commercial_offers .select2-selection__choice,
.page_crm_contacts .select2-selection__choice,
.page_crm_organizations .select2-selection__choice {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.select2-container--open .select2-dropdown {
  min-width: 200px;
}

.page_conference_by_blocks .select2-container--open .select2-dropdown {
  min-width: 210px;
}

.page_crm_leads .select2-container--open .select2-dropdown,
.page_crm_contacts .select2-container--open .select2-dropdown,
.page_crm_agreements .select2-container--open .select2-dropdown,
.page_crm_tasks .select2-container--open .select2-dropdown {
  min-width: 100%;
}

/* ── Dark theme ──────────────────────────────────────────────────────────── */

.dark_theme .select2-container--default .select2-selection--single,
.dark_theme .select2-container--default .select2-selection--multiple {
  background: var(--design-bg-surface);
  border-color: var(--design-border);
}

.dark_theme
  .select2-container--default.select2-container--focus
  .select2-selection--single,
.dark_theme
  .select2-container--default.select2-container--open
  .select2-selection--single,
.dark_theme
  .select2-container--default.select2-container--focus
  .select2-selection--multiple,
.dark_theme
  .select2-container--default.select2-container--open
  .select2-selection--multiple {
  border-color: var(--design-button-hover);
}

.dark_theme
  .select2-container--default.select2-container--disabled
  .select2-selection--single,
.dark_theme
  .select2-container--default.select2-container--disabled
  .select2-selection--multiple {
  background: var(--design-bg-muted);
  border-color: var(--design-border);
}

.dark_theme
  .select2-container--default
  .select2-selection--single
  .select2-selection__rendered,
.dark_theme
  .select2-container--default
  .select2-selection--multiple
  .select2-search--inline
  .select2-search__field {
  color: var(--design-text-primary);
}

.dark_theme
  .select2-container--default.select2-container--disabled
  .select2-selection--single
  .select2-selection__rendered,
.dark_theme .form-control:disabled,
.dark_theme .form-control[readonly],
.dark_theme .form-select:disabled {
  color: var(--design-text-secondary) !important;
}

.dark_theme .select2-dropdown {
  background: var(--design-bg-surface);
  box-shadow:
    0 4px 24px rgba(0, 0, 0, 0.35),
    0 1px 3px 1px rgba(0, 0, 0, 0.25);
}

.dark_theme
  .select2-container--default
  .select2-search--dropdown
  .select2-search__field {
  background: transparent !important;
  border: 0 !important;
  color: var(--design-text-primary);
}

.dark_theme .select2-container--default .select2-results__option--selected {
  background: var(--design-accent-cream);
  color: var(--design-text-primary);
}

.dark_theme
  .select2-container--default
  .select2-results__option--highlighted.select2-results__option--selectable {
  background: var(--design-bg-subtle);
  color: var(--design-text-primary);
}

.dark_theme
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice {
  background: var(--design-bg-muted);
  border-color: var(--design-border);
  color: var(--design-text-primary);
}

.dark_theme
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__remove {
  color: var(--design-text-muted);
}

.dark_theme
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__remove:hover,
.dark_theme
  .select2-container--default
  .select2-selection--multiple
  .select2-selection__choice__remove:focus {
  background: transparent;
  color: var(--design-text-primary);
}

.dark_theme
  .select2-container--default
  .select2-selection--single
  .select2-selection__clear {
  color: var(--design-text-secondary);
}

.dark_theme .has-error .select2-container--default .select2-selection--single,
.dark_theme .has-error .select2-container--default .select2-selection--multiple,
.dark_theme
  .is-invalid
  + .select2-container--default
  .select2-selection--single,
.dark_theme
  .is-invalid
  + .select2-container--default
  .select2-selection--multiple,
.dark_theme
  select.is-invalid
  + .select2-container--default
  .select2-selection--single,
.dark_theme
  select.is-invalid
  + .select2-container--default
  .select2-selection--multiple {
  border-color: var(--design-danger);
}

@media (max-width: 991px) {
  .select2-container--open .select2-dropdown {
    min-width: 300px;
  }
}
