/* V3AgentsDoor - chains (delegation paths), worst verdict first (design gate 2026-10-08, not ruled). Tokens only; text 12px and up at
   400/500; verdict never by colour alone (word, bar weight and segment weight differ). Ink is proportional to evidence: FAILED loud,
   FLAGGED plain, CERTIFIED quiet. © 2026 VeriPass AI, Inc. */
.ad { max-width:1180px; }
.ad-kicker { font:500 12px var(--mono); letter-spacing:2px; color:var(--accent); margin:4px 0 14px; }
.ad-loading { font:400 13px var(--sans); color:var(--text-muted); padding:24px 0; }
.ad-empty { font:400 13px var(--sans); color:var(--text-secondary); padding:12px 0; }
.ad-num { font-family:var(--mono); font-variant-numeric:tabular-nums; }
.ad-failed { color:var(--red-soft); } .ad-flagged { color:var(--amber); } .ad-certified { color:var(--text-muted); }
.ad-esc { color:var(--amber); }
.ad-arrow { color:var(--text-muted); }

/* the inventory */
.ad-inv { display:flex; gap:28px; flex-wrap:wrap; align-items:flex-end; }
.ad-inv-n { display:flex; flex-direction:column; gap:2px; }
.ad-inv-n b { font:500 30px var(--mono); font-variant-numeric:tabular-nums; line-height:1.1; }
.ad-inv-n.ad-failed b { font-size:40px; }
.ad-inv-n span { font:400 13px var(--sans); color:var(--text-muted); }
.ad-inv-line { flex-basis:100%; font:400 13px var(--sans); color:var(--text-secondary); line-height:1.5; margin-top:6px; }
.ad-stated { list-style:none; margin:12px 0 16px; padding:0; display:flex; flex-direction:column; gap:6px; }
.ad-stated li { font:400 13px var(--sans); color:var(--text-secondary); line-height:1.5; padding-left:12px; border-left:1px solid var(--border-light); }
.ad-stated b { font-weight:500; color:var(--text); }
.ad-stated code { font:400 12px var(--mono); color:var(--text-secondary); }

/* Layer 1: the ledger */
/* THE COLUMN DISCIPLINE (#808's ruling, applied 2026-10-09): one grid, rows as subgrids, so every column has ONE left edge for the
   whole ledger. Columns hug their content with ONE 32px gutter; path, break and counts wrap at one width per column. */
.ad-ledger-wrap { overflow-x:auto; }
.ad-ledger { display:grid; grid-template-columns:24px max-content max-content max-content minmax(min-content, 240px) minmax(min-content, 240px) minmax(min-content, 220px) max-content;
  column-gap:32px; row-gap:4px; justify-content:start; }
.ad-ledger > * { grid-column:1 / -1; }
.ad-ledger > .ad-hidden, .ad-ledger > .ad-open-wrap { grid-column:2 / -1; contain:inline-size; }   /* a full-width line never widens a column */
.ad-line { display:grid; grid-template-columns:subgrid; align-items:start; }
.ad-lhead-cells, .ad-row { grid-column:2 / -1; display:grid; grid-template-columns:subgrid; align-items:start; border:1px solid transparent; border-radius:6px; padding:9px 14px; }
.ad-lhead-cells { padding-top:0; padding-bottom:2px; }
.ad-lhead span { font:500 12px var(--mono); letter-spacing:0.5px; color:var(--text-secondary); }
.ad-row { text-align:left; background:var(--card); border-color:var(--border); cursor:pointer; color:var(--text); font:inherit; }
.ad-forks { font:500 12px var(--mono); color:var(--text-secondary); }
.ad-row:hover, .ad-row.is-open { border-color:var(--border-light); }
.ad-row:focus-visible { outline:2px solid var(--accent-hover); outline-offset:2px; }
/* the verdict's weight is an inset bar inside one uniform border, so a heavier bar never moves a row's cells off the shared edges */
.ad-row.ad-failed { box-shadow:inset 4px 0 0 var(--red-soft); }
.ad-row.ad-flagged { box-shadow:inset 2px 0 0 var(--amber); }
.ad-row.ad-certified { box-shadow:inset 1px 0 0 var(--border-light); background:transparent; }
.ad-verdict { font:500 13px var(--mono); letter-spacing:1px; }
.ad-row.ad-failed .ad-verdict { color:var(--red-soft); } .ad-row.ad-flagged .ad-verdict { color:var(--amber); } .ad-row.ad-certified .ad-verdict { color:var(--text-muted); }
.ad-route { font:400 13px var(--sans); color:var(--text); line-height:1.5; }
.ad-row.ad-certified .ad-route { color:var(--text-secondary); }
.ad-break { font:400 13px var(--sans); color:var(--text-secondary); line-height:1.5; }
.ad-row.ad-failed .ad-break { color:var(--text); }
.ad-dissent { font:400 12px var(--sans); color:var(--text-muted); font-variant-numeric:tabular-nums; line-height:1.6; }
.ad-dissent .ad-certified { color:var(--text-muted); }
.ad-when { font:400 12px var(--mono); color:var(--text-muted); white-space:nowrap; }
.ad-prev { display:inline-flex; align-items:center; gap:6px; padding-top:1px; }
.ad-more { font:500 12px var(--mono); color:var(--text-muted); }

/* segments, shared by the preview and the spine */
.ad-seg { fill:none; stroke-width:3; stroke-linecap:round; }
.ad-seg.ad-certified { stroke:var(--certified); stroke-width:2; }
.ad-seg.ad-flagged { stroke:var(--amber); stroke-width:3; }
.ad-seg.ad-failed { stroke:var(--red-soft); stroke-width:4; }
.ad-seg.ad-open { stroke:var(--text-muted); stroke-width:2; stroke-dasharray:3 4; }
.ad-seg.is-break { stroke-width:5; }
.ad-notch { fill:var(--text); }

/* Layer 2: one chain opened */
.ad-open-wrap { background:var(--bg); border:1px solid var(--border-light); border-radius:6px; padding:14px 16px; margin:0 0 6px; }
.ad-open-head { font:400 14px var(--sans); color:var(--text); margin:0 0 10px; line-height:1.5; }
.ad-open-head b { font-weight:500; }
.ad-open-foot { font:400 12px var(--sans); color:var(--text-muted); margin:8px 0 0; }
.ad-spine-wrap { overflow-x:auto; }
.ad-spine { display:block; }
.ad-st { fill:var(--bg); stroke:var(--text-secondary); stroke-width:1.5; }
.ad-st-name { font:400 12px var(--sans); fill:var(--text-secondary); }
.ad-hop { cursor:pointer; outline:none; }
.ad-hit { fill:none; stroke:transparent; stroke-width:18; }
.ad-hop:hover .ad-seg, .ad-hop:focus-visible .ad-seg, .ad-hop.is-sel .ad-seg { filter:brightness(1.25); }
.ad-hop:focus-visible .ad-pill, .ad-hop.is-sel .ad-pill { stroke:var(--text); stroke-width:1.5; }
.ad-pill { fill:var(--bg); stroke-width:1; }
.ad-pill.ad-certified { stroke:var(--certified); } .ad-pill.ad-flagged { stroke:var(--amber); } .ad-pill.ad-failed { stroke:var(--red-soft); stroke-width:2; } .ad-pill.ad-open { stroke:var(--text-muted); stroke-dasharray:3 3; }
.ad-pill-t { font:500 12px var(--mono); letter-spacing:0.5px; }
.ad-pill-t.ad-certified { fill:var(--certified); } .ad-pill-t.ad-flagged { fill:var(--amber); } .ad-pill-t.ad-failed { fill:var(--red-soft); } .ad-pill-t.ad-open { fill:var(--text-muted); }
.ad-esc-t { font:500 12px var(--sans); fill:var(--amber); }

/* the crossings switch */
.ad-cross { display:flex; gap:12px; align-items:center; margin:18px 0 10px; font:400 13px var(--sans); color:var(--text-muted); }
.ad-cross-b { font:500 13px var(--sans); color:var(--text); background:transparent; border:1px solid var(--border-light); border-radius:6px; padding:6px 12px; cursor:pointer; }

/* Layer 3: one handoff, in the drawer */
.ad-d { padding:24px 24px 40px; }
.ad-d-kicker { font:500 12px var(--mono); letter-spacing:2px; color:var(--accent); }
.ad-d-title { font:500 18px var(--sans); color:var(--text); margin:8px 0 6px; }
.ad-d-verdict { font:500 16px var(--mono); letter-spacing:1px; color:var(--text-secondary); margin:0 0 8px; }
.ad-d-verdict.ad-certified { color:var(--certified); } .ad-d-verdict.ad-flagged { color:var(--amber); } .ad-d-verdict.ad-failed { color:var(--red-soft); }
.ad-d-sec { font:500 12px var(--mono); letter-spacing:1px; color:var(--text-muted); text-transform:uppercase; margin:20px 0 8px; padding-top:12px; border-top:1px solid var(--border); }
.ad-d-p { font:400 13px var(--sans); color:var(--text-secondary); line-height:1.55; margin:4px 0; }
.ad-d-list { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:6px; }
.ad-d-list li { font:400 13px var(--sans); color:var(--text-secondary); line-height:1.5; }
.ad-d-list b { font-weight:500; color:var(--text); }
.ad-d-cmp { display:grid; grid-template-columns:repeat(4, 1fr); gap:10px; margin:4px 0 8px; }
.ad-d-cmp div { display:flex; flex-direction:column; gap:2px; }
.ad-d-cmp b { font:500 22px var(--mono); color:var(--text); }
.ad-d-cmp span { font:400 12px var(--sans); color:var(--text-muted); }
.ad-verify { display:inline-block; margin-top:8px; font:500 14px var(--sans); color:var(--accent); text-decoration:none; border:1px solid var(--accent-border); border-radius:6px; padding:8px 14px; }
.ad-verify:hover { color:var(--accent-hover); }
.ad-scope { font:400 13px var(--sans); color:var(--text-secondary); margin:8px 0 0; line-height:1.5; }
.ad-scope-u { color:var(--text-muted); }

/* THE REVEAL GRAMMAR (AGENTS-DOOR-REVEAL-GRAMMAR-RULED-1), gate build 2026-10-09. Tokens only; text 12px and up at 400/500. */
/* return: the breadcrumb */
.ad-crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:0 0 14px; padding:8px 12px; border:1px solid var(--border); border-radius:6px; font:400 13px var(--sans); color:var(--text-secondary); }
.ad-crumb { font:500 13px var(--sans); color:var(--accent); background:transparent; border:0; padding:0; cursor:pointer; }
.ad-crumb:hover { color:var(--accent-hover); text-decoration:underline; }
.ad-crumb-t { color:var(--text); }
.ad-crumb-sep { color:var(--text-secondary); }
.ad-crumb-esc { margin-left:auto; font:400 12px var(--mono); color:var(--text-secondary); }
/* subtract: the one filter bar, and the dashed row that stands where hidden things stood */
.ad-bar { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:4px 0 12px; }
.ad-bar-k { font:500 12px var(--mono); letter-spacing:1px; color:var(--text-secondary); text-transform:uppercase; margin-right:4px; }
.ad-chip { font:500 13px var(--sans); background:transparent; border:1px dashed var(--border-light); border-radius:14px; padding:4px 12px; cursor:pointer; color:var(--text-secondary); }
.ad-chip.is-on { border-style:solid; background:var(--card); }
.ad-chip.is-on.ad-failed { color:var(--red-soft); border-color:var(--red-soft); } .ad-chip.is-on.ad-flagged { color:var(--amber); border-color:var(--amber); } .ad-chip.is-on.ad-certified { color:var(--text); }
.ad-chip:not(.is-on) { text-decoration:line-through; }
.ad-bar-line { font:400 13px var(--sans); color:var(--text-secondary); }
.ad-hidden { display:flex; align-items:center; gap:12px; flex-wrap:wrap; border:1px dashed var(--border-light); border-radius:6px; padding:10px 14px; margin:2px 0; font:400 13px var(--sans); color:var(--text-secondary); line-height:1.5; }
.ad-hidden b { font-weight:500; color:var(--text); }
.ad-hidden.is-undone { border-style:solid; border-color:var(--border); }
.ad-ticks { display:block; } .ad-tk { fill:var(--accent); }
.ad-link { font:500 13px var(--sans); color:var(--accent); background:transparent; border:0; padding:0; cursor:pointer; }
.ad-link:hover { color:var(--accent-hover); text-decoration:underline; }
.ad-hidden .ad-link { margin-left:auto; }
/* intersect: the tick at the start of each row */
.ad-tick-box { display:flex; align-items:center; justify-content:center; width:24px; height:20px; margin-top:10px; cursor:pointer; }   /* on the first text line: border 1 + padding 9 */
.ad-tick-box input { width:15px; height:15px; accent-color:var(--accent); cursor:pointer; }
.ad-line.is-ticked .ad-row { border-color:var(--accent); }
.ad-refused { font:400 13px var(--sans); color:var(--amber); margin:0 0 8px; }
/* trace sideways and intersect share a panel */
.ad-panel { background:var(--bg); border:1px solid var(--border-light); border-radius:6px; padding:14px 16px; margin:0 0 10px; }
/* trace and overlap: the same discipline, one grid per list, each chain a subgrid row with its spine on a full-width line */
.ad-list { display:grid; grid-template-columns:max-content max-content max-content max-content 1fr; column-gap:32px; margin-top:6px; }   /* the 1fr filler gives the spines the panel's width; the label columns still hug */
.ad-list.ad-list-3 { grid-template-columns:max-content max-content max-content 1fr; }
.ad-list-row { grid-column:1 / -1; display:grid; grid-template-columns:subgrid; align-items:baseline; border-top:1px solid var(--border); padding-top:10px; }
.ad-list-row.ad-lhead { border-top:0; padding-top:0; }
.ad-list-row > .ad-spine-wrap { grid-column:1 / -1; contain:inline-size; }
.ad-list-row .ad-verdict { font:500 12px var(--mono); letter-spacing:1px; }
.ad-list-row .ad-verdict.ad-failed { color:var(--red-soft); } .ad-list-row .ad-verdict.ad-flagged { color:var(--amber); } .ad-list-row .ad-verdict.ad-certified { color:var(--text-secondary); }
.ad-list-row .ad-num { font:400 12px var(--mono); color:var(--text-secondary); }
.ad-trace-lines { margin:12px 0 0; }
.ad-ring { fill:none; stroke:var(--accent); stroke-width:2.5; }
.ad-st.is-shared { fill:var(--text); stroke:var(--text); }
.ad-st.is-unshared { fill:var(--bg); stroke:var(--text-secondary); stroke-dasharray:2 2; }
.ad-st-name.is-agent { cursor:pointer; outline:none; }
.ad-st-name.is-agent:hover, .ad-st-name.is-agent:focus-visible { fill:var(--accent); text-decoration:underline; }
.ad-st-name.is-traced { fill:var(--accent); font-weight:500; }
.ad-agent { font-size:14px; }
/* the stated cap: counted, not drawn */
.ad-vbar { display:flex; height:10px; border-radius:3px; overflow:hidden; margin:6px 0 4px; max-width:640px; }
.ad-vbar-s.ad-failed { background:var(--red-soft); } .ad-vbar-s.ad-flagged { background:var(--amber); } .ad-vbar-s.ad-certified { background:var(--certified); } .ad-vbar-s.ad-open { background:var(--text-secondary); }
.ad-narrow { display:flex; flex-wrap:wrap; gap:16px; align-items:center; margin-top:10px; font:400 13px var(--sans); color:var(--text-secondary); }

/* THE SESSIONS GRID (section 8c, ruled 2026-10-09): the #808 discipline - one grid, rows as subgrids, one 32px gutter */
/* each text column hugs its content up to a cap and wraps beyond it, so the grid fits its panel (the Step 3 capture found a
   long deployment name pushing the last three columns out of view) */
.ag-sessions { display:grid; grid-template-columns:max-content minmax(min-content, 200px) minmax(min-content, 260px) minmax(min-content, 200px) max-content max-content minmax(min-content, 180px) minmax(min-content, 140px) max-content;
  column-gap:32px; row-gap:4px; justify-content:start; }
.ag-srow, .ag-shead { grid-column:1 / -1; display:grid; grid-template-columns:subgrid; align-items:start; border:1px solid transparent; border-radius:6px; padding:9px 14px; }
.ag-shead { padding-top:0; padding-bottom:2px; }
.ag-shead span { font:500 12px var(--mono); letter-spacing:0.5px; color:var(--text-secondary); }
.ag-srow { background:var(--card); border-color:var(--border); font:400 13px var(--sans); color:var(--text); }
.ag-s-verdict { font:500 13px var(--mono); letter-spacing:1px; }
.ag-s-verdict.ad-failed { color:var(--red-soft); } .ag-s-verdict.ad-flagged { color:var(--amber); } .ag-s-verdict.ad-certified { color:var(--text-secondary); }
.ag-s-verdict.ag-s-none, .ag-s-verdict:not(.ad-failed):not(.ad-flagged):not(.ad-certified) { font:400 13px var(--sans); letter-spacing:0; color:var(--text-secondary); }
.ag-s-dep, .ag-s-links { color:var(--text-secondary); }
.ag-srow .ad-num { font:400 13px var(--mono); color:var(--text-secondary); }
.ag-s-note { margin:0 0 10px; }
.ag-s-art { font:400 13px var(--sans); color:var(--text-secondary); margin:0 0 10px; }
