/* The gate (information-flow 3.8; views/board-gate.js), split out of
   board.css so the Issues page, which is the old app shell and loads no
   board.css, draws the same dialog (gap item U1). Every page that draws the
   gate loads this file, right after board.css where it loads that. The dialog sits in the top
   layer (board-modal.js); its frame matches the board's other dialogs. */
dialog.gate { margin: auto; border: 2px solid var(--ink); border-radius: 10px; padding: 16px; background: var(--page);
              color: var(--ink); max-width: min(40rem, calc(100vw - 32px)); max-height: calc(100vh - 32px);
              overflow: auto; box-sizing: border-box; }
dialog.gate::backdrop { background: rgb(0 0 0 / 0.35); }
.gate button { min-height: 44px; padding: 0 12px; border: 1px solid var(--edge-firm); border-radius: 6px;
               background: var(--page); color: inherit; font: inherit; cursor: pointer; }
.gate .btn-primary { background: var(--ink); color: var(--page); }
.gate[open] { display: flex; flex-direction: column; gap: 8px; }
.gate h2 { margin: 0; font-size: 1.125rem; }
.gate-stack { border-top: 1px solid var(--edge); padding-top: 8px; display: flex; flex-direction: column; gap: 6px; }
.gate-stack h3 { margin: 0; font-size: 1rem; }
.gate-members, .gate-issues { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.gate-member { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.gate button[aria-pressed="true"] { font-weight: 700; outline: 2px solid var(--ink); }
.gate-warning { margin: 0; padding: 6px 8px; border-radius: 6px; background: #fdf0d5; color: #6b4705; }
.gate-supersedes { margin: 0; font-size: 0.875rem; }
/* Walk round 4, B6 (d): each flag is a row with its badge and headline,
   then how many requests it is on and its link; links and buttons wear the
   app's look, and a button never breaks inside its words. */
.gate-issues > li { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-top: 1px solid var(--edge); }
.gate-issue-line { display: flex; align-items: baseline; gap: 8px; }
.gate-issue-line .badge { flex: none; }
.gate-issue-headline { font-weight: 600; }
.gate-issue-meta { font-size: 0.875rem; color: var(--helper, inherit); }
.gate a { color: var(--b-link, currentColor); text-underline-offset: 2px; }
.gate-choice { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
/* What the chosen answer to a conflict does (walk check 2026-10-20, bug 4). */
.gate-choice-note { display: block; margin-top: 4px; font-size: 0.875rem; color: var(--helper, inherit); }
.gate button { white-space: nowrap; }
.gate-note { margin: 4px 0 0; font-size: 0.875rem; color: var(--helper, inherit); }
.gate-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
