@layer components {
  /* Only /prices loads these controls; the full list remains usable without JS. */
  .price-hub-filter {
    margin-block: 20px 12px;
    max-width: 44rem;
  }
  .price-hub-filter label {
    display: block;
    font-weight: 700;
    margin-bottom: 8px;
  }
  .price-hub-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
  }
  .price-hub-filter input {
    flex: 1 1 14rem;
    min-width: 0;
    min-height: 44px;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--color-slate);
    border-radius: 8px;
    background: var(--color-surface);
    color: var(--color-graphite);
    font: inherit;
  }
  .price-hub-filter button {
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--color-slate);
    border-radius: 8px;
    background: var(--color-surface);
    color: var(--color-graphite);
    font: inherit;
    cursor: pointer;
  }
  .price-hub-filter :is(input, button):focus-visible {
    outline: 3px solid var(--color-primary);
    outline-offset: 2px;
  }
  .price-hub-filter :is(p, [role="status"]) {
    line-height: 1.5;
  }
  .price-hub-filter-hint {
    margin-block: 10px 8px;
    color: var(--color-slate);
  }
  #price-hub-results > a[hidden],
  #price-hub-empty[hidden] {
    display: none;
  }
  .price-hub-empty {
    padding-block: 12px 20px;
    max-width: 44rem;
    line-height: 1.5;
  }
}
