/* ---- DR Report Styles (shared) ----
   CR nondr-grading-presentation-rescue (RC#2): pure move of the DR render styles
   out of the DR-only inline nonce'd style block in
   _partials/dr_report_container.html:12-79 (verbatim), plus the non-DR sliver
   from _partials/graded_data_blob.html (.nondr-biblio .biblio-* + sup.cite).
   ONE stylesheet, loaded by project.html's head block (after analysis_card.css)
   so BOTH the DR and non-DR graded surfaces receive identical styles. DR render
   is byte-identical (these already render correctly in light AND dark —
   theme-agnostic translucent accents + colored underlines).
   The HTML-export inliner (_inline_local_static, routes_api.py) rewrites the
   project.html stylesheet link into an inline style body so downloaded reports
   stay self-contained. NOTE: do NOT write the literal stylesheet-link markup or a
   /static/*.css reference in this comment — when this file is inlined into the
   export, the inliner self-test would flag that string as an un-inlined ref. */
:root {
  --cat-verified: #10b981; --cat-verified-bg: rgba(16,185,129,0.10);
  --cat-wrong: #ef4444; --cat-wrong-bg: rgba(239,68,68,0.10);
  --cat-missing: #f59e0b; --cat-missing-bg: rgba(245,158,11,0.10);
  --cat-uncited: #6b7280; --cat-uncited-bg: rgba(107,114,128,0.10);
  --cat-unverified: #6b5df0; --cat-unverified-bg: rgba(107,93,240,0.10);
  --cat-narrative: #9ca3af; --cat-narrative-bg: rgba(156,163,175,0.08);
  --tier-government: #059669; --tier-academic: #0d9488; --tier-industry: #2563eb; --tier-news: #7c3aed; --tier-other: #6b7280;
  /* CR dd-attribution-aware-grading: distinct amber for confirmed expert-attribution evidence (not a citable web source). */
  --tier-expert: #d97706;
}
.filter-bar{border-bottom:1px solid var(--border-light)}
.filter-group{padding:6px 24px;display:flex;align-items:center;gap:8px;border-bottom:1px solid #f0f0ee;flex-wrap:wrap}
.filter-group-btn{background:none;border:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:0;font-family:var(--font-sans,sans-serif);font-size:13px;font-weight:600}
.filter-group-btn .arrow{font-size:9px;color:#ccc;transition:transform 150ms ease;display:inline-block}
.filter-group.open .arrow{transform:rotate(90deg)}
.filter-group-count{font-size:12px;font-family:var(--font-mono);opacity:0.7}
.filter-sub{display:none;align-items:center;gap:4px;margin-left:8px}
.filter-group.open .filter-sub{display:flex;flex-wrap:wrap}
.filter-pill{display:flex;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;font-size:11px;font-family:var(--font-mono);cursor:pointer;border:1.5px solid var(--border-light);background:var(--bg-secondary,#fff);color:var(--text-muted,#6b7280);transition:all 150ms ease}
.filter-pill:hover{border-color:#bbb}.filter-pill.active{font-weight:600}.filter-pill:disabled{opacity:0.3;cursor:default}
.filter-pill .pill-count{opacity:0.7}
.filter-clear{padding:4px 16px;border-bottom:1px solid var(--border-light);display:none;justify-content:flex-start;background:var(--bg-tertiary,#f0f2f5)}
.filter-clear.visible{display:flex}
.filter-clear button{background:none;border:none;font-size:11px;color:var(--text-muted,#6b7280);cursor:pointer;font-family:var(--font-mono)}
/* Iter 2.1: typography overrides removed. `.report-content` inherits
   body Inter + canonical .markdown-body h1/h2/h3/h4 / p / ul / ol / li
   sizes. Padding kept (layout, not typography). DR-specific elements
   below (.dr-cite, .dr-sentence, .dr-audit, .biblio-*, .filter-*,
   .source-detail, .claim-row, .synthesis-block) remain DR-only. */
.report-content{padding:20px 28px 32px}
.dr-cite{color:var(--accent-primary,#6b5df0);font-size:0.8em;vertical-align:super;text-decoration:none}
.dr-sentence{background:transparent;color:inherit;transition:background 150ms ease,border-color 150ms ease;border-radius:2px;padding:1px 2px}
.dr-sentence.hl-verified{background:var(--cat-verified-bg);border-bottom:2px solid var(--cat-verified)}
.dr-sentence.hl-wrong{background:var(--cat-wrong-bg);border-bottom:2px solid var(--cat-wrong)}
.dr-sentence.hl-missing{background:var(--cat-missing-bg);border-bottom:2px solid var(--cat-missing)}
.dr-sentence.hl-uncited{background:var(--cat-uncited-bg);border-bottom:2px solid var(--cat-uncited)}
.dr-sentence.hl-unverified{background:var(--cat-unverified-bg);border-bottom:2px solid var(--cat-unverified)}
.dr-sentence.hl-narrative{background:var(--cat-narrative-bg);border-bottom:2px solid var(--cat-narrative)}
.dr-audit{margin:6px 0 10px;border-radius:6px;overflow:hidden;display:none}
.dr-sentence[class*="hl-"]+.dr-audit{display:block}
.dr-audit>summary{padding:6px 12px;font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;color:var(--text-muted,#6b7280);list-style:none;display:flex;align-items:center;gap:6px}
.dr-audit>summary::before{content:'\25B6';font-size:8px;display:inline-block;transition:transform 150ms ease}
.dr-audit[open]>summary::before{transform:rotate(90deg)}
.dr-audit>summary::-webkit-details-marker{display:none}
.audit-body{padding:8px 14px 12px}
.claim-row{padding:8px 0;border-bottom:1px solid var(--border-light)}.claim-row:last-child{border-bottom:none}
.claim-header{display:flex;align-items:flex-start;gap:6px;margin-bottom:4px}
.claim-icon{flex-shrink:0;width:16px;height:16px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;margin-top:2px}
.claim-icon.pass{background:rgba(16,185,129,0.15);color:var(--cat-verified)}.claim-icon.fail{background:rgba(239,68,68,0.12);color:var(--cat-wrong)}
.claim-text{font-size:12px;color:var(--text-secondary,#4b5563);line-height:1.5}
.synthesis-block{margin:6px 0 6px 22px;padding:8px 10px;background:rgba(107,93,240,0.06);border-left:3px solid var(--accent-primary,#6b5df0);border-radius:0 4px 4px 0;font-size:11px;line-height:1.6;color:var(--text-secondary,#4b5563)}
.synthesis-label{font-size:9px;font-family:var(--font-mono);color:var(--accent-primary,#6b5df0);text-transform:uppercase;letter-spacing:0.5px;font-weight:600;margin-bottom:3px}
.source-detail{margin:6px 0 4px 22px;background:var(--bg-secondary,#fff);border:1px solid var(--border-light);border-radius:6px;overflow:hidden}
.source-detail-header{display:flex;align-items:center;gap:6px;padding:5px 10px;border-bottom:1px solid var(--border-light);font-size:13px;font-family:var(--font-mono)}
.source-detail-icon{width:14px;height:14px;border-radius:2px;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;border:1px solid}
.source-detail-body{padding:10px 12px}
/* Source-detail evidence text: the quote + location are de-mono'd so they read
   in the report's own prose family instead of a code block dropped into sans
   narrative, and every size is floored at 13px+ (they were 10-12.5px and read
   as tiny). Field labels stay mono/uppercase — they're labels, not content
   (2026-07-09, matches surrounding-prose request). */
.source-detail-body .reason{font-size:14px;color:var(--text-secondary,#4b5563);line-height:1.6;margin-bottom:8px}
.source-detail-body .field-label{font-size:13px;font-family:var(--font-mono);color:var(--text-muted,#6b7280);text-transform:uppercase;letter-spacing:0.6px;font-weight:600;margin-bottom:3px}
.source-detail-body .quote-block{padding:8px 10px;background:var(--bg-tertiary,#f0f2f5);border:1px solid var(--border-light);border-radius:4px;font-size:14px;line-height:1.6;color:var(--text-secondary,#4b5563);font-style:italic;margin-bottom:8px}
.source-detail-body .location{font-size:13px;color:var(--text-muted,#6b7280)}
.biblio-section>summary{padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-light)}
.biblio-section>summary::before{content:'\25B6';font-size:9px;transition:transform 150ms ease}
.biblio-section[open]>summary::before{transform:rotate(90deg)}
.biblio-section>summary::-webkit-details-marker{display:none}
.biblio-list{padding:12px 24px}
.biblio-entry{padding:4px 0;font-size:13px;line-height:1.6;border-bottom:1px solid var(--border-light);color:var(--text-secondary,#4b5563)}

/* ---- Per-arm bibliography mount (CR-B nondr-per-arm-bibliography) ----
   Each non-DR arm renders its OWN cited-only bibliography inside its panel's
   .dr-panel-biblio-mount. These rules give that mount's details.biblio-section
   the boxed treatment (the page-level union .nondr-biblio wrapper is retired).
   The base .biblio-section>summary / .biblio-list / .biblio-entry rules above
   (unscoped, DR-shared) still apply; this block adds the box chrome. */
.dr-panel-biblio-mount .biblio-section{margin-top:16px;border:1px solid var(--border-light);border-radius:8px;background:var(--bg-secondary,#fff)}
.dr-panel-biblio-mount .biblio-section>summary{padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-light)}
.dr-panel-biblio-mount .biblio-section>summary::before{content:'\25B6';font-size:9px;transition:transform 150ms ease}
.dr-panel-biblio-mount .biblio-section[open]>summary::before{transform:rotate(90deg)}
.dr-panel-biblio-mount .biblio-section>summary::-webkit-details-marker{display:none}
.dr-panel-biblio-mount .biblio-list{padding:12px 24px}
.dr-panel-biblio-mount .biblio-entry{padding:4px 0;font-size:13px;line-height:1.6;border-bottom:1px solid var(--border-light);color:var(--text-secondary,#4b5563)}
/* CR7 (citation-superscripts-sequential): the §A1 inline-citation superscript.
   NOT scoped under .nondr-biblio — superscripts live in the graded report prose. */
/* Colour is set on the sup itself (not only the inner <a>) so the JS-inserted
   comma separator — bare text in a <sup class="cite"> with no <a> — matches the
   accent colour of the numbers. The adjacent-citation comma is inserted in
   dr_report.js with a literal-adjacency regex, NOT a `sup.cite+sup.cite` sibling
   rule: the `+` combinator matched cites separated by sentences of text and
   orphaned a leading comma before a lone citation (2026-07-08). */
sup.cite{font-size:.72em;line-height:0;color:var(--accent-primary,#6b5df0)}
sup.cite a{color:var(--accent-primary,#6b5df0);text-decoration:none;font-weight:700;padding:0 1px}

/* ---- D1 (CR-A): Narrative · graded accordion tag ---- */
.dr-narrative-graded>summary .graded-tag{font-size:11px;font-weight:600;color:var(--accent-primary,#6b5df0);font-family:var(--font-mono)}
