# Collection surfaces

Collection surfaces cover registries, scoped relationship lists, compact queues, and other repeated rows inside a warm panel. They extend the registry-table contract to layouts implemented with CSS grid or application-owned components.

## Card and row anatomy

1. Put search, filters, and summary content in the padded card header.
2. Let rows and their separators reach the card edges. Use a negative inline margin only when the card itself owns the padding.
3. Keep column headers and values in the same grid definition at every responsive breakpoint.
4. Use a compact `ID` heading for stable record references. The record type belongs in the surrounding page context, not in every column label.
5. Keep pagination in a stable footer separated from the rows.

## Whole-row destinations

- Make the whole row one native link when every cell leads to the same record and there are no independent controls inside it.
- Apply hover feedback to the complete row, underline the primary label, and provide an inset visible focus ring.
- Do not nest links, buttons, menus, checkboxes, or disclosure controls inside a linked row.
- When a row needs independent actions, link only its primary label and keep the default row surface stable.
- Preserve open-in-new-tab, copied-link, browser-history, and keyboard behavior by using a real destination element rather than a click handler on a generic container.

## Responsive overflow

- Preserve meaningful columns with horizontal overflow before hiding them.
- Full-bleed rows may extend to the panel edge while their content retains the panel's inline padding.
- On compact screens, hide a low-priority column only when its information is available in the destination view.
- Never let responsive changes move a header over a different value column.

## Empty and filtered states

- Center empty-state content vertically within a minimum 128px row region.
- Distinguish first use from no matching results. First use may offer creation; no-results copy should suggest revising or clearing the query.
- Keep search and filters visible when they produced the empty result. Hide them only when there are no source records to search.
- Use specific, localized copy: name the missing records and explain what will appear here.

## Scoped collections

Record-scoped collections use the same row, focus, hover, empty, and pagination behavior as primary registries. A scoped page should add a concise purpose sentence rather than repeat the current record's name as supporting copy.

## Product boundary

Column choice, authorization, query serialization, pagination strategy, row destinations, and application data-table adapters remain product-owned.
