/* JTforME public contrast release v2 — loaded last, cache-busted.
   Corrects light-on-light and dark-on-dark text across public pages. */
:root{
  --jt-v2-ink:#0a2239;
  --jt-v2-copy:#243e57;
  --jt-v2-link:#005684;
  --jt-v2-paper:#fffdf8;
  --jt-v2-dark:#0b223b;
  --jt-v2-dark-copy:#edf5ff;
  --jt-v2-dark-link:#bfeeff;
  --jt-v2-gold:#ffdc6a;
}
html{font-size:17px!important;-webkit-text-size-adjust:100%;text-size-adjust:100%}
html body{font-size:17px!important;line-height:1.65!important}
html body :is(p,li,dd,dt,td,th,blockquote,summary){font-size:max(1rem,16px)!important;line-height:1.65!important}
html body :is(small,.small,.meta,.kicker,.eyebrow,.tag,.badge,.chip,.pill,.label,.caption,figcaption,
.header-route-deck-kicker,.header-route-deck-note,.safe-device-inline,.safety-ribbon-kicker,.intent-label,
.quick-help-kicker,.published-commentary-kicker,.packet-purpose-pill,.identity-meta-pill,.route-stage-num,
.factor-badge,.factor-kicker,.lane-source-tag,.source-date-badge,.packet-label,.status-pill,.public-small){
  font-size:max(.9rem,15px)!important;line-height:1.48!important;opacity:1!important
}
html body :is(a,button,.btn,input,select,textarea){font-size:max(.94rem,15px)!important;opacity:1!important}
html body :is(h1,h2,h3,h4,h5,h6,p,li,dd,dt,td,th,span,strong,em,a,button,small,label,summary,blockquote,figcaption){
  text-shadow:none!important;mix-blend-mode:normal!important
}

/* Dark public surfaces. */
html body :is(.hero,.page-hero,.jumbotron,header.jumbotron,.dark-hero,.section-dark,.proof-hero,.record-hero,
.accountability-hero,.matrix-hero,.library-hero,.timeline-hero,.accountability-timeline-hero,.evidence-route-bridge,
.home-accountability-funnel,.accountability-reader-map-section,.site-intent-strip,.privacy-no-intake-ribbon,
.site-boundary-ribbon,.safety-ribbon,.footer,.public-bridge,.initiative-bridge,.record-hero-panel,.hero-copy,
.accountability-route-panel,.dark-panel,.navy-panel){color:#fff!important}
html body :is(.hero,.page-hero,.jumbotron,header.jumbotron,.dark-hero,.section-dark,.proof-hero,.record-hero,
.accountability-hero,.matrix-hero,.library-hero,.timeline-hero,.accountability-timeline-hero,.evidence-route-bridge,
.home-accountability-funnel,.accountability-reader-map-section,.site-intent-strip,.privacy-no-intake-ribbon,
.site-boundary-ribbon,.safety-ribbon,.footer,.public-bridge,.initiative-bridge,.record-hero-panel,.hero-copy,
.accountability-route-panel,.dark-panel,.navy-panel)
:is(h1,h2,h3,h4,h5,h6,strong,em,.big,.label,.stat-number,.stat-label){color:#fff!important}
html body :is(.hero,.page-hero,.jumbotron,header.jumbotron,.dark-hero,.section-dark,.proof-hero,.record-hero,
.accountability-hero,.matrix-hero,.library-hero,.timeline-hero,.accountability-timeline-hero,.evidence-route-bridge,
.home-accountability-funnel,.accountability-reader-map-section,.site-intent-strip,.privacy-no-intake-ribbon,
.site-boundary-ribbon,.safety-ribbon,.footer,.public-bridge,.initiative-bridge,.record-hero-panel,.hero-copy,
.accountability-route-panel,.dark-panel,.navy-panel)
:is(p,li,dd,dt,span,small,.meta,.kicker,.eyebrow,.caption,figcaption,.detail,.read-order-note){color:var(--jt-v2-dark-copy)!important}
html body :is(.hero,.page-hero,.jumbotron,header.jumbotron,.dark-hero,.section-dark,.proof-hero,.record-hero,
.accountability-hero,.matrix-hero,.library-hero,.timeline-hero,.accountability-timeline-hero,.evidence-route-bridge,
.home-accountability-funnel,.accountability-reader-map-section,.site-intent-strip,.privacy-no-intake-ribbon,
.site-boundary-ribbon,.safety-ribbon,.footer,.public-bridge,.initiative-bridge,.record-hero-panel,.hero-copy,
.accountability-route-panel,.dark-panel,.navy-panel) a:not(.btn){color:var(--jt-v2-dark-link)!important}

/* Light opaque surfaces. This block intentionally comes after dark surfaces so nested paper cards win. */
html body :is(.civic-scope-note,.initiative-note,.record-bottom-line,.footer-boundary-note,.footer-safety-note,
.footer-privacy-note,.justice-public-quote,.hero-side-card,.hero-kpi-card,.hero-side,.hero-kpi-grid,
.accountability-visitor-brief,.notice-strip,.reader-card,.reader-top,.reader-body,.bill-prose,.meta-card,.callout,
.page-purpose-card,.identity-card,.priority-card,.authority-card,.evidence-card,.lane-companion-card,
.route-sequence-card,.packet-use-card,.pack-card,.resource-card,.source-card,.family-week-card,.situation-card,
.directory-card,.citation-stack-card,.factor-card,.download-card,.record-card,.chart-card,.dashboard-scan-card,
.timeline-check-card,.proof-card,.official-door-card,.route-note-card,.paper-sort-card,.public-packet-card,
.accountability-quality-card,.conduct-anchor-card,.timeline-card,.standard-card,.citation-spine-card,
.formal-page-card,.proof-route-card,.packet-step,.final-readiness-card,.scoreboard-stat,.micro-callout,
.official-source-note,.family-route-warning,.resource-warning,.packet-alert,.public-note,.public-quote,
.launch-summary,.civic-card,.paper-card,.cream-card,.light-card,.panel-light,.card){
  color:var(--jt-v2-ink)!important
}
html body :is(.civic-scope-note,.initiative-note,.record-bottom-line,.footer-boundary-note,.footer-safety-note,
.footer-privacy-note,.justice-public-quote,.hero-side-card,.hero-kpi-card,.hero-side,.hero-kpi-grid,
.accountability-visitor-brief,.notice-strip,.reader-card,.reader-top,.reader-body,.bill-prose,.meta-card,.callout,
.page-purpose-card,.identity-card,.priority-card,.authority-card,.evidence-card,.lane-companion-card,
.route-sequence-card,.packet-use-card,.pack-card,.resource-card,.source-card,.family-week-card,.situation-card,
.directory-card,.citation-stack-card,.factor-card,.download-card,.record-card,.chart-card,.dashboard-scan-card,
.timeline-check-card,.proof-card,.official-door-card,.route-note-card,.paper-sort-card,.public-packet-card,
.accountability-quality-card,.conduct-anchor-card,.timeline-card,.standard-card,.citation-spine-card,
.formal-page-card,.proof-route-card,.packet-step,.final-readiness-card,.scoreboard-stat,.micro-callout,
.official-source-note,.family-route-warning,.resource-warning,.packet-alert,.public-note,.public-quote,
.launch-summary,.civic-card,.paper-card,.cream-card,.light-card,.panel-light,.card)
:is(h1,h2,h3,h4,h5,h6,strong,em,b,.big,.label,.stat-number,.stat-label,.record-anchor-stat){color:var(--jt-v2-ink)!important}
html body :is(.civic-scope-note,.initiative-note,.record-bottom-line,.footer-boundary-note,.footer-safety-note,
.footer-privacy-note,.justice-public-quote,.hero-side-card,.hero-kpi-card,.hero-side,.hero-kpi-grid,
.accountability-visitor-brief,.notice-strip,.reader-card,.reader-top,.reader-body,.bill-prose,.meta-card,.callout,
.page-purpose-card,.identity-card,.priority-card,.authority-card,.evidence-card,.lane-companion-card,
.route-sequence-card,.packet-use-card,.pack-card,.resource-card,.source-card,.family-week-card,.situation-card,
.directory-card,.citation-stack-card,.factor-card,.download-card,.record-card,.chart-card,.dashboard-scan-card,
.timeline-check-card,.proof-card,.official-door-card,.route-note-card,.paper-sort-card,.public-packet-card,
.accountability-quality-card,.conduct-anchor-card,.timeline-card,.standard-card,.citation-spine-card,
.formal-page-card,.proof-route-card,.packet-step,.final-readiness-card,.scoreboard-stat,.micro-callout,
.official-source-note,.family-route-warning,.resource-warning,.packet-alert,.public-note,.public-quote,
.launch-summary,.civic-card,.paper-card,.cream-card,.light-card,.panel-light,.card)
:is(p,li,dd,dt,span,small,.meta,.kicker,.eyebrow,.caption,figcaption,.detail,.read-order-note){color:var(--jt-v2-copy)!important}
html body :is(.civic-scope-note,.initiative-note,.record-bottom-line,.footer-boundary-note,.footer-safety-note,
.footer-privacy-note,.justice-public-quote,.hero-side-card,.hero-kpi-card,.hero-side,.hero-kpi-grid,
.accountability-visitor-brief,.notice-strip,.reader-card,.reader-top,.reader-body,.bill-prose,.meta-card,.callout,
.page-purpose-card,.identity-card,.priority-card,.authority-card,.evidence-card,.lane-companion-card,
.route-sequence-card,.packet-use-card,.pack-card,.resource-card,.source-card,.family-week-card,.situation-card,
.directory-card,.citation-stack-card,.factor-card,.download-card,.record-card,.chart-card,.dashboard-scan-card,
.timeline-check-card,.proof-card,.official-door-card,.route-note-card,.paper-sort-card,.public-packet-card,
.accountability-quality-card,.conduct-anchor-card,.timeline-card,.standard-card,.citation-spine-card,
.formal-page-card,.proof-route-card,.packet-step,.final-readiness-card,.scoreboard-stat,.micro-callout,
.official-source-note,.family-route-warning,.resource-warning,.packet-alert,.public-note,.public-quote,
.launch-summary,.civic-card,.paper-card,.cream-card,.light-card,.panel-light,.card) a:not(.btn){color:var(--jt-v2-link)!important}

/* Exact live defects: home scope note, dashboard side cards, named-accountability evidence cards. */
html body .hero.hero .civic-scope-note.civic-scope-note{background:#fff8e8!important;color:var(--jt-v2-ink)!important}
html body .hero.hero .civic-scope-note.civic-scope-note *{color:var(--jt-v2-copy)!important}
html body .hero.hero .civic-scope-note.civic-scope-note strong{color:var(--jt-v2-ink)!important}
html body .hero.hero .justice-public-quote.justice-public-quote *{color:var(--jt-v2-ink)!important}
html body .hero.hero .justice-public-quote.justice-public-quote cite{color:#7f1d2d!important}
html body :is(.hero-side-card.hero-side-card,.hero-kpi-card.hero-kpi-card,.dashboard-scan-card.dashboard-scan-card){
  background:#fffdf8!important;color:var(--jt-v2-ink)!important;border-color:rgba(10,34,57,.25)!important
}
html body :is(.hero-side-card.hero-side-card,.hero-kpi-card.hero-kpi-card,.dashboard-scan-card.dashboard-scan-card) *{color:var(--jt-v2-copy)!important}
html body :is(.hero-side-card.hero-side-card,.hero-kpi-card.hero-kpi-card,.dashboard-scan-card.dashboard-scan-card) :is(h1,h2,h3,h4,strong,b,.big,.label){color:var(--jt-v2-ink)!important}
html body :is(.hero-side-card.hero-side-card,.hero-kpi-card.hero-kpi-card,.dashboard-scan-card.dashboard-scan-card) a{color:var(--jt-v2-link)!important}

/* Controls and pills on pale surfaces must never inherit pale hero colors. */
html body :is(.page-jump-nav,.hero-utility-row,.platform-rail,.sources-nav,.lane-tags,.source-quality,
.formal-citation-ribbon,.matrix-actions,.proof-route-actions,.evidence-row-actions,.record-cta-row,
.keyword-row,.public-pill-row,.card-link-list,.inline-cta-row) :is(a,button):not(.btn-primary){
  color:var(--jt-v2-ink)!important;background:#fffdf8!important;border-color:rgba(10,34,57,.32)!important
}
html body :is(.page-jump-nav,.hero-utility-row,.platform-rail,.sources-nav,.lane-tags,.source-quality,
.formal-citation-ribbon,.matrix-actions,.proof-route-actions,.evidence-row-actions,.record-cta-row,
.keyword-row,.public-pill-row,.card-link-list,.inline-cta-row) :is(a,button):hover{
  color:#06182b!important;background:#f2f7fb!important
}
html body :is(.identity-meta-pill,.packet-purpose-pill,.route-stage-num,.factor-badge,.factor-kicker,
.lane-source-tag,.source-date-badge,.packet-label,.status-pill,.evidence-risk,.initiative-status){
  color:var(--jt-v2-ink)!important;background:#edf5fb!important;border-color:rgba(10,34,57,.24)!important
}
html body .section-anchor-button.section-anchor-button{
  color:var(--jt-v2-ink)!important;background:#fffdf8!important;border-color:rgba(10,34,57,.32)!important
}
html body .section-anchor-button.section-anchor-button::before{color:var(--jt-v2-link)!important}

/* Header route deck, safety strips and boundary strips are pale in this build. */
html body :is(.header-route-deck,.safety-ribbon,.privacy-no-intake-ribbon,.site-boundary-ribbon,.site-intent-strip)
:is(h1,h2,h3,h4,p,li,span,strong,small,.header-route-deck-kicker,.header-route-deck-note,.safe-device-inline,
.safety-ribbon-kicker,.intent-label){color:var(--jt-v2-ink)!important}
html body :is(.header-route-deck,.safety-ribbon,.privacy-no-intake-ribbon,.site-boundary-ribbon,.site-intent-strip) a{color:var(--jt-v2-link)!important}

/* Preserve truly dark translucent cards after broad light-card rules. */
html body :is(.reader-map-card,.home-accountability-card,.home-proof-card,.home-accountability-standard,
.evidence-route-mini>*,.footer-nav-card,.proof-protocol-card){
  background:rgba(255,255,255,.09)!important;border-color:rgba(255,255,255,.3)!important;color:#fff!important
}
html body :is(.reader-map-card,.home-accountability-card,.home-proof-card,.home-accountability-standard,
.evidence-route-mini>*,.footer-nav-card,.proof-protocol-card) :is(h1,h2,h3,h4,h5,h6,strong,b,em){color:#fff!important}
html body :is(.reader-map-card,.home-accountability-card,.home-proof-card,.home-accountability-standard,
.evidence-route-mini>*,.footer-nav-card,.proof-protocol-card) :is(p,li,span,small,.meta,.detail,.kicker){color:var(--jt-v2-dark-copy)!important}
html body :is(.reader-map-card,.home-accountability-card,.home-proof-card,.home-accountability-standard,
.evidence-route-mini>*,.footer-nav-card,.proof-protocol-card) a{color:var(--jt-v2-dark-link)!important}

/* Focus visibility. */
html body :is(a,button,input,select,textarea):focus-visible{outline:3px solid #ffbf1f!important;outline-offset:3px!important}

@media(max-width:767px){
  html{font-size:17px!important}
  html body :is(a,button,.btn){min-height:44px}
}

/* Final targeted fixes from full browser contrast crawl. */
html body.citation-bank-page .citation-bank-hero{
  background:radial-gradient(circle at top left,rgba(126,230,255,.16),transparent 34%),linear-gradient(180deg,#081529,#0a1730)!important;
  color:#fff!important;
}
html body.citation-bank-page .citation-bank-hero :is(h1,h2,h3,h4,strong,b,.kicker){color:#fff!important}
html body.citation-bank-page .citation-bank-hero :is(p,span,small,.breadcrumbs){color:#edf5ff!important}
html body.citation-bank-page .citation-bank-hero a:not(.citation-bank-actions a){color:#bfeeff!important}
html body .matrix-section.alt{
  background:#0b1d32!important;color:#fff!important;
}
html body .matrix-section.alt :is(h1,h2,h3,h4,strong,b,.matrix-kicker){color:#fff!important}
html body .matrix-section.alt :is(p,li,span,small){color:#edf5ff!important}
html body .matrix-section.alt a:not(.btn){color:#bfeeff!important}
html body .matrix-section.alt .standard-card{
  background:#10263f!important;color:#fff!important;border-color:rgba(191,219,254,.28)!important;
}
html body .matrix-section.alt .standard-card :is(strong,h1,h2,h3,h4){color:#fff!important}
html body .matrix-section.alt .standard-card :is(p,span,small){color:#edf5ff!important}
html body :is(.home-accountability-card,.home-proof-card,.home-accountability-standard){
  background:linear-gradient(180deg,rgba(0,0,0,.30),rgba(0,0,0,.22))!important;
}
html body :is(.home-accountability-card,.home-proof-card,.home-accountability-standard) :is(.meta,span,p,li,a){
  color:#fff!important;
}
html body :is(.home-accountability-card,.home-proof-card,.home-accountability-standard) a{
  text-decoration:underline;text-underline-offset:3px;
}
