/* Genus Dental — Select2 + flatpickr theme (matches the Tailwind form fields). Loaded only on pages with forms. */

/* ---------------- Select2 ---------------- */
.select2-container { font-family: inherit; }
.select2-container--default .select2-selection--single {
  display: flex;
  align-items: center;
  height: auto;
  min-height: 46px;
  padding: 0 2.5rem 0 .875rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  font-size: .875rem;
  outline: none;
  transition: box-shadow .15s, border-color .15s;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  padding: 0;
  line-height: 1.25rem;
  color: #1e293b;
}
.select2-container--default .select2-selection--single .select2-selection__placeholder { color: #94a3b8; }
.select2-container--default .select2-selection--single .select2-selection__arrow {
  top: 0;
  right: .75rem;
  width: 1rem;
  height: 100%;
}
.select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: 0;
  width: 10px;
  height: 10px;
  margin: -5px 0 0 -5px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath fill='%23084334' d='M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: transform .15s;
}
.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border: 0;
  transform: rotate(180deg);
}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single {
  box-shadow: 0 0 0 2px #084334;
}
.select2-container--default.select2-container--open.select2-container--below .select2-selection--single,
.select2-container--default.select2-container--open.select2-container--above .select2-selection--single {
  border-radius: .75rem;
}

/* Compact variant (booking sidebars on doctor / treatment pages) */
.select2-container.s2-sm .select2-selection--single { min-height: 38px; padding-left: .75rem; font-size: .75rem; }
.select2-container.s2-sm .select2-selection--single .select2-selection__rendered { line-height: 1rem; }
.select2-container.s2-sm .select2-results__option { font-size: .75rem; padding: .5rem .75rem; }

/* Dropdown */
.select2-container--open .select2-dropdown {
  border: 1px solid #e2e8f0;
  border-radius: .75rem;
  overflow: hidden;
  box-shadow: 0 12px 32px -8px rgba(15, 23, 42, .22);
}
.select2-container--open .select2-dropdown--below { margin-top: 6px; }
.select2-container--open .select2-dropdown--above { margin-top: -6px; }
.select2-search--dropdown { padding: .5rem; }
.select2-container--default .select2-search--dropdown .select2-search__field {
  padding: .5rem .75rem;
  border: 1px solid #e2e8f0;
  border-radius: .5rem;
  font-size: .875rem;
  outline: none;
}
.select2-container--default .select2-search--dropdown .select2-search__field:focus { border-color: #084334; box-shadow: 0 0 0 1px #084334; }
.select2-container--default .select2-results > .select2-results__options { max-height: 280px; }
.select2-results__option { padding: .6rem .875rem; font-size: .875rem; color: #334155; }
.select2-container--default .select2-results__option--selected { background: #f0fdf4; color: #06372b; font-weight: 700; }
.select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: #084334; color: #fff; }

/* Error state (app.js puts .field-error on the visible box) */
.select2-container--default .select2-selection--single.field-error { border-color: #e11d48; }

/* ---------------- flatpickr ---------------- */
input.fp-alt {
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23084334' d='M128 0c17.7 0 32 14.3 32 32V64H288V32c0-17.7 14.3-32 32-32s32 14.3 32 32V64h48c26.5 0 48 21.5 48 48v48H0V112C0 85.5 21.5 64 48 64H96V32c0-17.7 14.3-32 32-32zM0 192H448V464c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V192zm64 80v32c0 8.8 7.2 16 16 16h32c8.8 0 16-7.2 16-16V272c0-8.8-7.2-16-16-16H80c-8.8 0-16 7.2-16 16z'/%3E%3C/svg%3E") right .875rem center / 14px no-repeat;
  padding-right: 2.5rem !important;
  cursor: pointer;
}
input.fp-alt.active { box-shadow: 0 0 0 2px #084334; }

.flatpickr-calendar {
  font-family: inherit;
  border-radius: 1rem;
  box-shadow: 0 0 0 1px #e2e8f0, 0 16px 36px -10px rgba(15, 23, 42, .28);
}
.flatpickr-calendar.arrowTop::before, .flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before, .flatpickr-calendar.arrowBottom::after { display: none; }
.flatpickr-calendar.open { margin-top: 6px; }
.flatpickr-calendar.arrowBottom.open { margin-top: -6px; }

.flatpickr-months { padding-top: 6px; }
.flatpickr-months .flatpickr-month { height: 40px; color: #06372b; fill: #06372b; }
.flatpickr-current-month { font-size: 1rem; }
.flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-current-month input.cur-year { font-weight: 800; }
.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month { top: 6px; fill: #084334; }
.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg { fill: #16a34a; }
span.flatpickr-weekday { color: #64748b; font-weight: 700; font-size: 11px; }

.flatpickr-day { border-radius: .6rem; font-weight: 600; color: #1e293b; }
.flatpickr-day:hover, .flatpickr-day:focus { background: #f0fdf4; border-color: #f0fdf4; }
.flatpickr-day.today { border-color: #16a34a; }
.flatpickr-day.today:hover, .flatpickr-day.today:focus { background: #f0fdf4; border-color: #16a34a; color: #06372b; }
.flatpickr-day.selected, .flatpickr-day.selected:hover, .flatpickr-day.selected:focus {
  background: #084334;
  border-color: #084334;
  color: #fff;
}
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay,
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color: #cbd5e1; }
.flatpickr-day.fp-closed, .flatpickr-day.fp-closed:hover { color: #fda4af; text-decoration: line-through; }

.fp-legend {
  padding: .5rem .75rem .65rem;
  border-top: 1px solid #f1f5f9;
  font-size: 11px;
  font-weight: 600;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.fp-legend::before { content: ''; width: 8px; height: 8px; border-radius: 9999px; background: #fda4af; }
