/* discovery.css -- Discovery & Depos room. Tokens only; reuses base.css components. */

.dx-room { display: flex; flex-direction: column; height: 100%; min-height: 0; }
.dx-by { margin-right: 2px; }

/* shared bits */
.dx-code {
  display: inline-flex; align-items: center; justify-content: center; flex: none;
  width: 18px; height: 18px; border-radius: 4px;
  font-family: var(--font-mono); font-size: var(--fs-micro); font-weight: 500; line-height: 1;
  color: var(--text-secondary); box-shadow: inset 0 0 0 1px var(--line);
}
.dx-code + .dx-code { margin-left: 3px; }
.dx-q {
  margin: 0; padding: 0 0 0 10px; border-left: 2px solid var(--line);
  font-family: var(--font-doc); font-size: 14.5px; line-height: 22px; color: var(--text);
}
.dx-q-lg { font-size: 16px; line-height: 26px; }
.dx-q-old { color: var(--text-secondary); }
.dx-page { padding: var(--s3) var(--gutter) var(--s6); }
.dx-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; margin-bottom: 12px; }
.dx-toolbar-r { margin-left: auto; }
.dx-g-bang {
  display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px;
  border: 1px solid var(--text-secondary); border-radius: 3px; font-size: var(--fs-micro); font-weight: 600; line-height: 1; color: var(--text);
}
.dx-g-dash { display: inline-block; width: 10px; height: 10px; border: 1px dashed var(--text-secondary); border-radius: 2px; }
.dx-g-half { display: inline-block; width: 10px; height: 10px; border: 1px solid var(--text-secondary); border-radius: 50%; background: linear-gradient(90deg, var(--text-secondary) 50%, transparent 50%); }

/* ================================================================ depos */
.dx-depos {
  flex: 1 1 auto; min-height: 0;
  display: grid; grid-template-columns: 212px minmax(0, 1fr) minmax(400px, 38%);
}
.shell.pane-open .dx-depos { grid-template-columns: minmax(280px, 1fr) minmax(0, 470px); }
.shell.pane-open .dx-pane .tx-line { font-size: var(--fs-caption); line-height: 20px; grid-template-columns: 16px 28px minmax(0, 1fr); }
.shell.pane-open .dx-pane .tx-bar.dx-run::before { line-height: 20px; }
.shell.pane-open .dx-pane .paper-tx { padding: 12px 8px 16px 4px; }
.shell.pane-open .dx-pane .paper-tx .paper-folio { margin-left: 44px; }
.shell.pane-open .dx-center { padding: 14px 16px 32px; }
.shell.pane-open .dx-rail { display: none; }
/* Ask sheet open (work area is 480 px narrower): the rail folds away as it does beside the pane, so
   findings and the transcript keep readable widths; wide screens keep all three columns */
@media (min-width: 1280px) and (max-width: 1899px) {
  .shell.ask-open .dx-depos { grid-template-columns: minmax(300px, 1fr) minmax(340px, 45%); }
  .shell.ask-open .dx-rail { display: none; }
  .shell.ask-open .dx-center { padding: 14px 16px 32px; }
}

/* rail */
.dx-rail { overflow: auto; min-height: 0; padding: var(--rail-pad); background: var(--bg-pane); border-right: 1px solid var(--line-subtle); }
.dx-rail-sec + .dx-rail-sec { margin-top: 18px; }
.dx-rail .section-label { padding: 0 8px 6px; display: flex; justify-content: space-between; }
.dx-rail-hint { font-weight: 400; }
.dx-rlist { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; }
.dx-ritem {
  display: flex; align-items: center; gap: 8px; width: 100%; height: 32px; padding: 0 8px;
  border: 0; border-radius: var(--r-control); background: transparent; color: var(--text);
  font-size: var(--fs-meta); text-align: left;
  transition: background-color var(--t-press) var(--ease);
}
.dx-ritem:hover { background: var(--bg-hover); }
.dx-ritem.active { background: var(--bg-selected); color: var(--accent-text); font-weight: 500; }
.dx-ritem.active .dx-code { color: var(--accent-text); box-shadow: inset 0 0 0 1px var(--accent); }
.dx-ritem-quiet .dx-rname { color: var(--text-secondary); }
.dx-rname { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dx-rmeta { color: var(--text-secondary); font-size: 12px; }
.dx-rail-foot { margin-top: 14px; padding: 0 8px; }
/* witness rows: name + date, role line beneath (3.6) */
.dx-ritem-w { height: auto; min-height: 44px; flex-direction: column; align-items: stretch; justify-content: center; gap: 1px; padding: 5px 8px; }
.dx-ritem-w > * { min-width: 0; }
.dx-rline { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.dx-rrole { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-caption); line-height: var(--lh-caption); font-weight: 400; color: var(--text-secondary); }
.dx-ritem-w.active .dx-rrole { color: var(--text-secondary); }
.dx-ritem-w .dx-rmeta:not(.mono) { font-size: var(--fs-caption); color: var(--text-placeholder); white-space: nowrap; }
.dx-code-x { font-family: var(--font-ui); font-weight: 600; }
.dx-ritem.active .dx-code-x { color: var(--accent-text); }

/* sub-tab counts: core .subnav-count (base.css) */

/* center */
.dx-center { overflow: auto; min-height: 0; padding: 16px 20px 40px; }
.dx-chead { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 10px; }
.dx-ctitle { display: grid; gap: 2px; min-width: 0; }
.dx-ctitle .h2 { display: flex; align-items: center; gap: 8px; }
.dx-ctitle .plink { font-weight: 600; }
.dx-cov-btn {
  display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 8px;
  border: 0; border-radius: var(--r-control); background: var(--bg-hover); color: var(--text); font-size: var(--fs-meta);
}
.dx-cov-btn:hover { box-shadow: inset 0 0 0 1px var(--line); }
.dx-cov-btn b { font-weight: 600; }
.dx-chead-acts { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.dx-letter-btn { height: 28px; }
.dx-letter-btn[aria-expanded="true"] { background: var(--bg-hover); color: var(--text); }
.dx-letter-slot:not(:empty) { margin: 2px 0 14px; }
.dx-letter-slot .pcard { max-width: none; }
.dx-letter-empty { margin: 0; padding: 10px 12px; background: var(--bg-pane); border-radius: var(--r-card); line-height: var(--lh-meta); }
.dx-letter-empty .linkbtn { margin-left: 4px; white-space: nowrap; }

/* backlinks (3.4) */
.dx-blink-slot:empty { display: none; }
.dx-blink { justify-self: start; font-size: var(--fs-meta); }
.dx-blinks { display: grid; gap: 1px; margin-top: 4px; max-width: 520px; }
.dx-blrow { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: baseline; padding: 4px 8px; border-radius: var(--r-control); color: var(--text); font-size: var(--fs-meta); }
.dx-blrow:hover { background: var(--bg-hover); text-decoration: none; }
.dx-bltitle { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dx-cov-btn .ico-caret { color: var(--text-secondary); }
.dx-cov-btn[aria-expanded="true"] .ico-caret { transform: rotate(180deg); }
.dx-risk { display: inline-flex; align-items: center; gap: 3px; color: var(--urgency-1); font-weight: 500; }
.dx-cov { margin: 0 0 12px; padding: 6px 0; border-top: 1px solid var(--line-subtle); border-bottom: 1px solid var(--line-subtle); }
.dx-cov li { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 10px; align-items: center; min-height: 28px; font-size: var(--fs-meta); }
.dx-cov-g { display: inline-flex; align-items: center; gap: 4px; color: var(--text-secondary); font-size: var(--fs-caption); }
.dx-cov-risk .dx-cov-g { color: var(--urgency-1); font-weight: 500; }

.dx-proposed { display: grid; gap: 10px; }
.dx-proposed:not(:empty) { margin: 4px 0 14px; }
.dx-proposed .pcard { max-width: none; }

.dx-group { margin-top: 14px; }
.dx-ghead { display: flex; align-items: baseline; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--line-subtle); font-size: var(--fs-body); font-weight: 600; }
.dx-ghead .num { color: var(--text-secondary); font-weight: 500; }
.dx-gsub { margin-left: auto; font-weight: 400; }
.dx-none { padding: 8px 0; }

.dx-f { border-bottom: 1px solid var(--line-subtle); }
.dx-frow { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: start; padding: 8px 0; }
.dx-frow > .dx-code { margin-top: 1px; }
.dx-ftext { font-size: var(--fs-body); line-height: 20px; }
.dx-ftext .cite { margin-left: 2px; }
.dx-fwho { font-weight: 500; color: var(--text-secondary); margin-right: 2px; }
.dx-xmark, .dx-sessmark { font-size: var(--fs-caption); color: var(--text-secondary); white-space: nowrap; }
.dx-xmark::before { content: "!"; display: inline-flex; align-items: center; justify-content: center; width: 12px; height: 12px; margin-right: 4px; border: 1px solid var(--text-secondary); border-radius: 3px; font-size: var(--fs-micro); font-weight: 600; vertical-align: 1px; color: var(--text); }
.dx-f-new .dx-frow { box-shadow: inset 2px 0 0 var(--accent); padding-left: 8px; margin-left: -8px; }
.dx-corr {
  height: 22px; padding: 0 7px; border: 0; border-radius: 4px; background: transparent;
  box-shadow: inset 0 0 0 1px var(--line-subtle); color: var(--text); white-space: nowrap;
  font-size: var(--fs-caption); font-weight: 600; font-variant-numeric: tabular-nums;
}
.dx-corr span { font-weight: 400; color: var(--text-secondary); }
.dx-corr:hover, .dx-corr[aria-expanded="true"] { background: var(--bg-hover); box-shadow: none; }
.dx-corr-none { box-shadow: none; color: var(--text-placeholder); font-weight: 400; padding: 0 7px; line-height: 22px; }
.dx-stack { display: grid; gap: 8px; margin: 0 0 10px 28px; padding: 8px 0 2px; }
.dx-stack li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: start; }
.dx-stack li:first-child .dx-q { border-left-color: var(--text-secondary); }
.dx-fnote { margin: -2px 0 8px 28px; font-size: var(--fs-meta); }
/* the answering passage is the record's own words: the document face in straight marks, as Ask's
   inline verbatim quote is (css/ask.css .ask-vq), so it cannot read as the room's own prose */
.dx-fq { font-family: var(--font-doc); quotes: '"' '"'; }
/* an absence names the excerpts it searched, which is a sentence, not a status pill: it wraps here
   rather than running off the side of a phone (.st is nowrap by default, css/base.css) */
.dx-none .st, .dx-none .st-w { white-space: normal; }

/* contradiction card */
.dx-x { margin-top: 10px; padding: 12px 14px; background: var(--bg-raised); border: 1px solid var(--line-subtle); border-radius: var(--r-card); }
.dx-xhead { display: flex; align-items: center; gap: 8px; }
.dx-xtitle { font-weight: 500; min-width: 0; }
.dx-both { margin-left: auto; height: 26px; }
.dx-xsides { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 12px; margin-top: 10px; }
.dx-vs { align-self: center; font-size: var(--fs-caption); color: var(--text-placeholder); }
.dx-xwho { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 6px; }
.dx-xlab { display: block; margin-bottom: 3px; font-size: var(--fs-micro); font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-secondary); }
.dx-xprov { margin: 10px 0 0; padding-top: 8px; border-top: 1px solid var(--line-subtle); font-size: var(--fs-caption); }
.dx-xgroup { margin-top: 8px; }
.dx-xglabel { margin: 10px 0 0; }
.dx-xgroup .dx-x:first-of-type { margin-top: 6px; }
.dx-xname { font-size: var(--fs-meta); }
.dx-xside .dx-q { font-size: 14px; line-height: 21px; }
.dx-why, .dx-mit { display: flex; gap: 10px; margin-top: 10px; font-size: var(--fs-meta); line-height: var(--lh-meta); flex-wrap: wrap; align-items: baseline; }
.dx-mit { margin-top: 6px; }
.dx-why-l { flex: none; width: 48px; font-size: var(--fs-caption); font-weight: 600; color: var(--text-secondary); }
.dx-why > :not(.dx-why-l) { flex: 1; }
.dx-empty { display: grid; gap: 10px; padding: 16px 0; max-width: 560px; }

/* transcript column */
.dx-txcol { display: flex; flex-direction: column; min-height: 0; overflow: hidden; background: var(--bg-pane); border-left: 1px solid var(--line); }
.dx-pane { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; }
.dx-pane-empty { padding: 24px 16px; }
.dx-pane .pane-head { height: var(--pane-head-h); }
.dx-pane .pane-body { padding: 12px; }
.dx-pane .pane-body:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; border-radius: 0; }
.dx-phwho { font-size: var(--fs-caption); color: var(--text-secondary); white-space: nowrap; }
.dx-pane .paper-tx { padding: 16px 14px 20px 6px; max-width: none; }
.dx-pane .paper-tx .paper-folio { margin: -4px 0 10px 50px; }
.dx-pane .tx-line { grid-template-columns: 18px 32px minmax(0, 1fr); font-size: 12.5px; line-height: 22px; }
.dx-pane .tx-ln { cursor: pointer; padding-right: 10px; border-radius: 3px 0 0 3px; transition: color var(--t-press) var(--ease); }
.dx-pane .tx-line:hover .tx-ln { color: var(--text); }
.dx-pane .tx-bar { position: relative; cursor: pointer; border-radius: 0; }
.dx-pane .tx-bar[data-issue] { background: linear-gradient(to left, color-mix(in srgb, var(--text-placeholder) 55%, transparent) 3px, transparent 3px); opacity: 1; }
.dx-pane .tx-bar.dx-run::before {
  content: attr(data-issue); position: absolute; left: 0; top: 0;
  font-family: var(--font-mono); font-size: var(--fs-micro); line-height: 22px; color: var(--text-secondary);
}
.dx-depos[data-focus-issue="C"] .tx-bar[data-issue="C"],
.dx-depos[data-focus-issue="P"] .tx-bar[data-issue="P"],
.dx-depos[data-focus-issue="G"] .tx-bar[data-issue="G"],
.dx-depos[data-focus-issue="B"] .tx-bar[data-issue="B"],
.dx-depos[data-focus-issue="L"] .tx-bar[data-issue="L"] { background: linear-gradient(to left, var(--accent) 3px, transparent 3px); }
.dx-depos[data-focus-issue="C"] .tx-bar[data-issue="C"]::before,
.dx-depos[data-focus-issue="P"] .tx-bar[data-issue="P"]::before,
.dx-depos[data-focus-issue="G"] .tx-bar[data-issue="G"]::before,
.dx-depos[data-focus-issue="B"] .tx-bar[data-issue="B"]::before,
.dx-depos[data-focus-issue="L"] .tx-bar[data-issue="L"]::before { color: var(--accent-text); font-weight: 500; }
.dx-pane .dx-coll .tx-text, .dx-pane .dx-hdr .tx-text { color: var(--text-secondary); }
.dx-pane .tx-line.dx-sel { background: var(--accent-soft); border-radius: 0; }
.dx-pane .tx-line.dx-sel .tx-ln { color: var(--accent-text); font-weight: 500; }
.dx-pane .tx-line.dx-sel-first { border-top-left-radius: 3px; border-top-right-radius: 3px; }
.dx-pane .tx-line.dx-sel-last { border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; }
.dx-pane .tx-line.dx-des .tx-ln { text-decoration: underline dotted; text-underline-offset: 3px; }
.dx-pane .tx-line.dx-des .tx-text { box-shadow: inset 2px 0 0 var(--text-secondary); padding-left: 6px; }

.dx-strip { flex: none; border-top: 1px solid var(--line); background: var(--bg-raised); }
.dx-strip-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 10px; min-height: 48px; padding: 8px 12px; }
.dx-strip-sel { display: inline-flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.dx-strip-sel .mono { font-weight: 500; }
.dx-strip-acts { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.dx-strip-hint { min-height: 40px; }
.dx-strip-keys { display: inline-flex; align-items: center; gap: 4px; }
.dx-strip-rc { border-top: 1px solid var(--line-subtle); }
.dx-strip-rc .receipt { min-height: 36px; padding: 6px 12px; font-size: var(--fs-meta); }
.dx-exwrap { position: relative; display: inline-flex; }
.dx-exmenu {
  position: absolute; right: 0; bottom: calc(100% + 6px); z-index: 30; min-width: 300px; padding: 4px;
  background: var(--bg-raised); border: 1px solid var(--line-subtle); border-radius: var(--r-card); box-shadow: var(--shadow-float);
}
.dx-exopt { display: flex; justify-content: space-between; gap: 14px; width: 100%; padding: 6px 8px; border: 0; border-radius: 4px; background: none; text-align: left; font-size: var(--fs-meta); white-space: nowrap; }
.dx-exopt:hover, .dx-exopt:focus-visible { background: var(--bg-hover); outline: none; }

/* ================================================================ facts */
.dx-ftbl td { height: auto; padding-top: 7px; padding-bottom: 7px; vertical-align: top; }
.dx-ftbl tr[tabindex] { cursor: default; }
.dx-ftbl tbody tr:hover, .dx-ftbl tbody tr:focus-visible { background: var(--bg-pane); outline: none; }
.dx-ftbl tbody tr:focus-visible { box-shadow: inset 2px 0 0 var(--accent); }
.dx-fdate { white-space: nowrap; color: var(--text-secondary); }
.dx-ffact { min-width: 260px; max-width: 420px; }
.dx-fsrc { white-space: normal; min-width: 140px; }
.dx-fsrc .cite { margin: 0 2px 3px 0; }
.dx-fpeople { font-size: var(--fs-meta); min-width: 120px; }
.dx-hh { font-size: var(--fs-meta); white-space: nowrap; }
.dx-hh-helps { color: var(--text); font-weight: 500; }
.dx-hh-hurts { color: var(--text-secondary); }
.dx-weight { font-size: var(--fs-meta); white-space: nowrap; }
.dx-wbar { display: inline-block; width: 24px; height: 4px; margin-right: 6px; vertical-align: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--text-secondary) var(--wfill, 33%), var(--line) var(--wfill, 33%)); }
.dx-weight[data-w="medium"] .dx-wbar { --wfill: 66%; }
.dx-weight[data-w="high"] .dx-wbar { --wfill: 100%; }
.dx-fissues { white-space: nowrap; }
.dx-state { display: inline-flex; align-items: center; gap: 5px; font-size: var(--fs-meta); white-space: nowrap; color: var(--text-secondary); }
.dx-frow-disputed .dx-state { color: var(--text); }
.dx-preview {
  position: fixed; z-index: 35; width: 380px; max-width: calc(100vw - 32px); padding: 12px 14px; display: grid; gap: 8px;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-card); box-shadow: var(--shadow-float);
  pointer-events: none;
}
.dx-pv-head { display: flex; justify-content: space-between; gap: 10px; font-size: var(--fs-meta); }

/* ============================================================== written */
.dx-written { display: grid; grid-template-columns: 220px minmax(0, 1fr) 300px; gap: 24px; align-items: start; }
.dx-wlist .section-label { margin-bottom: 2px; }
.dx-wserved { margin-bottom: 8px; }
.dx-wlist ol { display: grid; gap: 1px; }
.dx-witem { display: grid; grid-template-columns: 20px minmax(0, 1fr) auto; gap: 6px; align-items: center; width: 100%; min-height: 30px; padding: 0 6px; border: 0; border-radius: var(--r-control); background: none; text-align: left; font-size: var(--fs-meta); color: var(--text-secondary); }
.dx-witem:hover { background: var(--bg-hover); color: var(--text); }
.dx-witem.active { background: var(--bg-selected); color: var(--accent-text); font-weight: 500; }
.dx-wn { font-size: 12px; }
.dx-wt { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dx-ws { font-size: var(--fs-caption); color: var(--text-placeholder); }
.dx-ws-motion { color: var(--urgency-1); font-weight: 500; }
.dx-whead { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.dx-wflags { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.dx-wdue { display: inline-flex; align-items: center; gap: 6px; }
.dx-wblock { margin-top: 16px; display: grid; gap: 6px; }
.dx-objrow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dx-objwrap { position: relative; margin-left: auto; }
.dx-objmenu {
  position: absolute; right: 0; top: calc(100% + 4px); z-index: 30; width: 300px; padding: 6px; display: grid; gap: 2px;
  background: var(--bg-raised); border: 1px solid var(--line-subtle); border-radius: var(--r-card); box-shadow: var(--shadow-float);
}
.dx-objopt { display: flex; align-items: center; gap: 8px; min-height: 30px; padding: 0 6px; border-radius: 4px; font-size: var(--fs-meta); cursor: pointer; }
.dx-objopt:hover { background: var(--bg-hover); }
.dx-objopt input { accent-color: var(--accent); margin: 0; }
.dx-objnote { padding: 6px 6px 2px; border-top: 1px solid var(--line-subtle); margin-top: 4px; }
.dx-draft { max-width: none; margin: 4px 0 0; padding: 20px 24px; font-family: var(--font-doc); font-size: 15px; line-height: 25px; }
.dx-dp + .dx-dl, .dx-dl + .dx-dp { margin-top: 10px; }
.dx-dl { list-style: decimal; padding-left: 22px; display: grid; gap: 6px; }
.dx-draft .cite { font-family: var(--font-mono); vertical-align: 2px; }
.dx-unsrc { font-family: var(--font-ui); font-size: var(--fs-caption); color: var(--urgency-1); border-bottom: 1px dotted currentColor; }
.dx-wactions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.dx-wtree { padding: 14px; background: var(--bg-pane); border-radius: var(--r-card); position: sticky; top: 12px; }
.dx-tsum { margin-bottom: 10px; }
.dx-tree { display: grid; gap: 10px; }
.dx-tgl { font-size: var(--fs-meta); font-weight: 500; }
.dx-tgroup > ul { margin: 4px 0 0 6px; padding-left: 10px; border-left: 1px solid var(--line); display: grid; gap: 4px; }
.dx-tn { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 2px 8px; font-size: var(--fs-meta); line-height: 18px; }
.dx-tn .cite { grid-column: 2; justify-self: start; }
.dx-tg { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-caption); color: var(--text-secondary); white-space: nowrap; }
.dx-tn-gap .dx-tg { color: var(--urgency-1); font-weight: 500; }

/* ========================================================== productions */
.dx-psec + .dx-psec { margin-top: 28px; }
.dx-bates { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; }
.dx-bates .input { width: 150px; height: 28px; }
.dx-ptbl td:first-child, .dx-ptbl th:first-child { width: 36px; padding-right: 0; }
.dx-pexp .ico-chevron { transition: transform var(--t-press) var(--ease); }
.dx-pexp[aria-expanded="true"] .ico-chevron { transform: rotate(90deg); }
.dx-prow td { font-weight: 500; }
.dx-prow td.meta { font-weight: 400; }
.dx-psub td { height: 30px; font-size: var(--fs-meta); color: var(--text-secondary); background: var(--bg-pane); }
.dx-psub td.mono { color: var(--text); }
.dx-dir { display: inline-flex; align-items: center; gap: 5px; }
.dx-in { display: inline-flex; transform: rotate(180deg); }
.dx-pnote { margin-top: 8px; }
.dx-nopen td { background: var(--bg-pane); }

/* other matters: depositions and productions from fixtures; quiet room */
.dx-quiet { overflow: auto; }
.dx-mprod .dx-psec, .dx-mdepos .dx-psec { max-width: 1040px; }
.dx-dtbl .dx-dwit { font-weight: 500; white-space: nowrap; }
.dx-dtbl .dx-drole { color: var(--text-secondary); }
.dx-dtbl td .ico-check { vertical-align: -1px; }
.dx-mptbl td:first-child, .dx-mptbl th:first-child { width: auto; padding-right: 12px; }
.dx-syncerr {
  display: flex; align-items: center; flex-wrap: wrap; gap: 6px 10px; margin: 0 0 12px; padding: 8px 12px;
  border: 1px solid var(--line); border-left: 2px solid var(--urgency-3); border-radius: var(--r-control);
  background: var(--bg-pane); font-size: var(--fs-meta); color: var(--text);
}
.dx-syncerr > svg { flex: none; color: var(--urgency-3); }
.dx-syncerr > span { flex: 1 1 320px; min-width: 0; }
.dx-syncerr .btn { flex: none; }
.dx-mptbl td.mono, .dx-dtbl td.mono { white-space: nowrap; }
@media (max-width: 720px) {
  .dx-mptbl, .dx-dtbl { min-width: 640px; }
  .dx-syncerr { align-items: flex-start; }
  .dx-syncerr > span { flex: 1 1 0; }
}

/* ============================================================ responsive */
@media (max-width: 1180px) {
  .dx-depos { grid-template-columns: 180px minmax(0, 1fr) minmax(340px, 40%); }
  .dx-written { grid-template-columns: 180px minmax(0, 1fr); }
  .dx-wtree { grid-column: 2; position: static; }
}
@media (max-width: 720px) {
  .dx-room { height: auto; }
  .dx-depos, .shell.pane-open .dx-depos { display: block; }
  .dx-rail { display: block; border-right: 0; border-bottom: 1px solid var(--line-subtle); padding: 10px 16px; }
  .shell.pane-open .dx-rail { display: block; }
  .dx-rlist { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
  .dx-center { padding: 12px 16px 24px; overflow: visible; }
  .dx-txcol { height: 75vh; border-left: 0; border-top: 1px solid var(--line); }
  .dx-xsides { grid-template-columns: 1fr; }
  .dx-vs { display: none; }
  .dx-page { padding: 12px 16px 24px; }
  .dx-written { grid-template-columns: 1fr; }
  .dx-wtree { grid-column: auto; }
  .dx-toolbar-r, .dx-bates { margin-left: 0; }
  .dx-cov li { grid-template-columns: 1fr auto; }
  .dx-cov-g { grid-column: 1 / -1; }
}

/* ============================================================ round 7, Evidence lane
   Three groups: the finding row and rail at round 6's sizes (3.10); the evidence panel (design 4.4);
   and the source pane's call player and failure states, which live here because css/discovery.css is
   this lane's only stylesheet -- every page loads it, so the pane looks the same in every room. */

/* ---- rail and finding rows (round 6 3.10): one 13 px meta line, no letter badges, no outlined
   corroboration button; the letter codes stay in the transcript margin where they mean something. */
/* the round 6 sizes apply where there is room for them; on a phone the rail is a compact index and
   keeps its 12 px role line, so raising the desktop sizes does not lengthen the phone page */
@media (min-width: 721px) {
  .dx-rmeta { font-size: var(--fs-meta); }
  .dx-ritem-w .dx-rmeta:not(.mono) { font-size: var(--fs-meta); }
  .dx-rrole { font-size: var(--fs-meta); line-height: var(--lh-meta); }
  .dx-rname { font-size: var(--fs-body); }
  .dx-ritem { font-size: var(--fs-body); }
}

.dx-frow { display: block; padding: 8px 0; }
.dx-ftext { margin: 0; font-size: var(--fs-body); line-height: 20px; }
.dx-fmeta {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 0 2px; margin: 2px 0 0;
  font-size: var(--fs-meta); line-height: var(--lh-meta); color: var(--text-secondary);
}
.dx-fissue { color: var(--text-secondary); }
.dx-sep { padding: 0 6px; color: var(--text-placeholder); }
.dx-fmeta .st { font-size: var(--fs-meta); }
.dx-corr {
  height: auto; padding: 0; border: 0; background: transparent; box-shadow: none;
  color: var(--text-secondary); font-size: var(--fs-meta); font-weight: 400;
  text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 2px;
}
.dx-corr:hover, .dx-corr[aria-expanded="true"] { background: transparent; color: var(--text); }
.dx-xmark { display: inline-flex; align-items: center; gap: 4px; font-size: var(--fs-meta); }
.dx-xmark::before { content: none; }
.dx-sessmark { font-size: var(--fs-meta); }
.dx-stack { margin-left: 0; }
.dx-fnote { margin-left: 0; }

/* ---- evidence panel: source, claim, contradicting sources, one card (S4.5, S4.6, S4.11, S5.12) */
.dx-claim { margin: 10px 0 18px; padding: 12px 14px; background: var(--bg-pane); border: 1px solid var(--line-subtle); border-radius: var(--r-card); }
.dx-claim-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.dx-claim .claim { display: grid; gap: 10px; }
.dx-contra { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line-subtle); }
.dx-contra .section-label { margin: 0 0 6px; }
.dx-contra-note { margin: 4px 0 0; }
.dx-resolved { display: flex; align-items: baseline; gap: 8px; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line-subtle); font-size: var(--fs-meta); }
.dx-resolve-slot:not(:empty) { margin-top: 12px; }
.dx-resolve-slot .pcard { max-width: none; }

/* ---- source pane: call recordings (G16, S5.6, S5.7, S17.10) -------------------------------------
   The segment's timecode is the jump control and says what it does; display:block replaces the narrow
   timecode column every call view used, so "Jump to 3:12" is never clipped. */
.paper-call .call-seg { display: block; grid-template-columns: none; padding: 8px; }
.paper-call .call-seghead { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.paper-call .call-t {
  height: auto; padding: 1px 6px; border: 0; border-radius: 4px; background: transparent;
  box-shadow: inset 0 0 0 1px var(--line-subtle); color: var(--text);
  font-family: var(--font-ui); font-size: var(--fs-caption); font-variant-numeric: tabular-nums; line-height: 18px;
}
.paper-call .call-t:hover { background: var(--bg-hover); }
.paper-call .call-seg.is-playing { background: var(--accent-soft); border-radius: 4px; }
.paper-call .call-seg.is-playing .call-t { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent-text); }
.paper-call .call-text { margin-top: 2px; }
.call-recorded { display: inline-flex; align-items: baseline; gap: 0; white-space: nowrap; }
.call-player {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; padding: 8px 10px;
  background: var(--bg-raised); border: 1px solid var(--line-subtle); border-radius: var(--r-control);
  font-size: var(--fs-meta);
}
.call-player .btn { height: var(--control-h); }
.call-range { flex: 1 1 120px; min-width: 100px; accent-color: var(--accent); }
.call-pos { flex: none; color: var(--text-secondary); }
.call-note { flex: 1 1 100%; color: var(--text-secondary); }

/* ---- source pane: what happened instead of the document (G17, S5.10, S23.10) */
.paper-state { display: grid; gap: 8px; max-width: 460px; padding: 20px 4px; }
.state-empty { display: grid; gap: 4px; justify-items: start; }
.state-empty .st { font-size: var(--fs-body); }
.state-detail { margin: 0; }
.state-act { margin: 2px 0 0; }
.doc-state { padding: 8px 16px; }

@media (max-width: 720px) {
  .dx-claim { padding: 10px 12px; }
  .call-player { gap: 6px; }
}

/* contradiction card at round 6 3.10 sizes: 12 px eyebrows over 14 px content, 13 px provenance,
   the issue as a word (the letter code stays in the transcript margin) */
.dx-xlab { font-size: var(--fs-caption); letter-spacing: 0.04em; }
.dx-xprov { font-size: var(--fs-meta); }
.dx-xissue { flex: none; font-size: var(--fs-meta); color: var(--text-secondary); }
.dx-xtitle { font-size: var(--fs-body); }
.dx-xside .dx-q { font-size: 14px; line-height: 21px; }
.dx-gkind { font-weight: 400; }
.dx-gkind .disc { font-size: var(--fs-meta); }

/* Facts view: five columns at rest, three more on request (round 6 3.10) */
.dx-ftbl[data-cols="core"] .dx-cx { display: none; }
.dx-fissues { color: var(--text-secondary); font-size: var(--fs-meta); }

/* The finding's meta line is running text. Its one control keeps a 24 px touch box while the line
   stays 18 px high: the extra height is padding cancelled by an equal negative margin, so the row
   does not grow and the target is still full size. */
.dx-fmeta { display: block; }
.dx-fmeta > * { display: inline; }
.dx-fmeta .st { display: inline; }
.dx-fmeta .st svg { vertical-align: -2px; }
.dx-corr { display: inline-block; min-height: 24px; min-width: 24px; padding: 3px 0; margin: -3px 0; vertical-align: middle; }
.dx-xmark { display: inline; }

/* the rail's two index lists are folds: one summary row each on a phone, plain sections above 720 px
   (W.ui.syncFolds forces them open there, so the summary text would only repeat the selection) */
.dx-rail .fold-sum .region-title { font-size: var(--fs-caption); font-weight: 600; letter-spacing: 0.02em; color: var(--text-secondary); text-transform: none; }
@media (min-width: 721px) {
  .dx-rail .fold-sum { padding: 0 8px 6px; min-height: 0; pointer-events: none; }
  .dx-rail .fold-sum .fold-summary, .dx-rail .fold-sum > svg { display: none; }
}
@media (max-width: 720px) {
  .dx-rail .fold-body { padding-top: 6px; }
}
