/**
 * Web Panchayat - Modern Searchable Select Theme (Tom Select Customization)
 * Clean, accessible, mobile-ready styling matching our brand (#174f3a).
 */

.ts-wrapper {
  width: 100% !important;
  font-family: inherit !important;
  position: relative !important;
  box-sizing: border-box !important;
}

/* Neutralize when applied to a select with .form-control */
.ts-wrapper.form-control {
  border: none !important;
  padding: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Master Single-Select Box */
.ts-wrapper.single .ts-control {
  background-color: #ffffff !important;
  background-image: none !important; /* Disables any default Tom Select background gradient/arrow */
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 8px !important;
  padding: 0 38px 0 14px !important; /* Dedicated 38px space on right for arrow/spinner */
  min-height: 44px !important;
  height: 44px !important;
  max-height: 44px !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important; /* Strict single line: NEVER wrap to second line */
  align-items: center !important;
  color: #0f172a !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04) !important;
  cursor: pointer !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease !important;
  box-sizing: border-box !important;
  position: relative !important;
  overflow: hidden !important;
}

/* Hover & Focus State */
.ts-wrapper.single:hover .ts-control {
  border-color: #94a3b8 !important;
}

.ts-wrapper.focus .ts-control,
.ts-wrapper.single.focus .ts-control {
  border-color: #174f3a !important;
  box-shadow: 0 0 0 3px rgba(23, 79, 58, 0.14) !important;
  outline: none !important;
}

/* Selected Item inside Closed Select Box */
.ts-wrapper.single .ts-control > .item {
  color: #0f172a !important;
  font-size: 13.5px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  line-height: 44px !important;
  height: 44px !important;
  display: inline-block !important;
  flex: 0 1 auto !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  vertical-align: middle !important;
}

/* Placeholder input generated by Tom Select (dropdown_input plugin) */
.ts-wrapper.single .ts-control > input.items-placeholder {
  display: block !important;
  border: none !important;
  background: transparent !important;
  outline: none !important;
  color: #94a3b8 !important;
  font-size: 13.5px !important;
  font-weight: 500 !important;
  font-family: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
  height: 44px !important;
  line-height: 44px !important;
  width: 100% !important;
  cursor: pointer !important;
  pointer-events: none !important;
  box-shadow: none !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Hide placeholder when item is chosen */
.ts-wrapper.single.has-items .ts-control > input.items-placeholder {
  display: none !important;
}

/* Suppress all stray inputs inside .ts-control to prevent blinking cursor & height breaks */
.ts-wrapper.single .ts-control > input:not(.items-placeholder) {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  pointer-events: none !important;
  visibility: hidden !important;
}

/* Erase ALL default Tom Select border-based triangle arrows across all states */
.ts-wrapper.single .ts-control:after,
.ts-wrapper.single.dropdown-active .ts-control:after,
.ts-wrapper.single.input-active .ts-control:after,
.ts-wrapper.single:hover .ts-control:after,
.ts-wrapper.single.focus .ts-control:after {
  border: none !important;
  border-width: 0 !important;
  border-style: none !important;
  border-color: transparent !important;
  outline: none !important;
}

/* Single Crisp Vector Chevron Arrow */
.ts-wrapper.single .ts-control:after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  right: 14px !important;
  width: 14px !important;
  height: 14px !important;
  margin-top: -7px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-size: 14px 14px !important;
  background-position: center !important;
  pointer-events: none !important;
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.15s ease !important;
  transform-origin: center center !important;
}

/* Clean 180° rotation when dropdown is open */
.ts-wrapper.single.dropdown-active .ts-control:after {
  transform: rotate(180deg) !important;
  margin-top: -7px !important;
}

/* Dynamic Spinning Loader in place of Chevron Arrow */
.ts-wrapper.ts-loading .ts-control:after {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  right: 13px !important;
  width: 16px !important;
  height: 16px !important;
  margin-top: -8px !important;
  border: 2.2px solid #cbd5e1 !important;
  border-top-color: #174f3a !important;
  border-radius: 50% !important;
  background-image: none !important;
  animation: tsSpin 0.65s linear infinite !important;
  transform: none !important;
  opacity: 1 !important;
}

@keyframes tsSpin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.ts-wrapper.ts-loading .ts-control {
  background-color: #f8fafc !important;
  border-color: #94a3b8 !important;
  cursor: wait !important;
}

.ts-wrapper.ts-loading .items-placeholder {
  color: #174f3a !important;
  font-weight: 600 !important;
}

/* Disabled State */
.ts-wrapper.disabled .ts-control {
  background-color: #f8fafc !important;
  border-color: #e2e8f0 !important;
  color: #94a3b8 !important;
  cursor: not-allowed !important;
  opacity: 0.8 !important;
}

.ts-wrapper.disabled .ts-control:after {
  opacity: 0.35 !important;
}

/* Dropdown Container */
.ts-dropdown {
  position: absolute !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 8px !important;
  background: #ffffff !important;
  box-shadow: 0 12px 28px -4px rgba(0, 0, 0, 0.14), 0 8px 12px -6px rgba(0, 0, 0, 0.08) !important;
  margin-top: 4px !important;
  padding: 0 !important;
  z-index: 99999 !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  animation: tsFadeIn 0.15s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@keyframes tsFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Search input at top of dropdown (dropdown_input plugin) */
.plugin-dropdown_input .dropdown-input-wrap {
  padding: 8px 10px !important;
  border-bottom: 1px solid #e2e8f0 !important;
  background: #f8fafc !important;
  display: block !important;
}

.plugin-dropdown_input .dropdown-input {
  width: 100% !important;
  height: 36px !important;
  border: 1.5px solid #cbd5e1 !important;
  border-radius: 6px !important;
  padding: 6px 12px 6px 32px !important;
  font-size: 13px !important;
  font-family: inherit !important;
  outline: none !important;
  background-color: #ffffff !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: 10px center !important;
  color: #0f172a !important;
  box-sizing: border-box !important;
  transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
}

.plugin-dropdown_input .dropdown-input:focus {
  border-color: #174f3a !important;
  box-shadow: 0 0 0 2px rgba(23, 79, 58, 0.15) !important;
}

.ts-dropdown-content {
  max-height: 220px !important;
  overflow-y: auto !important;
  padding: 4px !important;
}

/* Dropdown Option Items */
.ts-dropdown .option {
  padding: 8px 12px !important;
  border-radius: 6px !important;
  font-size: 13.5px !important;
  color: #1e293b !important;
  cursor: pointer !important;
  transition: background-color 0.12s ease, color 0.12s ease !important;
}

.ts-dropdown .option:hover,
.ts-dropdown .option.active {
  background-color: #f0fdf4 !important;
  color: #166534 !important;
  font-weight: 600 !important;
}

.ts-dropdown .option.selected {
  background-color: #dcfce7 !important;
  color: #15803d !important;
  font-weight: 700 !important;
}

.ts-dropdown .no-results {
  padding: 14px 12px !important;
  font-size: 13px !important;
  color: #64748b !important;
  text-align: center !important;
}

/* Form Validation Error State */
.has-error .ts-control,
.form-group.has-error .ts-control {
  border-color: #dc2626 !important;
  background-color: #fef2f2 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.12) !important;
}

/* Auth Page Form specific dimensions */
.auth-form .ts-wrapper.single .ts-control {
  min-height: 48px !important;
  height: 48px !important;
  max-height: 48px !important;
  padding: 0 40px 0 14px !important;
  border-radius: 10px !important;
  font-size: 14px !important;
}

.auth-form .ts-wrapper.single .ts-control > .item,
.auth-form .ts-wrapper.single .ts-control > input.items-placeholder {
  height: 48px !important;
  line-height: 48px !important;
  font-size: 14px !important;
}

/* Filter Bar compact in Admin */
.filter-bar .ts-wrapper.single .ts-control {
  min-height: 38px !important;
  height: 38px !important;
  max-height: 38px !important;
  padding: 0 32px 0 10px !important;
  font-size: 13px !important;
}

.filter-bar .ts-wrapper.single .ts-control > .item,
.filter-bar .ts-wrapper.single .ts-control > input.items-placeholder {
  height: 38px !important;
  line-height: 38px !important;
  font-size: 13px !important;
}
