/* Open briefs board only (pages/open-briefs.html). Feedback pass, CP 15 Sep 2026; panel layout CP 16 Sep.
   Kept out of components.css while another session edits it (same reasoning as resources.css).
   Everything here scopes to .board, .board-panel, .chip-radio or the board's rail. The facts row lives in components.css (shared with briefs.html and my-briefs.html). */

/* Page head: the hero headline kept as a plain title, photo and Try chips cut (CP 16 Sep). */
.board__title { margin: 0; }

/* Filter panel: search + sort on top, then every filter in wrapping rows. Replaces the left rail so the
   board no longer mirrors search.html. Selects size to their text, not the column. */
.board-panel { margin-top: 1rem; display: grid; gap: 0.875rem; }
.board-panel__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem; }
.board-panel__row--search { gap: 0.75rem; }
.board-panel__search { flex: 1 1 16rem; }
.board-panel__sort .select { margin-top: 0; min-height: 3rem; font-weight: 600; background-color: var(--card); }
.board-panel__body { display: grid; gap: 0.875rem; }
.board-panel__lead { display: inline-flex; align-items: center; gap: 0.375rem; font-size: var(--text-caption); font-weight: 600; color: var(--muted-foreground); }
.board-panel__lead svg { width: 0.875rem; height: 0.875rem; }
.board-panel .field, .board-panel .field + .field { margin: 0; } /* components.css stacks .field + .field 1rem apart; these sit in a row */
.board-panel__field .select { margin-top: 0; width: auto; max-width: 16rem; min-height: 2.375rem; padding-block: 0.375rem; font-size: var(--text-body-sm); font-weight: 600; }
.board-panel__group { display: inline-flex; align-items: center; gap: 0.625rem; border: 0; padding: 0; margin: 0; }
.board-panel__group legend { float: left; padding: 0; } /* legend sits inline with its chips */
.board-panel__group .chip-radios { margin-top: 0; }
.board-panel .check--inline { margin: 0 0 0 0.25rem; font-size: var(--text-body-sm); font-weight: 500; }
.board-panel__clear { font-size: var(--text-caption); }
.board-panel__clear:disabled { opacity: 0.5; cursor: default; }
.board .results__count { margin-top: 1rem; font-size: var(--text-body-sm); }
.board .results__past { margin: 0; font-size: var(--text-body-sm); color: var(--muted-foreground); } /* past-requests switch, right end of the count line */
.board .applied { margin-top: 1rem; margin-bottom: 0; }
.board .applied + .results__count { margin-top: 0.75rem; }
.board .results__list { margin-top: 0.75rem; }
/* Phones: rows 2 and 3 fold behind Show filters (components.css unfolds .filters__body[hidden] from 1024px; this panel needs the same). */
@media (min-width: 1024px) { .board-panel__body[hidden] { display: grid !important; } }
@media (max-width: 1023px) {
  .board-panel__field { flex: 1 1 100%; min-width: 0; } .board-panel__field .select { width: 100%; max-width: none; } /* full-width stack; intrinsic select width would push the page past 375 */
  .board-panel__search { flex-basis: 100%; }
  .board-panel__sort { flex: 1 1 0; min-width: 0; } .board-panel__sort .select { width: 100%; padding-right: 1.75rem; } .board-panel__row--search .filters__toggle { flex: 0 0 auto; padding-inline: 0.875rem; } /* sort and Show filters share the second line; sort takes the rest so "Sort: Newest first" is never clipped (CP 17 Sep) */
  .board-panel__sort .select, .board-panel__row--search .filters__toggle { min-height: 2.75rem; }
  .board-panel__row--search .filters__toggle { border-radius: var(--radius); }
}

/* Urgency on the Closes line: app.js block 11 appends "· 2 days left" / "· tomorrow" or rewrites it to
   "Closes today" (CP 16 Sep: one line, no pill; supersedes the 15 Sep pill). Amber, red on the day. */
.closes__soon { font-weight: 500; color: var(--amber-700); }
.closes__soon--today { color: #B91C1C; }

/* Format filter as radio chips: .chip-radios lives in components.css (shared with the credits ledger filter, 16 Sep pm). */

/* Poster foot: Verified pill beside the poster type. */
.brief-card__foot .pill-success { margin-left: 0.25rem; vertical-align: middle; }

/* Applied filter row: Clear all at the end. */
.applied .btn-link { margin-left: 0.25rem; font-size: var(--text-caption); }

/* Rail anchors View brief bottom-right on every card (CP 16 Sep): counts and Closes stay at the top,
   the button drops to the foot line, so a short rail no longer leaves the corner empty. */
.brief-card--rail .brief-card__rail { height: 100%; }
.brief-card__rail .btn { margin-top: auto; }
.brief-card__rail .btn + .pill { margin-top: 0.5rem; }
@media (max-width: 639px) { .brief-card__rail .btn { margin-top: 0.5rem; } }
