/* Select com busca no portal (o mesmo componente do painel: /painel/publico/js/select_busca.js).
   O painel tem estes estilos no painel.css; aqui vão com cores de reserva do portal. */
.selb { position:relative; display:block; width:100%; }
.selb__nativo { position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; margin:-1px !important; overflow:hidden !important; clip:rect(0 0 0 0) !important; white-space:nowrap; border:0 !important; }
.selb__botao { display:flex !important; align-items:center; justify-content:space-between; gap:8px; width:100%; min-height:44px; padding:10px 14px; text-align:left; cursor:pointer;
  background:#fff; border:1px solid #d1d5db; border-radius:8px; font:inherit; font-size:15px; color:#1f2937; }
.selb__botao:focus-visible { outline:3px solid var(--c-primaria, #1e7e34); outline-offset:1px; }
.selb__botao--erro { border-color:#dc2626 !important; box-shadow:0 0 0 3px rgba(220, 38, 38, .2); }
.selb__rotulo { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.selb__rotulo--vazio { color:#6b7280; }
.selb__seta { flex:none; width:0; height:0; border-left:5px solid transparent; border-right:5px solid transparent; border-top:6px solid #4b5563; }
.selb__painel { position:absolute; z-index:9500; left:0; right:0; top:calc(100% + 4px); min-width:220px; max-width:min(440px, 92vw);
  background:#fff; border:1px solid #e5e7eb; border-radius:10px; box-shadow:0 12px 32px rgba(15, 23, 42, .18); overflow:hidden; }
.selb__painel--acima { top:auto; bottom:calc(100% + 4px); }
.selb__buscaCaixa { padding:8px; border-bottom:1px solid #e5e7eb; background:#fafbfc; }
.selb__busca { width:100%; min-height:38px; padding:6px 10px; font:inherit; font-size:14px; border:1px solid #d1d5db; border-radius:8px; }
.selb__lista { max-height:260px; overflow-y:auto; }
.selb__opcao { padding:10px 14px; font-size:14.5px; cursor:pointer; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.selb__opcao:hover, .selb__opcao[data-ativo] { background:var(--c-primaria-fraca, #e8f5ec); }
.selb__opcao[aria-selected="true"] { font-weight:600; background:var(--c-primaria-fraca, #e8f5ec); color:var(--c-primaria-escura, var(--c-primaria, #155d27)); }
.selb__opcao[data-off] { opacity:.5; cursor:not-allowed; }
.selb__vazio { margin:0; padding:20px; text-align:center; font-size:14px; color:#4b5563; }
@media (max-width:600px) {
  .selb__painel { position:fixed; left:12px; right:12px; max-width:none; }
  .selb__lista { max-height:45vh; }
}
.selb--copia .selb__rotulo--vazio { color:inherit; }
