/**
 * Caixa de seleção com pesquisa (assets/js/escolha.js): botão com o valor
 * escolhido e, aberto, um painel com o campo de busca e a lista.
 * Vale no site (dentro de .filtros) e no painel (dentro de .irb-editor); cada
 * lugar tem as suas variáveis de cor, daí os dois nomes em cada var().
 * Pedido com Setup::escolha().
 */

.escolha {
	--escolha-linha: var(--c-linha, var(--irb-linha, #cbd5e1));
	--escolha-acao: var(--c-acao, var(--irb-vermelho, #c2171b));
	--escolha-suave: var(--c-texto-suave, var(--irb-suave, #64748b));
	--escolha-fundo: var(--c-fundo-suave, #f1f5f9);

	position: relative;
	width: 100%;
}

.escolha,
.escolha * {
	box-sizing: border-box;
}

.escolha [hidden] {
	display: none !important;
}

/* O <select> fica no lugar, invisível: é ele que vai no formulário e é nele que o navegador
   ancora o aviso de campo obrigatório. */
.escolha .escolha__nativo {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	min-height: 0;
	height: 1px;
	margin: 0;
	padding: 0;
	border: 0;
	opacity: 0;
	pointer-events: none;
}

.escolha .escolha__botao {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.5rem;
	width: 100%;
	margin: 0;
	border: 1px solid var(--escolha-linha);
	background: #fff;
	color: inherit;
	font: inherit;
	line-height: 1.4;
	text-align: left;
	cursor: pointer;
}

.escolha .escolha__botao::after {
	content: "";
	flex: none;
	width: 0.45em;
	height: 0.45em;
	margin: -0.2em 0.15em 0;
	border: solid currentColor;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

.escolha .escolha__botao:disabled {
	opacity: 0.6;
	cursor: default;
}

.escolha .escolha__botao:focus-visible,
.escolha--aberta .escolha__botao {
	border-color: var(--escolha-acao);
	box-shadow: 0 0 0 2px rgb(194 23 27 / 15%);
	outline: none;
}

.escolha__valor {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.escolha__painel {
	position: absolute;
	top: calc(100% + 0.25rem);
	left: 0;
	z-index: 50;
	width: 100%;
	min-width: 14rem;
	padding: 0.5rem;
	border: 1px solid var(--escolha-linha);
	border-radius: 0.5rem;
	background: #fff;
	box-shadow: 0 0.5rem 1.5rem rgb(15 23 42 / 18%);
}

.escolha .escolha__busca {
	width: 100%;
	max-width: none;
	min-height: 0;
	margin: 0;
	padding: 0.45rem 0.6rem;
	border: 1px solid var(--escolha-linha);
	border-radius: 0.375rem;
	background: #fff;
	box-shadow: none;
	color: inherit;
	/* 16px ou mais: o iPhone não aproxima a tela ao focar. */
	font: inherit;
	font-size: max(1rem, 16px);
	line-height: 1.4;
}

.escolha .escolha__busca:focus {
	border-color: var(--escolha-acao);
	box-shadow: 0 0 0 2px rgb(194 23 27 / 15%);
	outline: none;
}

.escolha .escolha__lista {
	max-height: 16rem;
	margin: 0.5rem 0 0;
	padding: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	list-style: none;
}

.escolha .escolha__opcao {
	margin: 0;
	padding: 0.4rem 0.6rem;
	border-radius: 0.375rem;
	line-height: 1.35;
	cursor: pointer;
}

.escolha .escolha__opcao--ativa {
	background: var(--escolha-fundo);
}

.escolha .escolha__opcao[aria-selected="true"] {
	color: var(--escolha-acao);
	font-weight: 600;
}

.escolha .escolha__opcao[aria-disabled="true"] {
	color: var(--escolha-suave);
	cursor: default;
}

.escolha .escolha__vazio {
	margin: 0.5rem 0 0;
	padding: 0.4rem 0.6rem;
	color: var(--escolha-suave);
}

/* ── No site: como os outros campos dos filtros ──────────────────────────── */

.filtros .escolha__botao {
	padding: var(--e-2) var(--e-3);
	border-radius: var(--raio);
}

.filtros .escolha__painel {
	font-size: var(--t-sm);
}

/* ── No painel: como os outros campos da tela de edição ──────────────────── */

.irb-editor .escolha__botao {
	min-height: 2.375rem;
	padding: 0.5rem 0.75rem;
	border-radius: 0.5rem;
	font-size: 0.875rem;
}

.irb-editor .escolha__painel {
	font-size: 0.875rem;
}

.irb-editor .escolha .escolha__busca {
	font-size: 0.875rem;
}
