/* Product-only presentation differences. Every rule must name an accepted B row.
   B10: exactly four font URL substitutions occur in firm-source.css.
   /ui/fonts/source-serif/SourceSerif4Variable-Roman.ttf.woff2?v=940a76eda1388de3; original byte offset 137
   /ui/fonts/source-serif/SourceSerif4Variable-Italic.ttf.woff2?v=9d28b5749a1ad096; original byte offset 345
   /ui/fonts/source-sans/SourceSans3VF-Upright.ttf.woff2?v=5f16566f7a40d39b; original byte offset 553
   /ui/fonts/source-sans/SourceSans3VF-Italic.ttf.woff2?v=b4959abc0569392f; original byte offset 754
   All original families, weights, styles and other CSS bytes are preserved.
   The external provenance ledger records both URL values. No duplicate font faces.
*/
/* B8: native focus-trap wrapper only. The literal sidebar and its own shadow
   supply the approved drawer, dimensions, backdrop, and Close control. */
body:is(.firm,.client,.platform) dialog.firm-native-menu {
  position: fixed; inset: 0; margin: 0; padding: 0; border: 0;
  width: 100vw; height: 100dvh; max-width: none; max-height: none;
  background: transparent; color: inherit; overflow: visible;
}
body:is(.firm,.client,.platform) dialog.firm-native-menu::backdrop { background: transparent; }
/* B8: preserve the real skip link in the platform shell. These are the locked
   firm/client skip-link rules, absent only from the platform illustration. */
body.platform .skip { position:absolute; left:240px; top:-80px; z-index:30; padding:10px; background:white; }
body.platform .skip:focus { top:8px; }
@media(max-width:760px) { body.platform .skip { left:16px; } }

/* B8: preserve the supported identity inspection in the open phone drawer.
   Same literal seal and footer; closed-phone and desktop presentation unchanged. */
@media (max-width: 760px) {
  body.firm .sidebar.bb-menu-open .sidebar-footer { display: block; }
}

/* B8: persistent controller-owned view groups retain live drafts and focus
   memory without adding a presentation box. Focus targets real child content. */
body:is(.firm,.client) .engagement-view[data-literal-view] { display: contents; }
body:is(.firm,.client) .engagement-view[data-literal-view][hidden] { display: none; }
body:is(.firm,.client) [data-literal-container] { display: contents; }
body:is(.firm,.client) [data-literal-container][hidden], body.platform [hidden] { display: none; }

/* B8 M6: real client text and exact identifiers; no truncation or new tokens. */
body.client :is(.case-question,.request-question,.readonly-answer) { white-space:pre-wrap; overflow-wrap:anywhere; }
body.client :is(.file-row,.delivery-identity,.delivery-history,.b4-file-grid) { min-width:0; overflow-wrap:anywhere; }

/* B8 reader source text: preserve the existing library's spaces, tabs and
   line breaks in frozen client documents. Text nodes only; no HTML parsing. */
body.firm :is(.lm-source, .reference-source) .client-source-text { white-space: pre-wrap; }

/* B8 record seams: literal raw client text; complete canonical and five-class
   records in closed disclosures; exact target focus is independent of pink. */
body.firm[data-entry="library"] .source-view > .client-source-text { white-space:pre-wrap; overflow-wrap:anywhere; }
body.firm .b4-record-disclosure { margin:20px 0; overflow-wrap:anywhere; }
body.firm .b4-record-disclosure > summary { cursor:pointer; font-size:12px; color:var(--muted); }
body.firm .b4-record-disclosure .passage-table-wrap { overflow-x:auto; }
body.firm .b4-record-disclosure table { width:100%; border-collapse:collapse; font-size:12px; }
body.firm .b4-record-disclosure :is(td,th) { vertical-align:top; padding:10px; border-bottom:1px solid var(--line); text-align:left; }
body.firm .b4-record-disclosure :is(.relationship-row,.extraction-record>div) { display:grid; grid-template-columns:minmax(120px,1fr) minmax(0,2fr); gap:12px; margin:12px 0; }
body.firm .b4-record-disclosure dt small { display:block; }
body.firm .b4-record-disclosure dd { margin:0; }
body.firm .b4-record-disclosure .passage-chip { display:inline-block; margin:3px 8px 3px 0; }
body.firm .b4-record-disclosure pre { white-space:pre-wrap; overflow-wrap:anywhere; }
body.firm .b4-record-disclosure :is(.row-passage,.row-judgment q,.row-judgment p) { white-space:pre-wrap; }
body.firm .b4-record-disclosure .row-sources .text-link { display:block; }
body.firm .b4-record-disclosure .row-judgment q { display:block; margin-top:6px; }
@media(max-width:900px) {
  body.firm .b4-record-disclosure .passage-table :is(tbody,tr,td,th) { display:block; width:100%; }
  body.firm .b4-record-disclosure .passage-table thead { display:none; }
  body.firm .b4-record-disclosure .passage-table td[data-label]::before { content:attr(data-label); display:block; font-size:10px; color:var(--muted); margin-bottom:5px; }
}
/* F2: the exact eligible authority unit uses the locked highlight, including
   keyboard arrival. This exception does not remove any other focus ring. */
body.firm .unit.highlight.b4-unit-here { background:#edf3e7; margin:0 -15px; padding:20px 15px; border-radius:4px; outline:none; scroll-margin-top:16px; }
body.firm .b4-record-footer { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:28px; border-top:1px solid var(--line); padding-top:18px; }
body.firm .b4-record-footer .small-note { margin:0; }
body.firm .b4-research-provenance { margin-top:28px; }

/* B8 B4-06: actual file names/IDs replace short illustrative labels. Preserve
   every character within the literal columns and confirmation at phone width. */
body.firm #deliverables :is(.bb-desk-current,.bb-desk-proposed,.bb-history-row,.bb-identity,.dialog-content) { min-width:0; overflow-wrap:anywhere; }
body.firm #deliverables .dialog-top h2 { min-width:0; overflow-wrap:anywhere; }

/* B8 D16: original recorded sentence is inspectable in a closed trace fold.
   It is plain text and never supplies an anchor, label or source binding. */
body.firm .lm-recorded-sentence blockquote { white-space:pre-wrap; overflow-wrap:anywhere; }

/* B8: real pending data, absent from the offline design. Existing skeleton
   shapes and motion, using the accepted neutral token; no payload or status.
   Literal row wrappers own geometry. Slot heights follow their real line boxes. */
.skeleton-line { background: var(--line); border-radius: 4px; height: 16px; width: 100%; }
.skeleton-line.short { max-width: 120px; height: 12px; margin-bottom: 12px; }
.skeleton-line.title { max-width: 330px; height: 39px; }
.skeleton-line.meta { max-width: 260px; margin-top: 24px; height: 21px; }
.skeleton-line.action { max-width: 200px; height: 44px; }
.b4-project-row.skeleton .skeleton-line { display: block; height: 1lh; margin: 0; }
.b4-project-row.skeleton h2 button { width: 100%; }
@media (prefers-reduced-motion: no-preference) {
  .skeleton-line { animation: pulse 1800ms ease-in-out infinite alternate; }
  @keyframes pulse { from { opacity: .55; } to { opacity: 1; } }
}

/* A13: approved Back pill and arrival cue. */
.document-pane,#source-view { position:relative; }
.b4-back-pill {
  position:absolute; z-index:6; display:inline-flex; align-items:center; gap:3px;
  height:22px; padding:0 7px 0 5px; border:1px solid #17694f; border-radius:11px;
  background:#fffffc; color:#17694f; font:12px/20px var(--sans); white-space:nowrap;
  box-shadow:0 1px 3px #173e2512; cursor:pointer;
}
.b4-back-pill svg { width:14px; height:14px; flex:none; }
.b4-back-pill:focus-visible { outline:2px solid #17694f; outline-offset:2px; }
.b4-back-tip {
  display:none; position:absolute; top:26px; left:0; max-width:min(280px,65vw);
  width:max-content; padding:6px 9px; border:1px solid #d8ddd4; border-radius:4px;
  background:#fffffc; color:#17694f; white-space:normal; font:12px/1.4 var(--sans);
  box-shadow:0 2px 8px #173e2512; pointer-events:none;
}
.b4-back-pill:hover .b4-back-tip,.b4-back-pill:focus .b4-back-tip { display:block; }
.lm-workspace .memo-paper .passage.b4-arrived {
  --arrival-tint:#fff176; --arrival-ink:#7a6400;
  outline:2px solid var(--arrival-ink); outline-offset:2px;
  background:var(--arrival-tint)!important; -webkit-text-stroke:.4px #232b28;
  box-decoration-break:clone; -webkit-box-decoration-break:clone;
}
.lm-workspace .memo-paper .passage.b4-arrived.amber { --arrival-tint:#ffec5e; --arrival-ink:#7a6400; }
.lm-workspace .memo-paper .passage.b4-arrived.green { --arrival-tint:#a0ee96; --arrival-ink:#1f7a2e; }
.lm-workspace .memo-paper .passage.b4-arrived.blue { --arrival-tint:#97defd; --arrival-ink:#0a64a4; }
.lm-workspace .memo-paper .passage.b4-arrived.b4-arrival-fading {
  transition:background-color .6s, outline-color .6s, -webkit-text-stroke-width .6s;
  background:var(--status-review-highlight)!important; outline-color:transparent; -webkit-text-stroke-width:0;
}
.lm-workspace .memo-paper .passage.b4-arrival-fading.green { background:var(--status-certified-highlight)!important; }
.lm-workspace .memo-paper .passage.b4-arrival-fading.blue { background:var(--status-verbatim-highlight)!important; }
@media (prefers-reduced-motion:reduce) { .lm-workspace .memo-paper .passage.b4-arrived { transition:none!important; } }
@media (forced-colors:active) { .lm-workspace .memo-paper .passage.b4-arrived { outline-color:Highlight; -webkit-text-stroke:0; } }
@media print {
  .b4-reading-column { max-width:none; }
  .b4-back-pill { display:none!important; }
  .lm-workspace .memo-paper .passage.b4-arrived { outline:none!important; -webkit-text-stroke:0!important; background:transparent!important; }
}

.b4-back-unavailable { position:relative; margin:12px 0; cursor:default; }

/* OWNER NIT 2026-10-14: reserve eight more pixels for the native select arrow
   so Jump to section remains complete; long section titles keep a fixed width. */
.lm-outline select { width:132px; max-width:132px; }
