/**
 * Multiselect Dropdown Override Styles
 * High priority CSS to override Bootstrap and module defaults
 *
 * NOTE: The multiselect dropdown module generates duplicate IDs which are
 * fixed by js/duplicate-id-fix.js. Toggle button IDs get a '-toggle' suffix
 * to make them unique from their controlled dialogs.
 */

/* Ensure toggle buttons are styled regardless of ID changes */
button[data-multiselect-dropdown-toggle],
button.multiselect-dropdown__toggle {
  /* Inherit form-select styling */
}

/* Ensure dialogs are styled regardless of ID changes */
dialog[data-multiselect-dropdown-dialog],
dialog.multiselect-dropdown__dialog {
  /* Dialog styles */
}

/* Increase dropdown height */
.multiselect-dropdown__scroll {
  max-height: 400px !important;
}

@media screen and (min-width: 769px) {
  .multiselect-dropdown__scroll {
    max-height: 450px !important;
  }
}

/* Reset list styles */
.multiselect-dropdown__wrapper ul.multiselect-dropdown__list,
ul.multiselect-dropdown__list {
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
}

/* List items with border separation */
.multiselect-dropdown__wrapper ul.multiselect-dropdown__list > li.multiselect-dropdown__item,
ul.multiselect-dropdown__list > li.multiselect-dropdown__item {
  border-bottom: 1px solid #e0e0e0 !important;
  padding: 0 !important;
  margin: 0 !important;
  list-style: none !important;
  display: block !important;
}

ul.multiselect-dropdown__list > li.multiselect-dropdown__item:last-child {
  border-bottom: none !important;
}

/* Form item container - flex to reorder */
ul.multiselect-dropdown__list > li.multiselect-dropdown__item > div.form-item,
ul.multiselect-dropdown__list > li.multiselect-dropdown__item > div.js-form-item,
ul.multiselect-dropdown__list > li.multiselect-dropdown__item > .form-type-checkbox {
  display: flex !important;
  align-items: center !important;
  padding: 10px 15px !important;
  margin: 0 !important;
  flex-direction: row !important;
  justify-content: flex-start !important;
  width: 100% !important;
}

/* Checkbox - explicitly order first */
ul.multiselect-dropdown__list > li.multiselect-dropdown__item input[type="checkbox"],
ul.multiselect-dropdown__list > li.multiselect-dropdown__item .form-checkbox {
  margin-right: 10px !important;
  margin-left: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  flex-shrink: 0 !important;
  order: -1 !important;
  position: relative !important;
  float: none !important;
}

/* Label - order after checkbox */
ul.multiselect-dropdown__list > li.multiselect-dropdown__item label,
ul.multiselect-dropdown__list > li.multiselect-dropdown__item label.option {
  margin: 0 !important;
  cursor: pointer !important;
  flex: 1 !important;
  order: 1 !important;
  display: inline-block !important;
  padding: 0 !important;
  font-weight: normal !important;
}

/* Hover effect */
ul.multiselect-dropdown__list > li.multiselect-dropdown__item:hover {
  background-color: #f8f9fa !important;
}

/* Remove pseudo elements */
ul.multiselect-dropdown__list li.multiselect-dropdown__item::before,
ul.multiselect-dropdown__list li.multiselect-dropdown__item::after {
  content: none !important;
  display: none !important;
}

/* ==========================================================================
   Exposed Form Reset Button Styling
   ========================================================================== */

/* Make sure reset button is visible */
.views-exposed-form .form-actions input[type="submit"][value="Reset"],
.views-exposed-form .form-actions input[id*="reset"],
.views-exposed-form .form-actions .form-submit[value="Reset"] {
  display: inline-block !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin-left: 10px !important;
}

/* Style the reset button */
.view-egr-news .views-exposed-form .form-actions input[value="Reset"] {
  background-color: #6c757d !important;
  border-color: #6c757d !important;
  color: #fff !important;
  padding: 0.375rem 1.5rem !important;
  font-weight: 500 !important;
}

.view-egr-news .views-exposed-form .form-actions input[value="Reset"]:hover {
  background-color: #5a6268 !important;
  border-color: #545b62 !important;
}

/* ==========================================================================
   Date Range Filter Styling - Match Dropdown Filters
   ========================================================================== */

/* Date range filter wrapper - inline layout */
.view-egr-news .views-exposed-form .form-item-field-news-date-value-min,
.view-egr-news .views-exposed-form .form-item-field-news-date-value-max {
  margin-bottom: 0 !important;
  display: inline-block !important;
  width: auto !important;
  vertical-align: middle !important;
  position: relative !important;
}

/* Hide the Min and Max labels - multiple selectors for specificity */
.view-egr-news .views-exposed-form .form-item-field-news-date-value-min label,
.view-egr-news .views-exposed-form .form-item-field-news-date-value-max label,
.view-egr-news .views-exposed-form label[for="edit-field-news-date-value-min"],
.view-egr-news .views-exposed-form label[for="edit-field-news-date-value-max"],
.view-egr-news .views-exposed-form .form-item-field-news-date-value-min > label,
.view-egr-news .views-exposed-form .form-item-field-news-date-value-max > label,
.views-exposed-form .form-item-field-news-date-value-min label,
.views-exposed-form .form-item-field-news-date-value-max label {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  height: 0 !important;
  width: 0 !important;
  position: absolute !important;
  left: -9999px !important;
}

/* Add "TO" text between the date fields */
.view-egr-news .views-exposed-form .form-item-field-news-date-value-min::after {
  content: "TO" !important;
  display: inline-block !important;
  margin: 0 10px !important;
  font-weight: 600 !important;
  color: #212529 !important;
  vertical-align: middle !important;
}

/* Style date inputs to match dropdown filters */
.view-egr-news .views-exposed-form input[name="field_news_date_value[min]"],
.view-egr-news .views-exposed-form input[name="field_news_date_value[max]"] {
  width: auto !important;
  min-width: 150px !important;
  padding: 0.5rem 0.75rem !important;
  font-size: 1rem !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  color: #212529 !important;
  background-color: #fff !important;
  background-clip: padding-box !important;
  border: 1px solid #ced4da !important;
  border-radius: 0.25rem !important;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out !important;
  display: inline-block !important;
}

/* Focus state for date inputs */
.view-egr-news .views-exposed-form input[name="field_news_date_value[min]"]:focus,
.view-egr-news .views-exposed-form input[name="field_news_date_value[max]"]:focus {
  color: #212529 !important;
  background-color: #fff !important;
  border-color: #18453b !important;
  outline: 0 !important;
  box-shadow: 0 0 0 0.25rem rgba(24, 69, 59, 0.25) !important;
}

/* ==========================================================================
   All Filter Labels - Unified Styling with All Caps
   ========================================================================== */

/* Style all exposed filter labels consistently */
.view-egr-news .views-exposed-form label[for="edit-field-news-college-categories-target-id"],
.view-egr-news .views-exposed-form label[for="edit-field-news-college-department-target-id"],
.view-egr-news .views-exposed-form label[for="edit-field-news-date-value-wrapper"],
.view-egr-news .views-exposed-form .form-item--field-news-college-categories-target-id > label,
.view-egr-news .views-exposed-form .form-item--field-news-college-department-target-id > label,
.view-egr-news .views-exposed-form .js-form-item-field-news-date-value-wrapper > label,
.view-egr-news .views-exposed-form .bef-exposed-filter > label,
.view-egr-news .views-exposed-form .fieldset-legend,
.view-egr-news .views-exposed-form span.fieldset-legend,
.views-exposed-form .fieldset-legend {
  font-weight: 700 !important;
  color: #18453b !important;
  margin-bottom: 0.5rem !important;
  display: block !important;
  text-transform: uppercase !important;
  font-size: 0.875rem !important;
  letter-spacing: 0.5px !important;
}

/* Date range container - make it match the dropdown width */
.view-egr-news .views-exposed-form .bef-datepicker {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-end !important;
}

/* ==========================================================================
   Exposed Form Layout - Inline Filters with Aligned Buttons
   ========================================================================== */

/* Make exposed form items display inline */
.view-egr-news .views-exposed-form .form--inline {
  display: flex !important;
  align-items: flex-end !important;
  flex-wrap: wrap !important;
  gap: 15px !important;
}

/* Form items should be inline-block */
.view-egr-news .views-exposed-form .bef-exposed-filter,
.view-egr-news .views-exposed-form .form-item {
  display: inline-block !important;
  vertical-align: bottom !important;
  margin-bottom: 0 !important;
  margin-right: 0 !important;
}

/* ==========================================================================
   Form Actions - Align Apply/Reset Buttons with Form Fields
   ========================================================================== */

/* Make form actions inline with other form elements */
.view-egr-news .views-exposed-form .form-actions {
  display: inline-block !important;
  vertical-align: bottom !important;
  margin-bottom: 0 !important;
  margin-left: 0 !important;
}

/* Ensure Apply button aligns with form fields */
.view-egr-news .views-exposed-form .form-actions input[type="submit"],
.view-egr-news .views-exposed-form .form-actions input[value="Apply"] {
  vertical-align: bottom !important;
  margin-bottom: 0 !important;
}

/* ==========================================================================
   Mobile Responsive Styling
   ========================================================================== */

@media (max-width: 768px) {
  /* Stack form inline wrapper vertically on mobile */
  .view-egr-news .views-exposed-form .form--inline {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  /* Stack filters vertically on mobile */
  .view-egr-news .views-exposed-form .form-item,
  .view-egr-news .views-exposed-form .bef-exposed-filter {
    width: 100% !important;
    margin-bottom: 1rem !important;
    display: block !important;
  }

  /* Full width dropdowns on mobile */
  .view-egr-news .views-exposed-form .multiselect-dropdown,
  .view-egr-news .views-exposed-form .multiselect-dropdown__toggle {
    width: 100% !important;
    min-width: 100% !important;
  }

  /* Date range - stack vertically with better spacing */
  .view-egr-news .views-exposed-form .bef-datepicker {
    flex-direction: column !important;
    gap: 0 !important;
    width: 100% !important;
  }

  .view-egr-news .views-exposed-form .form-item-field-news-date-value-min,
  .view-egr-news .views-exposed-form .form-item-field-news-date-value-max {
    display: block !important;
    width: 100% !important;
    margin-bottom: 1rem !important;
  }

  /* Remove "TO" on mobile and show labels instead */
  .view-egr-news .views-exposed-form .form-item-field-news-date-value-min::after {
    display: none !important;
  }

  /* Show labels on mobile for clarity */
  .view-egr-news .views-exposed-form .form-item-field-news-date-value-min label,
  .view-egr-news .views-exposed-form .form-item-field-news-date-value-max label {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    width: auto !important;
    position: relative !important;
    left: 0 !important;
    font-weight: 600 !important;
    color: #18453b !important;
    margin-bottom: 0.5rem !important;
    font-size: 0.875rem !important;
  }

  /* Full width date inputs on mobile */
  .view-egr-news .views-exposed-form input[name="field_news_date_value[min]"],
  .view-egr-news .views-exposed-form input[name="field_news_date_value[max]"] {
    width: 100% !important;
    min-width: 100% !important;
    display: block !important;
  }

  /* Filter labels - slightly larger on mobile for readability */
  .view-egr-news .views-exposed-form label[for="edit-field-news-college-categories-target-id"],
  .view-egr-news .views-exposed-form label[for="edit-field-news-college-department-target-id"],
  .view-egr-news .views-exposed-form .fieldset-legend,
  .view-egr-news .views-exposed-form span.fieldset-legend {
    font-size: 0.9375rem !important;
  }

  /* Buttons - stack and full width on mobile */
  .view-egr-news .views-exposed-form .form-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    width: 100% !important;
  }

  .view-egr-news .views-exposed-form .form-actions input[type="submit"],
  .view-egr-news .views-exposed-form .form-actions input[value="Apply"],
  .view-egr-news .views-exposed-form .form-actions input[value="Reset"] {
    width: 100% !important;
    margin-left: 0 !important;
    padding: 0.75rem 1.5rem !important;
    font-size: 1rem !important;
  }

  /* Dropdown dialog - better mobile positioning */
  .multiselect-dropdown__dialog {
    width: 90vw !important;
    max-width: 90vw !important;
  }

  /* Increase touch targets for checkboxes on mobile */
  ul.multiselect-dropdown__list > li.multiselect-dropdown__item > div.form-item {
    padding: 12px 15px !important;
    min-height: 44px !important;
  }

  ul.multiselect-dropdown__list > li.multiselect-dropdown__item input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    margin-right: 12px !important;
  }

  ul.multiselect-dropdown__list > li.multiselect-dropdown__item label {
    font-size: 1rem !important;
    line-height: 1.5 !important;
  }
}

/* Extra small devices (phones in portrait, less than 576px) */
@media (max-width: 575px) {
  /* Reduce label font size on very small screens */
  .view-egr-news .views-exposed-form .fieldset-legend,
  .view-egr-news .views-exposed-form span.fieldset-legend,
  .view-egr-news .views-exposed-form label {
    font-size: 0.875rem !important;
  }

  /* Smaller padding for date inputs on very small screens */
  .view-egr-news .views-exposed-form input[name="field_news_date_value[min]"],
  .view-egr-news .views-exposed-form input[name="field_news_date_value[max]"] {
    padding: 0.5rem !important;
    font-size: 0.9375rem !important;
  }
}
