/* Filtros das grades do BridgeRP. Cores e tamanhos vêm de variáveis no próprio elemento (--brpf-*). */
.bridgerp-filtro { box-sizing: border-box; color: var(--brpf-texto, #444); font-size: var(--brpf-tam, 14px); line-height: 1.4; }
.bridgerp-filtro *, .bridgerp-filtro *::before, .bridgerp-filtro *::after { box-sizing: border-box; }
.bridgerp-filtro__form { margin: 0; }
.bridgerp-filtro__painel { background: var(--brpf-fundo, #fff); border: 1px solid var(--brpf-borda, #e5e5e5); border-radius: var(--brpf-raio, 8px); padding: 16px; }
.bridgerp-filtro.is-carregando .bridgerp-filtro__painel { opacity: .6; pointer-events: none; transition: opacity .15s; }
.bridgerp-lista.is-carregando { opacity: .45; transition: opacity .15s; }
.bridgerp-filtro__total { margin: 0 0 12px; }
.bridgerp-filtro__total strong { color: var(--brpf-titulo, #111); }
.bridgerp-filtro__campo { border: 0; margin: 0 0 16px; padding: 0; min-width: 0; }
.bridgerp-filtro__titulo { display: block; padding: 0; margin: 0 0 8px; font-weight: 700; color: var(--brpf-titulo, #111); font-size: 1em; cursor: default; }
details.bridgerp-filtro__campo > summary.bridgerp-filtro__titulo { cursor: pointer; }
.bridgerp-filtro__lista { list-style: none; margin: 0; padding: 0; }
.bridgerp-filtro__lista .bridgerp-filtro__lista { padding-left: 18px; margin-top: 4px; }
.bridgerp-filtro__lista li { margin: 0 0 6px; padding: 0; }
.bridgerp-filtro__lista li[hidden] { display: none; }
.bridgerp-filtro__opcao { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.bridgerp-filtro__opcao input { margin: 0; accent-color: var(--brpf-destaque, #111); }
.bridgerp-filtro__nome { flex: 1; }
.bridgerp-filtro__n { color: #888; font-size: .85em; }
.bridgerp-filtro__opcao.is-vazio { opacity: .45; }

/* subcategorias um pouco à frente da categoria */
.bridgerp-filtro__sub[style*="--brpf-nivel"] { padding-left: calc(var(--brpf-nivel, 0) * 20px); }
.bridgerp-filtro__lista .bridgerp-filtro__lista { border-left: 1px solid var(--brpf-borda, #e5e5e5); margin-left: 6px; padding-left: 16px; }

/* categorias de cima (as que têm subcategorias ou não pertencem a nenhuma) em negrito */
.bridgerp-filtro__campo--caixas .bridgerp-filtro__raiz .bridgerp-filtro__nome, .bridgerp-filtro__campo--radio .bridgerp-filtro__raiz .bridgerp-filtro__nome, .bridgerp-filtro__campo--arvore .bridgerp-filtro__raiz .bridgerp-filtro__nome { font-weight: 700; }

/* pílulas: o input some e a etiqueta vira botão */
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__lista { display: flex; flex-wrap: wrap; gap: 6px; }
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__lista li { margin: 0; }
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__opcao { padding: 5px 12px; border: 1px solid var(--brpf-borda, #ddd); border-radius: 999px; gap: 6px; }
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__opcao input { position: absolute; opacity: 0; pointer-events: none; }
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__opcao:has(input:checked) { background: var(--brpf-destaque, #111); color: var(--brpf-destaque-texto, #fff); border-color: var(--brpf-destaque, #111); }
.bridgerp-filtro__campo--pilulas .bridgerp-filtro__opcao:has(input:checked) .bridgerp-filtro__n { color: inherit; opacity: .8; }

/* amostras de cor */
.bridgerp-filtro__campo--amostras .bridgerp-filtro__lista { display: flex; flex-wrap: wrap; gap: 10px; }
.bridgerp-filtro__campo--amostras .bridgerp-filtro__lista li { margin: 0; }
.bridgerp-filtro__campo--amostras .bridgerp-filtro__opcao input { position: absolute; opacity: 0; pointer-events: none; }
.bridgerp-filtro__amostra { width: 26px; height: 26px; border-radius: 50%; background: #ddd; border: 2px solid #fff; box-shadow: 0 0 0 1px var(--brpf-borda, #ccc); display: inline-block; }
.bridgerp-filtro__campo--amostras .bridgerp-filtro__opcao:has(input:checked) .bridgerp-filtro__amostra { box-shadow: 0 0 0 2px var(--brpf-destaque, #111); }
.bridgerp-filtro__campo--amostras .bridgerp-filtro__nome { flex: 0 1 auto; font-size: .85em; }

.bridgerp-filtro__select, .bridgerp-filtro__busca, .bridgerp-filtro__faixa input { width: 100%; padding: 8px 10px; border: 1px solid var(--brpf-borda, #ccc); border-radius: calc(var(--brpf-raio, 8px) - 2px); background: #fff; color: inherit; font: inherit; }
.bridgerp-filtro .bridgerp-filtro__busca { padding: .7em .9em; }
.bridgerp-filtro__busca-linha { display: flex; gap: 6px; }
/* largura do campo de busca (a altura vem do tamanho da letra) */
.bridgerp-filtro .bridgerp-filtro__campo--busca { width: var(--brpf-busca-larg, var(--brpf-busca-larg-campo, 100%)); max-width: 100%; }
.bridgerp-filtro--horizontal .bridgerp-filtro__campo--busca { flex: 0 0 var(--brpf-busca-larg, var(--brpf-busca-larg-campo, 100%)); }
.bridgerp-filtro__busca-linha .bridgerp-filtro__busca { flex: 1; min-width: 0; }
.bridgerp-filtro__busca-ir { flex: none; padding: 0 12px; border: 0; border-radius: calc(var(--brpf-raio, 8px) - 2px); background: var(--brpf-destaque, #111); color: var(--brpf-destaque-texto, #fff); font-size: 1.1em; cursor: pointer; }
.bridgerp-filtro__busca-site { display: none; }
.bridgerp-filtro__faixa { display: flex; gap: 8px; }
.bridgerp-filtro__faixa label { flex: 1; display: block; font-size: .85em; }
.bridgerp-filtro__faixa input { margin-top: 3px; }
.bridgerp-filtro__ver-mais { background: none; border: 0; padding: 0; color: var(--brpf-destaque, #111); text-decoration: underline; cursor: pointer; font: inherit; }

/* escolhas ativas */
.bridgerp-filtro__ativos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; }
.bridgerp-filtro__chip { display: inline-flex; gap: 6px; align-items: center; padding: 3px 10px; border-radius: 999px; background: var(--brpf-destaque, #111); color: var(--brpf-destaque-texto, #fff); text-decoration: none; font-size: .9em; }
.bridgerp-filtro__limpar { color: var(--brpf-destaque, #111); font-size: .9em; text-decoration: underline; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.bridgerp-filtro__acoes { display: none; }
.bridgerp-filtro:not(.bridgerp-filtro--auto) .bridgerp-filtro__acoes { display: block; }
.bridgerp-filtro__aplicar { width: 100%; padding: 10px 14px; border: 0; border-radius: calc(var(--brpf-raio, 8px) - 2px); background: var(--brpf-destaque, #111); color: var(--brpf-destaque-texto, #fff); font: inherit; font-weight: 600; cursor: pointer; }
.bridgerp-filtro__abrir, .bridgerp-filtro__fechar { display: none; }

/* horizontal: os campos lado a lado */
.bridgerp-filtro--horizontal .bridgerp-filtro__painel { display: flex; flex-wrap: wrap; gap: 8px 28px; align-items: flex-start; }
.bridgerp-filtro--horizontal .bridgerp-filtro__total, .bridgerp-filtro--horizontal .bridgerp-filtro__ativos { flex: 1 1 100%; margin-bottom: 0; }
.bridgerp-filtro--horizontal .bridgerp-filtro__campo { flex: 0 1 auto; min-width: 150px; margin-bottom: 8px; }
.bridgerp-filtro--horizontal .bridgerp-filtro__acoes { flex: 1 1 100%; }

/* celular: gaveta que desliza por cima da página */
@media (max-width: 640px) {
  .bridgerp-filtro--gaveta .bridgerp-filtro__abrir { display: inline-block; width: 100%; padding: 10px 14px; border: 1px solid var(--brpf-borda, #ddd); border-radius: var(--brpf-raio, 8px); background: var(--brpf-fundo, #fff); color: var(--brpf-titulo, #111); font: inherit; font-weight: 600; cursor: pointer; margin-bottom: 12px; }
  .bridgerp-filtro--gaveta .bridgerp-filtro__form { position: fixed; inset: 0; z-index: 99999; background: rgba(0, 0, 0, .45); display: none; }
  .bridgerp-filtro--gaveta.is-aberto .bridgerp-filtro__form { display: block; }
  .bridgerp-filtro--gaveta .bridgerp-filtro__painel { position: absolute; left: 0; right: 0; bottom: 0; max-height: 88vh; overflow: auto; border-radius: 16px 16px 0 0; border: 0; padding-bottom: 24px; display: block; }
  .bridgerp-filtro--gaveta .bridgerp-filtro__fechar { display: block; position: absolute; top: 8px; right: 12px; background: none; border: 0; font-size: 28px; line-height: 1; cursor: pointer; color: var(--brpf-titulo, #111); }
  .bridgerp-filtro--gaveta .bridgerp-filtro__acoes { display: block; position: sticky; bottom: -24px; padding-top: 12px; background: var(--brpf-fundo, #fff); }
  .bridgerp-filtro--horizontal .bridgerp-filtro__campo { min-width: 0; flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) { .bridgerp-filtro *, .bridgerp-lista.is-carregando { transition: none !important; } }
