@layer components {
  /* The list filters: a search field, dropdown buttons, apply and reset. */
  .filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem;
    align-items: center;
  }

  .filters__search {
    display: flex;
    align-items: center;
    gap: 0.625rem;
    height: 2.5rem;
    min-width: 20rem;
    padding: 0 0.875rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-line-strong);
    background: var(--color-surface);
    color: var(--color-ink-muted);

    & svg { width: 18px; height: 18px; flex: none; }
    & input { flex: 1; border: 0; background: transparent; color: var(--color-ink); outline: none; min-width: 0; }
    &:focus-within { border-color: var(--color-accent); }
  }

  .filters__reset { font-weight: 600; font-size: 0.875rem; margin-left: 0.25rem; }
  .filters__id { width: 6rem; font-weight: 400; }

  /* A dropdown button, highlighted when its filter is active. */
  .dd {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    height: 2.5rem;
    padding: 0 0.75rem 0 0.875rem;
    border-radius: var(--radius);
    border: 1px solid var(--color-line-strong);
    background: var(--color-surface);
    color: var(--color-ink);
    font-size: var(--text-base);
    font-weight: 600;
    cursor: pointer;

    & svg { width: 14px; height: 14px; color: var(--color-ink-muted); }
  }

  .dd--on { border-color: var(--color-ink); background: var(--color-chip); }

  .dropdown__item input[type="checkbox"] { accent-color: var(--color-accent); width: 1rem; height: 1rem; }
}
