/* Keep browsing controls outside the independent, keyboard-accessible result pane. */
.scroll-browser { --listing-panel-height: none; --scroll-controls-offset: 0px; --scroll-controls-height: 8rem; }
.scroll-browser .scroll-browser-controls { background: var(--paper, #e8ece5); padding-top: 1rem; position: sticky; top: var(--scroll-controls-offset); z-index: 15; }
.scroll-browser .directory-search { display: flex; gap: .5rem; margin: 0; }
.scroll-browser .directory-search input { background: var(--surface-bright, #fff); color: var(--ink, #151a14); min-width: 0; flex: 1; }
.scroll-browser .directory-search button { flex: none; }
.scroll-browser .listing-scroll-panel { max-height: var(--listing-panel-height); overflow-y: auto; overflow-x: hidden; overscroll-behavior-y: contain; scrollbar-gutter: stable; min-width: 0; padding: .25rem .5rem .5rem .25rem; }
.scroll-browser .listing-scroll-panel:focus-visible { outline: 2px solid var(--accent-deep, #4b682d); outline-offset: 3px; }
/* The filter panel grows with its form; only the results pane is height-limited. */
.scroll-browser .filter-rail { position: static; max-height: none; overflow: visible; }
.scroll-browser .funding-filters { margin: 0 0 1rem; }
.scroll-browser .funding-grid { align-items: start; }
@media (max-width: 54rem) {
  .scroll-browser .filter-rail { position: static; max-height: none; padding-top: .5rem; }
  .scroll-browser .results-layout { padding-top: .5rem; gap: .75rem; }
  .scroll-browser .funding-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
  .scroll-browser .funding-filters label:first-child { grid-column: 1 / -1; }
  .scroll-browser .funding-filters label { font-size: .8rem; min-width: 0; }
  .scroll-browser .funding-filters select { font-size: .85rem; }
}
@media print {
  .scroll-browser .scroll-browser-controls, .scroll-browser .filter-rail { position: static; }
  .scroll-browser .listing-scroll-panel, .scroll-browser .filter-rail { max-height: none; overflow: visible; }
}
