/* 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; }
  /* Part 18 design 2: on a workspace page the open phone drawer shows no empty engagement block -- the firm identity
     above already gives the context. Inside an engagement the seal stays, deliverable or not. Desktop unchanged. */
  body.firm .sidebar.bb-menu-open .sidebar-footer:has(> .b4-seal[data-engaged="false"]) { display: none; }
}

/* 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; }

/* Owner 2026-11-03: paragraph spacing in structured authority source views.
   The active firm styles replace the legacy library/memo styles. */
body.firm .unit-text.authority-structured > .authority-block + .authority-block { margin-top:.85em; }

/* 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; }

/* POST-TC2 U5 item 11: the legacy intake.css is switched off under B4, so the new-project page lost its file picker,
   file-list and control spacing. These rules carry exactly those, from intake.css, matched to the DOM new-project.js
   renders (metadata .small-note, Remove .text-link). The step rail, panels, layout, textarea and drop zone keep the
   presentation they already have. */
.file-picker { position:absolute; width:1px; height:1px; opacity:0; }
.file-picker:focus-visible + label { outline:2px solid #225b78; outline-offset:3px; }
.intake-files { list-style:none; margin:20px 0 0; padding:0; }
.intake-file { display:flex; gap:16px; justify-content:space-between; align-items:center; padding:16px 0; border-bottom:1px solid var(--line); }
.intake-file > div { min-width:0; }
.intake-file strong { font-weight:500; }
.intake-file .small-note { font-variant-numeric:tabular-nums; }
.intake-panel > :is(a, button) { margin:8px 12px 8px 0; }
.intake-progress > :is(a, button) { margin:24px 12px 0 0; }
@media (max-width:650px) {
  .intake-file { flex-wrap:wrap; } .intake-file .text-link { margin-left:auto; }
  .intake-progress > .button { width:100%; margin-right:0; }
}

/* POST-TC2 U5 item 36: the project search shows a visible focus ring (client "Find a project", firm "Find a project
   or client"), the ring the client textarea already uses. */
.search:focus-within { outline:2px solid #225b78; outline-offset:3px; }

/* POST-TC2 U8a item 12: under 1150 px the client file row drops to two columns; the Download button stays under the
   file details instead of wrapping into the 38 px type column. */
@media(max-width:1150px) { .file-row > .button { grid-column:2; justify-self:start; } }

/* POST-TC2 U8a item 37: the firm reader keeps a number on one line (memo.css's rule, switched off under B4); text and
   evidence bindings are untouched, and a wide table still scrolls inside its existing .table-wrap. */
.table-wrap td.numeric { white-space:nowrap; }

/* POST-TC2 U8a item 26 (client spacing, measured): the round tabs no longer touch the closed notice or the round panel
   (0 px each); "Publication history" no longer touches the file grid above it (0 px); the first file row in Original
   documents no longer doubles the panel's top padding (23 px on 27 px); a date in a title stays on one line. */
.button-row[aria-label="Request rounds"] { margin:14px 0; }
.delivery-history { margin-top:14px; }
[data-client-files] > .file-row:first-child { padding-top:0; }
.title-date { white-space:nowrap; }

/* POST-TC2 U8b items 35 and 32: a view's H1 takes focus on an ordinary view change. A keyboard user keeps a visible
   ring; the heavy box after a pointer navigation (seen on mobile) does not appear. */
main h1[tabindex="-1"]:focus:not(:focus-visible) { outline:none; }
main h1[tabindex="-1"]:focus-visible { outline:2px solid #225b78; outline-offset:4px; }

/* ROUND 2 (H2): a firm project card opens the same destination as its title, so the whole card reads as one target.
   The title button keeps its own focus ring; the card only shows the pointer and a quiet hover. */
.b4-project-row[data-card-href] { cursor:pointer; }
.b4-project-row[data-card-href]:hover h2 button { text-decoration:underline; }

/* ROUND 2 (item 19): the reader toolbar stacks into three rows when its groups do not fit one (reader.js decides). */
.lm-toolbar.lm-toolbar-stacked { flex-direction:column; align-items:flex-start; }

/* ROUND 2 (T13): Firm working files' actions stay together, in order, beside the text. */
.bb-working-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px; }
.bb-working-actions > span:empty { display:none; }

/* D24/D25 (2026-10-24, Codex's design): the Sufficiency page -- three tabs, equal Facts/Law tiles, finding cards, one
   decision panel, the Override card with its captured questions, and the authorities one reader named. */
#completeness { max-width:1180px; }
.sf-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; }
.sf-private { font-size:11px; color:var(--muted); padding-bottom:7px; }
.sf-tabs { display:flex; gap:7px; flex-wrap:wrap; margin:26px 0 26px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.sf-tab { padding:9px 14px; background:transparent; border:1px solid transparent; border-radius:5px; color:var(--muted); font-size:12px; display:flex; gap:12px; align-items:center; }
.sf-tab:hover { background:#eaece4; }
.sf-tab[aria-selected=true] { background:#e6eae2; border-color:#bac8b5; color:#213d30; }
.sf-count { font-size:11px; font-variant-numeric:tabular-nums; background:#e8e9e1; min-width:19px; padding:0 5px; border-radius:3px; display:inline-block; text-align:center; }
.sf-tab[aria-selected=true] .sf-count { background:#d6e1d2; }
.sf-panel { display:flex; flex-direction:column; gap:18px; }
.sf-panel:focus-visible { outline:3px solid #30816a; outline-offset:6px; }
.sf-sectionhead { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; }
.sf-sectionhead h2 { font:26px/1.3 var(--serif); }
.sf-sectionhead p { margin-top:6px; color:var(--muted); font-size:13px; max-width:75ch; }
.sf-status { display:inline-flex; align-items:center; gap:7px; font-size:11px; white-space:nowrap; color:var(--muted); }
.sf-status::before { content:''; width:6px; height:6px; background:currentColor; border-radius:50%; }
.sf-status.amber { color:var(--amber); } .sf-status.green { color:var(--green); }
.sf-pair, .sf-findings { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:18px; }
.sf-summary, .sf-finding, .sf-override, .sf-mention, .sf-library .sf-finding { background:var(--white); border:1px solid var(--line); border-radius:6px; padding:22px 24px; }
.sf-summary .sf-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.sf-summary h3 { font:23px/1.3 var(--serif); }
.sf-summary p { margin-top:10px; }
.sf-finding { display:flex; flex-direction:column; gap:10px; }
.sf-label { font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); }
.sf-finding h3, .sf-mention h3 { font:20px/1.4 var(--serif); }
.sf-finding .sf-text { font-size:13px; line-height:1.8; }
.sf-finding .sf-attribution { margin-top:auto; padding-top:12px; }
.sf-finding .text-link { align-self:flex-start; }
.sf-subheading { display:flex; justify-content:space-between; align-items:center; margin-top:12px; }
.sf-subheading h3 { font:19px var(--serif); } .sf-subheading span { font-size:11px; color:var(--muted); }
.sf-library { display:flex; flex-direction:column; gap:12px; }
.sf-decision { background:#e8ede3; border:1px solid #d2dccb; border-radius:6px; padding:24px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.sf-decision h3 { font:22px/1.3 var(--serif); }
.sf-decision .sf-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.sf-composer { background:var(--white); border:1px solid #b8cbb2; border-radius:6px; padding:25px; }
.sf-composer h3 { font:21px/1.4 var(--serif); margin:4px 0 8px; }
.sf-composer textarea { display:block; width:100%; min-height:125px; margin:9px 0 7px; }
.sf-record, .sf-history { border-top:1px solid var(--line); padding-top:18px; }
.sf-record > summary { color:var(--muted); font-size:12px; }
.sf-record dl { display:grid; grid-template-columns:140px 1fr; gap:8px; margin-top:14px; font-size:12px; overflow-wrap:anywhere; }
.sf-record dt { color:var(--muted); } .sf-record dd { margin:0; }
.sf-history > summary { font:21px var(--serif); }
.sf-historical { padding:20px 0 0; font-size:13px; }
.sf-historical blockquote { border-left:2px solid #b6c7ac; padding-left:18px; margin:16px 0; font:17px/1.7 var(--serif); max-width:70ch; }
.sf-byline { color:var(--muted); font-size:11px; margin-top:9px; }
.sf-withdrawn-head { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; padding-top:24px; border-top:1px solid var(--line); margin-bottom:12px; font-size:13px; font-weight:600; }
.sf-withdrawn-head span { color:var(--muted); font-size:11px; font-weight:400; }
.sf-question { background:#f8f8f1; border:1px solid #e4e4da; border-radius:4px; padding:20px; margin-top:12px; }
.sf-question h3 { font:600 14px/1.5 var(--sans); } .sf-question h3 span { font-weight:400; color:var(--muted); }
.sf-question p { font-size:13px; margin-top:9px; } .sf-question .sf-why, .sf-question .sf-authority { font-size:12px; color:var(--muted); }
.sf-capture { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px 16px; margin-top:16px; font-size:11px; color:var(--muted); }
.sf-outcome { margin-top:24px; padding-top:20px; border-top:1px solid var(--line); font-size:13px; }
.sf-outcome small { display:block; color:var(--muted); margin-bottom:5px; }
.sf-mention { display:grid; grid-template-columns:1fr auto; gap:25px; }
.sf-mention .sf-provenance { color:var(--muted); font-size:12px; margin-top:9px; }
.sf-empty { border:1px dashed #c6cec0; padding:36px 24px; border-radius:6px; text-align:center; color:var(--muted); }
.sf-empty h3 { color:var(--ink); margin-bottom:9px; }
@media (max-width:1100px) { .sf-decision { align-items:flex-start; flex-direction:column; } .sf-decision .sf-actions { justify-content:flex-start; } }
@media (max-width:740px) {
  .sf-pair, .sf-findings { grid-template-columns:1fr; gap:13px; }
  .sf-tabs { gap:4px; } .sf-tab { padding:9px 8px; font-size:11px; gap:7px; }
  .sf-summary, .sf-finding, .sf-override, .sf-decision, .sf-composer, .sf-mention { padding:20px; }
  .sf-mention { display:flex; flex-direction:column; gap:8px; } .sf-private { display:none; }
  .sf-decision .button { width:100%; white-space:normal; }
  .sf-record dl { grid-template-columns:110px 1fr; }
}
/* D30: a unit's closing words, editorial notes and law images in the source viewer. */
.unit.unit-closing { padding-top:6px; }
.unit-closing-of { font:600 11px var(--sans); color:var(--muted); margin-bottom:8px; }
.unit.unit-notes > summary { cursor:pointer; font:600 13px var(--sans); color:var(--muted); }
.unit.unit-notes[open] > summary { margin-bottom:12px; }
.unit.unit-notes .unit-text { color:var(--muted); font-size:14px; }
.law-figure { display:block; margin:12px 0; }
.law-figure-image { display:block; max-width:min(100%, 640px); height:auto; border:1px solid var(--line); border-radius:4px; background:#fff; }
.law-figure-missing { font:italic 13px var(--sans); color:var(--muted); }
/* TC5 Sufficiency (Codex's design, owner-approved 2026-10-24): the engagement page's language -- pale-green action
   hero, 12px cards, the Memorandum / Bullet-point summary switch for Facts / Law -- with Facts and Law both amber.
   Side colors name a side; they never certify legal support or represent agreement. */
.sf-decision { background:#e6f0e8; border-color:#cbded1; border-radius:12px; padding:27px 29px; border-left:4px solid #17694f; }
.sf-decision h3 { font-size:25px; }
.sf-summary, .sf-finding, .sf-override, .sf-mention, .sf-composer, .sf-library .sf-finding { border-radius:12px; }
.sf-sectionhead .sf-vote-line { margin-top:6px; }
.sf-side-switch { align-self:flex-start; margin-bottom:0; }
.sf-side-switch button { display:flex; align-items:center; gap:12px; min-height:40px; }
.sf-side-switch .sf-count { background:transparent; color:inherit; padding:0; }
.sf-side-panel { display:flex; flex-direction:column; gap:18px; }
.sf-side-panel[hidden] { display:none; }
.sf-side-overview { display:flex; align-items:center; gap:18px; padding:19px 23px; background:#f8f1df; border:1px solid #e0d3b1; border-radius:12px; }
.sf-side-symbol { display:grid; place-items:center; flex:none; width:42px; height:42px; border-radius:10px; background:#efdfba; color:#875c19; font:23px var(--serif); }
.sf-side-overview h3 { font:22px/1.3 var(--serif); }
.sf-side-overview p { font-size:13px; color:var(--muted); margin-top:3px; }
.sf-findings.single { grid-template-columns:1fr; }
.sf-finding { border-top:3px solid #d1b575; overflow-wrap:anywhere; }
.sf-finding .sf-label { display:flex; align-items:center; gap:10px; color:#875c19; }
.sf-mark { width:29px; height:29px; display:grid; place-items:center; background:var(--amber-soft, #fbf0d4); border-radius:7px; font:16px var(--serif); letter-spacing:0; text-transform:none; }
.sf-finding .sf-why { font-size:13px; }
.sf-finding .sf-attribution { border-top:1px solid var(--line); margin-top:auto; padding-top:14px; font-size:12px; }
.sf-decision-context { border-top:1px solid var(--line); padding-top:18px; font-size:12px; color:var(--muted); display:flex; gap:14px; align-items:flex-start; }
.sf-decision-context > span { width:23px; height:23px; border:1px solid #cbded1; border-radius:50%; display:grid; place-items:center; color:var(--green); flex:none; }
.sf-decision-context .text-link { display:inline-block; margin-top:6px; }
.sf-history { border:1px solid var(--line); border-radius:12px; background:var(--white); padding:22px 24px; }
.sf-history .stack > * { border-left:1px solid #d3dece; margin-left:9px; padding-left:23px; }
@media (max-width:740px) {
  .sf-decision { padding:22px; }
  .sf-side-overview { padding:17px; gap:13px; align-items:flex-start; }
  .sf-side-switch { display:flex; width:100%; } .sf-side-switch button { flex:1; justify-content:center; }
  .sf-findings { grid-template-columns:1fr; }
  .sf-history { padding:20px; }
}
/* The firm's judgments above the vote (the owner, 2026-10-24): a recorded judgment takes the PBC Override's recorded
   treatment -- a prominent quotation with its person, time and vote scope; requests stay quiet beneath it. */
.sf-history { border:0; background:none; padding:0; }
.sf-history .stack { display:flex; flex-direction:column; gap:14px; }
.sf-history .stack > * { border-left:0; margin-left:0; padding-left:0; }
.sf-history .stack > .sf-request { border-left:2px solid #d3dece; padding:2px 0 2px 20px; }
.sf-history .stack > .sf-judgment { padding:26px 30px 0; }
.sf-judgment { background:var(--white); border:1px solid var(--line); border-top:3px solid #9fb898; border-radius:12px; padding:26px 30px 0; overflow:hidden; }
.sf-judgment-top { display:flex; justify-content:space-between; align-items:center; gap:12px; }
.sf-judgment-top .eyebrow { color:var(--muted); }
.sf-scope { border:1px solid var(--line); border-radius:5px; padding:3px 8px; font-size:10px; color:var(--muted); white-space:nowrap; }
.sf-judgment h3 { font:26px/1.3 var(--serif); margin-top:14px; }
/* The full reason between paired curly marks (the owner, 2026-10-24); both marks sit inline inside the quotation in the
   reason's own type (Part 18 design 3), so the pair is balanced and the closing mark follows the last character at any
   width. Shared by a recorded judgment and the PBC Override. */
.sf-quote { margin:16px 0 20px; }
.sf-quote blockquote { border:0; margin:0; padding:0; font:22px/1.5 var(--serif); color:#384c3d; max-width:63ch; overflow-wrap:anywhere; }
.sf-quote .sf-reason { white-space:pre-wrap; }
.sf-quote-open, .sf-quote-close { font:inherit; color:#9eb296; }
.sf-quote-open { margin-right:1px; }
.sf-quote-close { margin-left:1px; }
.sf-judgment-by { display:flex; align-items:center; gap:14px; padding-bottom:20px; }
.sf-initials { width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:#f1f3ea; display:grid; place-items:center; font:13px var(--serif); flex:none; }
.sf-judgment-by strong { display:block; font-size:12px; overflow-wrap:anywhere; }
.sf-judgment-by .sf-byline { margin-top:2px; }
.sf-recorded { margin-left:auto; font-size:11px; color:var(--green); white-space:nowrap; }
.sf-recorded::before { content:'✓ '; }
.sf-judgment > .small-note, .sf-judgment > details { margin-bottom:14px; }
.sf-judgment > .sf-judgment-scope { margin:0 -30px; padding:12px 30px; background:#f6f6ef; border-top:1px solid var(--line); }
@media (max-width:740px) {
  .sf-history .stack > .sf-judgment { padding:22px 20px 0; }
  .sf-quote blockquote { font-size:19px; }
  .sf-judgment > .sf-judgment-scope { margin:0 -20px; padding:12px 20px; }
  .sf-judgment-by { flex-wrap:wrap; } .sf-recorded { margin-left:48px; }
}
/* The PBC Override in the recorded-judgment treatment (the owner, 2026-10-24: "PBC Override needs better aesthetics like
   Law & Facts Sufficiency"): white card, sage top edge, the reason as a paired quotation, a compact signature; the
   captured questions and what followed sit quieter beneath. */
.sf-override { background:var(--white); border:1px solid var(--line); border-top:3px solid #9fb898; border-radius:12px; padding:26px 30px 0; overflow:hidden; }
.sf-override .sf-judgment-top .eyebrow { color:var(--muted); }
.sf-override h2 { font:26px/1.3 var(--serif); margin-top:14px; }
.sf-override > .sf-set-aside { border-top:1px solid var(--line); padding-top:4px; padding-bottom:20px; }
.sf-override > .sf-set-aside .sf-withdrawn-head { border-top:0; padding-top:16px; font-size:12px; color:var(--muted); }
.sf-override > .sf-outcome { margin:0 -30px; padding:14px 30px; background:#f6f6ef; border-top:1px solid var(--line); font-size:12px; color:var(--muted); }
.sf-override > .small-note { margin-bottom:14px; }
@media (max-width:740px) {
  .sf-override { padding:22px 20px 0; }
  .sf-override h2 { font-size:23px; }
  .sf-override > .sf-outcome { margin:0 -20px; padding:12px 20px; }
}
/* PBC requests (the owner's design, 2026-10-24, Codex's prototype): the round's offered actions together in the green
   action panel above the record; the round list beside the record; each request its own card with the client's answer
   attached. Layout only: every control, sentence and state is the existing one. */
.pbc-hero { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:20px 24px; align-items:center; padding:26px 28px; margin:0 0 28px; background:#e6f0e8; border:1px solid #cbded1; border-radius:12px; }
.pbc-hero > :not(.pbc-hero-main):not(.pbc-hero-actions) { grid-column:1 / -1; }
.pbc-hero[hidden] { display:none; }
.pbc-hero-heading { display:flex; gap:17px; align-items:center; }
.pbc-hero-icon { width:44px; height:48px; flex:none; display:grid; place-items:center; border:1px solid #bacfb5; border-radius:8px; background:#f1f5ea; color:#50774a; transform:rotate(-5deg); }
.pbc-hero-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.pbc-hero h2 { font:27px/1.25 var(--serif); margin:0; }
.pbc-hero-copy { margin-top:6px; color:#53654f; font-size:12px; max-width:62ch; }
.pbc-hero-secondary:empty { display:none; }
.pbc-hero-secondary { margin:14px 0 0 61px; }
.pbc-hero .pbc-override { background:#f5f8f0; border-color:#aabd9e; color:#365b44; font-size:11px; }
.pbc-hero-actions { justify-content:flex-end; }
.pbc-hero-actions:empty { display:none; }
.pbc-hero .final-request-form { background:var(--white); border:1px solid #cbded1; border-radius:10px; padding:22px 24px; }
.pbc-hero .override-record { background:var(--white); border:1px solid var(--line); border-radius:10px; padding:20px 24px; }
.pbc-workspace { display:grid; grid-template-columns:177px minmax(0, 1fr); gap:30px; margin-top:4px; }
.pbc-rounds-nav { align-self:start; position:sticky; top:25px; }
.pbc-rounds-nav > .eyebrow { display:block; color:var(--muted); margin:3px 0 15px 11px; }
.pbc-rounds-nav .wp-round-tabs { display:flex; flex-direction:column; gap:6px; margin:0; padding:0; border:0; }
.pbc-rounds-nav .wp-round-tabs button { width:100%; text-align:left; margin:0; padding:12px; border:1px solid transparent; border-radius:8px; background:none; font-size:13px; }
.pbc-rounds-nav .wp-round-tabs button::after { display:none; }
.pbc-rounds-nav .wp-round-tabs button[aria-pressed="true"] { background:var(--white); border-color:#ccd6c6; box-shadow:0 3px 10px #20352c08; font-weight:600; }
.pbc-rounds-note { margin:22px 12px 0; padding-top:18px; border-top:1px solid var(--line); font:12px/1.8 var(--serif); color:var(--muted); }
.pbc-rounds-nav .wp-pbc-summary { display:flex; flex-direction:column; align-items:flex-start; gap:6px; margin:16px 0 0; padding:0 12px; background:none; border:0; box-shadow:none; font-size:12px; }
.pbc-record { min-width:0; }
.pbc-record .wp-pbc-round { background:none; border:0; box-shadow:none; padding:0; margin:0 0 30px; overflow:visible; }
.pbc-record .wp-round-head { padding:0 0 16px; border:0; }
.pbc-record .wp-round-head h2 { font:25px/1.25 var(--serif); margin:0 0 4px; }
.pbc-record .wp-round-number, .pbc-record .wp-round-head > .eyebrow { display:none; }
.pbc-record .wp-pbc-round .request { display:block; padding:0; margin:0 0 16px; background:var(--white); border:1px solid #dedfd5; border-radius:10px; overflow:hidden; box-shadow:0 2px 3px #23332b05; }
.pbc-record .wp-response-body { padding:24px 27px; }
.wp-card-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:11px; }
.pbc-record .wp-response .request-key { display:flex; gap:8px; align-items:center; padding:0; font:11px/1.5 Consolas, monospace; letter-spacing:.3px; color:#6e775e; }
.wp-key-dot { width:5px; height:5px; border-radius:50%; background:#bc934e; }
.wp-badge { display:inline-flex; align-items:center; border-radius:5px; padding:4px 8px; font-size:10px; font-weight:600; white-space:nowrap; background:#ecefe6; color:#53654d; }
.wp-badge.amber { background:#f5eaca; color:#875c19; }
/* Part 18 design 4: an Override round in the PBC history -- the round head's shape, its badge beside the title. */
.wp-override-head { display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; }
.wp-override-head .eyebrow, .wp-override-head .small-note { flex-basis:100%; margin:0; }
.pbc-record .wp-response h3 { font:23px/1.35 var(--serif); margin:0 0 12px; }
.pbc-record .wp-asked { max-width:none; }
.pbc-record .wp-asked > p { margin:0; font:16px/1.75 var(--serif); color:#465047; max-width:78ch; white-space:pre-wrap; overflow-wrap:anywhere; }
.pbc-record .wp-why { margin:18px 0 0; padding-top:12px; border-top:1px solid #eeeede; font-size:12px; }
.pbc-record .wp-why > summary { font-size:11px; font-weight:600; color:#54664e; }
.pbc-record .wp-answer { max-width:none; margin:20px -27px -24px; padding:21px 27px; background:#f0f4eb; border-top:1px solid #dfe6d8; }
.pbc-record .wp-answer > .eyebrow { color:#56704e; font-size:9px; letter-spacing:1.4px; }
.pbc-record .wp-answer .prose { font:15px/1.75 var(--serif); color:#42513e; }
.pbc-record .wp-answer > .small-note { font-size:10px; color:#65755d; margin-top:12px; }
.wp-card-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 27px; background:#fbfaf5; border-top:1px solid #edede1; font-size:10px; color:#797e71; }
.wp-card-foot .text-link { font-size:11px; font-weight:400; color:#7b7463; }
@media (max-width:1100px) {
  .pbc-hero { grid-template-columns:1fr; gap:16px; }
  .pbc-hero-actions { justify-content:flex-start; margin-left:61px; }
  .pbc-workspace { grid-template-columns:145px minmax(0, 1fr); gap:20px; }
}
@media (max-width:760px) {
  .pbc-hero { padding:20px; }
  .pbc-hero-heading { gap:12px; align-items:flex-start; }
  .pbc-hero-icon { width:34px; height:40px; }
  .pbc-hero h2 { font-size:23px; }
  .pbc-hero-secondary { margin:10px 0 0; }
  .pbc-hero-actions { display:grid; grid-template-columns:1fr; margin-left:0; gap:8px; }
  .pbc-hero .button { width:100%; white-space:normal; }
  .pbc-workspace { grid-template-columns:1fr; gap:20px; }
  .pbc-rounds-nav { position:static; }
  .pbc-rounds-nav > .eyebrow, .pbc-rounds-note { display:none; }
  .pbc-rounds-nav .wp-round-tabs { flex-direction:row; flex-wrap:wrap; }
  .pbc-rounds-nav .wp-round-tabs button { width:auto; flex:1 1 40%; }
  .pbc-rounds-nav .wp-pbc-summary { flex-direction:row; flex-wrap:wrap; gap:6px 18px; padding:0 4px; }
  .pbc-record .wp-response-body { padding:22px 20px; }
  .pbc-record .wp-answer { margin:20px -20px -22px; padding:20px; }
  .wp-card-foot { padding:12px 20px; }
}
.pbc-record .wp-answer > div:empty { display:none; }
.pbc-record .wp-answer > :last-child { margin-bottom:0; }

/* Part 18 design 1 (Codex's design and prototype, 2026-10-25): Manage models as its own page -- the firm surface's own
   palette (paper, white, ink, muted, line; green for actions, selections and saved states; blue for information) and
   Georgia headings. The firm surface is light only (color-scheme: light), so the page has no separate dark scheme. */
.mm-page { max-width: 1080px; }
.mm-page h1, .mm-page h2, .mm-page h3, .mm-page p { margin: 0; }
.mm-page-head { margin-bottom: 18px; }
.mm-eyebrow { display: block; font-size: 10px; letter-spacing: 1.8px; text-transform: uppercase; font-weight: 600; color: var(--blue); margin-bottom: 10px; }
.mm-page h1 { font: 40px/1.12 Georgia, 'Times New Roman', serif; letter-spacing: -1.3px; }
.mm-intro { font-size: 14px; color: var(--muted); max-width: 560px; margin-top: 13px; line-height: 1.75; }
.mm-preamble { color: var(--muted); font-size: 12px; line-height: 1.7; max-width: 760px; margin: 0 0 18px; }
.mm-notice:empty { display: none; }
.mm-notice { font-size: 12px; line-height: 1.65; border-radius: 8px; padding: 12px 15px; margin-bottom: 18px; background: var(--blue-soft); color: var(--blue); }
.mm-notice.mm-success { background: var(--green-soft); color: var(--green); }
.mm-notice.mm-error { background: var(--amber-soft); color: var(--amber); }
.mm-sheet { background: var(--white); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.mm-sheet-head { background: var(--paper); border-bottom: 1px solid var(--line); padding: 24px; display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.mm-sheet h2 { font: 25px/1.2 Georgia, serif; letter-spacing: -.45px; }
.mm-head-line { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.mm-pill { display: inline-flex; align-items: center; border-radius: 20px; background: var(--green-soft); color: var(--green); padding: 4px 9px; font-size: 10px; font-weight: 600; white-space: nowrap; }
.mm-head-note { font-size: 12px; color: var(--muted); margin-top: 7px; }
.mm-head-note.mm-not-ready { color: var(--amber); }
.mm-button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid var(--line); border-radius: 7px; padding: 11px 15px; background: var(--white); color: var(--ink); font-size: 12px; font-weight: 600; min-height: 42px; }
.mm-button.mm-primary { background: var(--green); color: var(--white); border-color: var(--green); }
.mm-button.mm-quiet { background: transparent; border-color: transparent; color: var(--muted); }
.mm-button:disabled { opacity: .5; cursor: default; }
.mm-saved-body { padding: 25px 24px 27px; }
.mm-failed .mm-saved-body { display: grid; gap: 12px; justify-items: start; }
.mm-role-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 15px; }
.mm-role-heading h3 { font-size: 13px; font-weight: 600; }
.mm-caption { font-size: 11px; color: var(--muted); }
.mm-associate-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.mm-person { border: 1px solid var(--line); border-radius: 9px; padding: 16px 12px; min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.mm-monogram { width: 33px; height: 33px; display: grid; place-items: center; border-radius: 9px; background: var(--blue-soft); font: 18px/1 Georgia, serif; color: var(--blue); flex: none; }
/* Pre-D39 (the owner, 2026-10-26): the lab's own mark in the same box, every mark the same size; an inset shadow, not
   a border, so the box stays exactly 33 x 33. */
.mm-monogram.mm-mark { background: var(--white); box-shadow: inset 0 0 0 1px var(--line); }
.mm-monogram img { width: 21px; height: 21px; object-fit: contain; display: block; }
.mm-family { display: block; font-size: 10px; color: var(--muted); margin: 12px 0 5px; }
.mm-model-name { display: block; font-size: 13px; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.mm-model-detail { display: block; font-size: 10px; color: var(--muted); margin-top: 5px; }
.mm-next-roles { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; border-top: 1px solid var(--line); padding-top: 24px; margin-top: 25px; }
.mm-lead-role { display: flex; gap: 13px; align-items: center; padding: 18px; border: 1px solid var(--line); border-radius: 9px; min-width: 0; }
.mm-lead-role .mm-family { margin: 0 0 4px; letter-spacing: 1px; text-transform: uppercase; }
.mm-fixed { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 18px; }
.mm-fixed summary { font-size: 12px; color: var(--muted); cursor: pointer; }
.mm-fixed p { font-size: 12px; line-height: 1.8; color: var(--muted); margin-top: 10px; max-width: 610px; }
.mm-stepper { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); padding: 20px 24px; margin: 0; list-style: none; border-bottom: 1px solid var(--line); gap: 13px; }
.mm-step { display: flex; align-items: center; gap: 8px; font-size: 11px; color: var(--muted); }
.mm-step-number { display: grid; place-items: center; width: 27px; height: 27px; border: 1px solid var(--line); border-radius: 50%; flex: none; font-size: 11px; }
.mm-step[aria-current="step"] { color: var(--green); font-weight: 600; }
.mm-step[aria-current="step"] .mm-step-number { background: var(--green); color: var(--white); border-color: var(--green); }
.mm-step.mm-complete .mm-step-number { background: var(--green-soft); color: var(--green); border-color: transparent; }
.mm-edit-body { padding: 24px; display: grid; grid-template-columns: minmax(0, 1fr) 190px; gap: 25px; }
.mm-selection h2 { font-size: 24px; }
.mm-selection-intro { font-size: 12px; color: var(--muted); margin: 9px 0 18px; line-height: 1.75; }
.mm-selection fieldset { padding: 0; border: 0; margin: 0 0 19px; min-width: 0; }
.mm-selection legend { padding: 0; margin-bottom: 8px; font-size: 10px; font-weight: 600; color: var(--muted); letter-spacing: .6px; }
.mm-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.mm-option { display: flex; align-items: center; gap: 10px; border: 1px solid var(--line); border-radius: 8px; padding: 11px 12px; min-height: 49px; background: var(--white); font-size: 12px; cursor: pointer; }
.mm-option.mm-selected { border-color: var(--green); background: var(--green-soft); }
.mm-option.mm-unavailable { background: var(--paper); color: var(--muted); cursor: default; }
.mm-option input { accent-color: var(--green); width: 16px; height: 16px; flex: none; margin: 0; }
.mm-option-text { min-width: 0; flex: 1; }
.mm-option small { font-size: 10px; display: block; color: var(--muted); margin-top: 2px; }
.mm-tally { color: var(--green); font-size: 11px; margin: 0 0 18px; }
.mm-draft { border-left: 1px solid var(--line); padding-left: 19px; align-self: start; min-width: 0; }
.mm-draft-title { font: 19px/1.3 Georgia, serif; margin-bottom: 5px; }
.mm-draft-status { font-size: 10px; color: var(--muted); margin-bottom: 23px; }
.mm-draft-group { margin-bottom: 21px; }
.mm-draft-group h3 { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 9px; color: var(--muted); }
.mm-draft-entry { font-size: 11px; margin-top: 9px; line-height: 1.5; overflow-wrap: anywhere; }
.mm-placeholder { color: var(--muted); font-style: italic; }
.mm-edit-footer { padding: 18px 24px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; }
.mm-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.mm-footer-note { font-size: 10px; color: var(--muted); margin-bottom: 6px; }
@media (max-width: 850px) {
  .mm-associate-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mm-edit-body { grid-template-columns: minmax(0, 1fr); }
  .mm-draft { border-left: 0; border-top: 1px solid var(--line); padding: 18px 0 0; }
}
@media (max-width: 600px) {
  .mm-page h1 { font-size: 32px; }
  .mm-sheet-head, .mm-saved-body, .mm-edit-body, .mm-edit-footer, .mm-stepper { padding-left: 16px; padding-right: 16px; }
  .mm-associate-grid, .mm-next-roles, .mm-options { grid-template-columns: minmax(0, 1fr); }
  .mm-stepper { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .mm-next-action, .mm-next-action .mm-button { width: 100%; }
}

/* Pre-D39 (the owner, 2026-10-25: "make the signout a nicer looking button"): the house button (border #cbd1c6, radius
   5 px, hover #f2f6ef) at the top bar's size, with the log-out mark surface.js adds, on every composed surface. */
body:is(.firm,.client,.platform) .signout-button { display:inline-flex; align-items:center; gap:7px; min-height:32px;
  padding:6px 12px; border:1px solid #cbd1c6; border-radius:5px; background:var(--white); color:var(--ink);
  font:500 12px/1 var(--sans); white-space:nowrap; cursor:pointer; }
body:is(.firm,.client,.platform) .signout-button:hover { background:#f2f6ef; }
body:is(.firm,.client,.platform) .signout-button:focus-visible { outline:2px solid var(--green); outline-offset:2px; }
body:is(.firm,.client,.platform) .signout-button:disabled { opacity:.6; cursor:progress; }
body:is(.firm,.client,.platform) .signout-button svg { width:14px; height:14px; fill:none; stroke:currentColor;
  stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
@media (max-width:720px) { body:is(.firm,.client,.platform) .signout-button { padding:5px 9px; font-size:11px; } }

/* Owner's 2026-10-28 visual scope: evidence margin, citation reviewer and passage index ONLY.
   No memo-paper, document-pane, toolbar, sidebar, library or return-pill rules. Status text and
   the existing blue/green/amber meanings stay intact; surface color never confers certification. */
.lm-margin {
  --review-line:#dbe3df; --review-ink:#243e35; --review-muted:#576c63;
  --review-paper:#fffefa; --review-wash:#f3f6f2;
}
.lm-margin { border:1px solid var(--review-line); border-radius:12px; background:var(--review-wash); box-shadow:0 3px 14px #183c2f06; }
.lm-margin-title { padding:18px; background:#e5eee7; border-bottom:1px solid #cddcd2; }
.lm-margin-title>span:first-child { color:#243e35; font-size:20px; }
.lm-margin-body { padding:16px 14px 24px; }
.lm-margin .lm-evidence-heading { gap:8px; font-size:12px; margin-bottom:16px; }
.lm-margin .lm-evidence-heading>span:last-child { font-variant-numeric:tabular-nums; white-space:nowrap; }
.lm-margin .lm-outcome { gap:7px; padding:6px 9px; border-radius:6px; border:1px solid #bdcec2; background:#edf5ed; color:#2a5a3a; font-size:12px; font-weight:650; }
.lm-margin .lm-outcome i { width:7px; height:7px; border-radius:50%; }
.lm-margin .lm-outcome.blue { color:#205575; background:#e9f4fa; border-color:#b8d5e6; }
.lm-margin .lm-outcome.amber { color:#765318; background:#fff3d6; border-color:#e0c990; }
.lm-margin .lm-outcome.unmarked { color:#596660; background:#edf0ed; border-color:#cdd5cf; }
.lm-margin .lm-outcome.unmarked i { background:#78857d; border-color:#78857d; }
.lm-margin .lm-inspect-button { align-items:center; min-height:42px; padding:11px 13px; border-color:#285447; background:#285447; color:white; border-radius:7px; font-size:13px; font-weight:600; margin-bottom:20px; box-shadow:0 2px 4px #183d2b10; }
.lm-margin .lm-inspect-button:hover { background:#1c4337; }
.lm-margin .lm-reference-heading { gap:12px; margin:22px 0 12px; }
.lm-margin .lm-reference-heading h3 { font:600 12px/1.4 var(--sans); color:var(--review-ink); }
.lm-margin .lm-reference-heading>span { font-size:11px; padding:3px 7px; border-radius:5px; background:#e6ece6; }
.lm-margin .lm-reference-tabs { gap:7px; }
.lm-margin .lm-reference-tabs button { min-height:36px; border-radius:6px; background:#fffefa; padding:7px 10px; font-size:12px; }
.lm-margin .lm-reference-tabs button[aria-pressed=true] { color:#244f40; background:#e5eee6; border-color:#799b87; }
.lm-margin .lm-source { padding:16px; margin:0 0 14px; background:var(--review-paper); border:1px solid var(--review-line); border-radius:9px; box-shadow:0 2px 5px #183d2b04; }
.lm-margin .lm-source-kind { display:inline-block; margin-bottom:11px; padding:3px 7px; border:1px solid #d4dfdc; border-radius:4px; color:#46665e; background:#f0f5f2; font:600 10px/1.3 var(--sans); letter-spacing:.4px; text-transform:uppercase; }
.lm-margin .lm-source .lm-kicker { font-size:10px; letter-spacing:.5px; color:var(--review-muted); margin-bottom:6px; }
.lm-margin .lm-source h4 { color:var(--review-ink); font-size:19px; line-height:1.35; }
.lm-margin .lm-binding { font-size:11px; margin-bottom:10px; }
.lm-margin .lm-excerpt { padding:12px 14px; margin:14px 0; background:#f5f6f0; border-left:3px solid #b2c4b9; border-radius:0 5px 5px 0; font-size:16px; }
.lm-margin .lm-origin { font-size:11px; line-height:1.55; }
.lm-margin .lm-source>.text-link { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:38px; margin-top:14px; padding:9px 11px; border:1px solid #becfc3; border-radius:6px; background:#edf4ed; color:#254e3e; font:600 12px/1.4 var(--sans); text-align:left; text-decoration:none; cursor:pointer; }
.lm-margin .lm-source>.text-link:hover { background:#e0ecdf; border-color:#8eab98; }
.lm-margin .lm-readers { margin-top:24px; }
.lm-margin .lm-readers>h4 { font:600 12px/1.4 var(--sans); color:var(--review-ink); margin-bottom:10px; }
.lm-margin .lm-reader { border:1px solid var(--review-line); border-radius:7px; background:var(--review-paper); margin:7px 0; overflow:hidden; }
.lm-margin .lm-reader summary { padding:12px 10px; gap:8px; font-size:12px; align-items:center; }
.lm-margin .lm-reader summary>span:first-child { display:flex; align-items:center; }
.lm-margin .lm-reader summary>span:first-child::before { font-size:16px; width:12px; flex:none; }
.lm-margin .lm-reader-verdict { padding:3px 6px; border-radius:4px; background:#edf1ed; color:#506057; font-size:10px; line-height:1.4; }
.lm-margin .lm-reader[data-reader-vote=objects] .lm-reader-verdict { background:#fff1d2; color:#765318; }
.lm-margin .lm-reader[data-reader-vote=agrees] .lm-reader-verdict { background:#eaf2e9; color:#355a3b; }
.lm-margin .lm-reader[open] summary { border-bottom:1px solid var(--review-line); }
.lm-margin .lm-reader p { padding:12px; margin:0; font-size:12px; line-height:1.65; }
.lm-margin :is(.lm-warning,.lm-explanation,.lm-missing) { border:1px solid #e4d3a7; border-left:3px solid #bc9145; border-radius:6px; background:#fff5de; color:#6d5428; padding:12px; }
.lm-margin .lm-warning>p:last-child { margin-bottom:0; }
/* The citation reviewer follows the owner's compact, flat reference. */
.calm dialog.lm-popout { width:min(580px,calc(100vw - 48px)); border-radius:7px; background:#fff; }
.lm-pop-header { padding:22px 24px 0; background:#fff; }
.lm-pop-header h2 { font-size:26px; }
.lm-pop-body { padding:20px 24px 28px; }
.lm-pop-body>.lm-evidence { max-width:none; }
.lm-popout .lm-source-kind { display:block; margin-bottom:6px; color:#637267; font:10px/1.4 var(--sans); letter-spacing:.5px; text-transform:uppercase; }
.lm-popout .lm-outcome.unmarked { color:#667369; }
.lm-popout .lm-outcome.unmarked i { background:#78857d; border-color:#78857d; }
.lm-pop-body .lm-evidence[data-review-tone=unmarked] .lm-claim { border-left-color:#9aa69e; }
.lm-popout .lm-reader-verdict { font-size:11px; }
.lm-popout .lm-reader[data-reader-vote=objects] .lm-reader-verdict { color:#805c21; }

/* All index styling is route-scoped: the shared outcome bar on other pages is unchanged. */
body.firm[data-entry=passages] .bb-outcomes { padding:22px 24px 18px; border:1px solid #d2ded4; border-radius:12px; background:#fafcf8; box-shadow:0 3px 12px #183d2b04; }
body.firm[data-entry=passages] .bb-outcome-head { gap:10px 20px; color:#556a5e; }
body.firm[data-entry=passages] .bb-outcome-head .eyebrow { font-weight:650; color:#355541; }
body.firm[data-entry=passages] .pi-outcome-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0; }
body.firm[data-entry=passages] .pi-outcome-stat { display:flex; align-items:baseline; gap:10px; padding:13px 15px; border:1px solid #dfe5df; border-radius:7px; background:white; color:#55665b; }
body.firm[data-entry=passages] .pi-outcome-stat strong { font:500 30px/1.1 var(--sans); font-variant-numeric:tabular-nums; }
body.firm[data-entry=passages] .pi-outcome-stat span { font-size:12px; }
body.firm[data-entry=passages] .pi-outcome-stat.blue { background:#ecf6fb; border-color:#c7dfe9; color:#285d77; }
body.firm[data-entry=passages] .pi-outcome-stat.green { background:#edf5eb; border-color:#cfdfca; color:#3c6141; }
body.firm[data-entry=passages] .pi-outcome-stat.amber { background:#fff5df; border-color:#e6d6ac; color:#7a591d; }
body.firm[data-entry=passages] .bb-outcome-bar { height:5px; margin:16px 0 12px; }
body.firm[data-entry=passages] [aria-label="Passage index filters"] { display:flex; gap:9px; flex-wrap:wrap; margin-top:24px; }
body.firm[data-entry=passages] [data-work-filter] { min-height:38px; border-radius:7px; padding:9px 12px; border:1px solid #d1dbd2; background:#fffefa; font-size:12px; }
body.firm[data-entry=passages] [data-work-filter][aria-pressed=true] { background:#e3ede3; border-color:#759b80; color:#244d31; outline:none; box-shadow:inset 0 0 0 1px #759b80; }
body.firm[data-entry=passages] .bb-passage-list { margin-top:22px; }
body.firm[data-entry=passages] .bb-passage-row { grid-template-columns:130px minmax(0,1fr) 135px; gap:24px; padding:24px; border:1px solid #d9e2d9; border-left:4px solid #9aa79e; border-radius:10px; background:#fffefa; box-shadow:0 2px 7px #244e3404; }
body.firm[data-entry=passages] .bb-passage-row.blue { border-left-color:#60a0bf; }
body.firm[data-entry=passages] .bb-passage-row.green { border-left-color:#71a777; }
body.firm[data-entry=passages] .bb-passage-row.amber { border-left-color:#c49b4b; }
body.firm[data-entry=passages] .bb-passage-meta { display:flex; flex-direction:column; align-items:flex-start; gap:9px; color:#596c5e; font-size:11px; }
body.firm[data-entry=passages] .bb-passage-meta>strong { padding:4px 8px; border:1px solid #d8e0d9; border-radius:5px; font:600 11px/1.4 var(--sans); background:#eff2ed; color:#506457; }
body.firm[data-entry=passages] .blue .bb-passage-meta>strong { background:#e9f5fb; color:#285d77; border-color:#c7dfe9; }
body.firm[data-entry=passages] .green .bb-passage-meta>strong { background:#edf5eb; color:#3c6141; border-color:#cfdfca; }
body.firm[data-entry=passages] .amber .bb-passage-meta>strong { background:#fff5df; color:#7a591d; border-color:#e6d6ac; }
body.firm[data-entry=passages] .bb-passage-row>p { font-size:17px; line-height:1.7; }
body.firm[data-entry=passages] .bb-passage-row>.text-link { padding:9px 10px; min-height:38px; border:1px solid #bfd1c4; border-radius:6px; background:#edf4ed; color:#254e3e; font-size:12px; font-weight:600; text-decoration:none; }
body.firm[data-entry=passages] .bb-passage-row>.text-link:hover { background:#dfeadf; }
body.firm[data-entry=passages] .b4-record-disclosure>summary { padding:14px 0; font-size:12px; }
@media(max-width:760px) {
  .calm dialog.lm-popout { inset:8px 0; width:calc(100vw - 16px); height:calc(100dvh - 16px); border-radius:12px; }
  .lm-pop-header { padding:18px 18px 0; }.lm-pop-header h2 { font-size:24px; }.lm-pop-body { padding:18px 14px 24px; }
  .lm-pop-body .lm-claim { padding:14px; }.lm-pop-body .lm-claim blockquote { font-size:17px; }
  .lm-margin .lm-source { padding:14px; }
  body.firm[data-entry=passages] .bb-outcomes { padding:18px 16px; }
  body.firm[data-entry=passages] .pi-outcome-summary { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:16px 0; }
  body.firm[data-entry=passages] .pi-outcome-stat { gap:7px; padding:12px 10px; }
  body.firm[data-entry=passages] .pi-outcome-stat strong { font-size:26px; }
  body.firm[data-entry=passages] .bb-passage-row { grid-template-columns:1fr; gap:16px; padding:18px; }
  body.firm[data-entry=passages] .bb-passage-meta { flex-direction:row; align-items:center; justify-content:space-between; }
  body.firm[data-entry=passages] .bb-passage-row>.text-link { justify-self:start; }
}
@media(forced-colors:active) {
  :is(.lm-margin,.lm-popout) :is(.lm-outcome,.lm-source,.lm-reader,.lm-reader-verdict,.lm-inspect-button),
  body.firm[data-entry=passages] :is(.bb-passage-row,.pi-outcome-stat,.bb-passage-meta>strong) { border-color:CanvasText; }
}

/* Source/memorandum slide-over drawers, approved 2026-10-27 and scoped 2026-10-28.
   Fixed overlays never resize the memo viewer; the native citation dialog alone widens. */
.rd-backdrop { position:fixed; inset:0; z-index:34; background:transparent; }
.review-drawer { position:fixed; z-index:35; inset:78px 24px 24px auto; width:min(620px,calc(100vw - 48px)); display:flex; flex-direction:column; min-height:0;
  border:1px solid #b9ccbf; border-radius:12px; background:#fafcf8; color:#243e35; box-shadow:0 16px 60px #17382a2b; }
.review-drawer:focus { outline:none; }.review-drawer:focus-visible { outline:2px solid #225b78; outline-offset:2px; }
.rd-header { flex:none; display:flex; justify-content:space-between; align-items:flex-start; gap:16px; padding:20px 22px; border-bottom:1px solid #cfddd1; background:#e5eee7; border-radius:11px 11px 0 0; }
.rd-header h2 { margin:0; font:26px/1.25 var(--serif); color:#243e35; }
.rd-subtitle { margin:7px 0 0; font:13px/1.45 var(--sans); color:#506b5a; overflow-wrap:anywhere; }
.rd-eyebrow { margin:0 0 6px; font:600 10px/1.4 var(--sans); color:#50715e; text-transform:uppercase; letter-spacing:1px; }
.rd-close { border:1px solid #bfd1c4; border-radius:7px; width:36px; height:36px; flex:none; color:#2b4d3c; background:#fbfdf9; font:22px/1 var(--sans); cursor:pointer; }
.rd-body { overflow:auto; overscroll-behavior:contain; scrollbar-gutter:stable; min-height:0; flex:1; padding:22px; }
.rd-footer { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; flex:none; padding:14px 20px; border-top:1px solid #d4dfd4; background:#f1f6ee; border-radius:0 0 11px 11px; }
.rd-primary,.rd-secondary { min-height:38px; padding:9px 13px; border:1px solid #bfd1c4; border-radius:6px; font:600 12px/1.45 var(--sans); cursor:pointer; }
.rd-primary { background:#285447; border-color:#285447; color:white; }.rd-primary:hover { background:#1c4337; }
.rd-secondary { background:#fffefa; color:#284b3a; }.rd-position { margin:0; color:#526b59; font:12px/1.4 var(--sans); }
.review-drawer :is(button,a,summary):focus-visible { outline:2px solid #225b78; outline-offset:3px; }
.rd-review-stage { display:flex; flex:1; min-height:0; overflow:hidden; }
.rd-review-stage>.lm-pop-body { width:100%; min-width:0; }
.calm dialog.lm-popout.rd-expanded { width:min(1400px,calc(100vw - 40px)); }
.rd-expanded .rd-review-stage { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.review-drawer.rd-embedded { position:relative; inset:auto; z-index:auto; width:auto; min-width:0; border:0; border-left:1px solid #cddcd2; border-radius:0; box-shadow:none; }
.rd-embedded .rd-header,.rd-embedded .rd-footer { border-radius:0; }
.rd-source { font-size:14px; line-height:1.6; overflow-wrap:anywhere; }
.rd-source>h2 { margin:7px 0 14px; font:24px/1.35 var(--serif); }
.rd-source .reference-group { border:1px solid #d6e1d7; border-radius:7px; padding:14px; margin:18px 0; background:#fffefa; }
.rd-source .reference-group h3 { font:18px/1.4 var(--serif); margin:0 0 10px; }
.rd-source .reference-entry { padding:0; border:0; }
.rd-source .b4-source-key { margin:18px 0; padding:12px; border:1px solid #e4d4de; border-radius:6px; background:#fff7fb; font-size:12px; }
.rd-source .b4-source-swatch { display:inline-block; width:10px; height:10px; background:#ff9ad5; margin-right:7px; }
.rd-source .b4-source-mark { background:#ff9ad5; color:inherit; }
.rd-source :is(.unit-text,.client-source-text) { white-space:pre-wrap; overflow-wrap:anywhere; font:14px/1.75 var(--sans); color:#424946; }
.rd-source .unit { margin-block:10px; padding:15px 16px; border:1px solid #e2e0d7; border-radius:5px; background:#f2f0e9; scroll-margin-top:18px; }
.rd-source .unit h3 { font:700 12px/1.5 var(--sans); margin:0 0 9px; color:#3d4d59; }
.rd-source .unit-closing-of { color:#57705e; font-size:12px; }.rd-source .unit-notes { padding:12px; background:#eef1e9; }
.rd-source .unit:focus-visible { outline:2px solid #225b78; outline-offset:4px; }
body.firm .rd-source .unit.b4-unit-here { margin:10px 0; padding:15px 16px; box-shadow:inset 3px 0 #ed247d; border-color:#f28dbb; background:#fff5f9; }
.rd-source .b4-unit-here h3 { color:#c51e68; }
.rd-source-drawer .rd-header { align-items:center; flex-wrap:wrap; gap:10px 12px; padding:14px 16px; background:#fffefa; border-bottom:1px solid #dddcd3; }
.rd-source-drawer .rd-header>div { flex:1; min-width:135px; }
.rd-source-drawer .rd-header h2 { font:600 20px/1.3 var(--serif); }
.rd-source-drawer .rd-eyebrow { color:#c51e68; letter-spacing:.4px; font-size:9px; }
.rd-source-drawer .rd-close { width:auto; height:auto; min-height:32px; padding:6px 9px; border-radius:4px; font:11px/1.4 var(--sans); background:#fffefa; }
.rd-source-drawer .rd-header .rd-primary { min-height:32px; padding:6px 0; border:0; background:none; color:#3f7965; font:11px/1.4 var(--sans); text-decoration:underline; text-underline-offset:3px; }
.rd-source-key { flex:none; margin:0; padding:9px 16px; border-bottom:1px solid #f2d7e3; background:#fff0f6; color:#ac245e; font:11px/1.5 var(--sans); }
.rd-source-drawer .rd-body { padding:12px 16px; background:#fffefa; }
.rd-source-drawer .rd-footer:empty { display:none; }
.rd-source .reference-passage { display:block; width:100%; text-align:left; padding:10px 0; background:none; border:0; border-bottom:1px solid #d9e2d9; font:15px/1.6 var(--serif); cursor:pointer; }
.rd-source .reference-passage>span { display:block; font:11px/1.4 var(--sans); color:#597061; margin-bottom:7px; }
.rd-source .b4-record-disclosure { margin:16px 0; }.rd-source .b4-record-disclosure>summary { font-size:12px; }
.rd-source .source-provenance { overflow-wrap:anywhere; }.rd-source :is(.source-meta,.supporting,.quiet-note) { font-size:12px; }
.rd-source .relationship-row { display:block!important; }.rd-source .relationship-row dd { margin-top:8px; }
.rd-memo-text { font:17px/1.65 var(--serif); color:#232b28; background:#fffefa; padding:22px; border:1px solid #d9e2d7; border-radius:6px; }
.rd-memo-text h1 { font-size:27px; }.rd-memo-text h2 { font-size:22px; }.rd-memo-text h3 { font-size:19px; }
.rd-memo-text .passage { cursor:pointer; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.rd-memo-text .passage.blue { background:var(--status-verbatim-highlight); }.rd-memo-text .passage.green { background:var(--status-certified-highlight); }.rd-memo-text .passage.amber { background:var(--status-review-highlight); }
.rd-memo-text .passage.rd-selected { background:#ffe1ee!important; border-bottom:2px solid #c36c97; box-shadow:0 0 6px #dc89b34d; }
.rd-memo-text .passage:focus-visible { outline:2px solid #225b78; outline-offset:3px; }
.rd-memo-text .table-wrap { overflow:auto; }.rd-memo-text :is(p,li,td) { overflow-wrap:anywhere; }
/* The only library change: the approved hierarchy indentation, shared with listed review surfaces.
   Closing rows use their own recorded citation depth; notes receive no new class or style. */
:is(#source-view,.lm-evidence) .law-outline-unit { margin-inline-start:min(calc(var(--law-depth,0)*14px),84px); }
.rd-source .law-outline-unit { margin-inline-start:0; }
.rd-source .law-outline-unit>:is(h3,.unit-text,.unit-closing-of) { margin-inline-start:min(calc(var(--law-depth,0)*14px),84px); }
#source-view .law-outline-unit.highlight { margin-inline-start:calc(-15px + min(calc(var(--law-depth,0)*14px),84px)); }
@media(max-width:760px) {
  .review-drawer { inset:8px; width:auto; border-radius:10px; }
  .rd-header { padding:16px; }.rd-body { padding:16px; }.rd-footer { padding:12px 16px; }
  .rd-memo-text { padding:16px; }.rd-header h2 { font-size:23px; }
  .calm dialog.lm-popout.rd-expanded { width:calc(100vw - 16px); }
  .rd-expanded .rd-review-stage { display:flex; }
  .rd-expanded .rd-review-stage>.lm-pop-body { display:none; }
  .rd-expanded .review-drawer.rd-embedded { display:flex; flex:1; border-left:0; }
  :is(#source-view,.lm-evidence) .law-outline-unit { margin-inline-start:min(calc(var(--law-depth,0)*10px),30px); }
  .rd-source .law-outline-unit>:is(h3,.unit-text,.unit-closing-of) { margin-inline-start:min(calc(var(--law-depth,0)*10px),30px); }
  #source-view .law-outline-unit.highlight { margin-inline-start:calc(-15px + min(calc(var(--law-depth,0)*10px),30px)); }
}
@media print { .review-drawer,.rd-backdrop { display:none!important; } }
