/*
 * Select2 multiplo: o item ja escolhido SOME da lista.
 *
 * Par deste arquivo: public/assets/js/select2-multiplo.js (o botao "selecionar
 * todos" e o texto da caixa vazia) e o bloco em init-select2.js que compoe
 * dropdownCssClass a partir de data-ocultar-selecionados.
 *
 * O Select2 4.1.0-rc.0 parou de REMOVER a opcao escolhida no modo multiplo:
 * agora ela fica no <li> com .select2-results__option--selected, e o tema pinta
 * de cinza (assets/css/app.css:10872,10889 e custom.min.css:451). Nao existe
 * opcao `hideSelected` nesta versao -- CSS e' a unica saida. Quem ja entrou
 * aparece como chip logo acima do campo; repetir o nome na lista so' faz a
 * pessoa procurar quem falta no meio de quem ja entrou.
 *
 * ESCOPADO na classe que init-select2.js poe no dropdown, e nao global, porque
 * em select SIMPLES o destaque do item atual continua sendo informacao util --
 * e o sistema tem centenas deles. Pelo mesmo motivo a regra nao pode mudar de
 * casa para app.css/custom.min.css, onde viraria global.
 *
 * Duas limitacoes conhecidas da versao, sem saida por CSS:
 *  - a navegacao por setas ainda percorre os itens escondidos, porque o plugin
 *    mantem .--selectable neles (os campos alvo sao de mouse, dentro de modais);
 *  - com <optgroup>, um grupo inteiro escolhido deixaria o cabecalho orfao --
 *    nenhum campo alvo usa grupo (quem monta grupo e' outro helper).
 */
.select2-ocultar-selecionados .select2-results__option--selected {
    display: none !important;
}

/*
 * Com "Selecionar todos" a lista fica INTEIRA escondida e sobraria uma caixa
 * branca vazia, sem explicacao nenhuma.
 *
 * O texto entra por attr() porque isto e' um .css estatico, sem lang():
 * select2-multiplo.js escreve data-vazio no <ul> na abertura do dropdown.
 *
 * O :not(:has(.select2-results__message)) impede que este aviso apareca EM CIMA
 * do "Nenhum resultado encontrado" de uma busca que nao casa com nada -- aquele
 * <li> nao tem --selectable, entao sem esta guarda os dois conviveriam.
 *
 * :has() degrada para a caixa vazia de hoje em navegador antigo.
 */
.select2-ocultar-selecionados .select2-results__options[data-vazio]:not(:has(.select2-results__message)):not(:has(.select2-results__option--selectable:not(.select2-results__option--selected)))::after {
    color: var(--vz-secondary-color, #878a99);
    content: attr(data-vazio);
    display: block;
    padding: 6px 12px;
}

/*
 * O botao mora na linha do rotulo. btn-link herda o azul do tema; o tamanho
 * menor evita que ele dispute atencao com o proprio rotulo do campo.
 */
.btnSelecionarTodosSelect2 {
    font-size: .75rem;
    text-decoration: none;
}

.btnSelecionarTodosSelect2:disabled {
    /* sem opcao nenhuma para marcar: fica visivel, mas sem convidar ao clique */
    opacity: .5;
}
