/* Reva Select — searchable dropdown (see assets/js/reva-select.js) */

.reva-sel { position: relative; width: 100%; }
.reva-sel__native { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.reva-sel__btn {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  width: 100%; min-height: 42px; padding: 8px 12px;
  border: 1.5px solid var(--reva-line, #E3E5E1); border-radius: 9px;
  background: #fff; color: var(--reva-ink, #202D2C);
  font-family: inherit; font-size: 14px; line-height: 1.3; text-align: left;
  cursor: pointer; box-sizing: border-box;
  transition: border-color .18s, box-shadow .18s;
}
.reva-sel__btn:hover { border-color: var(--reva-coral, #39B7CE); }
.reva-sel.is-open .reva-sel__btn,
.reva-sel__btn:focus-visible { outline: none; border-color: var(--reva-coral, #39B7CE); box-shadow: 0 0 0 3px rgba(57,183,206,.15); }
.reva-sel__value { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.reva-sel__caret { flex: none; color: var(--reva-muted, #7D8885); transition: transform .18s; }
.reva-sel.is-open .reva-sel__caret { transform: rotate(180deg); }

.reva-sel__panel {
  /* position:fixed (set by JS) so the panel is never clipped by a
     sidebar or sheet that has overflow:hidden / auto. */
  position: fixed; z-index: 200000;
  min-width: 200px; max-width: calc(100vw - 24px);
  padding: 8px; border: 1px solid var(--reva-line, #E3E5E1); border-radius: 12px;
  background: #fff; box-shadow: 0 12px 32px rgba(32,45,44,.14);
}
.reva-sel__panel[hidden] { display: none; }

.reva-sel__search {
  width: 100%; height: 38px; padding: 0 12px; margin-bottom: 6px;
  border: 1.5px solid var(--reva-line, #E3E5E1); border-radius: 8px;
  background: #fff; font-family: inherit; font-size: 14px; color: var(--reva-ink, #202D2C);
  box-sizing: border-box;
}
.reva-sel__search:focus { outline: none; border-color: var(--reva-coral, #39B7CE); }

.reva-sel__list { list-style: none; margin: 0; padding: 0; max-height: 240px; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--reva-line, #E3E5E1) transparent; }
.reva-sel__list::-webkit-scrollbar { width: 8px; }
.reva-sel__list::-webkit-scrollbar-thumb { background: var(--reva-line, #E3E5E1); border-radius: 99px; }
.reva-sel__opt {
  padding: 9px 10px; border-radius: 8px;
  font-size: 14px; line-height: 1.35; color: var(--reva-ink, #202D2C);
  cursor: pointer; overflow-wrap: anywhere;
}
.reva-sel__opt.is-active { background: var(--reva-bg, #F2F5F4); }
.reva-sel__opt.is-selected { color: var(--reva-coral-dark, #2A93A6); font-weight: 600; }
.reva-sel__empty { margin: 8px 4px; color: var(--reva-muted, #7D8885); font-size: 13px; }

@media (max-width: 640px) {
  .reva-sel__list { max-height: 50vh; }
}