/* Generated by tools/sync_public_hub_litigation.mjs from litigation-worker/public/index.html (its inline <style> block), every selector under #litApp, then the markup's inline style="" attributes as classes. Do not edit. */
/* Light/dark both derive from one set of tokens (litigation-11), the same
     light-dark() pattern the rest of the hub uses (legislative.html, the
     chooser). Each is declared TWICE on purpose: the plain dark value first,
     then the light-dark() pair. A browser without light-dark() (pre-2024)
     treats the second declaration as invalid and keeps the first, so it still
     gets exactly today's dark site rather than an unstyled one. This replaces
     three hand-duplicated copies of the same ~15 colours (the old dark
     defaults, the pinned-light override and the OS-preference-light media
     query) with one; the values are unchanged. */
  #litApp {
    --bg:#0d0d0d;            --bg:light-dark(#edeef0, #0d0d0d);
    --panel:#141414;         --panel:light-dark(#fbfbfc, #141414);
    --panel2:#1a1a1a;        --panel2:light-dark(#e6e8ea, #1a1a1a);
    --border:#2a2724;        --border:light-dark(#d5d8dc, #2a2724);
    --border-strong:#3d3833; --border-strong:light-dark(#b0b6bd, #3d3833);
    --text:#e8e6e3;          --text:light-dark(#16181b, #e8e6e3);
    --muted:#a09c97;         --muted:light-dark(#4c535a, #a09c97);
    --faint:#938d86;         --faint:light-dark(#6e767e, #938d86);
    --anti:#c0392b;          --anti:light-dark(#a32d1d, #c0392b);
    --anti-bright:#e74c3c;   --anti-bright:light-dark(#bd3524, #e74c3c);
    --pro:#45a19a;           --pro:light-dark(#1a6660, #45a19a);
    --on-pro:#08211f;        --on-pro:light-dark(#ffffff, #08211f);
    --gold:#d4a03c;          --gold:light-dark(#7d5807, #d4a03c);
    --blue:#5b8fb9;          --blue:light-dark(#356487, #5b8fb9);
    --adf:#e74c3c;           --adf:light-dark(#c0392b, #e74c3c);
    --afl:#e67e22;           --afl:light-dark(#b35309, #e67e22);
    --cprc:#9b59b6;          --cprc:light-dark(#7d3c98, #9b59b6);
    --dnh:#5b8fb9;           --dnh:light-dark(#33608c, #5b8fb9);
    --lc:#27ae60;            --lc:light-dark(#1e8449, #27ae60);
    --scotus:#d4a03c;        --scotus:light-dark(#9a6f1e, #d4a03c);
    --deep:#0a0a0a;          --deep:light-dark(#ffffff, #0a0a0a);
    --link-hover:#82b2d9;    --link-hover:light-dark(#24486b, #82b2d9);
    --gold-bg:#d4a03c;       /* same value in both themes: one declaration */
    --gold-hover:#e8c27a;    --gold-hover:light-dark(#6e5210, #e8c27a);
    --cirR-t:#ff8f80;        --cirR-t:light-dark(#8f2a1e, #ff8f80);
    --cirR-b:#7d332a;        --cirR-b:light-dark(#dba79e, #7d332a);
    --cirR-bg:rgba(214,68,48,.14);
      --cirR-bg:light-dark(rgba(214,68,48,.09), rgba(214,68,48,.14));
    --cirD-t:#82b8ff;        --cirD-t:light-dark(#1f4f8f, #82b8ff);
    --cirD-b:#28497c;        --cirD-b:light-dark(#a9c2e2, #28497c);
    --cirD-bg:rgba(48,118,214,.14);
      --cirD-bg:light-dark(rgba(48,118,214,.09), rgba(48,118,214,.14));
    --cirS-t:#c2b8aa;        --cirS-t:light-dark(#6c6558, #c2b8aa);
    --cirS-b:#4b453d;        --cirS-b:light-dark(#c9c2b4, #4b453d);
    --cirS-bg:rgba(160,150,130,.10);
      --cirS-bg:light-dark(rgba(120,110,90,.08), rgba(160,150,130,.10));
    --mark-bg:rgba(212,160,60,.28);
      --mark-bg:light-dark(rgba(212,160,60,.38), rgba(212,160,60,.28));
  }
  #litApp * { box-sizing:border-box; }
  #litApp { margin:0; color:var(--text);
         font:14px/1.5 "Segoe UI", system-ui, sans-serif; }
  #litApp { max-width:1100px; margin:0 auto; padding:18px 22px 60px; }
  /* Not inside the PDF viewer: pdf.js draws every annotation as a <section>, and
     this rule boxed a commented highlight in a filled panel over the very words
     it marked. (The testimony tab met the same rule the same way.) */
  #litApp section:where(:not(.cv-pdf *)) { background:var(--panel); border:1px solid var(--border);
            border-radius:8px; padding:16px 18px; margin-bottom:18px; }
  #litApp h2 { font-size:13px; text-transform:uppercase; letter-spacing:1.2px;
       color:var(--gold); margin:0 0 12px; }
  #litApp .row { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; }
  /* The page's own look for its form controls — everywhere but inside the PDF
     viewer, where the buttons and inputs are pdf.js's. Reaching them, `font:
     inherit` handed each of its buttons the editor layer's scaled type — 137px
     at this zoom, measured — which a button with a text label would render
     whole; its colour swatches also turned rounded. The :where() keeps each
     selector's weight exactly what it was, so nothing else on the page changes. */
  #litApp label:where(:not(.cv-pdf *)) { display:flex; flex-direction:column; gap:3px;
          font-size:11.5px; color:var(--muted); }
  #litApp input:where(:not(.cv-pdf *)),
#litApp select:where(:not(.cv-pdf *)),
#litApp textarea:where(:not(.cv-pdf *)),
#litApp button:where(:not(.cv-pdf *)) {
    background:var(--panel2); color:var(--text); font:inherit;
    border:1px solid var(--border-strong); border-radius:5px;
    padding:7px 10px; max-width:100%; }
  #litApp label:where(:not(.cv-pdf *)) { min-width:0; }
  /* WCAG 2.5.8 target size (shared fix): a checkbox otherwise inherits the
     inputs' own padding above, which browsers render inconsistently on a
     native checkbox — fixed at exactly the 24px minimum instead. */
  #litApp input[type="checkbox"]:where(:not(.cv-pdf *)) {
    width:24px; height:24px; padding:0; }
  /* visible keyboard-focus ring on every interactive control (a11y 2.4.7).
     [tabindex] covers the sortable column headers (litigation-8), which are
     a <th>, not a naturally-focusable element. */
  #litApp a:focus-visible,
#litApp button:focus-visible,
#litApp input:focus-visible,
#litApp select:focus-visible,
#litApp textarea:focus-visible,
#litApp [tabindex]:focus-visible {
    outline:2px solid var(--blue); outline-offset:2px; }
  /* [hidden] must always win (shared fix): a more specific selector elsewhere
     (an inline style, an id rule) could otherwise leave a [hidden] element
     visible. */
  #litApp [hidden] { display:none !important; }
  /* Present to assistive tech, not to the eye (shared fix) — the live-status
     region below, and anywhere else text is needed only for a screen reader. */
  #litApp .vh { position:absolute; width:1px; height:1px; margin:-1px; padding:0;
        overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
  /* Skip the tab list and jump straight to the active panel (litigation-5),
     same markup and rule as legislative.html's. */
  #litApp .skip { position:absolute; left:-9999px; top:0; z-index:100;
          background:var(--panel); color:var(--text); padding:10px 16px;
          border:1px solid var(--gold); border-radius:0 0 6px 0; }
  #litApp .skip:focus { left:0; }
  /* Long filter lists (court, issue/type) open as viewport-height native
     popups; Chromium's customizable select caps the picker and scrolls it.
     Engines without base-select skip this block and keep the native popup. */
  @supports (appearance: base-select) {
    #litApp select:where(:not(.cv-pdf *)),
#litApp ::picker(select) { appearance:base-select; }
    #litApp ::picker(select) {
      background:var(--panel2); color:var(--text);
      border:1px solid var(--border-strong); border-radius:6px;
      max-height:min(340px, 50vh); overflow-y:auto;
      box-shadow:0 8px 24px rgba(0,0,0,.45); }
    #litApp select option { padding:5px 10px; }
    #litApp select option:hover,
#litApp select option:focus { background:var(--panel); }
    #litApp select option:checked { color:var(--gold); }}
  #litApp #q { width:100%; max-width:420px; }
  #litApp #askQ { width:100%; min-height:56px; resize:vertical; }
  #litApp button { cursor:pointer; }
  #litApp button.primary { background:var(--pro); color:var(--on-pro); font-weight:600;
                   border-color:var(--pro); }
  #litApp button:disabled { opacity:.45; cursor:default; }
  #litApp .hint { color:var(--faint); font-size:11.5px; margin-top:8px; }
  #litApp .hint code { color:var(--muted); }
  #litApp .hint-sub { display:block; margin-top:5px; color:var(--faint); }
  #litApp .hit { border:1px solid var(--border); border-left:3px solid var(--blue);
         border-radius:6px; padding:10px 14px; margin-top:10px;
         background:var(--panel2); }
  #litApp .hit.oADF { border-left-color:var(--adf); }
  #litApp .hit.oAFL { border-left-color:var(--afl); }
  #litApp .hit.oCPRC { border-left-color:var(--cprc); }
  #litApp .hit.oDNH { border-left-color:var(--dnh); }
  #litApp .hit.oLC { border-left-color:var(--lc); }
  #litApp .hit.oSCOTUS { border-left-color:var(--scotus); }
  #litApp .hit .top { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; }
  #litApp .hit .key { font-weight:700; }
  #litApp .hit .key a { color:var(--text); text-decoration:none;
                border-bottom:1px dotted var(--muted); }
  #litApp .hit .docid { color:var(--faint); font-family:Consolas, monospace;
                font-size:12px; }
  #litApp .badge { font-size:11px; padding:1px 8px; border-radius:9px;
           border:1px solid var(--border-strong); color:var(--muted); }
  #litApp .badge.type { color:var(--gold); border-color:var(--gold); }
  #litApp .badge.cited { color:var(--deep); background:var(--blue);
                 border-color:var(--blue); font-weight:600; }
  #litApp .badge.scanned { color:var(--anti-bright); border-color:var(--anti); }
  #litApp .hit .title { margin:3px 0 4px; color:var(--muted); font-size:12.5px; }
  #litApp .hit .meta { color:var(--muted); font-size:12px; }
  #litApp .hit .snippet { color:var(--muted); font-size:12.5px; margin-top:6px;
                  border-top:1px dashed var(--border); padding-top:6px; }
  #litApp .snippet mark { background:var(--mark-bg); color:var(--text);
                  border-radius:2px; padding:0 1px; }
  /* Bluebook citation lines. Quiet until you want them; the copy button puts
     the italics on the clipboard too, so a paste into a brief arrives right. */
  #litApp .bb { display:flex; gap:8px; align-items:flex-start; margin-top:6px;
        border-top:1px dashed var(--border); padding-top:6px;
        color:var(--muted); font-size:12.5px; }
  #litApp .bb .bb-t { flex:0 1 auto; }   /* the copy button follows the words, not the panel edge */
  #litApp .bb i,
#litApp .bb-auth i { font-style:italic; color:var(--text); }
  #litApp .bb-note { display:block; color:var(--faint); font-size:11px; margin-top:2px; }
  #litApp .bb-c { flex:0 0 auto; background:none; border:1px solid var(--border-strong);
          color:var(--faint); border-radius:4px; font-size:11px;
          padding:2px 8px; min-height:24px; }
  #litApp .bb-c:hover { color:var(--text); border-color:var(--muted); }
  #litApp .bb-c.done { color:var(--pro); border-color:var(--pro); }
  #litApp .bb-auth { margin-top:12px; border:1px solid var(--border); border-radius:6px;
             padding:10px 14px; background:var(--panel2); }
  #litApp .bb-auth .lbl { margin-bottom:6px; }
  #litApp .bb-auth ol { margin:0; padding-left:22px; }
  #litApp .bb-auth li { margin:5px 0; color:var(--muted); font-size:12.5px; }
  #litApp .cv-cite { margin:6px 0 2px; color:var(--muted); font-size:12.5px;
             display:flex; gap:8px; align-items:flex-start; }
  /* The citation generator in the reader: the citation itself, a page box, and
     the short form once a page is given. Set apart and at reading size — it is
     the thing most people open a document to get, and at the muted metadata
     size it read as a caption nobody looked at. */
  #litApp .cv-cite-tool { display:block; padding:9px 14px 10px; background:#171614;
                  border-top:1px solid #2b2724; border-bottom:1px solid #2b2724; }
  #litApp .bb-tool .bb { border-top:none; margin-top:0; padding-top:0; flex-wrap:wrap;
                 align-items:center; gap:10px; }
  #litApp .bb-pin { display:inline-flex; gap:5px; align-items:center; color:var(--faint);
            font-size:11px; }
  #litApp .bb-follow { color:var(--faint); font-size:10.5px; text-transform:uppercase;
               letter-spacing:.4px; }
  #litApp .bb-pin input { width:4.5em; padding:2px 6px; font-size:12px; min-height:24px;
                  background:var(--panel2); color:var(--text);
                  border:1px solid var(--border-strong); border-radius:4px; }
  #litApp .bb-short { margin-top:5px; color:var(--muted); font-size:12.5px;
              display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
  #litApp .bb-lbl { color:var(--faint); font-size:11px; text-transform:uppercase;
            letter-spacing:.4px; }
  /* The reader's chrome is dark in BOTH themes, like the rest of this pane,
     so the citation there takes the pane's own colours. Using the page's text
     token painted the case name near-black on black in light mode. */
  #litApp #cvDoc .bb { color:#ddd9d4; font-size:14px; line-height:1.5; }
  #litApp #cvDoc .bb-short { color:#b6b1ab; font-size:12.5px; }
  #litApp #cvDoc .bb i,
#litApp #cvDoc .bb-short i { color:#fff; }
  #litApp #cvDoc .bb-note,
#litApp #cvDoc .bb-lbl,
#litApp #cvDoc .bb-pin,
#litApp #cvDoc .bb-follow { color:#8a8681; }
  #litApp #cvDoc .bb-c { color:#ddd9d4; border-color:#57524d; }
  #litApp #cvDoc .bb-c:hover { color:#0d0d0d; background:#ddd9d4; border-color:#ddd9d4; }
  #litApp #cvDoc .bb-pin input { background:#0d0d0d; color:#fff; border-color:#57524d;
                         font-size:13px; }
  /* star pages: where a printed page begins, which is the page a pin cite
     names. They also tell a reader why the page box fills itself. */
  #litApp .cv-doc-body .star { display:inline-block; color:var(--gold); opacity:.75;
                       font-size:11px; letter-spacing:.5px; margin:2px 0; }
  #litApp td.bb-cell { color:var(--faint); font-size:11.5px; }
  #litApp #answer { background:var(--deep); border:1px solid var(--border);
            border-radius:6px; padding:14px 18px; margin-top:12px;
            display:none; line-height:1.62; }
  #litApp #answer strong,
#litApp #answer b { color:var(--gold); }
  #litApp #answer h2,
#litApp #answer h3,
#litApp #answer h4 { color:var(--gold); text-transform:none;
            letter-spacing:.2px; margin:15px 0 6px; }
  #litApp #answer h2 { font-size:15.5px; } #litApp #answer h3 { font-size:14.5px; }
  #litApp #answer h4 { font-size:13.5px; }
  #litApp #answer > :first-child { margin-top:2px; }
  #litApp #answer p { margin:8px 0; }
  #litApp #answer ul,
#litApp #answer ol { margin:6px 0 10px; padding-left:24px; }
  #litApp #answer li { margin:3px 0; }
  #litApp #answer table { border-collapse:collapse; font-size:12.5px; margin:8px 0; }
  #litApp #answer td,
#litApp #answer th { border:1px solid var(--border-strong);
                           padding:4px 9px; }
  #litApp #answer th { color:var(--gold); }
  #litApp #answer code { background:var(--panel2); padding:1px 5px; border-radius:4px;
                 font-size:12.5px; }
  #litApp a { color:var(--blue); }
  #litApp a:hover { color:var(--link-hover); }
  /* WCAG 2.5.8 target size (litigation-12): a name link's whole rendered box
     was only the 14px/1.5 line height (~17-20px measured, several ways below
     the 24px minimum) — it is normally the sole content of a table cell or
     card title, not text inline in a sentence, so it does not qualify for
     the inline-text exception. display:inline-block is what lets padding
     actually grow the box, the way .bb-c and the pin-cite input already do
     it above. Covers .hit .key a and table.cases td.nm a too: both carry
     this same class — and table.cases sets its own smaller 12.5px font, which
     padding alone landed at 23.75px, just under the minimum; min-height is a
     floor that holds regardless of which font-size context a .dk ends up in. */
  #litApp a.dk { color:var(--blue); text-decoration:none; cursor:pointer;
         border-bottom:1px dotted var(--blue);
         display:inline-block; padding:2px 0; min-height:24px; }
  #litApp a.dk:hover { color:var(--link-hover); border-bottom-style:solid; }
  /* external (CourtListener) citation links get a trailing ↗ */
  #litApp a.dk.ext::after { content:"\2197"; font-size:.85em; opacity:.75;
                    margin-left:1px; }
  /* An arrow-only link is a ~8px click target. Where the arrow IS the whole
     link (the cases table, where the name links in-page instead), pad it out
     to something a person can actually hit — 24px minimum (WCAG 2.5.8,
     litigation-12's target-size fix applied the same way here: this was
     still ~18px tall, under the minimum, even after the earlier 2px pad). */
  #litApp a.dk.ext:empty { display:inline-block; padding:6px 7px; border-bottom:none;
                   line-height:1; }
  #litApp a.dk.ext:empty::after { font-size:1em; opacity:.9; }
  #litApp a.dk.ext:empty:hover::after { opacity:1; }
  /* marks a filing that has a real PDF, so a text-only row is obviously
     text-only rather than looking like a broken viewer */
  #litApp .tag-pdf { font-size:9.5px; letter-spacing:.6px; padding:1px 5px;
             border:1px solid var(--pro); color:var(--pro);
             border-radius:3px; vertical-align:1px; }
  /* reader-only; pinned literal because the reader shell stays dark in the
     light theme, where --faint goes too dark to read on it */
  #litApp .cv-note { padding:10px 14px; color:#938d86; font-size:12px;
             border-bottom:1px solid var(--border); flex:0 0 auto; }
  /* ---- counsel of record: columns, not one tall list */
  #litApp .cv-side { margin-top:10px; }
  #litApp .cv-side-h { display:flex; align-items:baseline; gap:8px; }
  #litApp .cv-side-h strong { color:var(--text); font-size:12.5px;
                      text-transform:capitalize; }
  #litApp .cv-cnt { color:var(--faint); font-size:11px; }
  #litApp .cv-more { background:none; border:none; padding:0; color:var(--blue);
             font-size:11.5px; cursor:pointer; border-bottom:1px dotted var(--blue);
             border-radius:0; margin-left:2px; }
  #litApp .cv-more:hover { color:var(--link-hover); }
  #litApp ul.cv-cols { columns:3 190px; column-gap:22px; margin:4px 0 0;
               padding-left:18px; }
  #litApp ul.cv-cols li { color:var(--muted); font-size:12.5px; margin:1px 0;
                  break-inside:avoid; }
  @media (max-width:640px) { #litApp ul.cv-cols { columns:1; }}
  /* amici collapse behind one control so they don't bury the actual parties */
  #litApp .cv-amici { margin-top:14px; border-top:1px dashed var(--border);
              padding-top:10px; }
  #litApp .cv-amici-t { background:none; border:1px solid var(--border-strong);
                border-radius:5px; color:var(--muted); font-size:11.5px;
                padding:5px 11px; }
  #litApp .cv-amici-t:hover { color:var(--text); border-color:var(--gold); }
  #litApp .cv-amici-t .ar { color:var(--gold); display:inline-block;
                    transition:transform .15s; }
  #litApp .cv-amici-t.on .ar { transform:rotate(90deg); }
  /* the fold buttons under the parties list sit flush with the rows above them */
  #litApp .cv-parties .cv-amici-t { margin:8px 0 4px; }
  #litApp .fl-nomain { color:var(--faint); font-style:italic; }
  /* parties, shown up top so you can see whose case it is at a glance */
  #litApp .cv-parties { margin:8px 0 2px; }
  #litApp .cv-party { display:flex; gap:10px; align-items:baseline; padding:3px 0;
              border-bottom:1px solid var(--border); }
  #litApp .cv-party:last-child { border-bottom:none; }
  #litApp .cv-party-n { color:var(--text); font-size:13px; }
  #litApp .cv-party-c { margin-left:auto; color:var(--faint); font-size:11px;
                white-space:nowrap; }
  /* ---- tabs */
  #litApp nav.tabs { display:flex; gap:4px; flex-wrap:wrap; margin-bottom:14px;
             border-bottom:1px solid var(--border-strong); }
  #litApp .tab { background:none; border:1px solid transparent; border-bottom:none;
         border-radius:6px 6px 0 0; color:var(--muted); font-size:12px;
         text-transform:uppercase; letter-spacing:1px; padding:8px 15px;
         margin-bottom:-1px; }
  #litApp .tab:hover { color:var(--text); }
  #litApp .tab.on { color:var(--gold); background:var(--panel);
            border-color:var(--border-strong); border-bottom-color:var(--panel); }
  #litApp .panel { display:none; }
  #litApp .panel.on { display:block; }
  /* Cases: federal / state courts / state agencies (a sub-tab row) */
  #litApp .jur { display:flex; gap:4px; flex-wrap:wrap; margin:0 0 14px; }
  #litApp .jur button { font:inherit; font-size:12px; letter-spacing:.3px; padding:6px 12px;
                min-height:32px; background:var(--panel2); color:var(--muted);
                border:1px solid var(--border); border-radius:999px; cursor:pointer; }
  #litApp .jur button:hover { color:var(--text); border-color:var(--border-strong); }
  #litApp .jur button:focus-visible { outline:2px solid var(--gold); outline-offset:1px; }
  #litApp .jur button[aria-pressed="true"] { color:var(--gold); background:var(--panel);
                                     border-color:var(--gold); }
  #litApp .jur .n { color:var(--faint); margin-left:6px; font-variant-numeric:tabular-nums; }
  /* ---- cases table */
  #litApp .tbl-wrap { overflow-x:auto; margin-top:10px; }
  #litApp table.cases { border-collapse:collapse; width:100%; font-size:12.5px; }
  #litApp table.cases th,
#litApp table.cases td { border-bottom:1px solid var(--border);
       padding:6px 10px; text-align:left; vertical-align:top; }
  #litApp table.cases th { color:var(--gold); font-size:11px; text-transform:uppercase;
       letter-spacing:.8px; cursor:pointer; white-space:nowrap;
       position:sticky; top:0; background:var(--panel); user-select:none; }
  #litApp table.cases th:hover { color:var(--gold-hover); }
  #litApp table.cases th .ar { color:var(--faint); font-size:10px; margin-left:3px; }
  #litApp table.cases tbody tr:hover { background:var(--panel2); }
  #litApp table.cases td.nm { min-width:260px; }
  #litApp table.cases td.num { text-align:right; font-family:Consolas, monospace;
       color:var(--muted); }
  /* ---- case detail */
  #litApp #caseView { display:none; background:var(--deep); border:1px solid var(--border);
              border-radius:6px; padding:16px 18px; margin-top:12px; }
  #litApp #caseView h3 { margin:0 0 2px; font-size:16px; color:var(--text);
                 text-transform:none; letter-spacing:0; }
  #litApp #caseView .cv-sub { color:var(--muted); font-size:12.5px; margin-bottom:12px; }
  #litApp #caseView h4 { font-size:11px; text-transform:uppercase; letter-spacing:1px;
                 color:var(--gold); margin:16px 0 6px; }
  #litApp .cv-back { float:right; font-size:11.5px; }
  #litApp .cv-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:4px; }
  #litApp .cv-chip { font-size:11px; padding:1px 8px; border-radius:9px;
             border:1px solid var(--border-strong); color:var(--muted); }
  /* outcome chips carry the result: red adverse, green favorable, amber mixed.
     "Favorable" here means favorable to LGBTQ/trans rights claims. */
  #litApp .cv-chip.oc-adv { color:var(--anti-bright); border-color:var(--anti);
                     background:rgba(192,57,43,.12); }
  #litApp .cv-chip.oc-fav { color:var(--pro); border-color:var(--pro);
                     background:rgba(69,161,154,.12); }
  #litApp .cv-chip.oc-mix { color:var(--gold); border-color:var(--gold);
                     background:rgba(212,160,60,.12); }
  #litApp .cv-chip.oc-proc { color:var(--faint); border-style:dashed; }
  #litApp td .cv-chip { white-space:nowrap; }
  /* Circuit lean: red where the active-judge majority was appointed by
     Republican presidents, blue where Democratic, slate where evenly split.
     The composition itself lives in CIRCUIT_LEAN — edit there, not here. */
  #litApp .cir { font-size:11px; padding:1px 8px; border-radius:9px; white-space:nowrap;
         border:1px solid; }
  #litApp .cir-r { color:var(--cirR-t); border-color:var(--cirR-b); background:var(--cirR-bg); }
  #litApp .cir-d { color:var(--cirD-t); border-color:var(--cirD-b); background:var(--cirD-bg); }
  #litApp .cir-s { color:var(--cirS-t); border-color:var(--cirS-b); background:var(--cirS-bg); }
  /* Issue cell: the main issue in plain text, the kind of gender-affirming-
     care case after it, any other issues on a quieter line. See issueCell(). */
  #litApp .iss-d { color:var(--muted); }
  #litApp .iss-x { display:block; font-size:11.5px; color:var(--muted); margin-top:2px; }
  /* the issue label is the widest free-text column — give it room so it
     wraps to two lines instead of ten */
  #litApp table.cases td:nth-child(6) { min-width:150px; }
  /* Reading pane for a filing's text. Rendered as a fixed overlay, NOT inline:
     the filings table can be hundreds of rows, so an inline pane opens far
     below the viewport and reads as "the link did nothing". */
  #litApp #cvDoc { display:none; position:fixed; z-index:60;
           top:6vh; bottom:6vh; left:50%; transform:translateX(-50%);
           width:min(880px, 92vw); border:1px solid var(--border-strong);
           border-radius:8px; background:#0d0d0d; overflow:hidden;
           box-shadow:0 18px 60px rgba(0,0,0,.75); }
  #litApp #cvDoc.on { display:flex; flex-direction:column; }
  /* A flex item's default min-height is `auto` — its CONTENT height — so a
     tall transcript pushes the slot past the pane and the body below never
     gets a bounded height to scroll inside. min-height:0 is what lets the
     chain shrink to the pane and hand the overflow to .cv-doc-body. */
  #litApp #cvDocSlot { min-height:0; }
  #litApp #cvDocBack { display:none; position:fixed; inset:0; z-index:59;
               background:rgba(0,0,0,.6); }
  #litApp #cvDocBack.on { display:block; }
  /* Reader chrome uses dark-palette LITERALS, not theme vars: the shell above
     stays #0d0d0d in both themes, and the light theme's --text/--muted are
     near-black — the title would vanish into its own background. */
  /* flex-wrap (litigation-4): at phone width the title, PDF/Text toggle,
     CourtListener link, download link and close control do not all fit one
     row — "PDF" truncated to "PD" and the Text toggle was pushed off-screen
     entirely, with no way to reach it. Wrapping costs nothing at normal
     widths (the row already fits there) and keeps every control reachable. */
  #litApp .cv-doc-head { padding:10px 14px; border-bottom:1px solid var(--border);
                 display:flex; flex-wrap:wrap; gap:12px; align-items:baseline;
                 flex:0 0 auto; }
  #litApp .cv-doc-head b { color:#e8e6e3; }
  #litApp .cv-doc-x { margin-left:auto; font-size:11.5px; white-space:nowrap; }
  /* PDF | Text switch — the PDF is the real document, so it leads */
  #litApp .cv-seg { display:inline-flex; border:1px solid var(--border-strong);
            border-radius:5px; overflow:hidden; margin-left:8px; }
  #litApp .cv-seg button { background:none; border:none; border-radius:0;
                   color:#a09c97; font-size:11px; letter-spacing:.7px;
                   text-transform:uppercase; padding:3px 11px; }
  #litApp .cv-seg button.on { background:var(--gold-bg); color:#1a1408; font-weight:600; }
  #litApp .cv-doc-frame { flex:1 1 auto; width:100%; border:0; background:#525659;
                  border-radius:0 0 7px 7px; }
  /* The document's two views, PDF and text, each in a host of its own. The PDF
     view is built once and then hidden, never rebuilt, while the text is shown:
     the marks made on it live only in it. .cv-view carries a display, which
     beats [hidden], so hiding needs its own rule. */
  #litApp .cv-view { flex:1 1 auto; display:flex; flex-direction:column; min-width:0; min-height:0; }
  #litApp .cv-view[hidden] { display:none !important; }
  /* The PDF, drawn in the page by pdf.js's own viewer (renderPdf) rather than
     handed to the browser's, which is a window nothing out here can see into —
     so the citation can follow it — and carrying pdf.js's editor for marking it
     up. The viewer's own stylesheet (vendor/pdfjs-6.3.289/pdf_viewer.css) comes with it. */
  #litApp .cv-pdf-bar { display:flex; align-items:center; gap:6px; flex:0 0 auto;
                flex-wrap:wrap; padding:5px 12px; background:#2b2f33; color:#c9c5bf;
                font:12px/1.4 "Segoe UI", system-ui, sans-serif;
                border-bottom:1px solid #1e2124; }
  #litApp .cv-pdf-bar .cv-pdf-at { margin-right:auto; }
  #litApp .cv-pdf-bar input { width:3.4em; text-align:right; background:#1e2124;
                      color:#f2eee8; border:1px solid #4a5056; border-radius:4px;
                      padding:2px 5px; font:inherit; }
  #litApp .cv-pdf-bar button,
#litApp .cv-cmt button {
                       background:#3a3f44; color:#e6e2dc; border:1px solid #4a5056;
                       border-radius:4px; min-width:30px; padding:2px 8px;
                       font:inherit; cursor:pointer; white-space:nowrap; flex:0 0 auto; }
  #litApp .cv-pdf-bar button:hover,
#litApp .cv-cmt button:hover { background:#474d53; }
  #litApp .cv-pdf-bar button[aria-pressed="true"],
#litApp .cv-cmt button.on {
                       background:#d6b36a; color:#1a1408; border-color:#d6b36a; }
  #litApp .cv-pdf-bar button:disabled { opacity:.45; cursor:default; }
  #litApp .cv-pdf-sep { width:1px; align-self:stretch; background:#4a5056; margin:0 3px; }
  /* pdf.js requires the scrolling container to be absolutely positioned */
  #litApp .cv-pdf-stage { position:relative; flex:1 1 auto; min-height:0; }
  /* color-scheme: pdf.js colours its editor with light-dark() pairs, which follow
     the scheme — and this page's is dark, which drew light icons on pdf.js's
     light toolbar. The paper is white; its tools take the light side. */
  #litApp .cv-doc-body.cv-pdf { position:absolute; inset:0; overflow:auto; padding:0;
                        background:#525659; white-space:normal; color-scheme:light;
                        font:12px/1.4 system-ui, sans-serif; color:#1a1a1a; }
  /* a comment on a mark: the dialog that writes it and the popup that shows it */
  #litApp .cv-cmt { position:absolute; z-index:5; width:min(320px, calc(100% - 24px));
            box-sizing:border-box; padding:10px; background:#1e2124; color:#f2eee8;
            border:1px solid #4a5056; border-radius:8px;
            box-shadow:0 6px 24px rgba(0,0,0,.55);
            font:13px/1.45 "Segoe UI", system-ui, sans-serif; }
  #litApp .cv-cmt label { display:block; color:#a09c97; font-size:11.5px; }
  #litApp .cv-cmt textarea { display:block; width:100%; min-height:84px; margin-top:4px;
                     box-sizing:border-box; resize:vertical; padding:6px;
                     background:#0d0d0d; color:#fff; border:1px solid #57524d;
                     border-radius:5px; font:inherit; }
  #litApp .cv-cmt-row { display:flex; gap:6px; justify-content:flex-end; margin-top:8px; }
  #litApp .cv-cmt-t { white-space:pre-wrap; overflow-wrap:anywhere; max-height:40vh; overflow:auto; }
  #litApp .cv-doc-meta { padding:5px 14px; color:#a09c97; font-size:11.5px;
                 border-bottom:1px solid var(--border); flex:0 0 auto; }
  /* the document itself reads as paper: dark chrome, light page */
  #litApp .cv-doc-body { padding:26px 32px; overflow:auto; flex:1 1 auto; min-height:0;
                 white-space:pre-wrap; background:#fbfaf7; color:#16130f;
                 font:15px/1.62 Georgia, "Iowan Old Style", "Times New Roman", serif;
                 border-radius:0 0 7px 7px; }
  #litApp .cv-doc-body .pg { display:block; margin:18px 0 6px; padding-top:10px;
                     border-top:1px solid #d9d4cb; color:#8a8378;
                     font:11px/1 "Segoe UI", system-ui, sans-serif;
                     letter-spacing:.6px; text-transform:uppercase; }
  #litApp .cv-doc-body .cap { display:block; text-align:center; font-weight:700;
                      margin:4px 0; }
  /* transcripts: paragraphed, numbered, readable measure */
  #litApp .cv-doc-body.tx { white-space:normal; padding:22px 30px; }
  #litApp .tx-p { position:relative; margin:0 0 15px; padding-left:34px;
          max-width:68ch; }
  #litApp .tx-n { position:absolute; left:0; top:2px; width:26px; text-align:right;
          color:#a89f92; font:11px/1.6 Consolas, monospace;
          user-select:none; }
  #litApp .tx-p mark { background:#ffe9a8; color:#1a1408; border-radius:2px; }
  #litApp .tx-p mark:first-of-type { box-shadow:0 0 0 2px #f0c14b; }
  #litApp .tx-find { margin-left:auto; display:inline-flex; gap:4px;
             align-items:center; }
  #litApp .tx-find input { background:#1a1a1a; border:1px solid #3d3833;
                   border-radius:4px; color:#e8e6e3; font-size:11.5px;
                   padding:3px 8px; width:170px; }
  #litApp .tx-find button { background:none; border:1px solid var(--border-strong);
                    border-radius:4px; color:#a09c97; font-size:13px;
                    line-height:1; padding:2px 7px; }
  #litApp .tx-find button:hover { color:#e8e6e3; border-color:#d4a03c; }
  #litApp .tx-count { color:#938d86; font-size:11px; min-width:66px; }
  #litApp #cvDoc .cv-doc-meta { display:flex; align-items:center; gap:8px; }
  /* A long docket-entry title must not crowd the document out. The header's title is held to two lines with an ellipsis (the full
     text is still in the page, so a screen reader reads all of it); tapping it opens it in full, in a box that scrolls, and
     tapping again folds it. On a phone the pane is the whole screen and the header, the meta line and the PDF toolbar are each
     one slim row, so the PDF gets the rest. (The public site's litigation-reader.css carries the same rules.) */
  #litApp .cv-doc-head b { flex:1 1 auto; min-width:0; max-width:100%; display:-webkit-box; -webkit-box-orient:vertical;
                   -webkit-line-clamp:2; line-clamp:2; overflow:hidden; overflow-wrap:anywhere; cursor:pointer; }
  #litApp .cv-doc-head b.open { display:block; -webkit-line-clamp:unset; line-clamp:unset; max-height:35vh; overflow:auto; }
  @media (max-width:640px) {
    #litApp #cvDoc { top:0; bottom:0; left:0; transform:none; width:100%; border:0; border-radius:0; }
    #litApp .cv-doc-head { padding:6px 10px; gap:2px 12px; }
    #litApp .cv-doc-head b { flex-basis:100%; font-size:13px; line-height:1.3; }
    #litApp #cvDoc .cv-doc-meta:not(.cv-cite-tool) { display:block; padding:3px 10px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
    #litApp .cv-pdf-bar { flex-wrap:nowrap; overflow-x:auto; padding:4px 8px; }
    #litApp .cv-pdf-bar .cv-pdf-at { white-space:nowrap; margin-right:6px; }}
  /* links in the reader chrome sit on the dark shell in both themes; the
     light theme's --blue is unreadable there */
  #litApp #cvDoc a.dk { color:#5b8fb9; border-bottom-color:#5b8fb9; }
  #litApp #cvDoc a.dk:hover { color:#82b2d9; }
  /* docket header block — label/value pairs, one column per docket stage */
  #litApp .cv-dks { display:flex; flex-wrap:wrap; gap:10px 26px; }
  #litApp .cv-dk { min-width:250px; flex:1 1 250px; border-left:2px solid var(--border-strong);
           padding:2px 0 2px 12px; }
  #litApp .cv-dk-n { color:var(--gold); font-size:11px; letter-spacing:.6px;
             margin-bottom:3px; }
  #litApp .cv-dl { display:grid; grid-template-columns:auto 1fr; gap:1px 10px;
           margin:0; font-size:12.5px; }
  #litApp .cv-dl dt { color:var(--faint); white-space:nowrap; }
  #litApp .cv-dl dd { margin:0; color:var(--text); }
  #litApp .proc { border-left:2px solid var(--blue); padding:6px 0 6px 12px;
          margin:6px 0; }
  #litApp .proc .pt { font-size:13px; }
  #litApp .proc .pm { color:var(--faint); font-size:11.5px; }
  /* Recent docket activity: one compact line per entry (owner, 2026-09-25:
     "make the recent docket activity a lot smaller"). */
  #litApp .dact { list-style:none; margin:0; padding:0; font-size:12px;
          border-left:2px solid var(--blue); }
  #litApp .dact li { display:flex; gap:10px; align-items:baseline; padding:2px 0 2px 10px; min-width:0; }
  #litApp .dact .dd { flex:none; width:78px; color:var(--faint); font-variant-numeric:tabular-nums; }
  #litApp .dact .dt { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #litApp .dact .dg { flex:none; color:var(--faint); font-size:11px; }
  #litApp .dact-more > summary { cursor:pointer; font-size:12px; color:var(--muted); margin:4px 0 0 12px; }
  #litApp .cv-two { display:flex; gap:26px; flex-wrap:wrap; }
  #litApp .cv-two > div { min-width:210px; }
  #litApp .cv-list { font-size:12.5px; color:var(--muted); margin:0; padding-left:18px; }
  #litApp .cv-list li { margin:2px 0; }
  #litApp table.filings { border-collapse:collapse; width:100%; font-size:12px; }
  #litApp table.filings th,
#litApp table.filings td { border-bottom:1px solid var(--border);
       padding:4px 8px; text-align:left; vertical-align:top; }
  #litApp table.filings th { color:var(--faint); font-size:10.5px;
       text-transform:uppercase; letter-spacing:.8px; }
  /* a docket entry starts a new block; its attachments hang off it */
  #litApp table.filings tr.fl-main > td { border-top:1px solid var(--border-strong);
       border-bottom:none; padding-top:7px; }
  #litApp table.filings tr.fl-togrow > td { border-bottom:none; padding:0 8px 5px; }
  #litApp table.filings tr.fl-att > td { border-bottom:none; padding-top:1px;
       padding-bottom:1px; color:var(--muted); }
  #litApp table.filings td.att { padding-left:22px; position:relative; }
  #litApp table.filings td.att::before { content:"└"; position:absolute; left:8px;
       color:var(--border-strong); }
  #litApp .fl-tog { background:none; border:1px solid var(--border-strong);
       border-radius:4px; color:var(--muted); font-size:10.5px; padding:1px 8px;
       letter-spacing:.4px; }
  #litApp .fl-tog:hover { color:var(--text); border-color:var(--gold); }
  #litApp .lyr { font-size:10px; padding:0 5px; border-radius:8px; margin-right:3px;
         border:1px solid var(--border-strong); color:var(--faint); }
  #litApp .lyr.sem { color:var(--pro); border-color:var(--pro); }
  #litApp .lyr.arc { color:var(--blue); border-color:var(--blue); }
  #litApp .hit.flash { animation:flash 1.5s ease-out; }
  @keyframes flash { 0% { background:#33290f; } 100% { background:var(--panel2); } }
  #litApp #askProg { display:none; margin-top:10px; }
  #litApp .ask-step { color:var(--faint); font-size:12px; margin:3px 0;
              font-family:ui-monospace,Consolas,monospace; }
  #litApp .ask-step::before { content:"\25B8  "; color:var(--pro); }
  #litApp #askSources { display:none; margin-top:8px; }
  #litApp #askSources > .lbl { color:var(--faint); font-size:11.5px;
                       text-transform:uppercase; letter-spacing:1px;
                       margin-top:14px; }
  #litApp .spin { display:inline-block; width:12px; height:12px; margin-left:6px;
          border:2px solid var(--border-strong); border-top-color:var(--pro);
          border-radius:50%; animation:sp .8s linear infinite;
          vertical-align:-2px; }
  @keyframes sp { to { transform:rotate(360deg); } }
  #litApp .stat-summary { font-size:20px; margin:6px 0 4px; }
  #litApp .stat-summary .n { color:var(--gold); font-weight:700; }
  #litApp .stat-summary .sub { color:var(--muted); font-size:12.5px;
                       margin-left:8px; font-weight:400; }
  #litApp .stat-block h3 { font-size:11px; text-transform:uppercase;
                   letter-spacing:1px; color:var(--faint); margin:16px 0 6px; }
  #litApp .bar-row { display:flex; align-items:center; gap:10px; margin:4px 0;
             font-size:12.5px; }
  #litApp .bar-row .lbl { width:230px; flex-shrink:0; text-align:right;
                  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  #litApp .bar-row .bar { flex:1; background:var(--panel2); border-radius:3px;
                  height:13px; overflow:hidden; }
  #litApp .bar-row .bar > span { display:block; height:100%; background:var(--pro); }
  #litApp .bar-row .n { width:44px; color:var(--muted); text-align:right;
                font-family:Consolas, monospace; }
  #litApp .ask-stats { color:var(--gold); font-size:12.5px; margin-bottom:8px; }
  /* ---- lane wave3b: case-stage bars, durations, circuit map (Stats tab) */
  #litApp .cc-wrap { margin-top:26px; border-top:2px solid var(--border); padding-top:18px; }
  #litApp .cc-wrap h3 { font-size:15px; margin:0 0 4px; color:var(--gold); }
  #litApp .cc-note { color:var(--faint); font-size:12px; max-width:70ch; margin:2px 0 12px; }
  #litApp .cc-stage-row { display:grid; grid-template-columns:190px 1fr 130px; align-items:center;
                  gap:4px 10px; margin:5px 0; font-size:12.5px; }
  #litApp .cc-stage-row .lbl { text-align:right; }
  #litApp .cc-stage-row .bar { background:var(--panel2); border-radius:3px; height:16px; overflow:hidden; }
  #litApp .cc-stage-row .bar > span { display:block; height:100%; background:var(--gold); min-width:2px; }
  #litApp .cc-stage-row .n { color:var(--muted); font-family:Consolas, monospace; font-size:12px; }
  /* Below ~520px the 190px label + 130px count left no room at all for the
     bar itself (0px wide) -- stack label/count above the bar instead of
     squeezing all three into one row. */
  @media (max-width:520px) {
    #litApp .cc-stage-row { grid-template-columns:1fr; gap:2px; }
    #litApp .cc-stage-row .lbl { text-align:left; }
    #litApp .cc-stage-row .n { text-align:left; }}
  #litApp .cc-durations { display:flex; flex-wrap:wrap; gap:18px; margin:8px 0 4px; }
  #litApp .cc-durations div { background:var(--panel2); border:1px solid var(--border);
                       border-radius:7px; padding:8px 14px; min-width:120px; }
  #litApp .cc-durations b { display:block; font-size:18px; color:var(--gold); }
  /* --muted, not --faint: --faint on --panel2 is 3.75:1 in light mode, under
     the 4.5:1 small text needs; --muted is about 6.3:1 light and 7:1 dark */
  #litApp .cc-durations span { color:var(--muted); font-size:11.5px; }
  #litApp .cc-final { display:flex; flex-wrap:wrap; gap:18px; margin:8px 0 4px; align-items:baseline; }
  #litApp .cc-final .stat-summary { margin:0; }

  /* Circuit map: a real geographic choropleth from data/us-states.json (the
     same outline file the hub's own app/us-map.js draws from), grouped by
     circuit -- every member state of a circuit shares its shade. Purely
     informational (no <a>, no tabindex on the paths): the accessible way to
     select a circuit is the real <button> list beside it, which drives the
     aria-live detail panel below and highlights that circuit's states here. */
  #litApp .cc-circ-layout { display:flex; gap:20px; flex-wrap:wrap; align-items:flex-start; margin:10px 0; }
  #litApp .cc-map-host { flex:1 1 320px; min-width:0; max-width:620px; }
  #litApp .cc-map-host svg { width:100%; height:auto; display:block; }
  #litApp .cc-map-state { stroke:var(--panel); stroke-width:1.2; }
  #litApp .cc-map-state.zero { fill:var(--panel2); }
  #litApp .cc-map-state.sel { stroke:var(--gold); stroke-width:2.6; }
  #litApp .cc-circ-list { flex:1 1 220px; display:flex; flex-direction:column; gap:4px; min-width:180px; }
  #litApp .cc-circ-btn { display:flex; align-items:center; gap:9px; width:100%; min-height:30px;
                 padding:5px 9px; font:inherit; font-size:12.5px; text-align:left;
                 background:var(--panel2); color:var(--text); border:1px solid var(--border);
                 border-radius:6px; cursor:pointer; }
  #litApp .cc-circ-btn:hover { border-color:var(--border-strong); }
  #litApp .cc-circ-btn:focus-visible,
#litApp .cc-circ-btn[aria-pressed="true"] { border-color:var(--gold); outline:none; }
  #litApp .cc-circ-btn[aria-pressed="true"] { background:var(--panel); }
  #litApp .cc-circ-swatch { width:13px; height:13px; border-radius:3px; flex-shrink:0;
                     border:1px solid var(--border-strong); }
  #litApp .cc-circ-name { flex:1; }
  #litApp .cc-circ-n { color:var(--muted); font-family:Consolas, monospace; font-size:11.5px; }
  #litApp .cc-legend { display:flex; align-items:center; gap:8px; font-size:11.5px;
               color:var(--muted); margin:4px 0 10px; }
  #litApp .cc-legend-scale { display:inline-flex; width:110px; height:10px; border-radius:3px;
                      overflow:hidden; border:1px solid var(--border-strong); }
  #litApp .cc-legend-scale span { flex:1; }
  #litApp .cc-detail { font-size:12.5px; color:var(--muted); min-height:1.4em; margin:10px 0 10px; }
  #litApp .cc-detail b { color:var(--text); }
  /* ---- intelligence tabs (experts / judges / playbook) */
  #litApp details.intel { border:1px solid var(--border); border-radius:6px;
                  background:var(--panel2); margin-top:8px; }
  #litApp details.intel > summary { cursor:pointer; padding:9px 13px; display:flex;
                  flex-wrap:wrap; gap:9px; align-items:baseline;
                  list-style:none; }
  #litApp details.intel > summary::-webkit-details-marker { display:none; }
  #litApp details.intel > summary::before { content:"\25B8"; color:var(--muted);
                  font-size:11px; transition:transform .12s; }
  #litApp details.intel[open] > summary::before { transform:rotate(90deg); }
  #litApp details.intel > summary:hover { background:var(--panel); }
  #litApp details.intel .nm { font-weight:700; }
  #litApp details.intel .cred { color:var(--muted); font-size:12px; }
  #litApp details.intel .ct { margin-left:auto; color:var(--muted); font-size:12px;
                      white-space:nowrap; }
  #litApp details.intel .ct .sub { color:var(--faint); }
  #litApp .intel-body { padding:4px 15px 14px; border-top:1px solid var(--border); }
  /* lane EXPERTS: the link to the hub's full expert profile */
  #litApp .xprof { display:inline-flex; align-items:center; min-height:32px; margin:8px 0 4px;
           font-weight:600; color:var(--gold); }
  #litApp .xprof-b { border-color:var(--gold); color:var(--gold); }
  #litApp .intel-body .lbl { font-size:10.5px; text-transform:uppercase;
                letter-spacing:1px; color:var(--gold); margin:12px 0 5px; }
  #litApp .intel-body .chips { display:flex; flex-wrap:wrap; gap:6px 10px;
                       font-size:12.5px; }
  #litApp .badge.side-defender { color:var(--cirR-t); border-color:var(--cirR-b);
                         background:var(--cirR-bg); }
  #litApp .badge.side-challenger { color:var(--cirD-t); border-color:var(--cirD-b);
                           background:var(--cirD-bg); }
  #litApp details.intel .spec { color:var(--faint); font-size:11.5px; }
  #litApp details.intel .jcourt { color:var(--muted); font-size:12px;
                          font-variant-numeric:tabular-nums; }
  #litApp .xcase { margin-top:11px; }
  #litApp .xcase-h { font-size:12.5px; font-weight:600; }
  #litApp .xcase-h .sub,
#litApp .xdocs .sub { color:var(--faint); font-weight:400;
                               font-size:11px; margin-left:6px; }
  #litApp .xdocs { list-style:none; margin:4px 0 0; padding:0 0 0 2px; }
  #litApp .xdocs li { display:flex; flex-wrap:wrap; gap:7px; align-items:baseline;
              font-size:12.5px; padding:2px 0; }
  #litApp .xdocs .kind { font-size:10px; text-transform:uppercase; letter-spacing:.7px;
                 border:1px solid var(--border-strong); border-radius:3px;
                 padding:0 5px; color:var(--muted); white-space:nowrap;
                 min-width:96px; text-align:center; }
  #litApp .xdocs .k-expert-report { color:var(--gold); border-color:var(--gold); }
  #litApp .xdocs .k-deposition { color:var(--blue); border-color:var(--blue); }
  #litApp .xdocs .k-trial-testimony { color:var(--pro); border-color:var(--pro); }
  #litApp .xdocs .k-within { color:var(--faint); border-style:dashed; }
  #litApp .stance { font-size:10px; text-transform:uppercase; letter-spacing:.7px;
            border-radius:3px; padding:0 5px; white-space:nowrap;
            border:1px solid var(--border-strong); color:var(--muted); }
  #litApp .stance.s-dissent { color:var(--anti-bright); border-color:var(--anti); }
  #litApp .stance.s-concur { color:var(--pro); border-color:var(--pro); }
  #litApp table.mini td.num { font-variant-numeric:tabular-nums; color:var(--muted);
                      white-space:nowrap; }
  #litApp .jdocs { display:flex; flex-wrap:wrap; gap:6px; font-size:11.5px; }
  #litApp .xdocs .within { font-style:italic; }
  #litApp blockquote.xq { margin:7px 0; padding:8px 12px; border-left:2px solid
                  var(--border-strong); background:var(--panel);
                  font-size:12.5px; color:var(--text); border-radius:0 4px 4px 0; }
  #litApp blockquote.xq.ret { border-left-color:var(--gold); }
  #litApp blockquote.xq cite { display:block; margin-top:5px; font-style:normal;
                       font-size:11.5px; color:var(--muted); }
  /* favorable / mixed / adverse share of a judge's coded rulings */
  #litApp .jbar { display:inline-flex; width:88px; height:7px; border-radius:4px;
          overflow:hidden; background:var(--border); }
  #litApp .jbar span { display:block; height:100%; }
  #litApp .jbar .f { background:var(--pro); } #litApp .jbar .m { background:var(--gold); }
  #litApp .jbar .u { background:var(--anti); }
  #litApp table.mini { border-collapse:collapse; font-size:12.5px; width:100%;
               margin-top:6px; }
  #litApp table.mini th { text-align:left; color:var(--gold); font-weight:600;
                  font-size:10.5px; text-transform:uppercase;
                  letter-spacing:.8px; padding:4px 8px 4px 0; }
  #litApp table.mini td { padding:4px 8px 4px 0; border-top:1px solid var(--border);
                  vertical-align:top; }
  #litApp .spark { display:flex; align-items:flex-end; gap:4px; height:52px; }
  #litApp .spark .yr { display:flex; flex-direction:column; justify-content:flex-end;
               align-items:center; height:100%; width:30px; }
  #litApp .spark .yr > span { width:100%; background:var(--blue); border-radius:2px 2px 0 0; }
  #litApp .spark .yr em { font-style:normal; font-size:10px; color:var(--faint);
                  margin-top:3px; }
  #litApp #docView { background:var(--deep); border:1px solid var(--border);
             border-radius:6px; padding:14px 18px; margin-top:12px;
             display:none; overflow-x:auto; line-height:1.62; }
  /* reports: headings render as h2/h3/h4 (offset for correct outline order
     under the section's own h2); blue accent per house style */
  #litApp #docView h2 { font-size:16px; color:var(--blue); margin:4px 0 10px; }
  #litApp #docView h3 { font-size:13.5px; color:var(--blue); text-transform:none;
                letter-spacing:.2px; margin:16px 0 8px; }
  #litApp #docView h4 { font-size:12.5px; color:var(--blue); margin:12px 0 6px; }
  #litApp #docView p { margin:8px 0; }
  #litApp #docView ul,
#litApp #docView ol { margin:6px 0 10px; padding-left:24px; }
  #litApp #docView table { border-collapse:collapse; font-size:12.5px; margin:8px 0; }
  #litApp #docView td,
#litApp #docView th { border:1px solid var(--border-strong);
                             padding:4px 9px; }
  #litApp #docView th { color:var(--blue); }
  #litApp #docView strong { color:var(--text); }
  #litApp #docView code { background:var(--panel2); padding:1px 5px;
                  border-radius:4px; font-size:12px; }
  /* narrow screens: stack filter controls full-width, no horizontal scroll */
  @media (max-width:640px) {
    #litApp { padding:16px 14px 50px; }
    #litApp .row { gap:9px; }
    #litApp .row > label { width:100%; }
    #litApp .row > label input,
#litApp .row > label select { width:100%; }
    #litApp #k,
#litApp #fY1,
#litApp #fY2 { width:100%; }
    #litApp .bar-row .lbl { width:auto; max-width:42%; }}
  /* respect reduced-motion preference (a11y 2.3.3) */
  @media (prefers-reduced-motion: reduce) {
    #litApp .spin { animation:none; }
    #litApp .hit.flash { animation:none; }
    #litApp * { scroll-behavior:auto !important; }}

/* inline style attributes of the markup (6) */
#litApp .lit-st-1 { display:none; }
#litApp .lit-st-2 { margin-top:22px; }
#litApp .lit-st-3 { min-width:240px; }
