/* Seletores dos filtros públicos: galeria e catálogo compartilham o mesmo acabamento. */
:root :is(.material-filters select, .sort select, .pagination-size select) {
  --filter-surface: var(--surface, var(--cream, var(--paper)));
  --filter-border: var(--line);
  --filter-radius: 8px;
  box-sizing: border-box;
  min-block-size: 40px;
  max-inline-size: 100%;
  padding: 8px 12px;
  border: 1px solid var(--filter-border);
  border-radius: var(--filter-radius);
  background: var(--filter-surface);
  color: var(--ink);
  font-family: var(--sans, "DM Sans", sans-serif);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  cursor: pointer;
  box-shadow: none;
}
:root .sort select {
  min-inline-size: 180px;
}
:root .material-filters select {
  inline-size: max-content;
  min-inline-size: 210px;
  min-block-size: 36px;
  padding: 7px 10px;
  font-size: 14px;
}
:root :is(.material-filters select, .sort select, .pagination-size select):hover {
  border-color: color-mix(in srgb, var(--ink) 40%, var(--filter-border));
}
:root :is(.material-filters select, .sort select, .pagination-size select):focus {
  border-color: var(--muted);
  outline: none;
  box-shadow: none;
}
:root :is(.material-filters select, .sort select, .pagination-size select):focus-visible {
  outline: 2px solid var(--ink);
  outline-offset: 3px;
}
/* Sem suporte, permanece o seletor nativo com o campo acima estilizado. */
@supports (appearance: base-select) {
  :root :is(.material-filters select, .sort select, .pagination-size select),
  :root :is(.material-filters select, .sort select, .pagination-size select)::picker(select) {
    appearance: base-select;
  }
  :root :is(.material-filters select, .sort select, .pagination-size select) {
    column-gap: 12px;
    justify-content: space-between;
  }
  :root :is(.material-filters select, .sort select, .pagination-size select)::picker-icon {
    color: var(--muted);
    margin-inline-start: auto;
    margin-inline-end: 0;
  }
  :root :is(.material-filters select, .sort select, .pagination-size select)::picker(select) {
    box-sizing: border-box;
    inline-size: anchor-size(self-inline);
    min-inline-size: anchor-size(self-inline);
    max-inline-size: calc(100vw - 32px);
    max-block-size: min(320px, 60dvh);
    margin-block: 6px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--surface, var(--cream, var(--paper)));
    color: var(--ink);
    font-family: var(--sans, "DM Sans", sans-serif);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.4;
    position-try-order: normal;
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: var(--muted) var(--surface, var(--cream, var(--paper)));
  }
  :root :is(.material-filters select, .sort select, .pagination-size select) option {
    display: flex;
    align-items: center;
    gap: 10px;
    min-block-size: 38px;
    padding: 8px 10px;
    border-radius: 4px;
    color: var(--ink);
    background: transparent;
    white-space: normal;
    overflow-wrap: anywhere;
    cursor: pointer;
  }
  :root :is(.material-filters select, .sort select, .pagination-size select) option:is(:hover, :focus, :checked) {
    color: var(--ink);
    background: color-mix(in srgb, var(--ink) 7%, var(--surface, var(--cream, var(--paper))));
  }
  :root :is(.material-filters select, .sort select, .pagination-size select) option:checked {
    font-weight: 600;
  }
}
@media (max-width: 600px) {
  .material-filters {
    align-items: stretch;
    gap: 8px;
  }
  .material-filters label {
    flex-basis: 100%;
  }
  :root .material-filters select {
    inline-size: max-content;
    min-inline-size: min(210px, 100%);
  }
}
@media (forced-colors: active) {
  :root :is(.material-filters select, .sort select, .pagination-size select):focus-visible {
    outline-color: Highlight;
  }
}
