/* Searchable native select enhancement: the real select is retained for form posting. */
.searchable-select { display: block; position: relative; min-width: 0; width: 100%; }
.searchable-select > select { position: absolute !important; inset: 0; width: 100%; height: 100%;
  opacity: 0; pointer-events: none; z-index: -1; }
.searchable-select-input { box-sizing: border-box; width: 100%; min-width: 0; height: 46px;
  padding: 10px 34px 10px 14px; border: 1px solid #cbd8e9; border-radius: 9px;
  background: #fff; color: #0c244c; font: inherit; font-size: inherit; cursor: text;
  appearance: none; }
.searchable-select:after { content: ''; position: absolute; right: 15px; top: 43%;
  width: 8px; height: 8px; border-right: 2px solid #163663; border-bottom: 2px solid #163663;
  transform: rotate(45deg); pointer-events: none; }
.searchable-select.open:after { transform: rotate(225deg); top: 50%; }
.searchable-select-input:focus { outline: none; border-color: #2787e3;
  box-shadow: 0 0 0 3px rgba(39,135,227,.12); }
.searchable-select-list { display: none; position: absolute; left: 0; right: 0; top: calc(100% + 4px);
  z-index: 9000; max-height: 280px; overflow-y: auto; background: white;
  border: 1px solid #bed0e7; border-radius: 10px; box-shadow: 0 8px 25px rgba(10,34,70,.16); }
.searchable-select.open .searchable-select-list { display: block; }
.searchable-select-option, .searchable-select-empty { display: block; padding: 9px 12px;
  line-height: 1.4; white-space: normal; color: #15345e; cursor: pointer; }
.searchable-select-option:hover, .searchable-select-option.active { background: #e8f3ff; }
.searchable-select-option[aria-selected=true] { font-weight: 700; }
.searchable-select-empty { color: #7789a1; cursor: default; }
.searchable-disabled .searchable-select-input { opacity: .65; cursor: not-allowed; background: #f4f6fa; }
