/* ── High Desert Ledger ─────────────────────────────────────────────── */
:root{
  --paper:#F7F5F0; --paper-deep:#EFEBE2; --ink:#1E2A32; --ink-soft:#44525C;
  --river:#20606E; --river-deep:#174754;
  --st-active:#33604F; --st-operational:#1F5560; --st-adopted:#A8721F;
  --st-pending:#A8721F; --st-declined:#7E3B2C; --st-ended:#5B4A57;
  --st-unresolved:#6E7780; --st-none:#DDD9D0;
  --st-wso:#33604F; --st-jem:#1F5560; --st-tfm:#4C5B8A; --st-multi:#3D4F63;
  --st-admin:#7E3B2C; --st-judicial:#33604F; --st-conditional:#A8721F;
  --st-caseby:#4C5B8A; --st-declines:#20606E;
  --rule:#C9C3B6; --focus:#B8551F;
  --surface:#FFFFFF; --surface-soft:#FBF9F4; --surface-edge:#E6E0D2;
  --radius:10px; --radius-sm:6px;
  --shadow-card:0 1px 2px rgba(30,42,50,.06),0 1px 1px rgba(30,42,50,.04);
  --f-display:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:Charter,"Iowan Old Style","Palatino Linotype",Georgia,serif;
  --f-mono:"SFMono-Regular",Consolas,"Liberation Mono",ui-monospace,monospace;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:17px;line-height:1.6}
h1,h2,h3,h4,.ui{font-family:var(--f-display)}
h1{font-weight:800;letter-spacing:-.01em}
h2{font-weight:800;letter-spacing:-.006em}
h3{font-weight:700}
code,.mono{font-family:var(--f-mono);font-size:.82em}
a{color:var(--river);text-underline-offset:2px}
a:hover{color:var(--river-deep)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}
.skip-link{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--paper);padding:.6rem 1rem;z-index:99;font-family:var(--f-display)}
.skip-link:focus{left:.5rem;top:.5rem}
.wrap{max-width:1160px;margin:0 auto;padding:0 1.25rem}
.map-wrap{max-width:1340px}
.jurisdiction-page{max-width:1040px}

/* header / footer */
.site-head{border-bottom:1px solid var(--rule);background:var(--paper)}
.brand{font-family:var(--f-display);font-weight:800;font-size:1.32rem;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}
.brand:hover{color:var(--river-deep)}
.brand-cluster{display:flex;flex-wrap:wrap;align-items:baseline;gap:.85rem}
.parent-link{font-family:var(--f-display);font-weight:700;font-size:.84rem;color:var(--ink-soft);text-decoration:none;white-space:nowrap}
.parent-link:hover{color:var(--river-deep);text-decoration:underline}
.head-inner nav{display:flex;gap:1.3rem;margin-left:auto;font-family:var(--f-display);font-size:.92rem;font-weight:600}
.head-inner nav a{text-decoration:none;color:var(--ink-soft);padding:.25rem 0;border-bottom:2px solid transparent}
.head-inner nav a:hover{color:var(--ink)}
.head-inner nav a[aria-current="page"]{color:var(--ink);border-bottom-color:var(--river)}
.site-foot{border-top:1px solid var(--rule);margin-top:3rem;background:var(--surface-soft)}
.foot-inner{max-width:1160px;margin:0 auto;padding:1.4rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1.5rem;font-family:var(--f-display);font-size:.92rem;color:var(--ink-soft)}
.foot-tagline{margin:0}
.foot-tagline a{color:var(--ink-soft);text-decoration:underline}
.foot-tagline a:hover{color:var(--river-deep)}
.foot-main-site{font-weight:700;color:var(--river-deep);text-decoration:none;white-space:nowrap}
.foot-main-site:hover{color:var(--focus)}
.demo-banner{background:var(--st-adopted);color:#fff;font-family:var(--f-display);font-size:.9rem;padding:.55rem 1.25rem;text-align:center}
.demo-banner strong{font-weight:700}

/* question masthead — the signature element */
.masthead{padding:1.7rem 0 1rem;border-bottom:1px solid var(--rule)}
.masthead .eyebrow{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .5rem}
.masthead h1{font-size:clamp(1.5rem,3.4vw,2.4rem);font-weight:800;line-height:1.12;margin:0 0 .7rem;max-width:21ch}
.masthead .lede{margin:0 0 .3rem}
.tagline{
  display:inline-flex;align-items:center;margin:0 0 .7rem;
  font:800 .8rem var(--f-display);letter-spacing:.05em;text-transform:uppercase;
  color:var(--river-deep)
}
.tagline-arrow{color:var(--focus);margin:0 .05em}
.legend{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;padding:0;margin:0;list-style:none;font-family:var(--f-display);font-size:.88rem}
.legend li{display:flex;align-items:center;gap:.45rem;color:var(--ink-soft)}
.legend .swatch{width:1.35rem;height:.55rem;border:1px solid var(--ink);flex:none}

/* view switcher + filters */
.controls{display:flex;flex-wrap:wrap;gap:.7rem;align-items:end;padding:1.1rem 0}
.field{display:flex;flex-direction:column;gap:.25rem;font-family:var(--f-display);font-size:.8rem;color:var(--ink-soft)}
select,input[type=search]{font-family:var(--f-display);font-size:.95rem;padding:.45rem .6rem;border:1.5px solid var(--ink-soft);background:#fff;color:var(--ink);border-radius:var(--radius-sm);min-width:11rem}
select:focus-visible,input[type=search]:focus-visible{border-color:var(--focus)}
.btnlink{font-family:var(--f-display);font-size:.9rem;background:none;border:none;color:var(--river);text-decoration:underline;cursor:pointer;padding:.4rem 0}

/* map */
/* Both tracks are minmax(0, ...): a hard px legend column (no minmax floor)
   can't shrink below its own size and forces horizontal overflow before
   the stacking breakpoint, so the legend must stay just as elastic as the
   map column even though its practical width rarely approaches its cap.
   justify-content:start (not center) keeps the pair anchored to the left
   edge of .map-wrap instead of centering the ~940px pair inside a much
   wider container, which was splitting the leftover space into equal,
   large left AND right margins - left-aligning collects that slack on
   the right only, closing the empty gutter this was meant to fix. */
.map-grid{display:grid;grid-template-columns:minmax(0,700px) minmax(0,235px);justify-content:start;gap:2rem;align-items:start;padding:.75rem 0 0}
@media(max-width:880px){.map-grid{grid-template-columns:1fr}}
.plat{width:100%;height:auto;display:block}
.plat .county{fill:var(--st-none);stroke:var(--ink);stroke-width:.7;cursor:default}
.plat .county[data-cls]{cursor:pointer}
.plat .county:hover,.plat .county:focus{stroke-width:2}
.plat .state-outline{fill:none;stroke:var(--ink);stroke-width:1.6}
.plat .place{stroke:var(--ink);stroke-width:1.2;cursor:pointer}
.statewide-band{border:1.5px solid var(--ink);background:#fff;padding:.8rem 1rem;margin:0 0 1rem;font-family:var(--f-display)}
.statewide-band .tag{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.statewide-band button{display:flex;align-items:center;gap:.6rem;background:none;border:none;font:inherit;font-weight:700;font-size:1.02rem;color:var(--ink);cursor:pointer;padding:.2rem 0;text-align:left}
.dot{width:.85rem;height:.85rem;border:1.5px solid var(--ink);border-radius:50%;flex:none}
.side-panel{border:1.5px solid var(--ink);background:#fff;padding:1rem 1.1rem;position:sticky;top:1rem}
.side-panel h2{margin:.1rem 0 .3rem;font-size:1.05rem}
.side-panel .status{font-family:var(--f-display);font-weight:600;font-size:.95rem}
.empty-state{border:1.5px dashed var(--ink-soft);padding:2.2rem 1.6rem;margin:1.6rem 0;background:#fff}
.empty-state h2{margin-top:0}

/* status chips (never color-only: text label always present) */
.chip{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--f-display);font-size:.86rem;font-weight:600;padding:.18rem .55rem;border:1.5px solid var(--ink);background:#fff}
.chip .swatch{width:.9rem;height:.9rem;border:1px solid var(--ink)}

/* list view */
.data-table{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff}
.data-table caption{text-align:left;font-family:var(--f-display);font-weight:700;padding:.6rem 0}
.data-table th{font-family:var(--f-display);font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;text-align:left;border-bottom:2px solid var(--ink);padding:.5rem .6rem}
.data-table td{border-bottom:1px solid var(--rule);padding:.55rem .6rem;vertical-align:top}
.data-table tr:hover td{background:var(--paper-deep)}

/* profile */
.profile-head{padding:2rem 0 1rem;border-bottom:2px solid var(--ink)}
.profile-head h1{margin:.2rem 0 .4rem;font-size:clamp(1.4rem,3vw,2.1rem)}
.disclosures{border:2px solid var(--st-adopted);background:#FCF6EA;padding:1rem 1.2rem;margin:1.4rem 0}
.disclosures h2{margin:0 0 .5rem;font-size:1rem;display:flex;gap:.5rem;align-items:center}
.disclosures ul{margin:.2rem 0 0;padding-left:1.2rem}
.disclosures li{margin:.35rem 0}
.section{padding:1.6rem 0;border-bottom:1px solid var(--rule)}
.section h2{font-size:1.15rem;margin:0 0 .8rem}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:.3rem 1.2rem;font-size:.95rem}
.kv dt{font-family:var(--f-display);font-weight:600;color:var(--ink-soft)}
.kv dd{margin:0}
.record-card{border:1.5px solid var(--ink);background:#fff;padding:1rem 1.1rem;margin:0 0 1rem}
.record-card h3{margin:0 0 .3rem;font-size:1.02rem}
.source-table{width:100%;border-collapse:collapse;font-size:.85rem;margin:.5rem 0 0}
.source-table th{font-family:var(--f-display);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;text-align:left;border-bottom:1.5px solid var(--ink);padding:.3rem .45rem}
.source-table td{border-bottom:1px solid var(--rule);padding:.35rem .45rem;vertical-align:top}
.badge{display:inline-block;font-family:var(--f-mono);font-size:.68rem;border:1px solid var(--ink-soft);padding:0 .35rem;color:var(--ink-soft)}
.badge.yes{border-color:var(--st-active);color:var(--st-active)}

.fail-closed{border:2px solid var(--st-declined);background:#FBEFEC;padding:1.2rem 1.4rem;margin:1.6rem 0}
.fail-closed h2{margin-top:0}


/* v1.0.1 controls and responsive hardening */
.filter-panel{border:1px solid var(--rule);background:#fff;margin:.2rem 0 1.2rem;padding:.65rem .8rem}
.filter-panel summary{font-family:var(--f-display);font-weight:700;cursor:pointer}
.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.75rem;margin-top:.8rem;align-items:end}
.filter-grid select,.filter-grid input[type=date]{width:100%;min-width:0}
.secondary-button{font:600 .9rem var(--f-display);border:1.5px solid var(--ink);background:var(--paper);padding:.5rem .75rem;cursor:pointer;align-self:end}
.date-wrap{display:flex;width:100%;min-width:0;border:1.5px solid var(--ink-soft);background:#fff;border-radius:3px;padding:.43rem .55rem}
.date-wrap input{display:block;width:100%;min-width:0;border:0;background:transparent;padding:0;font:inherit;color:var(--ink)}
.table-scroll{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.table-scroll:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.source-table,.data-table{min-width:760px}
.key-facts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:.5rem .9rem;list-style:none;padding:0;margin:.6rem 0 0
}
.key-facts li{background:var(--surface-soft);border-radius:var(--radius-sm);padding:.6rem .8rem;font-size:.92rem;margin:0}
.record-limit{border-left:4px solid var(--st-adopted);background:#FCF6EA;padding:.65rem .8rem;margin:.8rem 0}
.record-limit ul{margin:.3rem 0 0;padding-left:1.2rem}
.target-line{font-size:.9rem;color:var(--ink-soft)}
.advocacy-card{border:2px solid var(--st-declined);background:#fff;padding:1rem 1.2rem;margin:1.2rem 0}
.advocacy-label{font:700 .75rem var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--st-declined)}

@media(max-width:640px){
  body{font-size:16px}
  .wrap{padding:0 .85rem}
  .head-inner{padding:.9rem .85rem}
  .head-inner nav{margin-left:0;gap:.4rem .85rem;flex-wrap:wrap;width:100%}
  .head-inner nav a{padding:.35rem 0}
  .masthead{padding-top:1.35rem}
  .controls{align-items:stretch}
  .controls .field,.controls select,.controls input[type=search]{width:100%;min-width:0}
  .btnlink{display:block;width:100%}
  .map-grid{gap:1rem}
  .side-panel{position:static}
  .kv{grid-template-columns:1fr;gap:.05rem}
  .kv dt{margin-top:.55rem}
  .key-facts{grid-template-columns:1fr}
  .profile-head{padding-top:1.25rem}
  .legend{display:grid;grid-template-columns:1fr}
}

@media(max-width:360px){
  .brand{font-size:1.05rem}
  .parent-link{font-size:.72rem}
  .head-inner nav{font-size:.86rem}
  .demo-banner{font-size:.8rem;padding:.5rem .65rem}
  .record-card,.disclosures,.empty-state{padding:.8rem}
}

/* Structured status colors and uncertainty treatments */
.status-active,.status-wso{background-color:var(--st-active);fill:var(--st-active)}
.status-operational,.status-jem{background-color:var(--st-operational);fill:var(--st-operational)}
.status-adopted,.status-pending{background-color:var(--st-adopted);fill:var(--st-adopted)}
.status-declined,.status-admin{background-color:var(--st-declined);fill:var(--st-declined)}
.status-ended{background-color:var(--st-ended);fill:var(--st-ended)}
.status-unresolved{background-color:var(--st-unresolved);fill:var(--st-unresolved)}
.status-none{background-color:var(--st-none);fill:var(--st-none)}
.status-tfm,.status-caseby{background-color:var(--st-tfm);fill:var(--st-tfm)}
.status-multi{background-color:var(--st-multi);fill:var(--st-multi)}
.status-judicial,.status-declines{background-color:var(--st-judicial);fill:var(--st-judicial)}
.status-conditional{background-color:var(--st-conditional);fill:var(--st-conditional)}
.swatch.hatched{
  background-image:repeating-linear-gradient(135deg,rgba(30,42,50,.62) 0,rgba(30,42,50,.62) 1.5px,transparent 1.5px,transparent 5px);
}
.svg-fill.status-active,.svg-fill.status-wso{fill:var(--st-active)}
.svg-fill.status-operational,.svg-fill.status-jem{fill:var(--st-operational)}
.svg-fill.status-adopted,.svg-fill.status-pending{fill:var(--st-adopted)}
.svg-fill.status-declined,.svg-fill.status-admin{fill:var(--st-declined)}
.svg-fill.status-ended{fill:var(--st-ended)}
.svg-fill.status-unresolved{fill:var(--st-unresolved)}
.svg-fill.status-none{fill:var(--st-none)}
.svg-fill.status-tfm,.svg-fill.status-caseby{fill:var(--st-tfm)}
.svg-fill.status-multi{fill:var(--st-multi)}
.svg-fill.status-judicial,.svg-fill.status-declines{fill:var(--st-judicial)}
.svg-fill.status-conditional{fill:var(--st-conditional)}

/* RC7 public-position classes and clearly separated IIW advocacy */
:root{
  --alert:#B42318; --alert-dark:#7A170F; --alert-bg:#FFF1EF;
  --st-support:#2F654F; --st-support-limited:#55715F; --st-local-control:#6C5A27;
  --st-opposes:#963C2E; --st-mandate:#7A5269; --st-mixed:#7C6C42;
}
.status-support{background-color:var(--st-support);fill:var(--st-support)}
.status-support-limited{background-color:var(--st-support-limited);fill:var(--st-support-limited)}
.status-local-control{background-color:var(--st-local-control);fill:var(--st-local-control)}
.status-opposes{background-color:var(--st-opposes);fill:var(--st-opposes)}
.status-mandate{background-color:var(--st-mandate);fill:var(--st-mandate)}
.status-mixed{background-color:var(--st-mixed);fill:var(--st-mixed)}
.svg-fill.status-support{fill:var(--st-support)}
.svg-fill.status-support-limited{fill:var(--st-support-limited)}
.svg-fill.status-local-control{fill:var(--st-local-control)}
.svg-fill.status-opposes{fill:var(--st-opposes)}
.svg-fill.status-mandate{fill:var(--st-mandate)}
.svg-fill.status-mixed{fill:var(--st-mixed)}
.action-alert-marker{cursor:pointer}
.action-alert-marker circle{fill:var(--alert);stroke:#fff;stroke-width:2.5;filter:drop-shadow(0 1px 1px rgba(0,0,0,.35))}
.action-alert-marker text{fill:#fff;font:800 14px var(--f-display);pointer-events:none}
.action-alert-marker:focus circle,.action-alert-marker:hover circle{stroke:var(--ink);stroke-width:3}
.action-alert-inline{display:inline-flex;align-items:center;gap:.25rem;background:var(--alert);color:#fff;border-radius:2px;padding:.1rem .38rem;font:800 .7rem var(--f-display);letter-spacing:.035em;text-transform:uppercase;white-space:nowrap}
.action-alert-summary{border-left:4px solid var(--alert);padding:.55rem .7rem;background:var(--alert-bg);font-family:var(--f-display);font-weight:650}
.action-alert-section{border-top:4px solid var(--alert);background:linear-gradient(to bottom,var(--alert-bg),transparent 11rem);padding-inline:1rem}
.action-alert-intro{font-family:var(--f-display);font-weight:650}
.advocacy-stack{display:grid;gap:1rem}
.action-alert-card{border:2px solid var(--alert);background:#fff;padding:1.1rem 1.2rem;margin:.75rem 0}
.action-alert-card h3{font-size:1.12rem;margin:.2rem 0 .5rem}
.action-alert-label{color:var(--alert-dark);font:800 .74rem var(--f-display);letter-spacing:.09em;text-transform:uppercase;margin:0}
.recommended-message{border-left:4px solid var(--alert);background:var(--alert-bg);padding:.7rem .85rem;margin:.8rem 0}
.recommended-message p{margin:.25rem 0 0}
.advocacy-disclaimer{font-size:.82rem;color:var(--ink-soft);border-top:1px solid var(--rule);padding-top:.55rem}
.statement-card{border-left:4px solid var(--river);background:#fff;padding:.8rem 1rem;margin:.8rem 0}
.statement-meta{font:700 .76rem var(--f-display);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .35rem}
.statement-card blockquote{margin:.6rem 0;padding-left:.8rem;border-left:2px solid var(--rule)}
.statement-sources{margin:.45rem 0 0;padding-left:1.2rem;font-size:.88rem}
.action-alert-marker.support circle{fill:var(--st-support)}
.action-alert-marker.support text{font-size:12px}
.action-alert-inline.support{background:var(--st-support)}
.action-alert-inline.needed{background:var(--alert)}
.support-action-summary{border-left:4px solid var(--st-support);padding:.55rem .7rem;background:#EEF7F1;font-family:var(--f-display);font-weight:650}
.action-alert-card.support{border-color:var(--st-support);background:#FBFFFC}
.action-alert-card.support .action-alert-label{color:var(--st-support)}
.action-alert-card.support .recommended-message{border-left-color:var(--st-support);background:#EEF7F1}

/* 1.1 universal jurisdiction experience */
:root{--directory-fill:#E8E2D6;--advocacy:#8B2E20;--advocacy-bg:#FFF4F0}
.head-inner{max-width:1160px;margin:0 auto;padding:1.15rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.5rem}
.lede{max-width:70ch;color:var(--ink-soft)}
.eyebrow{font:700 .72rem var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.jurisdiction-search{padding:.85rem 0;border-bottom:1px solid var(--rule);font-family:var(--f-display)}
.jurisdiction-search>label{display:block;font-weight:800;margin-bottom:.4rem}
.search-row{display:flex;gap:.6rem;max-width:760px}
.search-row input{flex:1;min-width:0;padding:.8rem .9rem;font-size:1rem;border-radius:var(--radius-sm)}
.search-row input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus)}
.primary-button,.primary-action{display:inline-flex;justify-content:center;align-items:center;gap:.4rem;border:2px solid var(--ink);border-radius:var(--radius-sm);background:var(--ink);color:#fff;padding:.8rem 1.3rem;font:800 .84rem var(--f-display);letter-spacing:.045em;text-decoration:none;cursor:pointer;transition:background-color .12s,border-color .12s}
.primary-button:hover,.primary-action:hover{background:var(--river-deep);border-color:var(--river-deep);color:#fff}
.primary-button:focus-visible,.primary-action:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.homepage-search-results:empty{display:none}
.homepage-search-results .search-results{margin:.8rem 0 1.1rem}
.search-result-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1rem}
.search-result-actions .primary-action,.secondary-action{
  min-height:2.75rem;padding:.6rem .9rem;border-radius:var(--radius-sm);
  font:800 .8rem var(--f-display);cursor:pointer;text-decoration:none
}
.secondary-action{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--river);background:#fff;color:var(--river-deep)}
.secondary-action:hover{background:#EEF6F7;color:var(--focus);border-color:var(--focus)}
.secondary-action:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.jurisdiction-search.is-compact{padding:.45rem 0}
.jurisdiction-search.is-compact>label{font-size:.85rem;font-weight:700;margin-bottom:.3rem}
.jurisdiction-search.is-compact .search-row{max-width:520px}
.jurisdiction-search.is-compact .search-row input{padding:.55rem .7rem;font-size:.92rem}
.jurisdiction-search.is-compact .primary-button{padding:.55rem 1rem;font-size:.76rem}
.map-question{padding:1rem 0 0}
.map-question label{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;font:700 .82rem var(--f-display)}
.map-question h2{font-size:1.15rem}
.sr-only{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;border:0!important
}
.map-interaction{
  position:relative;overflow:hidden;border:1px solid var(--surface-edge);border-radius:var(--radius);
  background:var(--paper);touch-action:pan-y;isolation:isolate;
  width:fit-content;max-width:100%;margin-inline:auto;padding:4rem .85rem .85rem
}
.map-interaction:focus-visible:not(.is-pointer-focus){outline:4px solid var(--focus);outline-offset:3px}
.map-interaction.is-pointer-focus{outline:none}
.map-controls{
  position:absolute;z-index:4;top:.85rem;left:.85rem;display:flex;gap:.3rem;align-items:center;
  padding:.25rem;background:rgba(255,255,255,.96);border:1px solid var(--surface-edge);
  border-radius:var(--radius-sm);box-shadow:var(--shadow-card)
}
.map-control{
  min-width:2.3rem;min-height:2.3rem;border:1px solid var(--surface-edge);border-radius:4px;
  background:#fff;color:var(--ink);font:800 1.1rem/1 var(--f-display);cursor:pointer
}
.map-reset{
  min-height:2.3rem;padding:0 .75rem;margin-left:.15rem;border:1px solid var(--river);
  border-radius:4px;background:var(--river);color:#fff;font:700 .74rem var(--f-display);
  letter-spacing:.02em;cursor:pointer
}
.map-control:hover{background:var(--river);color:#fff;border-color:var(--river)}
.map-reset:hover{background:var(--river-deep);border-color:var(--river-deep)}
.map-control:focus-visible,.map-reset:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.map-control:disabled{opacity:.4;cursor:not-allowed;background:#fff;color:var(--ink)}
.map-reset:disabled{opacity:1;cursor:not-allowed;background:var(--surface-soft);color:var(--ink-soft);border-color:var(--surface-edge)}
.map-hint{
  position:absolute;z-index:3;left:50%;bottom:.85rem;transform:translateX(-50%);
  width:max-content;max-width:calc(100% - 1.2rem);margin:0;padding:.4rem .65rem;
  border:1px solid var(--ink);background:rgba(255,255,255,.94);
  font:700 .72rem var(--f-display);pointer-events:none
}
.map-hint[hidden]{display:none}
.map-gesture-cue{
  position:absolute;z-index:6;left:50%;bottom:3rem;transform:translateX(-50%);
  width:max-content;max-width:calc(100% - 1.2rem);margin:0;padding:.45rem .7rem;
  border:1px solid var(--river-deep);border-radius:var(--radius-sm);
  background:rgba(255,255,255,.97);box-shadow:var(--shadow-card);
  font:800 .74rem var(--f-display);pointer-events:none
}
.map-gesture-cue[hidden]{display:none}
.map-located-status{
  position:absolute;z-index:6;top:.85rem;right:.85rem;display:flex;align-items:center;
  flex-wrap:wrap;justify-content:flex-end;gap:.35rem .7rem;max-width:calc(100% - 18rem);
  padding:.38rem .55rem;border:1px solid var(--surface-edge);border-radius:var(--radius-sm);
  background:rgba(255,255,255,.97);box-shadow:var(--shadow-card);
  font:.74rem var(--f-display)
}
.map-located-status[hidden]{display:none}
.map-located-status strong{font-weight:900}
.map-located-record{font-weight:800}
.map-located-reset{border:0;background:none;padding:.3rem;color:var(--river-deep);font:800 .74rem var(--f-display);text-decoration:underline;cursor:pointer}
.map-located-reset:focus-visible,.map-located-record:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.map-tooltip{
  position:absolute;z-index:5;display:grid;gap:.18rem;width:max-content;
  max-width:min(18rem,calc(100% - 1rem));padding:.55rem .65rem;
  border:1.5px solid var(--ink);background:#fff;color:var(--ink);
  box-shadow:0 4px 14px rgba(0,0,0,.2);pointer-events:none;
  font:.76rem/1.3 var(--f-display)
}
.map-tooltip[hidden]{display:none}
.map-tooltip-title{font-size:.84rem}
.map-tooltip-status,.map-tooltip-model,.map-tooltip-flag,.map-tooltip-prompt{display:block}
.map-tooltip-status,.map-tooltip-flag{display:flex;align-items:center;gap:.3rem}
.map-tooltip-model{color:var(--ink-soft)}
.map-tooltip-flag{font-weight:800;color:var(--alert-dark)}
.map-tooltip-prompt{margin-top:.1rem;color:var(--ink-soft)}
.map-instructions{
  margin:0;padding:.55rem .75rem;border-top:1px solid var(--rule);
  background:#fff;font:700 .76rem var(--f-display);color:var(--ink-soft)
}
/* Idaho's outline is tall and narrow (640 x 1032.78), so this element's
   rendered WIDTH is derived from its height via aspect-ratio, capped by
   max-width:100% so it can never overflow .map-interaction. The height
   clamp's preferred term must be large enough (>100vh is intentional
   here) that a typical desktop viewport lands the derived width in the
   680-720px target range "where space permits" - a smaller vh term
   caps height (and therefore width) well under its own max on an
   ordinary ~900px-tall viewport regardless of how wide .map-grid's
   column is, which is what kept the map narrower than the column in
   earlier passes even after the column itself was widened. Express the
   same constraint as width so a max-width cap cannot leave the SVG
   viewport taller than its rendered contents.
*/
.map{
  display:block;width:clamp(297.5px,76.86vh,700px);max-width:100%;height:auto;
  aspect-ratio:640/1032.78;margin-bottom:.85rem
}
.map.is-panning{cursor:grabbing}
.map-feature-link,.map-feature-link:focus,.map-feature-link:focus-visible{
  outline:none!important
}
.place-link.is-search-hidden{display:none}
.map .state-outline{fill:none;stroke:var(--ink);stroke-width:1.6}
.map .state-outline,.map .county{vector-effect:non-scaling-stroke}
.map .county{stroke:var(--ink);stroke-width:.65;cursor:pointer}
.map .county:hover,.county-link:focus .county,.county-link:focus-visible .county{
  stroke:var(--focus);stroke-width:2
}
.map .county.is-selected{stroke:var(--focus);stroke-width:3;filter:drop-shadow(0 0 2px #fff)}
.map .county.directory-only{stroke-dasharray:2 1}
.county-label-layer{pointer-events:none}
.county-label{font:800 16px var(--f-display);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:4.2px;stroke-linejoin:round}
.county-label.is-selected{fill:var(--focus);font-weight:900}
.county-label.is-suppressed{display:none}
.place-marker{cursor:pointer}
.place-marker circle{fill:var(--river);stroke:#fff;stroke-width:2}
.place-marker text{font:700 10px var(--f-display);fill:var(--ink);paint-order:stroke;stroke:var(--paper);stroke-width:2.5px}
.place-marker:hover circle,.place-link:focus circle,.place-link:focus-visible circle{
  stroke:var(--focus);stroke-width:3.5
}
.place-marker circle{vector-effect:non-scaling-stroke}
.place-marker.is-selected circle{fill:var(--focus);stroke:var(--ink);stroke-width:3}
.place-marker.is-selected .place-label{fill:var(--focus);font-weight:900}
.place-marker.label-suppressed .place-label{display:none}
.jurisdiction-layout{margin:.35rem 0 1.25rem}
.jurisdiction-page .masthead{padding:1.3rem 0 .15rem}
.jurisdiction-card>.chip{margin-bottom:.9rem}
.research-intro{
  margin-top:1.1rem;padding:.9rem 1rem;background:var(--surface-soft);
  border-radius:var(--radius-sm);border-left:3px solid var(--river)
}
.research-intro h3{margin:0 0 .3rem;font-size:1.02rem}
.research-intro-copy{margin:0 0 .7rem;font-size:.88rem;color:var(--ink-soft)}
.research-jump-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}
.research-jump-list a{
  display:inline-block;font:700 .78rem var(--f-display);color:var(--river-deep);
  background:#fff;border:1px solid var(--surface-edge);border-radius:999px;
  padding:.28rem .7rem;text-decoration:none
}
.research-jump-list a:hover{background:#EEF6F7;border-color:var(--river)}
.research-section,.sources-section{scroll-margin-top:1rem}
.back-link-top{margin:.6rem 0 0;font-size:.92rem}
.jurisdiction-results{min-width:0}
.map-panel{min-width:0}
.map-aside{
  min-width:0;border:1px solid var(--surface-edge);border-radius:var(--radius);
  background:var(--surface-soft);padding:1.15rem 1.25rem;position:sticky;top:1rem
}
.map-aside h2{margin:0 0 .4rem;font-size:1.05rem}
.map-aside>p{margin:0 0 .9rem;font-size:.88rem;color:var(--ink-soft)}
.legend-list{padding:0}
.status-directory{background:var(--directory-fill)}
.map-note,.small,.verification,.source-meta{font-size:.83rem;color:var(--ink-soft)}
.map-note{margin-top:.45rem;font-size:.88rem;opacity:.9}
.featured-jurisdictions{margin:2.4rem 0 0;padding:1.55rem 0 0;border-top:1px solid var(--rule)}
.featured-jurisdictions>h2{margin:0 0 1.1rem;font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;color:var(--river-deep)}
.featured-group+.featured-group{margin-top:1.45rem}
.featured-group>h3{display:flex;align-items:center;gap:.45rem;margin:0 0 .7rem;font-size:1.02rem}
.featured-group-participation>h3{color:var(--st-participating)}
.featured-group-opposition>h3{color:var(--alert-dark)}
.featured-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.featured-card{min-width:0;border:1px solid var(--surface-edge);border-radius:var(--radius);background:var(--surface);padding:1rem 1.1rem;box-shadow:var(--shadow-card)}
.featured-card-participation{border-left:4px solid var(--st-participating);background:#F6FBF7}
.featured-card-opposition{border-left:4px solid var(--alert);background:#FFF9F7}
.featured-card h4{margin:.35rem 0 .45rem;font-size:1.2rem;line-height:1.15}
.featured-type{display:inline-block;margin:0;font:800 .68rem var(--f-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:#fff;border:1px solid var(--surface-edge);border-radius:999px;padding:.12rem .55rem}
.featured-status{display:flex;align-items:center;gap:.4rem;margin:0;font:800 .82rem var(--f-display);color:var(--ink)}
.featured-summary{margin:.6rem 0 1rem;font-size:.9rem;line-height:1.45}
.featured-link{display:inline-flex;align-items:center;min-height:2.3rem;border:1px solid var(--ink-soft);border-radius:var(--radius-sm);padding:.35rem .75rem;font:800 .76rem var(--f-display);letter-spacing:.03em;text-transform:uppercase;color:var(--ink);text-decoration:none;background:#fff}
.featured-link:hover{border-color:var(--river-deep);color:var(--river-deep);background:var(--surface-soft)}
.context-note{border-left:5px solid var(--river);background:#EDF6F7;padding:.75rem 1rem;margin:1rem 0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.context-note-headline{margin:0 0 .3rem;font:800 .98rem var(--f-display);color:var(--ink)}
.context-note-support{margin:0;font-size:.88rem;color:var(--ink-soft)}
.search-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin:1.2rem 0}
.result-card{border:1px solid var(--surface-edge);border-radius:var(--radius);background:#fff;padding:1.1rem 1.2rem;box-shadow:var(--shadow-card)}
.result-card h2{margin:.2rem 0}
.jurisdiction-page>.masthead{border-bottom:0}
.paired-cards{display:grid;gap:1.25rem;margin:1.2rem 0}
.jurisdiction-card{
  border:1px solid var(--surface-edge);border-radius:var(--radius);
  background:#fff;padding:1.3rem 1.4rem;box-shadow:var(--shadow-card)
}
.card-kicker{margin:0 0 .55rem;font:700 .72rem var(--f-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft)}
.summary{font-size:1.05rem}
.jurisdiction-card-compact{padding:1.1rem 1.2rem}
.jurisdiction-card-compact .operational-status{padding:.85rem 1rem}
.jurisdiction-card-compact .operational-label{font-size:clamp(1.05rem,1.8vw,1.3rem)}
.compact-context{margin:.7rem 0 0;font-size:.88rem;color:var(--ink-soft)}
.compact-source-count{margin:.9rem 0 0;font-size:.82rem;color:var(--ink-soft)}
.compact-full-link{display:inline-block;margin-top:.4rem;font:700 .85rem var(--f-display);text-decoration:none}
.compact-full-link:hover{text-decoration:underline}
.jurisdiction-card-compact .primary-action{margin-top:.9rem;padding:.6rem 1rem;font-size:.76rem}
.service-note{border-left:4px solid var(--river);padding:.55rem .8rem;background:#F1F7F7;margin:1rem 0;border-radius:0 var(--radius-sm) var(--radius-sm) 0}
.service-note p{margin:.25rem 0 0}
.research-section{padding:1rem 0;border-top:1px solid var(--rule)}
.research-section h3{margin:.2rem 0 .65rem}
.advocacy-card{
  border:0;border-left:5px solid var(--advocacy);border-radius:0 var(--radius) var(--radius) 0;
  background:var(--advocacy-bg);padding:1.15rem 1.3rem;margin:1.3rem 0
}
.advocacy-card.tone-positive{border-left-color:var(--st-support);background:#F2FAF5}
.advocacy-card.tone-positive .action-attribution{color:var(--st-support)}
.advocacy-card.tone-encourage{border-left-color:var(--river);background:#EEF6F7}
.advocacy-card.tone-encourage .action-attribution{color:var(--river-deep)}
.advocacy-card.tone-neutral{border-left-color:var(--st-adopted);background:#FCF8EE}
.advocacy-card.tone-neutral .action-attribution{color:#8A6516}
.action-attribution{color:var(--advocacy);font:900 .73rem var(--f-display);letter-spacing:.12em;margin:0;text-transform:uppercase}
.advocacy-headline{font:800 1.12rem/1.3 var(--f-display);margin:.5rem 0 0;color:var(--ink)}
.advocacy-headline .status-icon{margin-right:.4rem}
.advocacy-support-copy{margin:.4rem 0 0;font-size:.94rem;color:var(--ink-soft)}
.message-template{background:rgba(255,255,255,.7);border-left:3px solid var(--advocacy);border-radius:0 var(--radius-sm) var(--radius-sm) 0;padding:.85rem .9rem;margin:1rem 0}
.advocacy-card.tone-positive .message-template{border-left-color:var(--st-support)}
.advocacy-card.tone-encourage .message-template{border-left-color:var(--river)}
.advocacy-card.tone-neutral .message-template{border-left-color:var(--st-adopted)}
.message-template-label{margin:0 0 .6rem;font:800 .68rem var(--f-display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.message-fields{display:grid;grid-template-columns:max-content 1fr;gap:.3rem 1rem;margin:0}
.message-fields dt{font:700 .76rem var(--f-display);color:var(--ink-soft);letter-spacing:.03em;text-transform:uppercase;padding-top:.1rem}
.message-fields dd{margin:0}
.message-subject{font-weight:700}
.message-body{line-height:1.5}
.copy-message-row{display:flex;align-items:center;gap:.7rem;margin-top:.85rem;flex-wrap:wrap}
.copy-message-button{
  font:700 .78rem var(--f-display);border:1px solid var(--surface-edge);border-radius:999px;
  background:#fff;color:var(--ink);padding:.4rem .85rem;cursor:pointer
}
.copy-message-button:hover{background:var(--surface-soft);border-color:var(--ink-soft)}
.copy-message-button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.copy-status{font-size:.8rem;color:var(--ink-soft)}
.source-summary-line{
  margin:1rem 0 0;font-size:.9rem;color:var(--ink-soft);
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem
}
.source-summary-line strong{color:var(--ink)}
.source-summary-title{color:var(--ink-soft)}
.source-summary-link{
  font:700 .82rem var(--f-display);color:var(--river-deep);background:none;
  border:0;padding:0;cursor:pointer;text-decoration:underline
}
.source-summary-link:hover{color:var(--focus)}
.source-summary-link:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.contact-options{border-top:1px solid var(--rule);margin-top:1rem;padding-top:.7rem}
.contact-options summary{cursor:pointer;font:800 .9rem var(--f-display)}
.contact-list{list-style:none;padding:0}
.contact-list li{display:grid;gap:.2rem;padding:.55rem 0;border-bottom:1px dotted var(--rule)}
.contact-list a{overflow-wrap:anywhere}
.sources-section{padding:1.1rem 0 0;border-top:1px solid var(--rule);margin-top:.4rem}
.source-list{list-style:none;margin:.7rem 0 0;padding:0;display:grid;gap:1.3rem}
.source-item{padding-bottom:1.3rem;border-bottom:1px solid var(--rule)}
.source-item:last-child{border-bottom:0;padding-bottom:0}
.source-title{margin:0 0 .18rem;font:700 .98rem var(--f-display)}
.source-title a{text-decoration:none}
.source-title a:hover{text-decoration:underline}
.source-publisher{margin:0 0 .35rem;font-size:.88rem;color:var(--ink-soft)}
.source-role{margin:0;font-size:.82rem;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.source-type{
  font:700 .72rem var(--f-display);color:var(--river-deep);background:#EEF6F7;
  border-radius:999px;padding:.08rem .55rem
}
.source-support{
  font-size:.76rem;color:var(--ink-soft);background:var(--surface-soft);
  border-radius:999px;padding:.08rem .55rem
}
.back-link{margin:1.2rem 0 2rem}
.data-table{margin-bottom:2rem}
.directory-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 .7rem}
.directory-filter{
  border:1.5px solid var(--river);border-radius:var(--radius-sm);background:#fff;color:var(--river-deep);
  padding:.45rem .75rem;font:800 .82rem var(--f-display);letter-spacing:.035em;cursor:pointer
}
.directory-filter:hover{background:#EEF6F7;border-color:var(--focus);color:var(--focus)}
.directory-filter:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.directory-filter[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:#fff}
.directory-filter[aria-pressed="true"]::before{content:"✓ ";font-weight:900}
.directory-type-label{
  display:inline-block;border:1px solid var(--ink-soft);border-radius:999px;padding:.08rem .5rem;
  color:var(--ink-soft);font:700 .72rem var(--f-display)
}
.directory-type-label.county{background:#EEF6F7;color:var(--river-deep);border-color:var(--river)}
.directory-empty{margin:.8rem 0 1.2rem;color:var(--ink-soft)}

@media(max-width:880px){
  .map-grid{grid-template-columns:1fr}
  .map-aside{position:static}
  .county-label{font-size:14px}
  .map-interaction{width:100%;margin-inline:0}
  .map{height:auto;aspect-ratio:auto;max-width:100%}
}
@media(max-width:640px){
  .head-inner{display:block;padding-inline:.85rem}
  .head-inner nav{margin:.65rem 0 0}
  .search-row{display:grid}
  .primary-button,.primary-action{width:100%;font-size:.78rem;padding:.75rem 1rem;letter-spacing:.03em}
  .search-result-actions{display:grid}
  .search-result-actions .secondary-action{width:100%}
  .county-label{font-size:12.5px}
  .county-label.is-selected{display:block}
  .map .county[data-directory-slug]{stroke-width:1.2}
  .map-interaction{padding-top:3.6rem}
  .map-interaction:has(.map-located-status:not([hidden])){padding-top:7.2rem}
  .map-located-status{top:3.55rem;left:.4rem;right:.4rem;max-width:none;justify-content:flex-start}
  .map-controls{top:.4rem;left:.4rem}
  .map-control,.map-reset{min-height:2.8rem}
  .map-hint{bottom:.35rem;font-size:.68rem}
  .jurisdiction-card{padding:.85rem}
  .featured-jurisdictions{margin-top:1.8rem}
  .featured-cards{grid-template-columns:1fr}
}
@media(min-width:900px){
  .paired-cards{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}
  .paired-cards .jurisdiction-card:first-child:last-child{grid-column:1/-1}
}

/* 1.1.0-rc.7 FIND -> STATUS -> ACT operational and accountability layers */
:root{
  --st-participating:#2E7D4F;
  --st-unresolved:#D5A51D;
  --st-not_verified:#AEB3B7;
  --st-formal_rejection:#B42318;
  --rust:#9C5B34; --rust-dark:#7A4526; --rust-bg:#FBF3EC;
}
.status-participating{background-color:var(--st-participating);fill:var(--st-participating)}
.status-not_verified{background-color:var(--st-not_verified);fill:var(--st-not_verified)}
.status-formal_rejection{background-color:var(--st-formal_rejection);fill:var(--st-formal_rejection)}
.map .county.accountability-outline{stroke:var(--alert);stroke-width:2.2}
.map .county.accountability-outline:hover,.map .county.accountability-outline:focus{stroke:var(--alert-dark);stroke-width:3}

/* Reusable status-icon component (see statusIcon() in app.js). Sized to
   sit inline with text by default; .status-icon-sm/-lg adjust for compact
   rows and standalone/legend placements. Tone classes set the icon's own
   color for use on neutral surfaces; icons with no tone class inherit
   currentColor from whatever colored surface they sit on (a status badge,
   a map marker) so they never fight that surface's own color. */
.status-icon{width:1.05em;height:1.05em;flex:none;vertical-align:-.15em}
.status-icon-sm{width:.82rem;height:.82rem}
.status-icon-lg{width:1.45rem;height:1.45rem}
.status-icon.tone-positive{color:var(--st-participating)}
.status-icon.tone-unresolved{color:#8A6516}
.status-icon.tone-neutral{color:var(--st-not_verified)}
.status-icon.tone-rejection{color:var(--st-formal_rejection)}
.status-icon.tone-opposition{color:var(--alert-dark)}
.status-icon.tone-concern{color:var(--rust-dark)}

/* Filled-circle status-icon badge (see statusIconBadge() in app.js) - a
   colored disc carrying a white/dark glyph, reusing the exact tone/text
   pairings already established on .status-badge, so a plain colored
   glyph floating on the page background ("looks like thin inline
   punctuation") becomes a self-contained badge instead. Sized per
   context via a modifier class rather than a single fixed size. */
.status-icon-badge{
  display:inline-grid;place-items:center;flex:none;border-radius:50%;
  box-shadow:0 1px 2px rgba(30,42,50,.2)
}
.status-icon-badge .status-icon{width:60%;height:60%}
.status-icon-badge-legend{width:1.55rem;height:1.55rem}
.status-icon-badge-card{width:1.9rem;height:1.9rem}
.status-icon-badge-participating{background:var(--st-participating);color:#fff}
.status-icon-badge-unresolved{background:var(--st-unresolved);color:#4A3B08}
.status-icon-badge-not_verified{background:var(--st-not_verified);color:var(--ink)}
.status-icon-badge-formal_rejection{background:var(--st-formal_rejection);color:#fff}

/* Map SVG vector icons (see mapVectorIcon() in app.js) - same shapes as
   .status-icon above, drawn as raw paths in the map's own coordinate
   space instead of a nested <svg>, since the county/marker layer already
   has its own zoom-compensation transform math. */
.map-vector-icon path,.map-vector-icon line,.map-vector-icon circle{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}
.map-vector-icon-check path{stroke-width:2.6}
.map-vector-icon-x path{stroke-width:2.6}
.map-vector-icon-caution path{fill:none;stroke-width:1.7}
.map-vector-icon-caution circle{fill:currentColor;stroke:none}
.map-vector-icon-flag path:first-child{stroke-width:2.2}
.map-vector-icon-flag path:last-child{
  fill:currentColor;stroke:#fff;stroke-width:1.3;stroke-linejoin:round;paint-order:stroke
}
.accountability-flag-icon,.place-marker .map-vector-icon-flag{
  color:var(--alert);filter:drop-shadow(0 1px 1.5px rgba(30,42,50,.45))
}
.place-marker circle{fill:var(--st-not_verified)}
.place-marker[data-status="participating"] circle{fill:var(--st-participating)}
.place-marker[data-status="unresolved"] circle{fill:var(--st-unresolved)}
.place-marker[data-status="formal_rejection"] circle{fill:var(--st-formal_rejection)}
.place-marker .map-vector-icon-check,.place-marker .map-vector-icon-x{color:#fff}
.place-marker[data-status="unresolved"] .map-vector-icon-caution{color:#4A3B08}
.county-flag-layer{pointer-events:none}
.legend-list{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.legend-list li{display:flex;align-items:center;gap:.55rem;font-family:var(--f-display);font-size:.88rem}
.result-flag,.table-flag{color:var(--alert-dark);font:800 .8rem var(--f-display);align-items:center;flex-wrap:wrap;gap:.3rem}
.result-flag{display:flex}
.table-flag{display:inline-flex}
.operational-status{
  border:1px solid var(--rule);border-left-width:6px;border-radius:0 var(--radius) var(--radius) 0;
  padding:1.05rem 1.2rem;margin:1rem 0;
  background:var(--surface)!important;color:var(--ink);box-shadow:var(--shadow-card)
}
.operational-status.status-participating{border-left-color:var(--st-participating);background:#F6FBF7!important}
.operational-status.status-unresolved{border-left-color:var(--st-unresolved);background:#FDFAF1!important}
.operational-status.status-not_verified{border-left-color:var(--st-not_verified);background:#FAFAF9!important}
.operational-status.status-formal_rejection{border-left-color:var(--st-formal_rejection);background:#FDF4F3!important}
.status-top-row{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem;margin-bottom:.15rem}
.status-badge{
  display:inline-flex;align-items:center;gap:.32rem;font:800 .68rem var(--f-display);
  letter-spacing:.05em;text-transform:uppercase;color:#fff;
  padding:.22rem .6rem;border-radius:999px;line-height:1.3
}
.status-badge.status-participating{background:var(--st-participating)}
.status-badge.status-unresolved{background:var(--st-unresolved);color:#4A3B08}
.status-badge.status-not_verified{background:var(--st-not_verified);color:var(--ink)}
.status-badge.status-formal_rejection{background:var(--st-formal_rejection)}
.operational-label{
  margin:.2rem 0 .45rem;font:900 clamp(1.25rem,2.2vw,1.7rem)/1.15 var(--f-display)
}
.operational-model{margin:0;font:700 .88rem var(--f-display);color:var(--ink-soft)}
.operational-model-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}
.operational-model-sep{
  display:inline-block;width:.3rem;height:.3rem;border-radius:50%;
  background:var(--rule);flex:none
}
.operational-model-suffix{font-weight:700;color:var(--ink-soft)}
.status-explanation{margin:.6rem 0 0;font-size:.92rem;color:var(--ink-soft)}
.model-term-wrap{position:relative;display:inline}
.model-term{
  display:inline-flex;align-items:center;gap:.3rem;
  font:700 .85rem var(--f-display);color:var(--river-deep);background:#EDF6F7;
  border:1px solid rgba(32,96,110,.28);border-radius:999px;
  padding:.14rem .6rem .14rem .55rem;line-height:1.35;margin:0;
  cursor:pointer
}
.model-term-icon{opacity:.7;font-size:.85em}
.model-term:hover,.model-term:focus-visible{color:var(--focus);background:#E3F0F2;border-color:var(--focus)}
.model-term:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.model-popover{
  position:fixed;z-index:30;background:#fff;color:var(--ink);
  border:1.5px solid var(--ink);border-radius:2px;padding:.55rem .7rem;
  box-shadow:0 4px 14px rgba(0,0,0,.22);font-size:.82rem;line-height:1.35;
  width:max-content;max-width:min(20rem,calc(100vw - 1rem))
}
.model-popover[hidden]{display:none}
.accountability-section{margin:1rem 0}
.accountability-card{
  border:0;border-left:5px solid var(--alert);border-radius:0 var(--radius) var(--radius) 0;
  background:#FFF7F5;padding:1rem 1.2rem;box-shadow:var(--shadow-card)
}
.accountability-card+.accountability-card{margin-top:.75rem}
.accountability-card h3{margin:.25rem 0 .5rem}
/* "Concern" reads as a softer, less formal signal than "opposition" or
   "resistance" (which stay on the full-strength alert red) - a distinct
   rust tone keeps that difference visible on the card itself, not just
   in the label text, without approaching the formal-rejection red used
   for operational status. */
.accountability-card.tone-concern{border-left-color:var(--rust);background:var(--rust-bg)}
.accountability-card.tone-concern .accountability-label{color:var(--rust-dark)}
.accountability-label{
  margin:0;display:flex;align-items:center;gap:.35rem;color:var(--alert-dark);font:900 .78rem var(--f-display);
  letter-spacing:.08em;text-transform:uppercase
}
.accountability-chips{list-style:none;margin:.6rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.accountability-chip{
  display:inline-block;font:700 .74rem var(--f-display);color:var(--alert-dark);
  background:#fff;border:1px solid rgba(180,35,24,.28);border-radius:999px;padding:.15rem .6rem
}
.flag-actions{
  display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;align-items:baseline;
  margin-top:.9rem
}
.flag-evidence-link{font:800 .86rem var(--f-display);color:var(--alert-dark)}
.flag-advocacy-link{font:700 .8rem var(--f-display);color:var(--ink-soft);text-decoration:none}
.flag-advocacy-link:hover{color:var(--river-deep);text-decoration:underline}
.detailed-record{
  border:0;border-top:1px solid var(--rule);margin-top:1.2rem;padding:.9rem 0 .1rem;background:none
}
.detailed-record>summary{
  cursor:pointer;font:700 .95rem var(--f-display);color:var(--ink);
  list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:.15rem .45rem;padding:.2rem 0
}
.detailed-record>summary::-webkit-details-marker{display:none}
.detailed-record>summary::before{
  content:"▸";display:inline-block;color:var(--river);font-size:.85em;
  transition:transform .15s
}
.detailed-record[open]>summary::before{transform:rotate(90deg)}
.detail-hint{flex-basis:100%;font-weight:400;font-size:.78rem;color:var(--ink-soft)}
.detailed-record[open]>summary{padding-bottom:.7rem;border-bottom:1px solid var(--rule);margin-bottom:.7rem}

/* agreements */
.agreement-shared-note{
  font-size:.9rem;color:var(--ink-soft);background:var(--surface-soft);
  border-left:3px solid var(--rule);padding:.6rem .8rem;margin:0 0 .9rem;
  border-radius:0 var(--radius-sm) var(--radius-sm) 0
}
.agreement-list{display:grid;gap:.7rem}
.agreement-disclosure{
  border:1px solid var(--surface-edge);border-radius:var(--radius-sm);
  background:#fff;padding:.75rem .9rem
}
.agreement-disclosure>summary{
  cursor:pointer;list-style:none;display:flex;flex-wrap:wrap;align-items:baseline;
  gap:.25rem .7rem
}
.agreement-disclosure>summary::-webkit-details-marker{display:none}
.agreement-disclosure>summary::before{
  content:"▸";color:var(--river);font-size:.8em;display:inline-block;
  transition:transform .15s;margin-right:.3rem
}
.agreement-disclosure[open]>summary::before{transform:rotate(90deg)}
.agreement-title{font:800 .95rem var(--f-display);color:var(--ink)}
.agreement-summary-line{font:600 .78rem var(--f-display);color:var(--ink-soft)}
.agreement-full-label{margin:.6rem 0 0;font-size:.8rem;color:var(--ink-soft);font-style:italic}
.agreement-grid{
  display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;
  margin:.75rem 0 0;font-size:.88rem;align-items:center
}
.agreement-grid dt{font-family:var(--f-display);font-weight:700;color:var(--ink-soft)}
.agreement-grid dd{margin:0}
.agreement-badge{
  display:inline-flex;align-items:center;font:700 .74rem var(--f-display);
  padding:.12rem .55rem;border-radius:999px;background:var(--surface-soft);color:var(--ink)
}
.agreement-badge.tone-positive{background:#EAF5EE;color:var(--st-support)}
.agreement-badge.tone-neutral{background:#F1EFE9;color:var(--ink-soft)}
.agreement-badge.tone-negative{background:var(--alert-bg);color:var(--alert-dark)}
.agreement-narrative{margin:.85rem 0 0;font-size:.92rem}
@media(max-width:640px){
  .agreement-grid{grid-template-columns:1fr;gap:.05rem}
  .agreement-grid dt{margin-top:.5rem}
  .message-fields{grid-template-columns:1fr;gap:.05rem}
  .message-fields dt{margin-top:.5rem}
}

/* legal instruments */
.instruments-list{margin-top:.9rem;padding-top:.75rem;border-top:1px solid var(--rule)}
.instruments-list h4{margin:0 0 .5rem;font-size:.78rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}
.instrument-row{padding:.5rem 0;border-bottom:1px dotted var(--rule)}
.instrument-row:last-child{border-bottom:0;padding-bottom:0}
.instrument-title{margin:0 0 .15rem;font-weight:700}
.instrument-meta{margin:0;font-size:.78rem;color:var(--ink-soft)}

/* research timeline */
.research-timeline{list-style:none;margin:.6rem 0 0;padding:0;border-left:2px solid var(--surface-edge)}
.research-timeline-item{position:relative;padding:.15rem 0 .9rem 1.1rem}
.research-timeline-item::before{
  content:"";position:absolute;left:-.36rem;top:.4rem;width:.6rem;height:.6rem;
  border-radius:50%;background:var(--river);border:2px solid #fff
}
.research-timeline-date{margin:0 0 .1rem;font:700 .78rem var(--f-mono);color:var(--ink-soft)}
.research-timeline-event{margin:0}

/* statement cards */
.statement-summary{margin:.35rem 0 0}
.statement-source{margin:.5rem 0 0;font-size:.85rem}
.statement-card blockquote{font-size:1.02rem;font-style:italic}
