/* ============================================================
   PUBLIC WITNESS — shared stylesheet
   Used identically by both articles so they read as one set.
   All color and type decisions live in :root.
   ============================================================ */

:root{
  /* Palette */
  --paper:#E9ECE8;
  --paper-deep:#DFE4DF;
  --card:#FAFBF9;
  --ink:#131A1E;
  --ink-muted:#4A565B;
  --ink-faint:#6B767A;
  --deep:#17323F;
  --deep-soft:#22485A;
  --brass:#8A6A2B;
  --brass-light:#C9A85E;
  --rule:#CDD3CD;
  --rule-soft:#DFE3DE;

  /* Risk signal — used consistently across both pages */
  --ok:#24614A;
  --ok-wash:#E6EFE9;
  --caution:#8A6212;
  --caution-wash:#F4EDDD;
  --risk:#8B2A2A;
  --risk-wash:#F3E3E1;

  /* Type */
  --display:"Spectral", Georgia, "Times New Roman", serif;
  --body:"Source Sans 3", "Segoe UI", system-ui, -apple-system, sans-serif;
  --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --measure:70ch;
  --gutter:clamp(1.15rem, 4vw, 3rem);
}

*,*::before,*::after{box-sizing:border-box;}

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
  scroll-padding-top:1.5rem;
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important;transition-duration:.001ms !important;}
}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--body);
  font-size:1.0625rem;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

a{color:var(--deep);text-underline-offset:.18em;text-decoration-thickness:.06em;}
a:hover{color:var(--brass);}
:focus-visible{outline:2.5px solid var(--brass);outline-offset:3px;border-radius:2px;}

.skip{
  position:absolute;left:-9999px;top:0;
  background:var(--deep);color:#fff;padding:.75rem 1.15rem;z-index:99;
  font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;
}
.skip:focus{left:.5rem;top:.5rem;}

/* ============================================================
   MASTHEAD
   ============================================================ */
.masthead{
  background:var(--deep);
  color:#EDF1EF;
  padding:clamp(2.25rem,6vw,4.5rem) var(--gutter) clamp(1.75rem,4vw,2.75rem);
  border-bottom:6px solid var(--brass);
}
.masthead__inner{max-width:74rem;margin:0 auto;}

.eyebrow{
  font-family:var(--mono);
  font-size:.68rem;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:var(--brass-light);
  margin:0 0 1.1rem;
  display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;
}
.eyebrow > span{display:inline-flex;align-items:center;}
.eyebrow > span::before{
  content:"";width:.34rem;height:.34rem;background:currentColor;
  margin-right:.6rem;flex:none;
}

.masthead h1{
  font-family:var(--display);
  font-weight:700;
  font-size:clamp(1.9rem,5vw,3.2rem);
  line-height:1.1;
  letter-spacing:-.015em;
  margin:0 0 .85rem;
  max-width:24ch;
}
.standfirst{
  font-size:clamp(1.02rem,2vw,1.2rem);
  color:#B9C6C4;
  max-width:60ch;
  margin:0 0 2rem;
  line-height:1.55;
}

.factbar{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));
  gap:1px;
  background:rgba(201,168,94,.3);
  border:1px solid rgba(201,168,94,.3);
  margin:0;
}
.factbar > div{background:var(--deep);padding:.85rem 1rem;}
.factbar dt{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.16em;
  text-transform:uppercase;color:#8FA5A6;margin:0 0 .3rem;
}
.factbar dd{margin:0;font-size:.94rem;font-weight:600;color:#EDF1EF;line-height:1.35;}

/* Companion-page link in masthead */
.companion{
  margin:1.75rem 0 0;
  border-top:1px solid rgba(201,168,94,.3);
  padding-top:1.25rem;
  font-size:.95rem;
  color:#B9C6C4;
  max-width:60ch;
}
.companion a{
  color:var(--brass-light);
  font-weight:600;
  text-decoration-thickness:.08em;
}
.companion a:hover{color:#fff;}

/* ============================================================
   DISCLAIMER STRIP
   ============================================================ */
.disclaimer-strip{
  background:#2B1F1F;color:#F1DCDC;border-bottom:1px solid #45302F;
  padding:.9rem var(--gutter);font-size:.9rem;
}
.disclaimer-strip p{max-width:74rem;margin:0 auto;line-height:1.5;}
.disclaimer-strip strong{
  color:#F6B9B9;font-family:var(--mono);font-size:.76rem;
  letter-spacing:.1em;text-transform:uppercase;display:block;margin-bottom:.2rem;
}

/* ============================================================
   SHELL
   ============================================================ */
.shell{
  max-width:74rem;margin:0 auto;
  padding:0 var(--gutter) 5rem;
  display:grid;grid-template-columns:1fr;gap:2.5rem;
}
@media (min-width:64rem){
  .shell{
    grid-template-columns:16rem 1fr;
    gap:3.5rem;align-items:start;padding-top:1rem;
  }
}

/* ---- Table of contents ---- */
.toc-toggle{
  display:block;width:100%;margin-top:2rem;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  background:transparent;border:1px solid var(--rule);color:var(--ink-muted);
  padding:.8rem 1rem;cursor:pointer;text-align:left;
}
.toc-toggle:hover{border-color:var(--ink);color:var(--ink);}

.contents{
  border-top:2px solid var(--ink);
  padding-top:1rem;
  margin-top:2rem;
}
@media (min-width:64rem){
  .toc-toggle{display:none;}
  .contents{
    position:sticky;top:1.5rem;
    max-height:calc(100vh - 3rem);overflow-y:auto;
    margin-top:2.75rem;
    scrollbar-width:thin;
  }
}
.contents h2{
  font-family:var(--mono);font-size:.66rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--ink-muted);margin:0 0 .85rem;
}
.contents ol{list-style:none;margin:0;padding:0;counter-reset:toc;}
.contents li{counter-increment:toc;}
.contents li > a{
  display:block;padding:.42rem 0 .42rem 2.1rem;position:relative;
  font-size:.89rem;line-height:1.35;color:var(--ink-muted);
  text-decoration:none;border-top:1px solid var(--rule-soft);
}
.contents li:first-child > a{border-top:0;}
.contents li > a::before{
  content:counter(toc,decimal-leading-zero);
  position:absolute;left:0;top:.44rem;
  font-family:var(--mono);font-size:.68rem;color:var(--brass);
}
.contents li > a:hover{color:var(--ink);}
.contents li > a[aria-current="true"]{color:var(--deep);font-weight:600;}
.contents li > a[aria-current="true"]::after{
  content:"";position:absolute;left:-.85rem;top:.55rem;
  width:3px;height:1rem;background:var(--brass);
}
/* Sub-list for activity sheets */
.contents ul{list-style:none;margin:0 0 .3rem;padding:0 0 0 2.1rem;}
.contents ul a{
  display:block;padding:.24rem 0;font-size:.82rem;line-height:1.3;
  color:var(--ink-faint);text-decoration:none;
}
.contents ul a:hover{color:var(--deep);}
.contents ul a[aria-current="true"]{color:var(--deep);font-weight:600;}

/* ============================================================
   DOCUMENT BODY
   ============================================================ */
.doc{min-width:0;}
.doc > section{padding-top:2.75rem;scroll-margin-top:1.5rem;}
.doc > section + section{border-top:1px solid var(--rule);margin-top:2.75rem;}

.sec-head{display:flex;gap:1rem;align-items:baseline;margin:0 0 1.5rem;}
.sec-num{font-family:var(--mono);font-size:.78rem;color:var(--brass);padding-top:.35rem;flex:none;}

.doc h2{
  font-family:var(--display);font-weight:700;
  font-size:clamp(1.45rem,3.3vw,2.05rem);
  line-height:1.15;letter-spacing:-.012em;margin:0;
}
.doc h3{
  font-family:var(--display);font-weight:600;
  font-size:1.2rem;line-height:1.28;
  margin:2.4rem 0 .7rem;color:var(--deep);
  scroll-margin-top:1.5rem;
}
.doc h4{
  font-family:var(--mono);font-weight:600;font-size:.71rem;
  letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-muted);margin:1.9rem 0 .6rem;
}
.doc p{max-width:var(--measure);margin:0 0 1.05rem;}
.doc ul,.doc ol{max-width:var(--measure);padding-left:1.35rem;margin:0 0 1.2rem;}
.doc li{margin-bottom:.5rem;}
.doc li::marker{color:var(--brass);}
.lede{font-size:1.15rem;line-height:1.55;}

/* Heading anchor links, injected by app.js */
.anchor{
  font-family:var(--mono);font-size:.7em;font-weight:400;
  color:var(--rule);text-decoration:none;
  margin-left:.5rem;opacity:0;transition:opacity .15s ease,color .15s ease;
  vertical-align:.08em;
}
h2:hover .anchor,h3:hover .anchor,.anchor:focus{opacity:1;color:var(--brass);}
@media (hover:none){.anchor{opacity:.45;}}
.anchor[data-copied="true"]{color:var(--ok);opacity:1;}

/* ---- Verdict / key-point box ---- */
.verdict{
  background:var(--card);border:1px solid var(--rule);
  border-left:5px solid var(--deep);
  padding:1.35rem 1.5rem;margin:0 0 1.75rem;max-width:var(--measure);
}
.verdict h4{margin-top:0;color:var(--deep);}
.verdict > :last-child{margin-bottom:0;}

/* ---- Citation card ---- */
.cite{
  background:var(--card);border:1px solid var(--rule-soft);
  margin:1.4rem 0;max-width:var(--measure);
}
.cite__label{
  font-family:var(--mono);font-size:.7rem;letter-spacing:.09em;
  background:var(--deep);color:#C9D6D3;padding:.55rem .95rem;
  display:flex;flex-wrap:wrap;gap:.5rem;align-items:baseline;justify-content:space-between;
}
.cite__label a{color:var(--brass-light);text-decoration:none;font-size:.92em;white-space:nowrap;}
.cite__label a:hover{color:#fff;text-decoration:underline;}
.cite__body{padding:1.05rem 1.15rem;}
.cite__body > :last-child{margin-bottom:0;}

blockquote{
  margin:0 0 1rem;padding-left:1rem;
  border-left:3px solid var(--brass);
  font-family:var(--display);font-style:italic;
  font-size:1.02rem;color:var(--deep);
}
blockquote > :last-child{margin-bottom:0;}
blockquote cite{
  display:block;font-family:var(--body);font-style:normal;
  font-size:.84rem;color:var(--ink-muted);margin-top:.5rem;letter-spacing:.01em;
}

/* ---- Risk tier chips ---- */
.tier{
  display:inline-flex;align-items:center;gap:.45rem;
  font-family:var(--mono);font-size:.65rem;letter-spacing:.12em;
  text-transform:uppercase;padding:.22rem .55rem;
  border:1px solid currentColor;white-space:nowrap;
}
.tier::before{content:"";width:.5rem;height:.5rem;background:currentColor;flex:none;}
.tier--ok{color:var(--ok);}
.tier--caution{color:var(--caution);}
.tier--risk{color:var(--risk);}

.tier-key{
  display:flex;flex-wrap:wrap;gap:.6rem;
  margin:1.25rem 0 1.75rem;max-width:var(--measure);
}

/* ---- Activity sheet: the core component of the field guide ---- */
.sheet{
  background:var(--card);
  border:1px solid var(--rule);
  border-left-width:6px;
  margin:1.5rem 0 2rem;
  scroll-margin-top:1.5rem;
}
.sheet.is-ok{border-left-color:var(--ok);}
.sheet.is-caution{border-left-color:var(--caution);}
.sheet.is-risk{border-left-color:var(--risk);}

.sheet__head{
  padding:1.1rem 1.3rem;border-bottom:1px solid var(--rule-soft);
  display:flex;flex-wrap:wrap;gap:.6rem 1rem;align-items:center;justify-content:space-between;
}
.sheet__id{
  font-family:var(--mono);font-size:.72rem;color:var(--brass);
  letter-spacing:.1em;display:block;margin-bottom:.25rem;
}
.sheet__head h3{
  margin:0;font-size:1.16rem;color:var(--ink);
  font-family:var(--display);font-weight:600;line-height:1.25;
}
.sheet__body{padding:1.15rem 1.3rem 1.35rem;}
.sheet__body > :last-child{margin-bottom:0;}

.sheet dl{margin:0;}
.sheet dt{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-muted);
  margin:1.15rem 0 .35rem;
}
.sheet dl > div:first-child dt{margin-top:0;}
.sheet dd{margin:0;max-width:var(--measure);}
.sheet dd > :last-child{margin-bottom:0;}
.sheet dd p{margin:0 0 .6rem;max-width:none;}
.sheet dd ul{margin:0 0 .3rem;padding-left:1.2rem;max-width:none;}
.sheet dd li{margin-bottom:.35rem;}

/* Where-to-stand list gets a distinct look */
.spots{list-style:none;padding:0 !important;margin:0 !important;}
.spots li{
  padding:.5rem 0 .5rem .1rem;
  border-top:1px solid var(--rule-soft);
  font-size:.97rem;
}
.spots li:first-child{border-top:0;padding-top:0;}
.spots b{
  display:block;font-family:var(--mono);font-size:.78rem;
  font-weight:600;color:var(--deep);letter-spacing:.02em;margin-bottom:.15rem;
}

/* ---- Tables ---- */
.table-wrap{
  overflow-x:auto;margin:1.5rem 0;
  border:1px solid var(--rule);background:var(--card);
  -webkit-overflow-scrolling:touch;
}
table{border-collapse:collapse;width:100%;min-width:36rem;font-size:.93rem;}
caption{
  text-align:left;font-family:var(--mono);font-size:.68rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-muted);padding:.85rem 1rem;
  border-bottom:1px solid var(--rule);background:var(--paper);
}
th,td{padding:.68rem .9rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--rule-soft);line-height:1.45;}
thead th{
  font-family:var(--mono);font-size:.65rem;letter-spacing:.11em;text-transform:uppercase;
  color:#D8E2DF;background:var(--deep);font-weight:600;border-bottom:0;
}
tbody tr:last-child td{border-bottom:0;}
tbody th{font-weight:600;}

code{
  font-family:var(--mono);font-size:.85em;
  background:rgba(23,50,63,.07);padding:.08em .3em;
}
.statute{font-family:var(--mono);font-size:.88rem;font-weight:500;color:var(--deep);white-space:nowrap;}

/* ---- Callouts ---- */
.flag{
  border:1px solid var(--rule);border-top:4px solid var(--risk);
  background:var(--card);padding:1.25rem 1.4rem;
  margin:1.75rem 0;max-width:var(--measure);
}
.flag h4{margin-top:0;color:var(--risk);}
.flag > :last-child{margin-bottom:0;}
.flag--ok{border-top-color:var(--ok);}
.flag--ok h4{color:var(--ok);}
.flag--caution{border-top-color:var(--caution);}
.flag--caution h4{color:var(--caution);}

.gap-note{
  font-size:.94rem;color:var(--ink-muted);
  border-left:3px solid var(--rule);padding-left:1rem;
  margin:1.4rem 0;max-width:var(--measure);
}
.gap-note > :last-child{margin-bottom:0;}

.unverified{
  font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--caution);
  border:1px solid currentColor;padding:.12rem .4rem;
  white-space:nowrap;margin-left:.35rem;vertical-align:.1em;
}

/* ---- Authorities list ---- */
.authorities{list-style:none;padding:0;margin:1.25rem 0;max-width:none;}
.authorities > li{
  padding:.75rem 0;border-top:1px solid var(--rule-soft);
  display:grid;gap:.15rem .9rem;margin:0;
}
@media (min-width:48rem){
  .authorities > li{grid-template-columns:minmax(0,22rem) 1fr;align-items:baseline;}
}
.authorities > li:first-child{border-top:0;}
.authorities .auth-name{font-weight:600;}
.authorities .auth-name em{font-style:italic;}
.authorities .auth-note{color:var(--ink-muted);font-size:.93rem;}
.authorities a{word-break:break-word;}

/* ---- Footer ---- */
.colophon{
  background:var(--deep);color:#B9C6C4;
  padding:clamp(2.25rem,5vw,3.5rem) var(--gutter);
  border-top:6px solid var(--brass);font-size:.92rem;
}
.colophon__inner{max-width:74rem;margin:0 auto;}
.colophon h2{
  font-family:var(--mono);font-size:.68rem;letter-spacing:.19em;
  text-transform:uppercase;color:var(--brass-light);margin:0 0 1rem;font-weight:600;
}
.colophon p{max-width:70ch;margin:0 0 .9rem;line-height:1.6;}
.colophon strong{color:#EDF1EF;}
.colophon a{color:var(--brass-light);}
.colophon a:hover{color:#fff;}
.colophon .rule{height:1px;background:rgba(201,168,94,.3);margin:1.75rem 0;}

/* Back-to-top */
.to-top{
  position:fixed;right:1rem;bottom:1rem;z-index:40;
  background:var(--deep);color:#EDF1EF;border:1px solid var(--brass);
  font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  padding:.6rem .8rem;cursor:pointer;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.to-top.is-visible{opacity:1;pointer-events:auto;}
.to-top:hover{background:var(--deep-soft);}

/* ============================================================
   PRINT — these documents get carried and printed
   ============================================================ */
@media print{
  :root{--paper:#fff;--card:#fff;}
  body{font-size:10.5pt;line-height:1.4;color:#000;background:#fff;}
  .skip,.contents,.toc-toggle,.to-top,.anchor{display:none !important;}
  .masthead{background:#fff;color:#000;border-bottom:2pt solid #000;padding:0 0 12pt;}
  .masthead h1{font-size:20pt;}
  .standfirst,.eyebrow,.companion{color:#333;}
  .companion{border-top:.5pt solid #999;}
  .factbar{background:#fff;border:1pt solid #000;}
  .factbar > div{background:#fff;border-right:.5pt solid #999;}
  .factbar dt,.factbar dd{color:#000;}
  .disclaimer-strip{background:#fff;color:#000;border:1.5pt solid #000;}
  .disclaimer-strip strong{color:#000;}
  .shell{display:block;max-width:none;padding:0;}
  .doc > section{padding-top:14pt;}
  .doc h2,.doc h3,.sheet__head{page-break-after:avoid;}
  .cite,.verdict,.flag,.sheet,.table-wrap,.authorities > li{page-break-inside:avoid;}
  .cite__label{background:#fff;color:#000;border-bottom:1pt solid #000;}
  .cite__label a{color:#000;}
  thead th{background:#fff;color:#000;border-bottom:1pt solid #000;}
  .colophon{background:#fff;color:#000;border-top:2pt solid #000;}
  .colophon h2,.colophon strong,.colophon a{color:#000;}
  a{color:#000;text-decoration:underline;}
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:7.5pt;color:#555;word-break:break-all;}
  .cite__label a[href^="http"]::after{content:"";}
}
